From e0b4e8b25130cdb852d9c49f4df3bd7841ff94ea Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Fri, 3 Oct 2025 15:51:32 +0300 Subject: [PATCH 01/14] Fix range selection that includes fields in section --- css/admin/frm-settings-components.css | 620 +- css/font_icons.css | 854 +- css/frm_admin.css | 12387 ++++++++++++++++++++- js/addons-page.js | 4788 +++++++- js/form-templates.js | 6259 ++++++++++- js/form-templates.js.map | 6 +- js/formidable-settings-components.js | 2742 ++++- js/formidable-settings-components.js.map | 2 +- js/formidable_admin.js | 10162 ++++++++++++++++- js/formidable_blocks.js | 2719 ++++- js/formidable_dashboard.js | 906 +- js/formidable_dashboard.js.map | 2 +- js/formidable_overlay.js | 734 +- js/formidable_styles.js | 3023 ++++- js/formidable_styles.js.map | 6 +- js/onboarding-wizard.js | 1844 ++- js/src/admin/admin.js | 23 +- 17 files changed, 47047 insertions(+), 30 deletions(-) diff --git a/css/admin/frm-settings-components.css b/css/admin/frm-settings-components.css index 4d0879f684..bd90479bcd 100644 --- a/css/admin/frm-settings-components.css +++ b/css/admin/frm-settings-components.css @@ -1 +1,619 @@ -.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} +/*!***********************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm-settings-components.scss ***! + \***********************************************************************************************************************************************************************************************************************************************/ +/** + * Formidable Forms settings components styles + */ +/** + * Accordion settings component styles + */ +.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus { + background: none; +} +.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover > svg:last-child, +.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:first-child, +.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:last-child { + color: var(--grey-900); +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component { + align-self: center; +} + +/** + * Color picker component styles + */ +.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button, +.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button { + background-color: #fff !important; +} +.frm_settings_form .frm-style-component .wp-picker-container button, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button { + position: relative; + height: 36px !important; + background-image: none !important; + overflow: hidden; + background-color: #fff !important; +} +.frm_settings_form .frm-style-component .wp-picker-container::after, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after { + content: ""; + width: 20px; + height: 20px; + display: block; + position: absolute; + top: 0; + right: 8px; + bottom: 0; + margin: auto; + background: url("../../images/style/small-arrow.svg") no-repeat; + background-position: center; + z-index: 10; +} +.frm_settings_form .frm-style-component .wp-color-result-text, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text { + line-height: 36px !important; + padding: 0 12px; + border: 0; +} +.frm_settings_form .frm-style-component .color-alpha, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha { + width: 20px !important; + height: 20px !important; + border-radius: 50% !important; + border: 1px solid rgb(208, 213, 221); + top: 0; + left: 0; + bottom: 0; + margin: auto; + margin-left: 12px; +} +.frm_settings_form .frm-style-component .wp-picker-input-wrap input, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input { + width: calc(100% - 10px) !important; + margin: 1px 5px; + height: 32px; + line-height: 32px; +} + +/** + * Background image component styles + */ +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component > div { + max-width: 216px; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container { + max-width: calc(100% - 44px); + position: relative; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box { + width: 36px; + height: 36px; + padding: 0; + background: white; + overflow: hidden; + text-indent: -999px; + flex-wrap: wrap; + border: none; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame { + margin-left: 0; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper { + position: relative; + width: 36px; + height: 36px; + margin: 0; + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); + overflow: hidden; + box-sizing: border-box; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame { + max-width: 120%; + height: 120%; + margin: -10%; + position: relative; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + margin: 0; + border-radius: var(--small-radius); +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option { + width: 100%; + height: 100%; + border: 1px solid var(--red-500); + text-indent: -9999px; + position: absolute; + top: 0; + left: 0; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before { + opacity: 0; + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: 1; + top: 0; + left: 0; + background: rgba(255, 255, 255, 0.8); +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after { + opacity: 0; + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: 1; + top: 0; + left: 0; + background: url("../../images/style/close.svg") no-repeat; + background-position: center; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after { + opacity: 1; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img { + width: 100%; + height: 100%; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper + *, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option * { + display: none; +} + +/** + * Radio buttons component styles + */ +.frm-style-component .frm-radio-container { + max-width: 216px; + height: 36px; + background: rgb(242, 244, 247); + gap: var(--small-gap); + padding: var(--gap-2xs); + box-sizing: border-box; + border-radius: var(--small-radius); + position: relative; +} +.frm-style-component.frm-field-shape .frm-radio-container { + max-width: unset; +} +.frm-style-component.frm-direction-component .frm-radio-container { + gap: var(--gap-xs); +} +.frm-style-component .frm-radio-container svg { + width: 16px; +} +.frm-style-component .frm-radio-container .frm-radio-active-tracker { + display: block; + width: 28%; + height: calc(100% - 8px); + background: white; + border-radius: var(--small-radius); + box-shadow: var(--button-shadow); + position: absolute; + top: var(--gap-2xs); + bottom: 0; + left: var(--gap-2xs); + z-index: 1; + transition: 0.35s transform cubic-bezier(0.075, 0.82, 0.165, 1); +} +.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker { + width: 23%; +} +.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { + width: calc(50% - var(--gap-xs)); +} +.frm-style-component .frm-radio-container > label { + width: 30%; + height: 100%; + margin: 0; + cursor: pointer; + position: relative; + display: flex; + z-index: 2; +} +.frm-style-component.frm-field-shape .frm-radio-container > label { + width: 23%; +} +.frm-style-component.frm-align-component.frm-2-options .frm-radio-container > label, .frm-style-component.frm-direction-component .frm-radio-container > label, .frm-style-component.frm-text-toggle-component .frm-radio-container > label { + width: 50%; +} +.frm-style-component.frm-text-toggle-component .frm-radio-container { + height: 44px; + max-width: unset; + gap: var(--gap-xs); + padding: var(--gap-xs); +} +.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { + height: calc(100% - var(--gap-sm)); + top: var(--gap-xs); +} + +.frm-style-tabs-wrapper .frm-tabs-navs ul > li:not(.frm-active):hover, +.frm-style-component .frm-radio-container input:not(:checked) + label:hover { + background: rgb(234, 236, 240); + border-radius: var(--small-radius); + box-shadow: var(--button-shadow); +} + +.frm-style-component .frm-radio-container input { + display: none; +} + +/** + * Sliders component styles + */ +.frm-style-component .frm-slider-container { + width: calc(100% - 91px); + display: flex; + align-items: center; + color: rgb(29, 41, 57); +} +.frm-style-component .frm-slider-container svg.frmsvg { + color: currentColor; + margin-right: 8px; + margin-left: -5px; + position: relative; + z-index: 15; +} + +.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover { + color: rgb(65, 153, 253); + cursor: pointer; +} + +.frm-style-component .frm-slider-container .frm-slider-active-track { + display: block; + height: 100%; + width: 0; + position: relative; + border-radius: 200px; +} +.frm-style-component .frm-slider-container .frm-slider-active-track, +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { + background: rgb(65, 153, 253); + box-shadow: 0 1.88px 4px -1px rgba(16, 24, 40, 0.03), 0 6px 8px -2px rgba(16, 24, 40, 0.08); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { + position: absolute; + display: block; + width: 16px; + height: 16px; + border-radius: 50%; + transform: translateX(15px); + cursor: grab; + right: 0; + top: 0; + bottom: 0; + margin: auto; +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label { + position: absolute; + display: block; + width: 48px; + height: 36px; + background: rgb(16, 24, 40); + color: white; + font-weight: 400; + font-size: var(--text-sm); + line-height: 36px; + border-radius: var(--small-radius); + transform: translate(-18px, -42px) scale3d(0.7, 1, 1); + opacity: 0; + z-index: -2; + pointer-events: none; + text-align: center; + user-select: none; +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label { + z-index: 12; + transform: translate(-18px, -42px) scale3d(1, 1, 1); + opacity: 1; + transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before { + content: ""; + display: block; + position: absolute; + width: 18px; + height: 18px; + border-radius: 50%; + left: 0; + top: 0; + transform: translate(-5px, -5px) scale3d(0.7, 0.7, 1); + border: 4px solid rgb(65, 153, 253); + opacity: 0; + transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before { + opacity: 0.5; + transform: translate(-5px, -5px) scale3d(1, 1, 1); + transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after { + content: ""; + position: absolute; + display: block; + width: 180%; + height: 200%; + border-radius: 50%; + left: 0; + top: 0; + transform: translate(-24%, -24%); +} + +.frm-style-component .frm-slider-value { + width: 86px; + height: 36px; + display: flex; + justify-content: center; + box-sizing: border-box; + background: white; + border-radius: var(--small-radius); + border: 1px solid var(--grey-300); +} +.frm-style-component .frm-slider-value > * { + border: none; +} +.frm-style-component .frm-slider-value input { + width: 40px; + height: 100%; + padding: 0; + font-size: var(--text-sm); + color: rgb(16, 24, 40); + padding-left: 12px; + box-sizing: border-box; +} +.frm-style-component .frm-slider-value select { + text-align: right; + padding: 0; + font-size: var(--text-sm); + color: rgb(102, 112, 133); + width: 44px; + background: url("../../images/style/small-arrow.svg") no-repeat; + background-position: center right 12px; + padding-right: 24px !important; +} +.frm-style-component .frm-slider { + display: block; + width: calc(100% - 5px); + height: 4px; + background: rgb(234, 236, 240); + border-radius: 200px; + cursor: pointer; +} + +.frm-slider-component .frm-independent-slider-field { + margin-top: 10px; +} +.frm-slider-component.frm-disabled .frm-slider-container { + pointer-events: none; + opacity: 0.5; +} +.frm-slider-component.frm-disabled .frm-slider-value input[type=text] { + width: 28px; +} +.frm-slider-component.frm-disabled .frm-slider-value select { + width: 56px; +} +.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text] { + width: 56px; +} +.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select { + width: 28px; +} + +.frm-style-component .frm-slider-component.frm-has-multiple-values { + margin-bottom: 10px; +} + +/** + * Tabs component styles + */ +.frm-tabs-wrapper { + position: relative; + overflow: hidden; +} +.frm-tabs-wrapper .frm-tabs-navigator { + margin: 0; + padding: 0; + display: flex; + gap: var(--gap-xs); + justify-content: space-between; + align-items: center; + background: rgb(242, 244, 247); + border-radius: var(--small-radius); + box-sizing: border-box; + height: 44px; + position: relative; + z-index: 2; +} +.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item { + flex: 1; + text-align: center; + cursor: pointer; +} +.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background { + display: block; + height: 100%; + background: white; + position: absolute; + top: 0; + left: 0; + z-index: 1; +} + +.frm-style-tabs-wrapper { + position: relative; +} +.frm-style-tabs-wrapper .frm-tabs-navs { + padding: 0; + min-height: 44px; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul { + margin: 0; + height: var(--h-md); + position: relative; + justify-content: space-between; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li, +.frm-style-tabs-wrapper .frm-tabs-navs ul li a { + color: var(--grey-500); + font-weight: 500; + font-size: var(--text-sm); + line-height: 28px; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li { + flex: 1; + height: 28px; + text-align: center; + margin-top: var(--gap-xs); + margin-bottom: 0; + cursor: pointer; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active, .frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a { + color: var(--grey-900); +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { + margin-left: var(--gap-xs); +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { + margin-right: var(--gap-xs); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter { + position: absolute; + top: 0; + left: 0; + width: 100%; + background: rgb(242, 244, 247); + height: 44px; + margin: 0; + border-radius: var(--small-radius); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline { + height: 28px; + background: white; + position: absolute; + left: 0; + bottom: 8px; + width: 45px; + transition: 0.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); + border-radius: var(--small-radius); + box-shadow: var(--button-shadow); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first { + left: var(--gap-xs); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last { + left: calc(-1 * var(--gap-xs)); +} + +.frm-tabs-container { + position: relative; + overflow: hidden; + margin-top: var(--gap-md); + height: 100%; +} + +.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track { + transition: 0.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-tabs-wrapper .frm-tabs-slide-track > div { + flex: 0 0 100%; + opacity: 0; + transition: 0.25s opacity linear; + position: relative; + height: auto; + max-height: unset; + overflow: hidden; + box-sizing: border-box; +} +.frm-style-tabs-wrapper .frm-tabs-slide-track > div > div { + overflow: auto; + position: relative; + width: 100%; + padding: 0; + box-sizing: border-box; +} + +.frm-tabs-slide-track > div > div:first-child { + height: 100%; +} +.frm-tabs-slide-track > div.frm-active { + opacity: 1; + transition: 0.35s opacity linear; +} + +/** + * Miscellaneous settings component styles + */ +.frm-style-component .frm_toggle_slider { + background: rgb(242, 244, 247); +} + +.frm-style-component label.frm-copy-text { + line-height: 32px; + cursor: pointer; + white-space: nowrap; +} + +.frm-style-component .wp-picker-holder { + right: 0; +} + +.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading { + font-weight: 500; + font-size: var(--text-md); + color: var(--grey-900); +} + +.frm-unit-input { + position: relative; + display: flex; + align-items: center; +} +.frm-unit-input input[type=number]::-webkit-outer-spin-button, +.frm-unit-input input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + appearance: none; +} +.frm-unit-input .frm-input-group-suffix { + position: absolute; + top: 1px; + right: 1px; + display: flex; + align-items: center; + height: calc(100% - 2px); + padding-right: var(--gap-xs); +} +.frm-unit-input .frm-input-group-suffix select { + width: fit-content; + height: 100%; + min-height: unset; + font-size: var(--text-sm); + text-align: right; + color: var(--grey-500) !important; + background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%; + padding-left: var(--gap-2xs); + padding-right: 21px !important; + border: transparent; +} +.frm-unit-input .frm-input-group-suffix select:focus-visible { + outline: 1px solid var(--primary-500); + outline-offset: -2px; +} + +/*# sourceMappingURL=frm-settings-components.css.map*/ \ No newline at end of file diff --git a/css/font_icons.css b/css/font_icons.css index b21fe208ed..c25d12cac0 100644 --- a/css/font_icons.css +++ b/css/font_icons.css @@ -1 +1,853 @@ -@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"} +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/font_icons.scss ***! + \****************************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/** + * Font Icons + */ +@font-face { + font-family: "s11-fp"; + src: url("../fonts/s11-fp.woff?v=7") format("woff"); + font-weight: 400; + font-style: normal; +} +.frm-submenu-highlight { + background: #1da867; +} + +.frm-submenu-highlight a span { + color: #fff; + font-weight: 600; +} + +.frmfont, +.frm_icon_font { + text-decoration: none; + text-shadow: none; + font-weight: 400; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: auto; + line-height: 1.5; + transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; + font-size: 18px; +} + +i.frmfont, +i.frm_icon_font { + font-style: normal; + font-variant: normal; + speak: none; +} + +.frmfont::before, +select.frmfont, +.frm_icon_font::before, +select.frm_icon_font { + font-family: "s11-fp" !important; + text-align: center; +} + +.frmfont, +a.frmfont, +.frmfont:hover, +a.frmfont:hover .frm_icon_font, +a.frm_icon_font, +.frm_icon_font:hover, +a.frm_icon_font:hover { + text-decoration: none !important; + box-shadow: none; +} + +.frmfont:focus, +.frm_icon_font:focus { + box-shadow: none; +} + +.frmfont:active, +.frm_icon_font:active { + outline: none; +} + +.frm_trigger .frm_icon_font { + padding: 0 5px; +} + +.frm_logo_icon::before { + content: "\e601"; +} + +.frm_required_icon::before { + content: "\e612"; +} + +.frm_delete_icon::before { + content: "\e610" !important; +} + +.frm_move_icon::before { + content: "\e61a"; +} + +.frm_drag_icon::before { + content: "\e93b"; +} + +.frm_clear_icon::before { + content: "\e60a"; +} + +.frm_noclear_icon::before { + content: "\e60b"; +} + +.frm_duplicate_icon::before { + content: "\e61b"; +} + +.frm_copy_icon::before { + content: "\f0c5"; +} + +.frm_clone_icon::before { + content: "\f24d"; +} + +.frm_tooltip_icon::before { + content: "\e611"; +} + +.frm_tooltip_solid_icon::before { + content: "\e907"; +} + +.frm_forbid_icon::before { + content: "\e636"; +} + +.frm_checkmark_icon::before { + content: "\e90a"; +} + +.frm_check_icon::before { + content: "\e605"; +} + +.frm_check1_icon::before { + content: "\e606"; +} + +.frm_plus_icon::before { + content: "\e62f"; +} + +.frm_plus1_icon::before { + content: "\e602"; +} + +.frm_plus2_icon::before { + content: "\e603"; +} + +.frm_plus3_icon::before { + content: "\e632"; +} + +.frm_plus4_icon::before { + content: "\e60f"; +} + +.frm_minus_icon::before { + content: "\e62e"; +} + +.frm_minus1_icon::before { + content: "\e600"; +} + +.frm_minus2_icon::before { + content: "\e604"; +} + +.frm_minus3_icon::before { + content: "\e633"; +} + +.frm_minus4_icon::before { + content: "\e613"; +} + +.frm_cancel_icon::before { + content: "\e607"; +} + +.frm_cancel1_icon::before { + content: "\e608"; +} + +.frm_close_icon::before { + content: "\e928"; +} + +.frm_report_problem_solid_icon::before { + content: "\e914"; +} + +.frm_report_problem_icon::before { + content: "\e915"; +} + +.frm_arrowup_icon::before { + content: "\e60d"; +} + +.frm_arrowup1_icon::before { + content: "\e60e"; +} + +.frm_arrowup2_icon::before { + content: "\e630"; +} + +.frm_arrowup3_icon::before { + content: "\e62b"; +} + +.frm_arrowup4_icon::before { + content: "\e62c"; +} + +.frm_arrowup5_icon::before { + content: "\e635"; +} + +.frm_arrowup5_solid_icon::before { + content: "\e9d"; +} + +.frm_arrowup7_icon::before { + content: "\e908"; +} + +.frm_arrowup6_icon::before { + content: "\e62d"; +} + +.frm_arrowdown_icon::before { + content: "\e609"; +} + +.frm_arrowdown1_icon::before { + content: "\e60c"; +} + +.frm_arrowdown2_icon::before { + content: "\e631"; +} + +.frm_arrowdown3_icon::before { + content: "\e628"; +} + +.frm_arrowdown4_icon::before { + content: "\e629"; +} + +.frm_arrowdown5_icon::before { + content: "\e634"; +} + +.frm_arrowdown5_solid_icon::before { + content: "\e905"; +} + +.frm_arrowdown7_icon::before { + content: "\e90b"; +} + +.frm_arrowdown6_icon::before { + content: "\e62a"; +} + +.frm_arrow_left_icon::before { + content: "\e912"; +} + +.frm_arrow_right_icon::before { + content: "\e913"; +} + +.frm_filter_icon::before { + content: "\e90c"; +} + +.frm_download_icon::before { + content: "\e615"; +} + +.frm_upload2_icon::before { + content: "\f093"; +} + +.frm_upload_icon::before { + content: "\e616"; +} + +.frm_download2_icon::before { + content: "\f019"; +} + +.frm_hard_drive_icon::before { + content: "\e916"; +} + +.frm_pencil_solid_icon::before { + content: "\e901"; +} + +.frm_pencil_icon::before { + content: "\e61d"; +} + +.frm_signature_icon::before { + content: "\e919"; +} + +.frm_user_icon::before { + content: "\e7ff"; +} + +.frm_register_icon::before { + content: "\e637"; +} + +.frm_account_circle_solid_icon::before { + content: "\e853"; +} + +.frm_account_circle_icon::before { + content: "\e921"; +} + +.frm_address_card_icon::before { + content: "\e996"; +} + +.frm_paragraph_icon::before { + content: "\f1dd"; +} + +.frm_checkbox_unchecked_icon::before { + content: "\e91e"; +} + +.frm_checkbox_icon::before { + content: "\e922"; +} + +.frm_checkbox_solid_icon::before { + content: "\e91f"; +} + +.frm_dropdown_icon::before { + content: "\e909"; +} + +.frm_caret_square_down_icon::before { + content: "\f150"; +} + +.frm_check_square_icon::before { + content: "\f14a"; +} + +.frm_radio_unchecked_icon::before { + content: "\e971"; +} + +.frm_radio_checked_icon::before { + content: "\ea54"; +} + +.frm_scrubber_icon::before { + content: "\f2f8"; +} + +.frm_location_solid_icon::before { + content: "\e955"; +} + +.frm_location_icon::before { + content: "\e947"; +} + +.frm_toggle_on_icon::before { + content: "\f205"; +} + +.frm_toggle_off_icon::before { + content: "\f204"; +} + +.frm_shield_check_icon::before { + content: "\f2f7"; +} + +.frm_shield_check_solid_icon::before { + content: "\e97d"; +} + +.frm_clock_icon::before { + content: "\e929"; +} + +.frm_clock_solid_icon::before { + content: "\e985"; +} + +.frm_link_icon::before { + content: "\f0c1"; +} + +.frm_email_icon::before { + content: "\e626"; +} + +.frm_email_solid_icon::before { + content: "\f0e0"; +} + +.frm_mail_bulk_icon::before { + content: "\e95c"; +} + +.frm_phone_icon::before { + content: "\e942"; +} + +.frm_calendar_icon::before { + content: "\f073"; +} + +.frm_code_icon::before { + content: "\e90d"; +} + +.frm_tag_icon::before { + content: "\e98b"; +} + +.frm_tag_solid_icon::before { + content: "\e989"; +} + +.frm_price_tags_icon::before { + content: "\e936"; +} + +.frm_search_icon::before { + content: "\e978"; +} + +.frm_sitemap_icon::before { + content: "\f0e8"; +} + +.frm_file_icon::before { + content: "\f15b"; +} + +.frm_file_text_solid_icon::before { + content: "\f15c"; +} + +.frm_file_text_icon::before { + content: "\e923"; +} + +.frm-option-icon::before, +.frm_option_icon::before { + content: "\e904"; +} + +.frm_option_solid_icon::before { + content: "\e906"; +} + +.frm_more_horiz_icon::before { + content: "\e5d3"; +} + +.frm_more_vert_icon::before { + content: "\e5d4"; +} + +.frm_more_horiz_solid_icon { + font-size: 28px !important; + font-weight: 700; + line-height: 18px; +} + +.frm_more_horiz_solid_icon::before { + content: "···"; +} + +.frm_more_vert_solid_icon::before { + content: "\f142"; +} + +.frm_calculator_icon::before { + content: "\f1ec"; +} + +.frm_keyboard_icon::before { + content: "\e924"; +} + +.frm_eye_icon::before { + content: "\f06e"; +} + +.frm_eye_solid_icon::before { + content: "\e945"; +} + +.frm_eye_slash_icon::before { + content: "\f070"; +} + +.frm_eye_slash_solid_icon::before { + content: "\e949"; +} + +.frm_page_break_icon::before { + content: "\e8e9"; +} + +.frm_view_day_icon::before { + content: "\e8ed"; +} + +.frm_attach_file_icon::before { + content: "\e226"; +} + +.frm_printer_icon::before { + content: "\e926"; +} + +.frm_header_icon::before { + content: "\f1dc"; +} + +.frm_h1_icon::before { + content: "\e94c"; +} + +.frm_repeat_icon::before { + content: "\f363"; +} + +.frm_repeater_icon::before { + content: "\e974"; +} + +.frm_hashtag_icon::before { + content: "\e292"; +} + +.frm_save_icon::before { + content: "\e927"; +} + +.frm_sliders_icon::before { + content: "\f1de"; +} + +.frm_code_commit_icon::before { + content: "\f386"; +} + +.frm_star_icon::before { + content: "\e9d7"; +} + +.frm_star_full_icon::before { + content: "\e9d9"; +} + +.frm_star_half_icon::before { + content: "\e9d8"; +} + +.frm_linear_scale_icon::before { + content: "\e260"; +} + +.frm_pie_chart_icon::before { + content: "\e99a"; +} + +.frm_stats_bars_icon::before { + content: "\e99c"; +} + +.frm_sms_icon::before { + content: "\e61c"; +} + +.frm_highrise_icon::before { + content: "\e617"; +} + +.frm_mailchimp_icon::before { + content: "\e622"; +} + +.frm_feed_icon::before { + content: "\e624"; +} + +.frm_align_right_icon::before { + content: "\e90f"; +} + +.frm_align_left_icon::before { + content: "\e910"; +} + +.frm_button_icon::before { + content: "\e911"; +} + +.frm_browser_icon::before { + content: "\e925"; +} + +.frm_cloud_upload_solid_icon::before { + content: "\e92c"; +} + +.frm_shuffle_icon::before { + content: "\e917"; +} + +.frm_swap_icon::before { + content: "\e918"; +} + +.frm_pallet_icon::before { + content: "\e96d"; +} + +.frm_fingerprint_icon::before { + content: "\e94a"; +} + +.frm_ghost_icon::before { + content: "\e94b"; +} + +.frm_heart_solid_icon::before { + content: "\e94d"; +} + +.frm_heart_icon::before { + content: "\e94e"; +} + +.frm_history_icon::before { + content: "\e94f"; +} + +.frm_import_icon::before { + content: "\e91a"; +} + +.frm_export_icon::before { + content: "\e91b"; +} + +.frm_label_solid_icon::before { + content: "\e952"; +} + +.frm_label_icon::before { + content: "\e953"; +} + +.frm_lock_open_icon::before { + content: "\e957"; +} + +.frm_lock_icon::before { + content: "\e959"; +} + +.frm_dollar_sign_icon::before { + content: "\e91c"; +} + +.frm_percent_icon::before { + content: "\e939"; +} + +.frm_external_link_icon::before { + content: "\e966"; +} + +.frm_pageview_solid_icon::before { + content: "\e96a"; +} + +.frm_pageview_icon::before { + content: "\e96b"; +} + +.frm_settings_icon::before { + content: "\e97a"; +} + +.frm_stamp_icon::before { + content: "\e980"; +} + +.frm_support_icon::before { + content: "\f1cd"; +} + +.frm_text_icon::before { + content: "\e98d"; +} + +.frm_text2_icon::before { + content: "\f031"; +} + +.frm_white_label_icon::before { + content: "\e91d" !important; +} + +.frm_authorize_icon::before { + content: "\e903"; +} + +.frm_icon_font.frm_activecampaign_icon { + background-image: none; +} + +.frm_activecampaign_icon::before { + content: "\e930"; +} + +.frm_aweber_icon::before { + content: "\e627"; +} + +.frm_campaignmonitor_icon::before { + content: "\e946"; +} + +.frm_constant_contact_icon::before { + content: "\e931"; +} + +.frm_getresponse_icon::before { + content: "\e932"; +} + +.frm_googlesheets_icon::before { + content: "\e944"; +} + +.frm_building_icon::before { + content: "\e93f"; +} + +.frm_hubspot_icon::before { + content: "\e933"; +} + +.frm_icontact_icon::before { + content: "\e940"; +} + +.frm_icon_font.frm_mailpoet_icon::before { + content: "\e934"; +} + +.frm_paypal_icon::before { + content: "\e61f"; +} + +.frm_sendinblue_icon::before { + content: "\e943"; +} + +.frm_sendy_icon::before { + content: "\e941"; +} + +.frm_salesforce_icon::before { + content: "\e935"; +} + +.frm_salesforcealt_icon::before { + content: "\e937"; +} + +.frm_stripe_icon::before { + content: "\e902"; +} + +.frm_stripealt_icon::before { + content: "\e93d"; +} + +.frm_twilio_icon::before { + content: "\e620"; +} + +.frm_woocommerce_icon::before { + content: "\e90e"; +} + +.frm_wordpress_icon::before { + content: "\f19a"; +} + +.frm_credit_card_icon::before { + content: "\e938"; +} + +.frm_credit-card-alt_icon::before, +.frm_credit_card_alt_icon::before { + content: "\f283"; +} + +.frm_cc_amex_icon::before { + content: "\f1f3"; +} + +.frm_cc_discover_icon::before { + content: "\f1f2"; +} + +.frm_cc_mastercard_icon::before { + content: "\f1f1"; +} + +.frm_cc_visa_icon::before { + content: "\f1f0"; +} + +.frm_cc_paypal_icon::before { + content: "\f1f4"; +} + +.frm_cc_stripe_icon::before { + content: "\f1f5"; +} + +/*# sourceMappingURL=font_icons.css.map*/ \ No newline at end of file diff --git a/css/frm_admin.css b/css/frm_admin.css index e1a6bbb69a..4ca2c0dd82 100644 --- a/css/frm_admin.css +++ b/css/frm_admin.css @@ -1,3 +1,12386 @@ -@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500)}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key{margin-left:19px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! +/*!*********************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm_admin.scss ***! + \*********************************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/** + * Formidable Admin Styles + * + * Note: Do not modify the import order unless the change is part of a deliberate refactor. + */ +/** + * Base & Foundation + * + * Core variables, typography, and essential base styles + */ +/** + * Font Icons + */ +@font-face { + font-family: "s11-fp"; + src: url("../fonts/s11-fp.woff?v=7") format("woff"); + font-weight: 400; + font-style: normal; +} +.frm-submenu-highlight { + background: #1da867; +} + +.frm-submenu-highlight a span { + color: #fff; + font-weight: 600; +} + +.frmfont, +.frm_icon_font { + text-decoration: none; + text-shadow: none; + font-weight: 400; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: auto; + line-height: 1.5; + transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; + font-size: 18px; +} + +i.frmfont, +i.frm_icon_font { + font-style: normal; + font-variant: normal; + speak: none; +} + +.frmfont::before, +select.frmfont, +.frm_icon_font::before, +select.frm_icon_font { + font-family: "s11-fp" !important; + text-align: center; +} + +.frmfont, +a.frmfont, +.frmfont:hover, +a.frmfont:hover .frm_icon_font, +a.frm_icon_font, +.frm_icon_font:hover, +a.frm_icon_font:hover { + text-decoration: none !important; + box-shadow: none; +} + +.frmfont:focus, +.frm_icon_font:focus { + box-shadow: none; +} + +.frmfont:active, +.frm_icon_font:active { + outline: none; +} + +.frm_trigger .frm_icon_font { + padding: 0 5px; +} + +.frm_logo_icon::before { + content: "\e601"; +} + +.frm_required_icon::before { + content: "\e612"; +} + +.frm_delete_icon::before { + content: "\e610" !important; +} + +.frm_move_icon::before { + content: "\e61a"; +} + +.frm_drag_icon::before { + content: "\e93b"; +} + +.frm_clear_icon::before { + content: "\e60a"; +} + +.frm_noclear_icon::before { + content: "\e60b"; +} + +.frm_duplicate_icon::before { + content: "\e61b"; +} + +.frm_copy_icon::before { + content: "\f0c5"; +} + +.frm_clone_icon::before { + content: "\f24d"; +} + +.frm_tooltip_icon::before { + content: "\e611"; +} + +.frm_tooltip_solid_icon::before { + content: "\e907"; +} + +.frm_forbid_icon::before { + content: "\e636"; +} + +.frm_checkmark_icon::before { + content: "\e90a"; +} + +.frm_check_icon::before { + content: "\e605"; +} + +.frm_check1_icon::before { + content: "\e606"; +} + +.frm_plus_icon::before { + content: "\e62f"; +} + +.frm_plus1_icon::before { + content: "\e602"; +} + +.frm_plus2_icon::before { + content: "\e603"; +} + +.frm_plus3_icon::before { + content: "\e632"; +} + +.frm_plus4_icon::before { + content: "\e60f"; +} + +.frm_minus_icon::before { + content: "\e62e"; +} + +.frm_minus1_icon::before { + content: "\e600"; +} + +.frm_minus2_icon::before { + content: "\e604"; +} + +.frm_minus3_icon::before { + content: "\e633"; +} + +.frm_minus4_icon::before { + content: "\e613"; +} + +.frm_cancel_icon::before { + content: "\e607"; +} + +.frm_cancel1_icon::before { + content: "\e608"; +} + +.frm_close_icon::before { + content: "\e928"; +} + +.frm_report_problem_solid_icon::before { + content: "\e914"; +} + +.frm_report_problem_icon::before { + content: "\e915"; +} + +.frm_arrowup_icon::before { + content: "\e60d"; +} + +.frm_arrowup1_icon::before { + content: "\e60e"; +} + +.frm_arrowup2_icon::before { + content: "\e630"; +} + +.frm_arrowup3_icon::before { + content: "\e62b"; +} + +.frm_arrowup4_icon::before { + content: "\e62c"; +} + +.frm_arrowup5_icon::before { + content: "\e635"; +} + +.frm_arrowup5_solid_icon::before { + content: "\e9d"; +} + +.frm_arrowup7_icon::before { + content: "\e908"; +} + +.frm_arrowup6_icon::before { + content: "\e62d"; +} + +.frm_arrowdown_icon::before { + content: "\e609"; +} + +.frm_arrowdown1_icon::before { + content: "\e60c"; +} + +.frm_arrowdown2_icon::before { + content: "\e631"; +} + +.frm_arrowdown3_icon::before { + content: "\e628"; +} + +.frm_arrowdown4_icon::before { + content: "\e629"; +} + +.frm_arrowdown5_icon::before { + content: "\e634"; +} + +.frm_arrowdown5_solid_icon::before { + content: "\e905"; +} + +.frm_arrowdown7_icon::before { + content: "\e90b"; +} + +.frm_arrowdown6_icon::before { + content: "\e62a"; +} + +.frm_arrow_left_icon::before { + content: "\e912"; +} + +.frm_arrow_right_icon::before { + content: "\e913"; +} + +.frm_filter_icon::before { + content: "\e90c"; +} + +.frm_download_icon::before { + content: "\e615"; +} + +.frm_upload2_icon::before { + content: "\f093"; +} + +.frm_upload_icon::before { + content: "\e616"; +} + +.frm_download2_icon::before { + content: "\f019"; +} + +.frm_hard_drive_icon::before { + content: "\e916"; +} + +.frm_pencil_solid_icon::before { + content: "\e901"; +} + +.frm_pencil_icon::before { + content: "\e61d"; +} + +.frm_signature_icon::before { + content: "\e919"; +} + +.frm_user_icon::before { + content: "\e7ff"; +} + +.frm_register_icon::before { + content: "\e637"; +} + +.frm_account_circle_solid_icon::before { + content: "\e853"; +} + +.frm_account_circle_icon::before { + content: "\e921"; +} + +.frm_address_card_icon::before { + content: "\e996"; +} + +.frm_paragraph_icon::before { + content: "\f1dd"; +} + +.frm_checkbox_unchecked_icon::before { + content: "\e91e"; +} + +.frm_checkbox_icon::before { + content: "\e922"; +} + +.frm_checkbox_solid_icon::before { + content: "\e91f"; +} + +.frm_dropdown_icon::before { + content: "\e909"; +} + +.frm_caret_square_down_icon::before { + content: "\f150"; +} + +.frm_check_square_icon::before { + content: "\f14a"; +} + +.frm_radio_unchecked_icon::before { + content: "\e971"; +} + +.frm_radio_checked_icon::before { + content: "\ea54"; +} + +.frm_scrubber_icon::before { + content: "\f2f8"; +} + +.frm_location_solid_icon::before { + content: "\e955"; +} + +.frm_location_icon::before { + content: "\e947"; +} + +.frm_toggle_on_icon::before { + content: "\f205"; +} + +.frm_toggle_off_icon::before { + content: "\f204"; +} + +.frm_shield_check_icon::before { + content: "\f2f7"; +} + +.frm_shield_check_solid_icon::before { + content: "\e97d"; +} + +.frm_clock_icon::before { + content: "\e929"; +} + +.frm_clock_solid_icon::before { + content: "\e985"; +} + +.frm_link_icon::before { + content: "\f0c1"; +} + +.frm_email_icon::before { + content: "\e626"; +} + +.frm_email_solid_icon::before { + content: "\f0e0"; +} + +.frm_mail_bulk_icon::before { + content: "\e95c"; +} + +.frm_phone_icon::before { + content: "\e942"; +} + +.frm_calendar_icon::before { + content: "\f073"; +} + +.frm_code_icon::before { + content: "\e90d"; +} + +.frm_tag_icon::before { + content: "\e98b"; +} + +.frm_tag_solid_icon::before { + content: "\e989"; +} + +.frm_price_tags_icon::before { + content: "\e936"; +} + +.frm_search_icon::before { + content: "\e978"; +} + +.frm_sitemap_icon::before { + content: "\f0e8"; +} + +.frm_file_icon::before { + content: "\f15b"; +} + +.frm_file_text_solid_icon::before { + content: "\f15c"; +} + +.frm_file_text_icon::before { + content: "\e923"; +} + +.frm-option-icon::before, +.frm_option_icon::before { + content: "\e904"; +} + +.frm_option_solid_icon::before { + content: "\e906"; +} + +.frm_more_horiz_icon::before { + content: "\e5d3"; +} + +.frm_more_vert_icon::before { + content: "\e5d4"; +} + +.frm_more_horiz_solid_icon { + font-size: 28px !important; + font-weight: 700; + line-height: 18px; +} + +.frm_more_horiz_solid_icon::before { + content: "···"; +} + +.frm_more_vert_solid_icon::before { + content: "\f142"; +} + +.frm_calculator_icon::before { + content: "\f1ec"; +} + +.frm_keyboard_icon::before { + content: "\e924"; +} + +.frm_eye_icon::before { + content: "\f06e"; +} + +.frm_eye_solid_icon::before { + content: "\e945"; +} + +.frm_eye_slash_icon::before { + content: "\f070"; +} + +.frm_eye_slash_solid_icon::before { + content: "\e949"; +} + +.frm_page_break_icon::before { + content: "\e8e9"; +} + +.frm_view_day_icon::before { + content: "\e8ed"; +} + +.frm_attach_file_icon::before { + content: "\e226"; +} + +.frm_printer_icon::before { + content: "\e926"; +} + +.frm_header_icon::before { + content: "\f1dc"; +} + +.frm_h1_icon::before { + content: "\e94c"; +} + +.frm_repeat_icon::before { + content: "\f363"; +} + +.frm_repeater_icon::before { + content: "\e974"; +} + +.frm_hashtag_icon::before { + content: "\e292"; +} + +.frm_save_icon::before { + content: "\e927"; +} + +.frm_sliders_icon::before { + content: "\f1de"; +} + +.frm_code_commit_icon::before { + content: "\f386"; +} + +.frm_star_icon::before { + content: "\e9d7"; +} + +.frm_star_full_icon::before { + content: "\e9d9"; +} + +.frm_star_half_icon::before { + content: "\e9d8"; +} + +.frm_linear_scale_icon::before { + content: "\e260"; +} + +.frm_pie_chart_icon::before { + content: "\e99a"; +} + +.frm_stats_bars_icon::before { + content: "\e99c"; +} + +.frm_sms_icon::before { + content: "\e61c"; +} + +.frm_highrise_icon::before { + content: "\e617"; +} + +.frm_mailchimp_icon::before { + content: "\e622"; +} + +.frm_feed_icon::before { + content: "\e624"; +} + +.frm_align_right_icon::before { + content: "\e90f"; +} + +.frm_align_left_icon::before { + content: "\e910"; +} + +.frm_button_icon::before { + content: "\e911"; +} + +.frm_browser_icon::before { + content: "\e925"; +} + +.frm_cloud_upload_solid_icon::before { + content: "\e92c"; +} + +.frm_shuffle_icon::before { + content: "\e917"; +} + +.frm_swap_icon::before { + content: "\e918"; +} + +.frm_pallet_icon::before { + content: "\e96d"; +} + +.frm_fingerprint_icon::before { + content: "\e94a"; +} + +.frm_ghost_icon::before { + content: "\e94b"; +} + +.frm_heart_solid_icon::before { + content: "\e94d"; +} + +.frm_heart_icon::before { + content: "\e94e"; +} + +.frm_history_icon::before { + content: "\e94f"; +} + +.frm_import_icon::before { + content: "\e91a"; +} + +.frm_export_icon::before { + content: "\e91b"; +} + +.frm_label_solid_icon::before { + content: "\e952"; +} + +.frm_label_icon::before { + content: "\e953"; +} + +.frm_lock_open_icon::before { + content: "\e957"; +} + +.frm_lock_icon::before { + content: "\e959"; +} + +.frm_dollar_sign_icon::before { + content: "\e91c"; +} + +.frm_percent_icon::before { + content: "\e939"; +} + +.frm_external_link_icon::before { + content: "\e966"; +} + +.frm_pageview_solid_icon::before { + content: "\e96a"; +} + +.frm_pageview_icon::before { + content: "\e96b"; +} + +.frm_settings_icon::before { + content: "\e97a"; +} + +.frm_stamp_icon::before { + content: "\e980"; +} + +.frm_support_icon::before { + content: "\f1cd"; +} + +.frm_text_icon::before { + content: "\e98d"; +} + +.frm_text2_icon::before { + content: "\f031"; +} + +.frm_white_label_icon::before { + content: "\e91d" !important; +} + +.frm_authorize_icon::before { + content: "\e903"; +} + +.frm_icon_font.frm_activecampaign_icon { + background-image: none; +} + +.frm_activecampaign_icon::before { + content: "\e930"; +} + +.frm_aweber_icon::before { + content: "\e627"; +} + +.frm_campaignmonitor_icon::before { + content: "\e946"; +} + +.frm_constant_contact_icon::before { + content: "\e931"; +} + +.frm_getresponse_icon::before { + content: "\e932"; +} + +.frm_googlesheets_icon::before { + content: "\e944"; +} + +.frm_building_icon::before { + content: "\e93f"; +} + +.frm_hubspot_icon::before { + content: "\e933"; +} + +.frm_icontact_icon::before { + content: "\e940"; +} + +.frm_icon_font.frm_mailpoet_icon::before { + content: "\e934"; +} + +.frm_paypal_icon::before { + content: "\e61f"; +} + +.frm_sendinblue_icon::before { + content: "\e943"; +} + +.frm_sendy_icon::before { + content: "\e941"; +} + +.frm_salesforce_icon::before { + content: "\e935"; +} + +.frm_salesforcealt_icon::before { + content: "\e937"; +} + +.frm_stripe_icon::before { + content: "\e902"; +} + +.frm_stripealt_icon::before { + content: "\e93d"; +} + +.frm_twilio_icon::before { + content: "\e620"; +} + +.frm_woocommerce_icon::before { + content: "\e90e"; +} + +.frm_wordpress_icon::before { + content: "\f19a"; +} + +.frm_credit_card_icon::before { + content: "\e938"; +} + +.frm_credit-card-alt_icon::before, +.frm_credit_card_alt_icon::before { + content: "\f283"; +} + +.frm_cc_amex_icon::before { + content: "\f1f3"; +} + +.frm_cc_discover_icon::before { + content: "\f1f2"; +} + +.frm_cc_mastercard_icon::before { + content: "\f1f1"; +} + +.frm_cc_visa_icon::before { + content: "\f1f0"; +} + +.frm_cc_paypal_icon::before { + content: "\f1f4"; +} + +.frm_cc_stripe_icon::before { + content: "\f1f5"; +} + +/** + * Base - Variables + */ +:root, +.frm-white-body, +.frm_wrap { + --grey-900: #101828; + --grey-800: #1D2939; + --grey-700: #344054; + --grey-600: #475467; + --grey-500: #667085; /* Roughly 65% opacity */ + --grey-400: #98A2B3; + --grey-300: #D0D5DD; + --grey-200: #EAECF0; + --grey-100: #F2F4F7; + --grey-50: #F9FAFB; + --grey-25: #FCFCFD; + --dark-grey: var(--grey-700); /* Deprecated */ + --medium-grey: rgba(40, 47, 54, .65); + --grey: var(--grey-500); /* Deprecated */ + --grey-border: var(--grey-300); /* Deprecated */ + --lightest-grey: rgb(250, 250, 250); + --sidebar-color: var(--grey-50); + --sidebar-hover: var(--grey-200); + --primary-700: #2B66A9; + --primary-500: #4199FD; + --primary-300: #80BBFE; + --primary-200: #C0DDFE; + --primary-50: #ECF5FF; + --primary-25: #F5FAFF; + --primary-color: var(--primary-500); /* Deprecated */ + --primary-hover: var(--primary-700); /* Deprecated */ + --light-blue: var(--primary-25); /* Deprecated */ + --blue-border: rgb(188, 224, 253); + --error-700: #B42318; + --error-500: #F04438; + --error-300: #FECDCA; + --error-100: #FEE4E2; + --error-25: #FFF5F4; + --green: rgb(63, 172, 37); + --orange: #F15A24; + --warning-500: #F79009; + --pink: rgb(226, 42, 110); + --purple: rgb(141, 53, 245); + --success-900: #054F31; + --success-800: #065F46; + --success-500: #12b76a; + --success-100: #D1FAE5; + --success-200: #A6F4C5; + --success-50: #ECFDF3; + --success-25: #f6fef9; + --border-radius: 35px; + --small-radius: 8px; + --medium-radius: 16px; + --small-sidebar: 275px; + --medium-sidebar: 350px; + --big-sidebar: 390px; + --biggest-sidebar: 450px; + --text-xs: 12px; + --text-sm: 14px; + --text-md: 16px; + --text-lg: 18px; + --text-xl: 20px; + --h-xs: 24px; + --h-sm: 30px; + --h-md: 36px; + --leading: 1.5; + --gap-2xs: 4px; + --gap-xs: 8px; + --gap-sm: 16px; + --gap-md: 24px; + --gap-lg: 32px; + --gap-xl: 40px; + --gap-2xl: 48px; + --box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05); + --box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); + --box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06); + --box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); + --box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03); + --box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18); + --button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1); + /* Override front-end CSS */ + --check-label-color: var(--grey-700); +} + +/** + * Base - Font + */ +@font-face { + font-family: "Inter"; + src: url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype"); +} +.with_frm_style, +.frm-white-body .wpbody-content, +.frm_wrap { + font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; +} + +/* Safari 11+ */ +@media not all and (min-resolution: 0.001dpcm) { + @supports (-webkit-appearance: none) and (stroke-color: transparent) { + .with_frm_style, + .frm-white-body .wpbody-content, + .frm_wrap { + -webkit-font-smoothing: antialiased; + } + } +} +/** + * Utilities - Z-index + */ +.frm-sm-z-index { + z-index: 1; +} + +.frm-md-z-index { + z-index: 5; +} + +/** + * Base - Text + */ +.frm-white-body, +.frm-white-body p, +.frm_wrap, +.frm_wrap p, +.frm-modal, +.frm-white-body .postbox .inside { + font-size: var(--text-sm); + color: var(--grey-500); + line-height: var(--leading); +} + +.frm-white-body p, +.frm_wrap p { + margin: var(--gap-sm) 0; +} + +body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields > fieldset { + --fieldset-padding: 15px 0; +} + +a, +.widget .widget-top, +.stuffbox h3, +.frm-collapsed { + cursor: pointer; + text-decoration: none; +} + +/** + * Layout & Primary Components + * + * Core structure and primary UI elements + */ +/** + * Layout - Wrap + */ +.post-type-frm_display .wrap > #posts-filter, +.wrap.frm-with-margin, +.frm_wrap > .wrap { + margin: var(--gap-sm) var(--gap-md) var(--gap-md); +} + +#frm_top_bar + .wrap { + margin: var(--gap-xl); +} + +.frm-full-screen #wpbody-content > .wrap { + margin: 0; +} + +.post-type-frm_display .wrap { + margin: 0; +} + +.toplevel_page_formidable #post-body-content { + overflow-x: visible; +} + +/** + * Components - Full Screen + */ +.frm-full-screen { + height: 100%; + overflow: hidden; +} + +.frm-full-screen.frm-admin-page-reports, +.frm-full-screen.frm-admin-page-entries, +.frm-full-screen.post-type-frm_display { + overflow: auto; +} + +.frm-full-screen #wpadminbar, +.frm-full-screen #adminmenumain, +.frm-full-screen .wp-header-end { + display: none; +} + +body.frm-white-body:not(.frm-full-screen) .mce-fullscreen { + top: 32px; + left: 160px; +} + +.frm-full-screen #wpbody-content, +.frm-full-screen #wpbody, +.frm-full-screen #wpcontent { + padding: 0; + overflow: hidden; + margin: 0 !important; +} + +/** + * Layout - Screen Meta + */ +.frm-white-body #wpbody-content { + position: relative; /* For screen meta links */ + padding-bottom: 0; +} + +.post-new-php.post-type-frm_display #screen-meta-links, +.post-php.post-type-frm_display #screen-meta-links { + display: none; +} + +.frm-white-body #screen-meta-links { + position: fixed; + bottom: 0; + right: 20px; +} + +.frm-full-screen #screen-meta-links .screen-meta-toggle { + right: 55px; +} + +.frm-white-body #screen-meta-links .show-settings { + border-radius: var(--small-radius) var(--small-radius) 0 0; + border: 1px solid var(--grey-300); + border-bottom: none; +} + +.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle { + right: 125px; /* Don't cover the lite upgrade button */ +} + +.frm-white-body #screen-meta { + margin: 0; +} + +.frm-white-body #screen-meta-links .show-settings::after { + color: var(--grey); +} + +/** + * Layout - Columns + */ +.frm-white-body .columns-2 { + border-bottom: 1px solid var(--grey-300); +} + +.frm-full-screen .columns-2 { + border: none; +} + +/** + * Layout - Body + */ +body.post-type-frm_display.edit-php, +body.frm-white-body { + background: #fff; +} + +body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after, +body.frm-white-body ul#adminmenu > li.current > a.current::after { + border-right-color: #fff; +} + +.frm-white-body #wpcontent { + padding-left: 0; + padding-right: 0; +} + +.frm-white-body .wrap #post-body { + padding: 0 20px; +} + +.frm-grey-body #wpbody { + background: var(--grey-100); +} + +.frm-grey-body #frm_top_bar { + background: #fff; +} + +/** + * Components - Table Nav + */ +.post-type-frm_display .tablenav, +.frm_wrap .tablenav { + margin-bottom: 10px; +} + +.frm-white-body .tablenav .actions select, +.wp-admin .frm_wrap .tablenav select { + margin-right: var(--gap-xs); +} + +.tablenav .actions .button { + margin-top: 1px; +} + +/** + * Components - Table Widefat + */ +.frm-white-body table.widefat { + background: var(--lightest-grey); + border-width: 0; + box-shadow: none; + margin: 20px 0; +} + +.frm-white-body table.widefat tfoot, +.frm-white-body table.widefat thead { + background: #fff; +} + +.frm-white-body table.widefat th { + font-size: var(--text-md); +} + +.frm-white-body table.widefat th a { + color: var(--grey-700); +} + +.frm-white-body table.widefat strong a { + color: var(--primary-700); +} + +/** + * Components - Scroll Box + */ +.frm-scroll-box { + clear: both; + overflow: auto; + max-height: 405px; + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); +} + +.frm_form_field.frm_scroll_box .frm_opt_container { + height: 100px; + overflow: auto; + border: 1px solid var(--grey-300); +} + +.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + p, +.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + div, +.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + span { + grid-column: span 6/span 6; + align-content: center; +} + +.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + p, +.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + div, +.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + span { + grid-column: span 12/span 12 !important; + align-content: center; +} + +.frm_form_field.frm-phone-type ~ [id*=frm-field-format-custom-] > label, +.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] > label { + opacity: 0; /* Hide the label for the format input in the phone field. */ +} + +.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] { + grid-column: span 6/span 6; +} + +/* Adjust "CSS Layout Classes" to full width when the "Format" setting is present. */ +.frm-single-settings.frm-type-textarea > .frm_grid_container [id*=frm-field-format-custom-] + p { + grid-column: span 12/span 12; +} + +.frm-single-settings .frm_grid_container { + column-gap: var(--gap-sm); +} + +.frm-content-center { + align-content: center; +} + +.frm-self-end { + align-self: end; +} + +/** + * Components - Short List + */ +.frm-short-list { + overflow: auto; + max-height: 190px; +} + +/** + * Components - Table Elements + */ +.frm-white-body table.frm-border td { + font-size: var(--text-sm); +} + +.frm-white-body .striped > tbody > :nth-child(odd) { + background-color: #fff; +} + +.frm_wrap td.column-title strong { + display: inline; +} + +td.column-title .frm_actions_dropdown { + float: right; +} + +/** + * Layout - Top Bar + */ +#frm_top_bar { + display: flex; + gap: var(--gap-sm); + width: 100%; + height: 72px; + margin: 0; + box-sizing: border-box; + text-align: center; + padding: 0 var(--gap-md); +} + +#frm_top_bar > .frm-full-close:last-child, +#frm_top_bar > #frm-publishing:last-child { + margin-left: auto; +} + +#frm_top_bar { + border-bottom: 1px solid var(--grey-300); + padding: 0 var(--gap-md); + overflow: visible; +} + +/** + * Base - Headings + */ +.frm-white-body h1, +.frm-white-body h2, +.frm-white-body h3, +.frm-white-body h4 { + color: var(--grey-900); + font-weight: 400; + line-height: var(--leading) !important; +} + +.frm-white-body .wrap h1, +.frm-white-body h1 { + font-size: var(--text-xl); +} + +.frm-white-body .wrap h2, +.frm-white-body h2 { + font-size: var(--text-lg); + font-weight: 500; +} + +.frm-white-body .wrap h3, +.frm-white-body h3 { + font-size: var(--text-md); +} + +.frm-white-body .wrap h4, +.frm-white-body h4 { + font-size: var(--text-sm); + font-weight: 500; +} + +/** + * Components - Error Modal + */ +#frm_error_modal .frm_lock_simple { + padding: 20px; + border-radius: 50%; + background-color: var(--primary-25); + display: inline-block; +} + +#frm_error_modal #frm_lock_simple { + color: var(--primary-500); +} + +#frm_error_modal .frm-modal-title { + display: block; +} + +#frm_error_modal .frm-modal-title h2 { + font-weight: 600; + font-size: var(--text-xl); + margin: 0; +} + +#frm_error_modal .frm_modal_content { + padding: var(--gap-md); + color: var(--grey-900); +} + +/** + * Layout - Editor Overrides + */ +/* Override CSS in Views plugin. */ +.frm-views-editor-body .frm_page_container #frm_top_bar h1 { + padding: 0 !important; + color: var(--grey-900); + font-size: var(--text-xl) !important; +} + +.post-type-frm_display .frm_top_left { + padding-bottom: 0 !important; +} + +.frm-new-table-view-option.frm-selected-table-view-option { + border-radius: var(--small-radius); + background: var(--primary-25); +} + +.frm-views-editor-body #frm_adv_info .tabs-panel { /* Views sidebar */ + padding-left: 4px; + padding-right: 4px; +} + +#frm_edit_box_content_modal .frm_modal_footer { + padding-top: var(--gap-sm); + border-top: 1px solid var(--grey-300); +} + +#frm_edit_box_content_modal .frm_modal_footer > div { + display: flex; + justify-content: space-between; +} + +#frm_edit_box_content_modal #frm_modal_box_select_area, +#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper, +#frm_edit_box_content_modal .frm_modal_content { + max-height: calc(100vh - 176px) !important; +} + +#frm_edit_box_content_modal #frm_modal_box_select_area { + height: calc(100vh - 176px) !important; +} + +#frm_edit_box_content_modal #wp-content-editor-tools { + padding-top: 0; +} + +#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title + div:last-child { + right: var(--gap-md); +} + +.frm_code_list.frm-full-hover .frm-dropdown-view a { + flex-direction: row-reverse; /* Switch in the HTML */ +} + +#frm_view_editor_left.frm-right-panel .accordion-section-title::before { + content: "" !important; + margin: 0; +} + +/** End Temporary View CSS */ +/** + * Components - Upgrade Bar + */ +.frm-gradient, +.frm-upgrade-bar { + background: linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important; + color: #fff !important; + border: 0 !important; +} + +.frm-gradient.frm-button-primary:not([disabled]), +.frm-gradient.frm-button-primary:not([disabled]):hover, +.frm-gradient.frm-button-primary:not([disabled]):focus { + background: linear-gradient(90deg, #1961D5, #816CFA) !important; +} + +.frm-upgrade-bar, +.frm-gradient { + position: relative; +} + +.frm-upgrade-bar::before, +.frm-gradient::before { + content: ""; + display: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: rgba(255, 255, 255, 0.1); + z-index: 0; +} + +.frm-upgrade-bar:hover::before, +.frm-gradient:hover::before, +.frm-gradient:focus::before { + display: block; +} + +.frm-upgrade-bar-inner, +.frm-gradient > * { + position: relative; + z-index: 1; +} + +.frm-upgrade-bar { + border-bottom: 1px solid var(--sidebar-hover); + padding: 9px 0; + font-size: 12px; + text-align: center; +} + +.frm-upgrade-bar a { + color: currentColor !important; + text-decoration: underline; +} + +.frm-upgrade-bar a:focus { + outline: 1px dotted var(--sidebar-hover); +} + +.frm-upgrade-bar span { + opacity: 0.9; +} + +/** + * Components - Links + */ +a h1 .frmsvg { + color: var(--grey-400); + vertical-align: middle; + min-width: var(--text-sm); +} + +a .frmsvg { + color: currentColor; +} + +.frm_wrap .view-switch a.current::before, +.frm-white-body a, +.frm_wrap a, +.frm_wrap a i { + color: var(--primary-color); +} + +.frm_wrap a:active, +.frm_wrap a:hover { + color: var(--primary-700); + box-shadow: none; +} + +.post-type-frm_display a:focus, +.frm_wrap a:focus { + box-shadow: none; +} + +/** + * Layout - Top Bar - Navigation + */ +.frm_top_left { + text-align: left; + float: left; + white-space: nowrap; + max-width: 250px; + overflow: hidden; + text-overflow: ellipsis; + align-self: center; +} + +.post-type-frm_display .frm_top_left, +.frm_top_left.frm_top_wide { + max-width: 100%; +} + +.post-type-frm_display .frm_nav_bar .frm-header-logo, +.frm_nav_bar .frm-header-logo { + margin: 18px 0 10px; +} + +#frm_top_bar .frm_form_nav { + flex: 1; +} + +ul.frm_form_nav { + margin: 0 auto; + padding-top: 18px; + display: block; + min-width: 240px; +} + +.nav-tab-wrapper.frm_form_nav { + padding: 0 25px; +} + +ul.frm_form_nav > li { + margin: 0 min(3.5%, 32px) 0 0; + display: inline-block; +} + +.post-type-frm_display #advanced-sortables h2.hndle, +.post-type-frm_display #side-sortables h2.hndle, +.post-type-frm_display #normal-sortables h2.hndle, +.post-type-frm_display .frm_form_nav .nav-tab-active, +.frm_form_nav > li > a { + font-size: 1.3em; + text-decoration: none; + display: block; + padding: 6px 2px 4px; + font-weight: 500; + color: var(--grey-700); + border-bottom: 2px solid transparent; +} + +.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before { + margin-top: 10px; +} + +.frm-nav-tabs a:focus, +.frm-nav-tabs a:active, +.frm_form_nav a:active, +.frm_form_nav a:focus { + outline: none; + box-shadow: none; +} + +.frm_form_nav > li > a { + font-size: var(--text-md); + font-weight: 400; + color: var(--grey-500); +} + +.frm_form_nav > li > a:hover { + border-color: var(--primary-700); +} + +.frm_form_nav .frm-dropdown-menu a:hover { + background-color: #eaf2fa; +} + +.post-type-frm_display .frm_form_nav .nav-tab-active, +.post-type-frm_display .frm_form_nav .nav-tab-active:hover, +.frm_form_nav > li a.current_page { + color: var(--primary-500); + border-color: var(--primary-500); + background: transparent; + opacity: 1; + font-weight: 600; +} + +/** + * Components - Full Close + */ +.frm-full-close { + display: none; + padding-left: var(--gap-md); + border: 0 solid var(--grey-300); + border-left-width: 1px; /* Make RTL a bit less maintenance */ + height: 100%; + box-sizing: border-box; +} + +.frm-full-screen .frm-full-close { + display: flex; + align-items: center; +} + +.frm-full-close a { + display: block; +} + +.frm-full-close .frmsvg { + font-size: 20px; + width: 20px; + height: 20px; + color: var(--grey-500); +} + +/** + * Layout - Top Bar - Elements + */ +#frm_top_bar h1 { + font-weight: 400; + padding: 0; + margin: 0; + color: var(--grey-900); + display: inline-flex; + gap: var(--gap-sm); + align-items: center; + text-align: left; + min-width: 200px; +} + +#frm_top_bar h1 span { + max-width: 175px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + display: inline-block; + vertical-align: bottom; +} + +#frm_top_bar ul.frm_form_nav, +#frm_top_bar .frm-header-logo, +#frm_top_bar #frm_bs_dropdown { + align-self: center; + margin-top: 0; + margin-bottom: 0; + padding-top: 0; +} + +#frm_top_bar .frm-header-logo { + display: flex; /* Get rid of extra padding below logo */ +} + +#frm_top_bar h2 { + float: left; + margin: 0 0 0 var(--gap-sm); + padding: 2px 0 2px var(--gap-sm); + font-weight: 400; + border-left: 2px solid var(--grey); +} + +.frm_wrap > #frm_top_bar #frm-publishing { + margin-top: 0; +} + +#frm-publishing { + min-width: 225px; + align-self: center; + align-items: center; + display: flex; + flex-direction: row-reverse; + gap: 0 var(--gap-sm); + flex-wrap: wrap; +} + +/** + * Layout - Postbox + */ +.frm_wrap .postbox { + border-color: var(--grey-300); + border-radius: 6px; + box-shadow: none; +} + +.frm_wrap .postbox h3.hndle { + cursor: default; + padding: 10px 20px; + margin: 0; + line-height: 1.4em; + border-color: var(--grey-300); +} + +.frm-pre-hndle { + font-size: 15px; + padding: 5px; + margin: 9px 15px; +} + +/** + * Components - Table - Row + */ +.frm-empty-row { + display: none; +} + +.frm-child-row { + box-shadow: 5px 0 0 0 inset var(--sidebar-hover); +} + +/** + * Utilities - Effects - Animate + */ +.frm_animate_bg { + transition: background 200ms linear, color 200ms linear; +} + +/** + * Components - List - Subsubsub + */ +.wrap > .subsubsub { + clear: both; + margin: 0; +} + +.frm_wrap .subsubsub a { + line-height: var(--leading); + font-size: var(--text-sm); +} + +/** + * Layout - Container + */ +.frm-admin-page-styles .frm_page_container, +.frm_wrap .frm_page_container { /* Use .frm_wrap to avoid messing up Views editor layout */ + height: calc(100vh - 32px); + display: flex; + flex-direction: column; + overflow: hidden; + padding-top: 0; + position: fixed; + top: 32px; + bottom: 0; + left: 0; + right: 0; +} + +.frm-admin-page-translate .frm_wrap .frm_page_container, .frm-admin-page-update_translations .frm_wrap .frm_page_container { + position: static; +} + +.auto-fold.frm-admin-page-styles .frm_page_container, +.auto-fold .frm_wrap .frm_page_container, +.frm-unfold.frm-admin-page-styles .frm_page_container, +.frm-unfold .frm_wrap .frm_page_container { + left: 160px; +} + +.folded.frm-admin-page-styles .frm_page_container, +.folded .frm_wrap .frm_page_container { + left: 38px; +} + +.frm-full-screen.frm-admin-page-styles .frm_page_container, +.frm-full-screen .frm_wrap .frm_page_container { + height: 100vh; + top: 0; + left: 0; +} + +.frm-full-screen.frm-admin-page-entries .frm_page_container, +.frm-new-entry .frm_page_container, +.frm-admin-page-reports .frm_page_container, +.frm_list_entry_page .frm_page_container { + height: auto; + display: block; +} + +/** + * Layout - Container - Columns Elements + */ +.frm-new-entry .columns-2 { + border: none; +} + +.frm-white-body #frm_top_bar, +.frm-white-body .columns-2 { + flex: 0 0 auto; +} + +.columns-2 .frm-right-panel + div { + padding-bottom: var(--gap-md); + border-left: 1px solid var(--grey-300); +} + +.columns-2 .frm-right-panel + div, +.frm_wrap #post-body-content { + padding-bottom: 0; + padding-top: var(--gap-sm); + margin-bottom: 0; + background: #fff; + width: auto; + float: none; + flex: 2; +} + +.frm-white-body .columns-2 { + flex: 1; + display: flex; + overflow: hidden; +} + +.frm-white-body .columns-2 > div { + overflow-y: auto; + box-sizing: border-box; +} + +.frm_wrap .columns-2 .frm-right-panel, +.frm-right-panel { + flex: 0 0 var(--biggest-sidebar); + float: none; + width: var(--biggest-sidebar); + min-width: var(--biggest-sidebar); + background-color: var(--sidebar-color); + margin: 0; + box-shadow: none; + border: none; + padding-bottom: 25px; +} + +.frm-right-panel .frm_field_list, +.frm_wrap .frm-right-panel #frm_adv_info, +.frm_wrap #postbox-container-1 #frm_adv_info { + box-shadow: none; + border: none; + margin-bottom: 26px; +} + +/** + * Components - Settings - Has Shortcodes + */ +#new_fields, +.frm-has-modal, +p.frm_has_shortcodes { + position: relative; +} + +.frm-inline-modal.postbox { + background: #fff; + border-color: var(--grey-100); + border-radius: var(--small-radius); + box-shadow: var(--box-shadow-lg); +} + +.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg), +.frm_has_shortcodes i:not([class*=mce-]) { + position: absolute; + color: var(--primary-500); + border-radius: 50%; + border: 1px solid transparent; + z-index: 100; + text-align: center; +} + +.frm_has_shortcodes .frmsvg.frm-show-box { + border-radius: 6px !important; +} + +.frm_has_shortcodes input, +.frm_has_shortcodes textarea { + padding-left: 18px; + box-sizing: border-box; +} + +/** + * Components - Settings - Adv Info + */ +#form_settings_page #frm_adv_info, #frm_builder_page #frm_adv_info { + display: none; + top: 0; + width: 310px; + max-height: 315px; + min-height: 200px; + overflow-y: scroll; + z-index: 100; +} + +#form_global_settings .columns-2 > div { + overflow: auto; + height: calc(100vh - 32px); +} + +#form_global_settings .columns-2 .frm-right-panel, +#form_settings_page .columns-2 .frm-right-panel, +#wpbody-content .frm-page-skeleton .frm-right-panel { + flex: 0 0 var(--small-sidebar); + width: var(--small-sidebar); + min-width: var(--small-sidebar); +} + +#form_global_settings .frm_grid_container { + gap: 0 var(--gap-md); +} + +.frm-inner-content { + padding: var(--gap-md); +} + +.post-type-frm_display #poststuff { + padding: 0 0 10px 40px; +} + +#postbox-container-2 .postbox .inside { + padding: 15px 25px; +} + +#postbox-container-2 #frm_advanced .inside h3 { + margin: 15px -25px; + font-weight: 600; +} + +#form_settings_page .frm-inner-content { + padding-top: 0; + padding-bottom: 150px; + position: relative; +} + +.frm_wrap #submitdiv { + margin-bottom: 0; + border-width: 0 0 1px; + width: 100%; + min-width: unset; +} + +.frm_wrap #frm_adv_info .handlediv, +.frm_wrap #frm_adv_info .hndle { + display: none; +} + +.frm_wrap .menu-settings { + /* for add-on reverse compatibility */ + border: none; + margin-top: 0; +} + +.nodrag a { + cursor: pointer; +} + +.frm_wrap #frm_adv_info .inside { + margin: 0; +} + +#frm_adv_info > .inside { + padding: 0; +} +#frm_adv_info ul.subsubsub { + padding-bottom: var(--gap-xs) !important; +} +#frm_adv_info ul.subsubsub a { + font-weight: 500; +} +#frm_adv_info ul.subsubsub .frm-vertical-separator { + display: inline-block; + width: 1px; + height: 8px; + background-color: var(--grey-300); +} +#frm_adv_info #frm-insert-condition { + background-color: var(--primary-50); +} +#frm_adv_info #frm-insert-condition:hover { + background-color: var(--primary-25); +} + +#frm_builder_page #frm_adv_info { + width: 322px; + max-height: 356px; + border-radius: var(--small-radius); + overflow: hidden; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory { + height: 356px; + overflow: hidden; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div { + max-height: 286px; + padding: 0; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > * { + padding-bottom: var(--gap-sm); + max-height: unset; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > *:last-child { + padding-bottom: var(--gap-xs); +} +#frm_builder_page #frm_adv_info #frm-nav-tabs { + display: flex; + gap: var(--gap-xs); + background-color: var(--grey-100); + border-radius: var(--small-radius); + border: 0; + padding: var(--gap-xs); + margin: var(--gap-xs) var(--gap-2xs) var(--gap-sm); +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li { + flex: 1; + text-align: center; +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li a { + font-weight: 500; + line-height: 1; + color: var(--grey-500); + border-radius: var(--small-radius); + border: 0; + padding: var(--gap-xs); + margin: 0; +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li a:hover { + background-color: rgb(234, 236, 240); + color: var(--grey-500) !important; + box-shadow: var(--box-shadow-sm); +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li.frm-tabs a { + background-color: #fff; + color: var(--grey-900) !important; + box-shadow: var(--box-shadow-sm); +} +#frm_builder_page #frm_adv_info .frm-search, +#frm_builder_page #frm_adv_info .frm-with-search { + padding-top: 0; + margin: 0; +} + +/** + * Components - Modal - Inline Modal + */ +.frm-right-panel .frm-inline-modal.postbox .inside { + margin: 0; + padding: 0 14px 14px; +} +.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line, +.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4 { + margin-left: -14px; + margin-right: -14px; +} + +.frm-right-panel .frm-inline-modal .inside p:not(.howto), +.frm-right-panel .frm-inline-modal .inside a { + font-size: 15px; +} + +.frm-inline-modal .inside a.frm_icon_font { + font-size: 18px; +} + +/** + * Components - Nav Tabs + */ +.frm-nav-tabs { + margin: 10px 0 20px; + padding: 0 var(--gap-sm); + display: block; + border-bottom: 1px solid var(--grey-300); +} + +#frm-nav-tabs { + position: -webkit-sticky; + position: sticky; + top: 0; + background-color: var(--sidebar-color); + z-index: 98; /* must be < 99 */ + margin-top: 0; + padding-top: 5px; +} + +.frm_form_settings #frm_adv_info #frm-nav-tabs { + background-color: #fff; + margin: 0 -4px; +} + +.frm_form_settings span.frm-with-right-icon, +#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden) { + display: block; +} + +.frm-inline-modal .frm-nav-tabs, +#frm_adv_info .frm-nav-tabs { + margin: 5px 0 0; +} + +#frm_adv_info .frm-nav-tabs.frm-compact-nav { + padding-right: 0; + padding-left: 20px; +} + +.frm-nav-tabs li { + display: inline-block; + margin: 0; +} + +.frm-nav-tabs a { + color: var(--grey-700); + padding: 10px 1px; + margin: 0 9px; + border-bottom: 2px solid transparent; +} + +.frm_form_settings #frm_adv_info .frm-nav-tabs a { + padding: 5px 1px; + color: var(--grey-500); +} + +.frm-nav-tabs.frm-compact-nav a { + margin: 0 5px; +} + +.frm-nav-tabs a { + display: block; + opacity: 0.9; +} + +#frm_adv_info .frm-nav-tabs a { + color: var(--grey-700); +} + +.frm-nav-tabs a:hover, +.frm-nav-tabs .frm-tabs a { + color: var(--primary-500) !important; + border-color: var(--primary-500); +} + +.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a { + font-weight: 500; +} + +/** + * Components - Modal - Bulk Modal + */ +#frm-bulk-modal .howto, +#frm-bulk-modal h3 { + font-size: var(--text-sm); + font-weight: 400; + margin: 5px 0 10px; + color: var(--grey); +} + +#frm-bulk-modal h3 { + margin-left: 20px; +} + +/** + * Layout - Sidebar + */ +.frm-right-panel a.frm_add_logic_link, +.frm-right-panel h3 { + color: var(--grey-700); + font-size: var(--text-lg); + font-weight: 400; + margin: 0; +} +.frm-right-panel h3 i { + color: var(--grey-700); + float: right; + width: 16px; + cursor: pointer; +} + +.frm-settings-panel { + /* Right padding reduced to compensate for scrollbar width (~8px) */ + padding: var(--gap-sm); + padding-right: var(--gap-xs); +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter { + top: var(--gap-xs); + left: var(--gap-xs); + width: calc(100% - var(--gap-sm)); +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs { + padding: var(--gap-xs) var(--gap-xs) 0; +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div { + max-height: 0; + visibility: hidden; +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div.frm-active { + max-height: unset; + visibility: visible; +} +.frm-settings-panel .frm-embed-field-placeholder { + height: unset; +} +.frm-settings-panel .frm-embed-field-placeholder img { + height: 100px; +} +.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: var(--gap-sm); + max-width: unset; + color: var(--grey-800); + padding: var(--gap-lg); + border: 0; + box-shadow: var(--box-shadow-sm); + margin: 1px; +} + +.frm-single-settings .frm-default-value-wrapper > p { + margin-bottom: 0; +} +.frm-single-settings .frm-default-value-wrapper + p:empty { + display: none; +} +.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p { + margin-top: 0 !important; +} +.frm-single-settings .frm_single_option[id^=frm_watch_lookup_] { + margin-bottom: var(--gap-xs) !important; +} +.frm-single-settings > h3:first-of-type { + position: relative; + background-color: transparent !important; + border-top: none; + padding-top: 0 !important; + margin-top: 0 !important; +} +.frm-single-settings > h3:first-of-type::after { + content: ""; + position: absolute; + left: var(--gap-sm); + right: var(--gap-sm); + bottom: 0; + height: 1px; + background-color: var(--sidebar-hover); +} + +.frm-flex-justify, +.frm-right-panel .frm-single-settings h3 { + display: flex; + justify-content: space-between; + align-items: center; +} + +/* right sidebar */ +#post-body-content + .frm-right-panel { + flex: 0 0 var(--medium-sidebar); + width: var(--medium-sidebar); + min-width: var(--medium-sidebar); + border-left: 1px solid var(--sidebar-hover); +} + +.frm-new-entry #post-body-content + .frm-right-panel, +.frm-new-entry .frm-right-panel { + background: none; + border: none; +} + +#post-body-content + .frm-right-panel h3 { + padding: 20px 20px 0; + font-size: 17px; +} +#post-body-content + .frm-right-panel .frm_with_icons:first-of-type h3 { + border: none; +} + +#frm-insert-fields h3 { + color: var(--grey); + font-size: 15px; + font-weight: 400; + border-top: none; + border-bottom: 1px solid var(--sidebar-hover); + margin: 0; + padding: 10px 10px 10px 25px; +} + +.frm_wrap #frm_adv_info ul.category-tabs { + margin: 0; + padding: 10px 0 9px; + font-size: 15px; + background: transparent; +} +.frm_wrap #frm_adv_info ul.category-tabs li { + padding: 10px; + background-color: transparent !important; +} +.frm_wrap #frm_adv_info ul.category-tabs li:first-child { + border: none; +} + +.frm_wrap #frm_adv_info .categorydiv div.tabs-panel { + border: none; + background: transparent; +} +.frm_wrap #frm-categorydiv { + border-right: none; +} + +#frm_adv_info #frm-conditionals { + padding-top: var(--gap-sm); +} + +#postbox-container-1 #taxonomy-linkcategory #frm-html-tags { + display: none; + max-height: none; +} +#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown { + position: relative; +} + +/** + * Components - Admin Footer + */ +.frm-white-body #footer-upgrade { + display: none; +} + +.frm-admin-footer-links, +.frm-admin-footer-links-nav, +.frm-admin-footer-links-socials { + display: flex; + justify-content: center; +} + +.frm-admin-footer-links { + gap: var(--gap-2xs); + flex-direction: column; + text-align: center; + padding: var(--gap-xl) 0 var(--gap-lg); + font-size: var(--text-xs); + color: var(--grey-400); +} + +body.frm-hidden-overflow { + height: 100%; + overflow: hidden; +} + +.frm-admin-footer-links-nav { + gap: var(--gap-2xs); + margin-bottom: var(--gap-xs); +} + +.frm-admin-footer-links-socials { + gap: var(--gap-xs); +} + +.frm-admin-footer-links-socials a { + color: var(--grey-400); +} + +/** + * Layout - List Entry Page + */ +.frm_list_entry_page h2 { + float: left; +} + +.frm_list_entry_page h2 + .error { + clear: both; +} + +/** + * Layout - Sidebar - Elements + */ +.frm_sidebar select { + width: 100%; + margin-left: 0; + margin-right: 0; +} + +.frm_sidebar #search-submit { + float: right; +} + +/** + * Layout - Single Entry Page + */ +.frm_single_entry_page #submitdiv { + margin: 0; +} + +.frm_single_entry_page .hndle a { + font-size: 13px; +} + +/** + * Components - Publish Actions + */ +.frm-right-panel #publishing-action { + float: none; +} + +.frm-right-panel #major-publishing-actions { + border-top: none; + height: 32px; + background: transparent; +} + +#major-publishing-actions .frm_submit_form { + float: right; + margin-left: 5px; +} + +/** + * Components - Button + */ +.frm_orange_button, +.frm_reverse_button { + font-size: 12px; + border: 1px solid var(--orange); + color: var(--orange); + font-weight: 600; + padding: 1px 4px; + border-radius: 4px; + background: transparent; +} + +.frm_reverse_button:hover, +.frm_reverse_button:active, +.frm_reverse_button:focus { + color: #fff; + background: var(--orange); + border: 1px solid var(--orange); +} + +.frm_reverse_button { + font-size: 1em; + transition: all 0.2s ease; +} + +.frm-button-primary, +.wp-core-ui .button-primary.frm-button-primary, +.wp-core-ui .button.frm-button-primary, +.frm-button-secondary, +.wp-core-ui .button-secondary.frm-button-secondary, +.wp-core-ui .button.frm-button-secondary, +.frm-white-body .frm-search .button, +.frm-white-body .search-box .button, +.frm-white-body .tablenav .button, +.frm_orange_button, +.toplevel_page_formidable #frm_upgrade_modal .button-primary, +.wp-core-ui.frm-white-body .button-primary, +.wp-core-ui.frm-white-body .button-secondary, +.frm-white-body .button-primary, +.frm-white-body .button-secondary, +#frm-form-button button, +.frm-form-button button, +.frm-preview-buttons button, +.frm-button-red, +.frm-button-tertiary { + text-shadow: none; + box-shadow: none; + border-radius: 30px; + border: 1px solid var(--primary-500); + font-size: var(--text-sm); + transition: all 0.2s ease; + padding: 7px 16px; + height: auto; + min-height: 28px; + outline: none; + line-height: var(--leading); + box-sizing: border-box; + font-weight: 500; + margin-bottom: 0; + display: inline-block; +} + +.frm-button-primary.frm-sharp, +.frm-button-secondary.frm-sharp { + border-radius: 12px !important; +} + +#wpcontent .frm-button-secondary.frm-button-gradient { + position: relative; + border-color: transparent !important; + background-clip: padding-box !important; +} +#wpcontent .frm-button-secondary.frm-button-gradient::before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + margin: -1px; + border-radius: inherit; + background: linear-gradient(90deg, #129EFD 0%, #A334FD 100%); + transition: opacity 150ms ease-out; +} +#wpcontent .frm-button-secondary:hover::before { + opacity: 0.5; +} + +.no-js.wp-core-ui .frm-search .button.hide-if-no-js, +.js.wp-core-ui .frm-search .button.hide-if-js { + display: none; +} + +.frm-button-tertiary { + border-color: transparent; + color: var(--primary-500); +} + +.frm-button-tertiary:focus { + outline: none; +} + +.frm-button-tertiary.frm_loading_button::before { + border-right-color: var(--grey); + border-bottom-color: var(--grey); +} + +.frm-button-red, +.frm-button-red:focus { + --primary-color: var(--error-500); + --primary-500: var(--error-500); + --primary-700: var(--error-700); +} + +.frm-button-red:not(.frm-button-tertiary), +.frm-button-red:not(.frm-button-tertiary):focus { + color: #fff !important; +} + +.frm-white-body h2 .button, +.post-type-frm_display h2 .frm-button-primary, +.frm-white-body .tablenav .button, +.frm-button-primary.frm-button-sm, +.frm-button-secondary.frm-button-sm, +.frm-button-tertiary.frm-button-sm, +.frm-button-red.frm-button-sm { + padding: 4px 12px !important; + font-size: var(--text-xs) !important; +} + +.frm_no_style_button { + background: transparent; +} + +.frm-with-icon { + display: flex; + gap: var(--gap-xs); + align-items: center; +} + +.frm-with-icon svg { + opacity: 0.65; /* Get close to grey-500 without overriding hover colors */ +} + +.frm-with-icon.button svg { + height: var(--text-sm); + width: var(--text-sm); +} + +.frm-with-icon.frm-button-sm svg { + height: var(--text-xs); + width: var(--text-xs); +} + +.frm-white-body .button.add_media { + /* Media buttons above RTE */ + padding-left: 12px !important; + padding-right: 12px !important; + font-size: var(--text-xs); + border-radius: var(--border-radius); +} + +.wp-core-ui.frm-white-body #post-query-submit.button, +.wp-core-ui.frm-white-body .button.tablenav-pages-navspan, +.wp-core-ui.frm-white-body .button.first-page, +.wp-core-ui.frm-white-body .button.prev-page, +.wp-core-ui.frm-white-body .button.next-page, +.wp-core-ui.frm-white-body .button.last-page, +.wp-core-ui.frm-white-body .button.action { + background-color: transparent; + border-color: var(--grey-300); + color: var(--grey-700); + border-radius: var(--border-radius); +} + +.post-type-frm_display.wp-core-ui .button-primary, +.frm-button-primary, +.wp-core-ui .button-primary.frm-button-primary, +.frm_single_entry_page #frm-publishing .button-primary { + background-color: var(--primary-500) !important; + color: #fff !important; +} + +.frm-button-primary.frm_large, +.frm-button-secondary.frm_large { + height: auto !important; + padding: 12px 16px !important; +} + +.frm-button-secondary.frm-small, +.frm-button-primary.frm-small { + font-size: var(--text-xs) !important; + height: auto !important; + padding: var(--gap-2xs) 12px !important; +} + +.frm-button-primary i::before { + color: #fff; +} + +.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover, +.frm-button-primary:not([disabled]):hover { + background: var(--primary-700) !important; + border-color: var(--primary-700) !important; +} + +.wp-core-ui .button-primary.frm-button-primary:active { + vertical-align: inherit; +} + +.frm-white-body #search-submit, +#frm-form-button .frm_button_submit, +.frm-form-button .frm_button_submit, +.frm-white-body .frm-preview-buttons button, +.frm-white-body .button:not(.frm-button-primary), +.wp-core-ui.frm-white-body .button-secondary, +.wp-core-ui .button-secondary.frm-button-secondary, +.wp-core-ui .button.frm-button-secondary, +.frm-white-body .frm-button-secondary, +.frm-button-secondary { + color: var(--grey-800); + border-color: var(--grey-300); + background-color: #fff; +} + +#wp-content-media-buttons button, +#wp-content-media-buttons a.button { + border-color: var(--grey-300); +} + +.frm_orange_button { + border-color: #da791d !important; + background: var(--orange); + color: #fff; +} + +.frm-white-body .button:not(.frm-button-primary):focus, +.frm-white-body .button:not(.frm-button-primary):active, +.frm-white-body .frm-button-secondary:hover, +.wp-core-ui.frm-white-body .frm-button-secondary:hover, +.wp-core-ui.frm-white-body .button-secondary:hover, +.wp-core-ui.frm-white-body .button-secondary:focus, +.wp-core-ui.frm-white-body .tablenav .button:hover, +.frm_wrap .preview > .button:hover, +.frm-white-body #search-submit:hover { + border-color: var(--grey-300) !important; + color: var(--grey-800); + background: var(--grey-50) !important; + box-shadow: none !important; + outline: none !important; +} + +.frm-button-primary .frmsvg { + color: #fff; +} + +.frm_wrap .preview i { + font-size: inherit; +} + +.frm-white-body .frm-button-primary:focus, +.frm-white-body .frm-button-primary:active, +#frm-addons-page .button-primary:focus, +#form_global_settings .button-primary:focus, +#frm_upgrade_modal .button:focus { + border-color: var(--primary-700) !important; + background-color: var(--primary-700) !important; + box-shadow: none !important; + outline: none !important; +} + +.frm_wrap .preview > .button:focus, +.frm_orange_button:hover, +.frm_orange_button:focus, +.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover, +.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus, +.toplevel_page_formidable .frm_wrap button.button-primary:hover, +.toplevel_page_formidable .frm_wrap button.button-primary:focus { + outline: none; +} + +.frm_orange_button:hover, +.frm_orange_button:focus { + border-color: var(--orange) !important; + background: transparent; + color: var(--orange); + opacity: 1; +} + +.major-publishing-actions.frm_create_form_header { + padding: 8px 0; +} + +.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner { + font-size: 15px; + background: transparent; +} + +.frm-menu-boxes .frm_blank_form_text { + padding-bottom: 26px; +} + +input.frm_insert_in_template { + font-size: 10px; + width: 98%; + font-weight: 400; +} + +.frm-dismissible a.dismiss:focus { + box-shadow: none; +} + +.frm-dismissible a.dismiss { + top: 10px; + right: 10px; + position: absolute; +} + +.frm-dismissible a.dismiss svg { + color: var(--grey-800); +} + +/** + * Components - Review Request + */ +.wp-admin .frm-review-notice { + position: fixed !important; + bottom: var(--gap-2xl); + right: var(--gap-lg); + width: 380px; + text-align: center; + border-color: var(--grey-100); + padding: var(--gap-lg); + border-radius: var(--medium-radius); + box-shadow: var(--box-shadow-lg) !important; + z-index: 999; + box-sizing: border-box; + --gap-sm: 16px; + --gap-md: 24px; + --gap-2xl: 48px; +} + +.wp-admin .frm-review-notice * { + box-sizing: border-box; +} + +.frm-review-notice-icon { + display: inline-flex; + margin-bottom: var(--gap-sm); +} + +.wp-admin .frm-review-notice-title { + font-weight: 600; + margin-top: 0; + margin-bottom: var(--gap-xs); +} + +.wp-admin .frm-review-notice-text { + margin-top: 0; + margin-bottom: var(--gap-md); +} + +.frm-review-notice-signature { + text-align: left; + margin: var(--gap-md) 0; +} + +.frm-review-notice-signature img { + width: 40px; + height: 40px; + padding: 3px; + box-shadow: var(--box-shadow-md); + border-radius: 100%; +} + +#wpwrap .frm-dismiss-review-notice { + top: 16px; + right: 19px; +} + +.frm-review-notice #frmapi-feedback [class^=frm__] { + display: none; +} + +.frm-review-notice #frmapi-feedback input, +.frm-review-notice #frmapi-feedback textarea { + border-color: var(--grey-300); + border-radius: var(--small-radius); +} + +.frm-review-notice #frmapi-feedback input { + min-height: unset; + max-height: 36px; +} + +.frm-review-notice #frmapi-feedback textarea { + max-height: 80px; + padding-top: var(--gap-xs); +} + +.frm-review-notice #frmapi-feedback .frm_message { + color: var(--success-900); + background-color: var(--success-25); + border: 1px solid var(--success-200); + padding: var(--gap-sm) var(--gap-md); + margin: 0; +} + +.frm-review-notice #frmapi-feedback .frm_message p { + margin: 0; +} + +.frm-review-notice #frmapi-feedback .frm_button_submit { + background-color: var(--primary-500); + border-color: var(--primary-500) !important; + cursor: pointer; +} + +.frm-review-notice #frmapi-feedback .frm_button_submit:hover, +.frm-review-notice #frmapi-feedback .frm_button_submit:focus { + color: #fff; + background-color: var(--primary-700); + border-color: var(--primary-700) !important; +} + +.frm-review-notice .frm_error, +.frm-review-notice label { + color: #444; + text-align: left; +} + +.frm-review-notice label { + font-size: var(--text-sm); +} + +.frm-floating-success-message { + position: fixed; + z-index: 999; + border-radius: 4px; + right: 10px; + bottom: 10px; +} + +/** + * Utility Classes + * + * Reusable helper classes for spacing, typography, effects, etc. + */ +/** + * Utilities - Box Shadow + */ +.frm-box-shadow-xxl { + box-shadow: var(--box-shadow-xxl) !important; +} + +/** + * Utilities - Text Color + */ +.frm-text-primary-500 { + color: var(--primary-500); +} + +.frm-text-grey-400 { + color: var(--grey-400) !important; +} + +.frm-text-grey-500 { + color: var(--grey-500); +} + +.frm-text-grey-600 { + color: var(--grey-600) !important; +} + +.frm-text-grey-700 { + color: var(--grey-700); +} + +.frm-text-grey-900 { + color: var(--grey-900); +} + +.frm-text-success-500 { + color: var(--success-500); +} + +.frm-text-warning-500 { + color: var(--warning-500); +} + +/** + * Utilities - Margin + */ +.frm_no_margin, +.frm-m-0 { + margin: 0 !important; +} + +.frm-m-12 { + margin: var(--gap-2xl); +} + +.frm-m-2xs { + margin: var(--gap-2xs) !important; +} + +.frm_no_top_margin, +.frm-mt-0 { + margin-top: 0 !important; +} + +.frm-mt-2xs { + margin-top: var(--gap-2xs) !important; +} + +.-frm-mt-2xs { + margin-top: calc(-1 * var(--gap-2xs)) !important; +} + +.frm-mt-xs { + margin-top: var(--gap-xs) !important; +} + +.frm-mt-sm { + margin-top: var(--gap-sm) !important; +} + +.frm-mt-md { + margin-top: var(--gap-md) !important; +} + +.frm-mt-lg { + margin-top: var(--gap-lg) !important; +} + +.frm-mt-2xl { + margin-top: var(--gap-2xl) !important; +} + +.frm-mt-auto { + margin-top: auto !important; +} + +.frm_no_bottom_margin, +.frm-mb-0 { + margin-bottom: 0 !important; +} + +.frm-mb-2xs { + margin-bottom: var(--gap-2xs) !important; +} + +.frm-mb-6 { + margin-bottom: 6px !important; +} + +.frm-mb-sm { + margin-bottom: var(--gap-sm) !important; +} + +.frm-mb-12 { + margin-bottom: 12px !important; +} + +.frm-mb-xs { + margin-bottom: var(--gap-xs) !important; +} + +.frm-mb-md { + margin-bottom: var(--gap-md) !important; +} + +.frm-mb-lg { + margin-bottom: var(--gap-lg) !important; +} + +.frm-ml-2xs { + margin-left: var(--gap-2xs) !important; +} + +.frm-ml-xs { + margin-left: var(--gap-xs) !important; +} + +.frm-ml-auto { + margin-left: auto; +} + +.-frm-ml-2xs { + margin-left: calc(-1 * var(--gap-2xs)) !important; +} + +.frm-mr-auto { + margin-right: auto; +} + +.frm-force-mr-auto { + margin-right: auto !important; +} + +.frm-mr-2xs { + margin-right: var(--gap-2xs) !important; +} + +.frm-mr-xs { + margin-right: var(--gap-xs) !important; +} + +.frm-mr-2 { + margin-right: 2px !important; +} + +.frm-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.frm-mx-xs { + margin-left: var(--gap-xs) !important; + margin-right: var(--gap-xs) !important; +} + +.frm-mx-sm { + margin-left: var(--gap-sm) !important; + margin-right: var(--gap-sm) !important; +} + +.frm-my-sm { + margin-top: var(--gap-sm) !important; + margin-bottom: var(--gap-sm) !important; +} + +.frm-my-xs { + margin-top: var(--gap-xs) !important; + margin-bottom: var(--gap-xs) !important; +} + +/** + * Utilities - Padding + */ +.frm-p-0 { + padding: 0 !important; +} + +.frm-p-1, +.frm-p-2xs { + padding: var(--gap-2xs); +} + +.frm-p-sm, +.frm-p-4 { + padding: var(--gap-sm) !important; +} + +.frm-p-sm { + padding: var(--gap-sm) !important; +} + +.frm-p-6, +.frm-p-md { + padding: var(--gap-md) !important; +} + +.frm-p-xl { + padding: var(--gap-xl) !important; +} + +.frm-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.frm-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.frm-py-2xs { + padding-top: var(--gap-2xs) !important; + padding-bottom: var(--gap-2xs) !important; +} + +.frm-py-sm { + padding-top: var(--gap-sm) !important; + padding-bottom: var(--gap-sm) !important; +} + +.frm-pt-0 { + padding-top: 0 !important; +} + +.frm-pt-2xs { + padding-top: var(--gap-2xs) !important; +} + +.frm-pt-xs { + padding-top: var(--gap-xs) !important; +} + +.frm-pt-sm { + padding-top: var(--gap-sm) !important; +} + +.frm-pt-md { + padding-top: var(--gap-md) !important; +} + +.frm-pt-xl { + padding-top: var(--gap-xl) !important; +} + +.frm-pr-lg { + padding-right: var(--gap-lg) !important; +} + +.frm-pb-md { + padding-bottom: var(--gap-md) !important; +} + +.frm-pb-sm { + padding-bottom: var(--gap-sm) !important; +} + +.frm-pb-xs { + padding-bottom: var(--gap-xs) !important; +} + +.frm-pb-2xs { + padding-bottom: var(--gap-2xs) !important; +} + +.frm-pb-0 { + padding-bottom: 0 !important; +} + +.frm-px-sm { + padding-right: var(--gap-sm) !important; + padding-left: var(--gap-sm) !important; +} + +.frm-px-xs { + padding-right: var(--gap-xs) !important; + padding-left: var(--gap-xs) !important; +} + +.frm-px-md { + padding-right: var(--gap-md) !important; + padding-left: var(--gap-md) !important; +} + +/** + * Utilities - Font Size + */ +.frm-text-xs { + font-size: var(--text-xs) !important; +} + +.frm-text-sm { + font-size: var(--text-sm) !important; +} + +.frm-text-md { + font-size: var(--text-md) !important; +} + +.frm-text-lg { + font-size: var(--text-lg) !important; +} + +.frm-text-xl { + font-size: var(--text-xl) !important; +} + +.frm-leading-none { + line-height: 1; +} + +.frm-italic { + font-style: italic; +} + +.frm-no-italic { + font-style: normal; +} + +/** + * Utilities - Text Transform + */ +.frm-capitalize { + text-transform: capitalize; +} + +/** + * Utilities - Font Weight + */ +.frm-font-normal { + font-weight: 400 !important; +} + +.frm-font-medium { + font-weight: 500 !important; +} + +.frm-font-semibold { + font-weight: 600 !important; +} + +/** + * Utilities - Text Overflow + */ +.frm-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +[class*=frm-line-clamp-] { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; +} + +.frm-line-clamp-2 { + -webkit-line-clamp: 2; +} + +.frm-white-space-nowrap { + white-space: nowrap; +} + +/** + * Utilities - Border Radius + */ +.frm-rounded-sm { + border-radius: var(--small-radius) !important; +} + +.frm-rounded-6 { + border-radius: 6px !important; +} + +/** + * Utilities - Width + */ +.frm-w-auto { + width: auto !important; +} + +.frm-w-full { + width: 100% !important; +} + +.frm-w-half { + width: 50% !important; +} + +.frm-w-fit { + width: fit-content !important; +} + +.frm-max-w-fit { + max-width: fit-content; +} + +.frm-h-auto { + height: auto !important; +} + +/** + * Utilities - Display + */ +#wpwrap .frm-force-hidden { + display: none !important; +} + +.frm_block, +.frm-block { + display: block; +} + +.frm_inline { + display: inline; +} + +.frm-force-inline { + display: inline !important; +} + +.frm_inline_block { + display: inline-block !important; +} + +/** + * Utilities - Flex + */ +.frm-inline-flex, +#wpbody-content .frm-inline-flex { + display: inline-flex; +} + +.frm-flex { + display: flex; +} + +.frm-force-flex { + display: flex !important; +} + +.frm_hidden, +.js .frm-hide-js { + display: none; +} + +.frm-flex-box { + display: flex; + gap: var(--gap-sm); +} + +.frm-flex-col { + display: flex; + flex-direction: column; +} + +.frm-flex-full { + flex: 1; +} + +.frm-force-flex-center, .frm-flex-center { + justify-content: center; + align-items: center; +} + +.frm-flex-center { + display: flex; +} + +.frm-force-flex-center { + display: flex !important; +} + +.frm-shrink-0 { + flex-shrink: 0; +} + +.frm-gap-0 { + gap: 0 !important; +} + +.frm-gap-2xs { + gap: var(--gap-2xs); +} + +.frm-gap-xs { + gap: var(--gap-xs); +} + +.frm-gap-sm { + gap: var(--gap-sm); +} + +.frm-gap-md { + gap: var(--gap-md); +} + +.frm-gap-xl { + gap: var(--gap-xl); +} + +.frm-justify-start { + justify-content: start !important; +} + +.frm-justify-center { + justify-content: center !important; +} + +.frm-justify-between { + justify-content: space-between; +} + +.frm-justify-end { + justify-content: end; +} + +.frm-items-center { + align-items: center; +} + +.frm-items-stretch { + align-items: stretch; +} + +#wpbody-content .frm-flex-wrap { + flex-wrap: wrap; +} + +.frm-grow { + flex-grow: 1; +} + +.frm-order-first { + order: -9999; +} + +.frm-order-last { + order: 9999; +} + +.frm-order-none { + order: 0; +} + +.frm-h-stack-sm, .frm-h-stack-xs, .frm-h-stack { + display: flex !important; + align-items: center; +} +.frm-h-stack-sm > input[type=checkbox], .frm-h-stack-xs > input[type=checkbox], .frm-h-stack > input[type=checkbox], +.frm-h-stack-sm > input[type=radio], +.frm-h-stack-xs > input[type=radio], +.frm-h-stack > input[type=radio] { + margin: 0 !important; +} + +.frm-h-stack { + gap: var(--gap-2xs); +} + +.frm-h-stack-xs { + gap: var(--gap-xs); +} + +.frm-h-stack-sm { + gap: var(--gap-sm); +} + +/** + * Utilities - Transition + */ +.frm-transition-ease { + transition: all 0.2s ease; +} + +/** + * Utilities - Visibility + */ +.frm_invisible { + visibility: hidden; + transition: all 0.2s ease; +} + +.frm_disabled { + opacity: 0.5; + cursor: default; + pointer-events: none; +} +.frm_disabled .frm-show-inline-modal { + pointer-events: none !important; +} + +/** + * Utilities - Float + */ +.frm_no_float { + float: none; +} + +/** + * Utilities - Text Align + */ +.frm-text-right { + text-align: right; +} + +/** + * Utilities - Border + */ +.frm-border-b { + border-bottom: 1px solid var(--grey-300); +} + +.frm-no-border { + border: none !important; +} + +.frm-hr { + display: block; + height: 1px; + background-color: var(--grey-200); + margin: var(--gap-xs) 0; +} + +/** + * Utilities - Opacity + */ +.frm-opacity-100 { + opacity: 1; +} + +/** + * Utilities - Z-index Helpers + */ +.frm-on-bottom { + z-index: -1; +} + +/** + * Utilities - Transform + */ +.frm-rotate-90 { + transform: rotate(90deg); +} + +/** + * Utilities - Cursor + */ +.frm-cursor-pointer { + cursor: pointer; +} + +/** + * Utilities - Vertical Align + */ +.frm-align-baseline { + vertical-align: baseline !important; +} + +/** + * Utilities - Generic Classes + */ +.frm-fields p > label.frm_hidden, +#wpbody-content label.frm_hidden, +.frm-lookup-modal .dismiss, +.frm-right-panel .inside a.frm_hidden, +#form_global_settings .frm_hidden, +ul.frm_form_nav > li.frm_hidden, +a.frm_hidden, +.button.frm_hidden, +.wp-core-ui .button.frm_hidden { + display: none; +} + +.postbox .inside > p.frm_no_bottom_margin:last-child { + margin-bottom: 0 !important; +} + +.frm_no_section_fields.frm_block { + display: block; +} + +.actions.frm_visible_overflow { + overflow: visible !important; +} + +.frm_full_opacity, +.frm_submit .frm_full_opacity, +.frm_submit .frm-opacity-100 { + opacity: 1; +} + +.frm-dropdown-menu.frm-on-top { + z-index: 99999; +} + +/** + * Utilities - Helper Classes + */ +.frm-vertical-line { + display: inline-block; + width: 1px; + height: 12px; + background-color: var(--grey-300); +} + +.frm-admin-full-screen #adminmenumain, +.frm-admin-full-screen #wpadminbar, +.frm-admin-full-screen #adminmenuback, +.frm-admin-full-screen #adminmenuwrap, +.frm-admin-full-screen #wpfooter { + display: none; +} + +.frm-admin-full-screen #wpcontent, +.frm-admin-full-screen.auto-fold #wpcontent { + margin: 0; + padding: 0; +} + +.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content { + padding: 0; +} + +/** + * Forms & UI Components + * + * Form elements, inputs, fields, modals and interactive components + */ +/** + * Components - General Form Styles + */ +.frm_forms.with_frm_style { + max-width: 100%; +} + +.post-type-frm_display .wrap > .subsubsub, +.post-type-frm_display .wrap > .icl_subsubsub, +.frm_form_settings > p { + margin: 6px var(--gap-md); + padding: 0; +} + +.frm-entry-container { + margin: 0 40px 40px; + padding: 0; +} + +#form_reports_page .frm-inner-content { + width: calc(100% - 40px); + max-width: 900px; + margin: 20px auto; + padding: 20px; +} + +.frm_inner_field_container > .frm_form_fields { + clear: both; +} + +.post-type-frm_display h2, +.frm_wrap h2 { + margin-top: 0 !important; + font-size: var(--text-lg); + line-height: var(--leading); +} + +.post-type-frm_display .wrap > h2:first-child, +.frm_wrap .wrap > h2:first-child { + padding-top: 0; + margin-top: 0 !important; + font-size: var(--text-lg); +} + +#frm_form_editor_container { + position: relative; + margin-top: 28px; +} + +/** + * Components - Form Field + */ +.form-field p { + /* for conflicts */ + background: none; + border: none; +} + +.form-field label.frm_primary_label { + display: block; + float: none; + width: auto; +} + +#frm_view_editor_left label, +#frm_view_editor_left .frm_primary_label, +.frm-dialog .frm-sub-label, +.frm-dialog label, +.dropdown .frm_primary_label, +.accordion-container label, +.frm-fields td > label, +.frm-fields td > div > label, +.frm_form_field > label:first-child, +.frm-fields p > label, +.frm_on_submit_type > label, +.post-type-frm_display .frm_form_field > label, +#new_fields .frm_primary_label, +#form_global_settings .frm_primary_label, +#frm_form_editor_container .frm_primary_label, +#permissions_settings_settings .frm_primary_label { + color: var(--grey-700); + margin: 0 0 6px; + padding: 0; + width: auto; + font-size: var(--text-sm); + display: block; + line-height: var(--leading); +} + +#frm_form_editor_container #frm-show-fields .frm_primary_label { + min-height: 21px; +} + +.frm-fields td input + label { + display: inline; +} + +#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label, +#frm_form_editor_container .edit_field_type_break .frm_primary_label { + display: none; +} + +form .frm_primary_label input { + font-size: 12px; +} + +.with_frm_style form .form-field { + margin-bottom: 20px; +} + +#frm_builder_page .with_frm_style form .frm_combo_inputs_container > .form-field { + margin-bottom: 0; +} + +.frm_description, +.with_frm_style form div.description, +.frm_error, +.with_frm_style form div.description textarea { + padding: 0; + font-size: 11px; +} + +.with_frm_style .description { + color: inherit; +} + +#frm_form_editor_container .divider_section_only .frm_primary_label { + display: flex; + align-items: center; + gap: var(--gap-xs); + font-size: 20px; +} + +#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label { + padding: 0; +} + +/** + * Token Input Component + * + * Displays space-separated values as selectable tokens + */ +.frm-token-container { + position: relative; + display: block; + direction: ltr; +} +.frm-token-container .frm-tokens { + position: absolute; + top: 0; + left: 0; + max-width: calc(100% - var(--gap-xl)); + display: flex; + align-items: center; + flex-wrap: wrap; + gap: var(--gap-2xs); + padding: 6px var(--gap-xs); + margin: 0; +} +.frm-token-container .frm-token { + position: relative; + display: flex; + align-items: center; + gap: var(--gap-xs); + min-height: 24px; + height: auto; + color: var(--grey-900); + background: var(--grey-100); + border-radius: 4px; + padding: 0 var(--gap-xs); + font-size: var(--text-md); + margin: 0; + z-index: 2; +} +.frm-token-container .frm-token .frm-token-value { + line-height: var(--leading); + white-space: normal; + word-break: break-word; +} +.frm-token-container .frm-token .frm-token-remove { + display: flex; + flex-shrink: 0; + cursor: pointer; +} +.frm-token-container .frm-token .frm-token-remove .frmsvg { + color: var(--grey-900); + position: static; + width: 12px; + height: 12px; + padding: 0; +} +.frm-token-container .frm-token .frm-token-remove:hover .frmsvg { + color: var(--error-500); +} +.frm-token-container .frm-show-inline-modal { + z-index: 3 !important; +} +.frm-token-container .frm-token-proxy-input { + position: relative; + z-index: 1; + padding-right: var(--gap-xl) !important; +} + +/** + * Components - Field Loading + */ +form .form-field.frm_field_loading { + margin-bottom: 0; + min-height: 0; + padding: 0; + text-align: center; +} + +.frm_sorting > .frm_field_loading .frm_visible_spinner.frm-wait { + margin-bottom: 10px; +} + +.frm_sorting > .frm_field_loading ~ .frm_field_loading .frm_visible_spinner.frm-wait { + margin-bottom: 0; + display: none; +} + +/** + * Components - Form Error + */ +.frm_description, +.with_frm_style form div.description, +.frm_error { + margin: 0; +} + +.frm_error { + color: #F04438; +} + +form .frm_blank_field input, +form .frm_blank_field textarea, +form .frm_blank_field select, +form .frm_blank_field .frm-g-recaptcha iframe, +form .frm_blank_field .g-recaptcha iframe { + border-color: #F04438; +} + +form .frm_blank_field label { + color: #F04438; +} + +.frm_required { + color: #F04438; +} + +/** + * Components - MCE Styles + */ +.with_frm_style .wp-editor-container textarea, +.postbox .wp-editor-container textarea, +.frm_remove_border { + border: none; +} + +.with_frm_style .mceIframeContainer, +.postbox .mceIframeContainer { + background-color: #fff; +} + +/** + * Components - License + */ +.frm_pro_license_msg { + clear: left; + margin-top: 10px; +} + +.frm-license-input { + position: relative; +} + +.frm-license-input span { + font-size: var(--text-sm); +} + +.frm-license-input .frmsvg { + width: 20px; + height: 20px; + margin-left: 5px; + vertical-align: text-top; +} + +.frm-license-input .frmsvg, +.frm-license-input span, +.frm-license-input i { + color: rgb(0, 131, 26); +} + +/** + * Components - Upgrade to Pro + */ +.upgrade_to_pro { + padding: 10px 25px 25px; + max-width: 700px; + margin: 20px auto !important; +} + +.upgrade_to_pro .error { + display: none; +} + +/** + * Components - Message Styles + */ +.toplevel_page_formidable #wpbody-content > .error { + margin: 1px; + padding: 5px 12px; +} + +.frm_error_style, +.frm_warning_style, +.frm_note_style2, +.frm_note_style, +.frm_message, +#post-body-content .frm_updated_message, +div.frm_updated_message { + border-radius: var(--small-radius); + background-color: #D5F2DC; + color: #1E561F; + padding: var(--gap-sm) var(--gap-md); + font-size: var(--text-sm); + margin: var(--gap-sm) 0; + text-align: left; +} + +.frm_note_style2 { + background: linear-gradient(90deg, #e9effa, #fcf6fe) padding-box, linear-gradient(90deg, #1961D5, #E8ABEF) border-box; + border: 1px solid transparent; +} + +#frm_top_bar + .wrap > .frm_updated_message, #frm_top_bar + .wrap > .frm_warning_style { + display: inline-block; + width: 100%; + box-sizing: border-box; +} + +#post-body-content > .frm_updated_message { + margin: 5px 65px; +} + +#form_global_settings #post-body-content > .frm_updated_message, +#form_global_settings #post-body-content > .frm_warning_style { + margin: 5px 25px; +} + +.frm_error_style { + color: #973937; + background-color: #EBCCCC; + clear: both; +} + +.frm_error_style a { + text-decoration: underline; + font-weight: 600; +} + +.frm_error_style svg { + opacity: 0.7; +} + +.frm_warning_style { + color: #7A4D05; + background-color: #FFF2D2; +} + +.frm_warning_heading { + font-weight: 700; + margin-bottom: 4px; +} + +/* Warning message dismiss */ +.frm_warning_style { + position: relative; + padding-right: calc(var(--gap-md) + 15px); +} + +body.rtl .frm_warning_style { + padding-right: var(--gap-md); + padding-left: calc(var(--gap-md) + 15px); +} + +.frm-warning-dismiss { + position: absolute; + top: 10px; + right: 10px; + display: flex; + cursor: pointer; + transition: opacity 0.2s ease-out; +} + +body.rtl .frm-warning-dismiss { + left: 10px; + right: auto; +} + +.frm-warning-dismiss:hover { + opacity: 0.8; +} + +.frm-warning-dismiss.frmsvg, +.frm-warning-dismiss.frmsvg svg { + width: 15px; + height: 15px; +} + +.frm_note_style { + background: rgba(188, 224, 253, 0.23); + color: var(--grey-700); +} + +.frm-banner-alert { + text-align: left; + margin: 0; + border-radius: 0; + padding: 10px 0 10px 40px; +} + +.frm-banner-alert a { + color: var(--primary-500); + font-weight: 400; + text-decoration: none; +} + +.frm_updated_message ul, +.frm_updated_message li, +.frm_warning_style ul, +.frm_warning_style li, +.frm_error_style ul, +.frm_error_style li { + margin: 0; +} + +.frm-inline-message { + border: 1px solid var(--primary-700); + border-radius: var(--small-radius); + color: var(--primary-700); + background: #fff; + text-align: center; + padding: 20px; + font-size: var(--text-sm); + line-height: var(--leading); +} + +.frm-inline-message a { + text-decoration: underline; + font-weight: 600; + color: var(--primary-700); +} + +.frm_pro_heading span { + margin-top: 10px; +} + +.frm_pro_heading .alignright { + text-align: right; +} + +.frm-yes { + color: var(--green); + font-size: var(--text-xl); +} + +.frm-nope { + color: var(--grey-400); + font-size: var(--text-xl); +} + +/** + * Components - Upgrade Bar Elements + */ +.upgrade_to_pro a { + color: var(--orange); +} + +.upgrade_to_pro table .frmsvg { + height: var(--text-xl); + width: var(--text-xl); +} + +.upgrade_to_pro table.widefat { + background-color: #fff; + border-collapse: collapse; +} + +.frm-white-body .upgrade_to_pro table th, +.upgrade_to_pro table td { + padding: 10px 15px; + border: 1px solid var(--grey-300); + line-height: var(--leading); + font-size: var(--text-sm); +} + +.upgrade_to_pro table th.frmcenter { + text-align: center; +} + +/** + * Components - Table Styles + */ +.widefat th.frm_table_break { + background-color: var(--sidebar-color); +} + +/** + * Base - Howto + */ +h2.frm-h2 + .howto { + color: var(--medium-grey); + max-width: 850px; + margin: 5px 0 20px; +} + +/** + * Components - Card + */ +.frm-card { + width: 100%; + border-radius: 10px; + border: 1px solid var(--grey-300); + opacity: 1; + transition: opacity 1s; +} + +.frm-card-box { + max-width: 524px; + background-color: #fff; + border-radius: var(--medium-radius); + padding: var(--gap-xl); + border: 1px solid var(--grey-200); + box-shadow: var(--box-shadow-md); +} + +.frm-card-box.frm-has-progress-bar { + position: relative; + overflow: hidden; + border-radius: var(--medium-radius); +} + +.frm-card-box-progress-bar { + position: absolute; + top: 0; + left: 0; + right: 0; + height: var(--gap-xs); + background-color: var(--primary-25); +} + +.frm-card-box-progress-bar > span { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 33%; + background-color: var(--primary-500); +} + +.frm-card-box-header { + display: flex; + justify-content: center; + margin-bottom: var(--gap-sm); +} + +.frm-card-box.frm-has-progress-bar .frm-card-box-header { + margin-top: var(--gap-xs); +} + +.frm-card-box-content > :last-child { + margin-bottom: 0; +} + +.frm-card-box-footer { + display: flex; + justify-content: end; + gap: var(--gap-sm); + margin-top: var(--gap-lg); +} + +.frm-card-box-title { + font-size: var(--text-xl) !important; + font-weight: 600 !important; + margin-bottom: var(--gap-xs); +} + +.frm-card-box-text { + font-size: var(--text-md) !important; + color: var(--grey-600) !important; + margin-top: 0 !important; +} + +/** + * Utilities - Fade + */ +.frm-fade { + opacity: 0; + transition: all 1s; +} + +/** + * Components - Add-on Tiles + */ +.frm-addons .frm-card.frm-addon-not-installed { + position: relative; +} + +.frm-addons .plugin-card-top { + min-height: 155px; + padding-top: var(--gap-lg); + overflow: hidden; +} + +.frm-addons .plugin-card-top h2 { + margin-top: 0; + font-weight: 400; +} + +.frm-template-row p, +.frm-addons .plugin-card-top p { + opacity: 0.8; +} + +.frm-addons .plugin-card-top > :not(p):not(h2) { + /* Hide notices from third party plugins */ + display: none; +} + +.frm-addons .plugin-card-bottom { + padding: 5px 20px 20px; + text-align: center; + background: transparent; + border-top: none; +} + +.frm-addons .plugin-card-bottom, +.frm-addons .plugin-card-bottom .button { + font-size: 15px; +} + +.frm-addons .button, +.frm-addons .frm-button-tertiary { + float: right; +} + +.frm-addons .addon-status { + float: left; + padding-top: 4px; +} + +.frm-addon-not-installed .frm-activate-addon, +.frm-addon-not-installed .frm-deactivate-addon, +.frm-addon-not-installed .frm-uninstall-addon, +.frm-addon-installed .frm-install-addon, +.frm-addon-installed .frm-deactivate-addon, +.frm-addon-active .frm-activate-addon, +.frm-addon-active .frm-install-addon, +.frm-addon-active .frm-uninstall-addon, +.plugin-card-pro.frm-addon-active .button, +.plugin-card-pro.frm-addon-active .frm-button-tertiary { + display: none !important; +} + +.frm-save-and-reload-options { + margin-top: 10px; + font-size: 13px; +} + +.frm-save-and-reload, +.frm-save-and-reload + .frm-button-secondary { + visibility: visible !important; +} + +.addon-status-label { + opacity: 0.7; +} + +.frm-addon-active .addon-status-label { + color: var(--green); + opacity: 1; +} + +.frm-addon-error { + position: absolute; + top: 55px; + left: 10px; + right: 10px; + font-weight: 700; + text-align: center; +} + +/** + * Components - Form Templates + */ +.frm-new-template.plugin-card-bottom { + overflow: visible; +} + +#frm-new-template p:first-child { + margin-top: 0; +} + +/** + * Layout - Admin Page + */ +.frm-admin-page-formidableedit #wpbody-content > *:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack), +#wpbody-content > .updated, +#wpbody-content > #update-nag, +#wpbody-content > .update-nag, +#wpbody-content > .notice, +#wpbody-content > .error:not(.frm_previous_install), +.frm-white-body .updated, +.frm-white-body .notice, +.frm_wrap > .wrap > .notice, +.frm-white-body .error:not(.frm_previous_install) { + display: none; +} + +.frm-admin-page-formidableedit #frm_builder_page { + display: block !important; +} + +.frm-white-body .updated, +.frm-white-body .error { + margin: 0; + padding: 10px 20px; +} + +/** + * Components - Modal + */ +.frm-modal:not(#frm-dismissable-cta) .postbox { + max-height: 600px; + overflow: hidden; + margin-bottom: 0; +} + +.frm-modal .postbox .frm_modal_top, +.frm-dialog .frm_common_modal .postbox > div:first-child, +.frm-error-modal .frm_modal_top { + padding: var(--gap-md) var(--gap-md) 0; + position: relative; +} + +.frm-modal h2, +.frm-modal .postbox .inside h2, +.frm-modal .postbox .frm-modal-title, +.frm-dialog .frm_common_modal .postbox > div:first-child > div:first-child, +.frm-error-modal .frm-modal-title { + display: inline-block; + font-size: var(--text-lg); + color: var(--grey-900); + font-weight: 600; + margin: 0; + padding: 0; +} + +.frm-modal h3 { + font-weight: 500; +} + +/* Dismiss icon button */ +.frm-inline-modal > a.dismiss, +.frm-modal .postbox > a.dismiss, +.frm-modal .postbox .frm-modal-title + div:last-child, +.frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { + position: absolute; + top: 19px; + right: 19px; + display: flex; + z-index: 2; +} + +body.rtl .frm-inline-modal > a.dismiss, +body.rtl .frm-modal .postbox > a.dismiss, +body.rtl .frm-modal .postbox .frm-modal-title + div:last-child, +body.rtl .frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { + right: unset; + left: 30px; +} + +.frm-info-modal .postbox > a.dismiss, +.frm-inline-modal > a.dismiss { + right: 13px; + top: 13px; +} + +.frm-modal .postbox .frm-modal-title + div:last-child a, +.frm-modal a.dismiss .frmsvg, +.frm_common_modal .frm_modal_top a .frmsvg { + color: var(--grey-500); +} + +.frm-modal .postbox .frm-modal-title + div:last-child a:hover, +.frm-modal a.dismiss .frmsvg:hover, +.frm_common_modal .frm_modal_top a .frmsvg:hover { + color: var(--grey-700); +} + +.frm-modal .frm_modal_content > div.inside, +.frm_common_modal .frm_modal_content > div.inside { + padding: var(--gap-md); + margin: 0; + font-size: var(--text-sm); + color: var(--grey-700); +} + +.frm-modal p { + color: var(--grey-900); +} + +.frm_common_modal .postbox { + display: flex; + flex-direction: column; +} + +.frm-modal .postbox > div.inside .cta-inside { + overflow-y: auto; + height: auto; +} + +.frm_modal_footer { + padding: 0 var(--gap-md) var(--gap-sm); + text-align: right; +} + +body.frm-body-with-open-modal { + overflow-y: hidden; +} + +/** + * Components - Template List + */ +/* These template list styles are still used to list the View types in the New View modal. */ +.frm-templates-list { + margin-top: 0; +} + +.frm-templates-list.frm_grid_container li { + margin-bottom: 0; +} + +.frm-templates-list li { + vertical-align: top; + position: relative; + box-sizing: border-box; + border-radius: 6px; + border: 1px solid transparent; + text-align: left; +} + +.frm-templates-list li:not(.frm_hidden) { + display: inline-block; +} + +.frm-templates-list.frm-categories-list li { + width: 100%; +} + +.frm-templates-list li.frm-selectable { + cursor: pointer; +} + +.frm-templates-list li.frm-selectable:hover { + background: var(--light-blue); + border-color: rgba(65, 153, 253, 0.5); +} + +.frm-templates-list li.frm-selectable:hover h3, +.frm-templates-list li.frm-selectable:hover p { + max-width: calc(100% - 65px); +} + +.frm-templates-list .frm-featured-form { + display: flex; + width: 100%; +} + +.frm-templates-list li .frm-featured-form { + padding: 7px 5px; +} + +.frm-templates-list li li > div { + padding-left: 0; +} + +.frm-templates-list li > div > div { + vertical-align: middle; +} + +.frm-category-icon, +.frm-icon-wrapper { + background: var(--primary-500); + border-radius: var(--small-radius); + color: #fff; + width: 32px; + height: 32px; + font-size: 18px; + box-sizing: border-box; + align-self: center; + justify-content: center; + align-items: center; + display: inline-flex; +} + +.frm-templates-list li .frm-category-icon { + overflow: hidden; +} + +.frm-templates-list li h3, +.frm-templates-list li p { + text-align: left; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.frm-templates-list li h3, +.frm-templates-list .frm-install-template h3 { + font-size: var(--text-sm) !important; +} + +.frm-templates-list .frm-install-template div { + text-align: left; +} + +#frm_leave_email, +#frm_code_from_email { + width: 480px; + max-width: 100%; +} + +.frm-templates-list.frm-categories-list li > div > div:last-child { + padding-left: 0; +} + +.frm-hover-icons { + position: absolute; + right: 0; + top: 17px; /* Template item height - borders - icon height */ + max-width: 91px; + height: 100%; + box-sizing: border-box; + padding: 0 10px 0 5px !important; + border-radius: var(--small-radius); + text-align: right; + display: flex; + gap: 5px; +} + +.frm-ready-made-solution .frm-hover-icons { + visibility: hidden; +} + +.frm-ready-made-solution:hover .frm-hover-icons { + visibility: visible; +} + +.frm-hover-icons a { + width: 22px; + height: 22px; + font-size: var(--text-md); + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 50%; + box-sizing: border-box; + line-height: var(--leading); + text-align: center; +} + +.frm-hover-icons > .frm-preview-form, +.frm-hover-icons > .frm-delete-form { + border: 1px solid var(--primary-500); +} + +.frm-hover-icons > .frm-create-form, +.frm-ready-made-solution .frm-hover-icons a { + background-color: var(--primary-500); +} + +.frm-hover-icons > a .frmsvg { + width: 14px; + height: 14px; + vertical-align: baseline; +} + +.frm-hover-icons > .frm-preview-form .frmsvg, +.frm-hover-icons > .frm-delete-form .frmsvg { + color: var(--primary-500); +} + +.frm-hover-icons > .frm-unlock-form { + background-color: var(--primary-500); +} + +.frm-hover-icons > .frm-unlock-form .frmsvg { + background-color: var(--primary-500); +} + +.frm-ready-made-solution .frmsvg { + width: 14px; + height: 14px; +} + +.frm-hover-icons .frm-create-form svg, +.frm-ready-made-solution .frm-hover-icons svg { + color: #fff; +} + +.frm-hover-icons .frm-create-form:hover, +.frm-ready-made-solution .frm-hover-icons a:hover, +.frm-hover-icons > .frm-unlock-form:hover, +.frm-hover-icons > .frm-unlock-form:hover .frmsvg { + background-color: var(--primary-700) !important; +} + +.frm-hover-icons .frm-preview-form:hover, +.frm-hover-icons .frm-delete-form:hover { + border: 1px solid var(--primary-700) !important; +} + +.frm-hover-icons .frm-preview-form:hover .frmsvg, +.frm-hover-icons .frm-delete-form:hover .frmsvg { + color: var(--primary-700) !important; +} + +.frm-application-card h4 .frmsvg, +.frm-locked-template h3 .frmsvg { + height: var(--text-sm); + width: var(--text-sm); + vertical-align: text-top; + color: var(--grey-500); +} + +/** + * Components - Modal Actions + */ +.frm-modal-back { + cursor: pointer; + margin-right: 4px; +} + +.frm-modal-cancel { + float: left; +} + +/** + * Components - Meta Tag + */ +.frm-meta-tag, +.frm-meta-tag:hover { + padding: var(--gap-2xs) var(--gap-xs); + border-radius: var(--small-radius); + font-weight: 600; + display: inline-flex; + background-color: #D9EBFF; + gap: 2px; +} + +.frm-meta-tag.frm-grey-tag, +.frm-meta-tag.frm-grey-tag:hover { + background-color: var(--sidebar-hover); + color: var(--grey-900); +} + +.frm-meta-tag.frm-red-tag, +.frm-meta-tag.frm-red-tag:hover { + background: var(--error-100); + color: var(--error-700); +} + +.frm-meta-tag.frm-orange-tag, +.frm-meta-tag.frm-orange-tag:hover { + background-color: #FEF7F4; + color: var(--orange); +} + +.frm-meta-tag.frm-green-tag, +.frm-meta-tag.frm-green-tag:hover { + background-color: var(--success-500); + color: #fff; +} + +.frm-entry-status-0, +.frm-meta-tag.frm-lt-green-tag, +.frm-meta-tag.frm-lt-green-tag:hover { + background-color: var(--success-100); + color: var(--success-800); +} + +.frm-meta-tag.frm-new-pill { + background-color: var(--success-500); + vertical-align: text-bottom; +} + +.frm_add_field span + .frm-meta-tag { + margin-left: 0; +} + +/** + * Components - Upgrade List + */ +/* Start entry statuses */ +.frm-entry-status { + font-weight: 500; +} + +.frm-entry-status-1 { + color: #7A4D05; + background: #FFF2D2; +} + +/* End entry statuses */ +#frm-create-footer { + padding: 15px 20px; +} + +li .frm-hover-icons .frm-preview-form, +.frm-hover-icons .frm-unlock-form, +.frm-locked-template .frm-hover-icons .frm-create-form, +.frm-modal-back { + display: none; +} + +.frm-locked-template .frm-hover-icons .frm-unlock-form, +li[data-preview] .frm-hover-icons .frm-preview-form { + display: inline-flex; +} + +.frm-modal-back svg { + color: #7F7F7F; +} + +#frm-upgrade-body-list-wrapper > div { + display: inline-block; + width: 33.3333333333%; + vertical-align: top; + text-align: left; + margin-bottom: 10px; +} + +#frm-upgrade-body-list-wrapper ul { + padding-left: 40px; +} + +#frm-upgrade-body-list-wrapper ul li::before { + content: "\2022"; + color: var(--primary-500); + display: inline-block; + width: 1em; + margin-left: -1em; +} + +/** + * Components - Embed Modal + */ +.frm-embed-modal-content { + padding: var(--gap-md); +} + +.frm-embed-modal-content.frm-loading-page-options { + display: flex; + justify-content: center; +} + +#frm_embed_modal .frm_embed_example { + background: var(--sidebar-color); + border: 1px solid var(--sidebar-hover); + border-radius: var(--small-radius); + color: var(--grey-900); + font-size: var(--text-sm); + padding-right: var(--gap-lg); + width: 100%; + height: auto !important; + resize: none; +} + +#frm_embed_modal textarea.frm_embed_example { + padding-bottom: 0; +} + +.frm-embed-modal-content > div a { + position: absolute; + right: 0; + top: 0; +} + +.frm-embed-modal-content > div { + position: relative; + margin-bottom: var(--gap-sm); +} + +.frm-embed-modal-content > div:last-child { + margin-bottom: 0; +} + +.frm-embed-modal-content svg[id^=frm_copy_embed_] { + position: absolute; + bottom: 10px; /* Input height - SVG height */ + right: 10px; + cursor: pointer; + opacity: 0.5; +} + +.frm-border-info-box, +.frm-embed-modal-option { + border-radius: var(--small-radius); + border: 1px solid var(--grey-300); + padding: var(--gap-sm); + cursor: pointer; + display: flex; + gap: var(--gap-sm); + font-size: var(--text-sm); +} + +.frm-embed-modal-option + .frm-embed-modal-option { + margin-top: var(--gap-sm); +} + +.caret.rotate-270, +.frm-embed-modal-option .caret { + align-self: center; + margin-left: auto; + transform: rotate(-90deg); +} + +#frm_embed_modal .frm_modal_footer { + display: none; +} + +#frm_embed_modal.frm-on-page-2 .frm_modal_footer { + display: block; +} + +.frm-embed-modal-content ul { + max-height: 300px; + overflow-y: scroll; +} + +.frm-embed-modal-wrapper.frm-dialog { + overflow: visible; +} + +/** + * Components - Bulk Options + */ +#frm-bulk-modal .frm_grid_container { + grid-template-columns: repeat(12, 8.33%); + grid-gap: 0; +} + +#frm-bulk-modal .frm8 { + border-right: 1px solid var(--grey-300); + padding: 10px 20px 10px var(--gap-lg); +} + +#frm-bulk-modal .frm4 { + padding: 10px 0; +} + +.frm-inline-modal .howto { + margin: 5px 0 10px; + color: var(--grey); +} + +.frm-inline-modal .frm_code_list + .howto { + margin-bottom: 0; +} + +#frm_bulk_options { + height: 240px; + width: 100%; + border: none; + box-shadow: none; + padding: 0; +} + +.frm-bulk-edit-link { + display: flex; + align-items: center; + justify-content: flex-end; + gap: var(--gap-2xs); + font-size: var(--text-sm); + margin: 12px 0 12px auto; +} +.frm-bulk-edit-link .frm-bulk-edit-link { + margin: 0; +} + +/** + * Components - Small Add + */ +.frm-small-add { + font-size: var(--text-sm) !important; +} + +.frm-small-add span { + color: var(--primary-500); + font-size: 12px; + height: 12px; + width: 12px; +} + +/** + * Components - Image From URL + */ +.frm_no_captcha_text { + font-weight: 700; + color: #A00; +} + +.frm_image_from_url { + height: 50px; +} + +/** + * Components - Dropdown + */ +/*Switch form dropdown*/ +h1 .fa-caret-down { + font-size: 18px; +} + +.caret { + display: inline-block; + width: 19px; + height: 9px; + margin-right: -8px; + vertical-align: middle; +} + +.caret, +.wp-admin .frm_wrap select, +.frm_wrap .frm_form_builder select, +.frm_wrap .ui-autocomplete-input { + background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%; + padding-right: var(--gap-lg) !important; +} + +.caret { + padding-right: var(--gap-xs) !important; + background-position-x: 5px; +} + +.frm-btn-group .caret { + float: right; + margin-top: calc(var(--text-md) / 2); +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.frm_wrap .ui-autocomplete, +#frm_adv_info.frm-dropdown-menu, +.frm-dropdown-menu { + /* Copied from .dropdown-menu rules from Bootstrap */ + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + padding-left: 4px; + padding-right: 4px; + margin: var(--gap-xs) 0 0; + text-align: left; + list-style: none; + background: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid var(--grey-100); + border-radius: 0.25rem; + box-shadow: var(--box-shadow-lg); + /* Custom rules */ + max-height: 200px; + overflow-y: auto; + overflow-x: hidden; + font-size: var(--text-md); + width: auto; + min-width: 160px; +} + +.frm6 .frm-dropdown-menu { + min-width: 100px; + max-width: 99%; +} + +#frm_bs_dropdown .frm-dropdown-menu { + max-width: 400px; +} + +.field_type_list .frm-dropdown-menu { + min-width: 150px !important; +} + +#frm_field_group_controls .frm-dropdown-menu, +.frm-field-action-icons .frm-dropdown-menu { + min-width: 180px !important; +} + +.frm-field-action-icons .frm-dropdown-toggle svg { + color: #9EA9B8; +} + +.multiselect-container.frm-dropdown-menu, +#search-submit .frm-dropdown-menu { + min-width: 200px !important; +} + +.preview .frm-dropdown-menu { + min-width: 230px !important; +} + +.frm-dropdown-menu.dropdown-menu-right { + right: 0; + left: auto; +} + +.frm-dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.frm-dropdown-menu > .dropdown-item { + margin: 0; +} + +.frm-select-list-item, +.frm_wrap .ui-autocomplete li > div, +.multiselect-container button.multiselect-option, +.frm-dropdown-menu > .dropdown-item > a, +.frm-dropdown-menu .frm_dropdown_li { + clear: both; + font-weight: 400; + white-space: nowrap; + text-decoration: none; + border-radius: var(--small-radius); +} + +.frm-dropdown-menu > .active > a, +.frm-dropdown-menu > .active > a:hover, +.frm-dropdown-menu > .active > a:focus { + text-decoration: none; + outline: 0; +} + +.frm-select-list-item.disabled, +.frm-dropdown-menu > .disabled > a, .frm-dropdown-menu > .disabled > a:hover, .frm-dropdown-menu > .disabled > a:focus { + color: #999; +} + +.frm-select-list-item.disabled:hover, +.frm-dropdown-menu > .disabled > a:hover, +.frm-dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + cursor: not-allowed; +} + +.open > .frm-dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 10px; + font-size: var(--text-xs); + color: var(--grey-400); +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} + +.dropdown-menu-right > .frm-dropdown-menu, +.pull-right > .frm-dropdown-menu { + right: 0; + left: auto; +} + +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000; + content: ""; +} + +.navbar-fixed-bottom .dropdown .frm-dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.btn { + border: 1px solid #ddd; + background: #fff; + height: 28px; + line-height: var(--leading); +} + +a.frm_option_icon::before { + color: var(--primary-500); + font-size: 22px; + width: 22px; + height: 22px; +} + +a.frm_option_icon:focus::before, +a.frm_option_icon:hover::before { + color: var(--primary-700); +} + +.frm_top_left .frm-dropdown-toggle { + color: #999; +} + +.frm-card ol { + margin-left: 15px; +} + +.frm-dropdown-toggle { + text-decoration: none; +} + +.frm-card .frm-dropdown-toggle { + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); + font-size: 13px; + color: var(--grey-700); + padding: 7px 20px; +} + +.frm_actions_dropdown .frm-dropdown-menu { + font-size: var(--text-sm); + color: #5F6C72; +} + +.frm-dropdown-menu .frm_icon_font { + vertical-align: middle; + color: #5F6C72; + margin-right: 3px; +} + +/* BS Multiselect */ +.multiselect-container.frm-dropdown-menu { + top: auto; + left: auto; + font-size: var(--text-sm); + padding: 4px; + margin-bottom: 3px; +} + +/** + * Accordion + */ +#post-body-content + .frm-right-panel h3.accordion-section-title { + padding: 7px 10px 8px 14px; + font-size: var(--text-md); + color: var(--grey-700); +} + +.frm-with-line, +.accordion-section-content h4 { + font-size: var(--text-md); + font-weight: 400; + margin: 20px -20px 10px; + padding: 0 20px; + color: var(--grey-700); + position: relative; + border: none !important; +} + +.frm-with-line span, +.accordion-section-content h4 span { + background: #fff; + padding: 0 var(--gap-xs); + position: relative; + display: inline-block; + z-index: 2; +} + +.accordion-section-content h4 span { + background: var(--sidebar-color); +} + +.frm-right-panel .frm-with-line span { + background: var(--sidebar-color) !important; + margin-left: -4px; +} + +.frm-right-panel .frm-inline-modal .frm-with-line span { + background: #fff !important; +} + +.frm-with-line::before, +.accordion-section-content h4::before { + content: ""; + display: block; + position: absolute; + border-bottom: 1px solid var(--grey-300); + left: 0; + width: 100%; + top: 50%; +} + +.control-section .accordion-section-title::after, +.customize-pane-child .accordion-section-title::after { + top: 15px; +} + +.accordion-container .frm-dropdown-menu { + min-width: 40px; +} + +.frm-btn-group .multiselect.dropdown-toggle { + box-sizing: border-box; + min-height: unset; + cursor: pointer; +} + +.accordion-container .frm-dropdown-menu::before, +.accordion-container .multiselect.dropdown-toggle::before { + font-family: "s11-fp" !important; +} + +/** + * Components - Multiselect + */ +.multiselect-container { + position: absolute; + list-style-type: none; + margin: 0; + padding: 0; + width: 100%; + max-width: 250px; +} + +.multiselect-container button.multiselect-option { + width: 100%; + text-align: left; + border: none; + margin-bottom: 4px; +} + +.multiselect-container button.multiselect-option label { + margin-left: 5px; +} + +.accordion-container .multiselect-container label { + padding: 3px 19px 3px 7px; +} + +.frm-btn-group.btn-group > .btn-group:nth-child(2) > .multiselect.btn { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.frm-btn-group.btn-group, .frm-btn-group.btn-group-vertical { + display: block; +} + +.multiselect-option label { + max-width: calc(100% - 22px); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +/** + * Components - Fields + */ +.frm_scale { + text-align: center; + float: left; + margin-right: 10px; +} + +.frm_scale input { + display: block; + margin: 5px; +} + +.frm_multi_fields_container { + float: left; +} + +.frm_multi_fields_container, +.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range], +.frm_form_builder .frm_form_fields input[type=text] { + width: 100%; + height: auto; +} + +.frm_form_builder .frm_time_wrap .frm_time_sep { + vertical-align: sub; + vertical-align: -webkit-baseline-middle; +} + +.frm_form_builder input[type=range]::-webkit-slider-runnable-track { + background-color: var(--blue-border); +} + +.frm_form_builder input[type=range]::-moz-range-track { + background-color: var(--blue-border); +} + +.frm_form_builder input[type=range]::-ms-fill-lower { + background-color: var(--blue-border); +} + +.frm_form_builder input[type=range]::-ms-fill-upper { + background-color: var(--blue-border); +} + +.frm-embed-field-placeholder { + text-align: center; + height: 145px; + display: flex; + align-items: center; + justify-content: center; +} + +.frm-fake-field { + display: block; + height: 25px; + background-color: var(--light-blue); + border: 1px solid var(--grey-300); + margin: 10px 0; + border-radius: var(--small-radius); +} + +.frm-embed-message { + position: absolute; + background: #fff; + border: 1px solid var(--grey-300); + color: var(--grey-700); + padding: var(--gap-md); + font-size: var(--text-lg); + max-width: 200px; + min-width: 50%; + margin: 0 var(--gap-md); + overflow: hidden; + text-overflow: ellipsis; +} + +.frm-summary-message { + top: 50%; + left: 50%; + padding: 15px 0; + font-size: var(--text-md); + transform: translate(-50%, -50%); +} + +.frm-summary-learn-more { + font-size: inherit !important; +} + +.frm-single-settings .frm-embed-message { + width: 100%; + position: static; + border-radius: var(--small-radius); +} + +#new_fields input[type=text], +#new_fields input[type=number], +.frm_field_box .frm_form_fields > textarea, +.frm_form_fields .frm_form_field > textarea, +.frm_form_fields .frm_form_field > input[type=email], +.frm_form_fields .frm_form_field > input[type=url], +.frm_form_fields .frm_form_field > input[type=number], +.frm_form_fields .frm_form_field > input[type=tel], +.frm_form_fields .frm_form_field > input[type=text], +.frm_form_fields .frm_form_field > input[type=range] { + width: 100%; +} + +.frm_form_fields textarea.wp-editor-area { + width: 100%; + border: none; +} + +.frm_form_fields input[type=file], .frm_form_fields input[type=file]:disabled { + background: transparent; + border: none; + box-shadow: none; + width: auto; +} + +.frm_form_fields select { + width: auto; + max-width: 100%; +} + +input[type=radio], +input[type=checkbox] { + width: 16px; + padding: 0; +} + +.frm_grid_container > p, +.frm_grid_container > p.frm_form_field, +.frm_grid_container > div.frm_form_field, +#new_fields .frm_grid_container > p { + margin-top: 8px; + margin-bottom: 8px; + margin-right: 0; +} +.frm_grid_container > p > label:only-child, +.frm_grid_container > p.frm_form_field > label:only-child, +.frm_grid_container > div.frm_form_field > label:only-child, +#new_fields .frm_grid_container > p > label:only-child { + margin-bottom: 0; +} + +.frm_grid_container > .frm-has-modal > p:only-child { + margin-bottom: var(--gap-xs); +} + +#new_fields div.frm_grid_container > .frm_primary_label { + margin-top: 8px; +} + +#new_fields .frm_primary_label + p, +#new_fields .frm_primary_label + .frm6 + .frm6, +#new_fields .frm_primary_label + .frm6 + .frm-inline-modal + .frm6 { + margin-top: 0; +} + +.frm_catlevel_2, .frm_catlevel_3, .frm_catlevel_4, .frm_catlevel_5 { + margin-left: 18px; +} + +.frm_wrap .frm-fields .auto_width, +.frm_form_fields input.auto_width, .frm_form_fields select.auto_width, .frm_form_fields textarea.auto_width { + width: auto !important; +} + +.frm_form_fields select.auto_width { + min-width: 60px; +} + +.frm_form_fields input:focus, .frm_form_fields select:focus, +.frm_form_fields textarea:focus, .frm_focus_field input { + background-color: #fff; + border-color: #ddd; +} + +.frm_form_builder .frm_radio, +.frm_form_builder .frm_checkbox { + display: block; + margin-bottom: 2px; +} + +.frm_form_builder .frm_radio label, +.frm_form_builder .frm_checkbox label { + font-size: var(--text-sm); +} + +/** + * Components - Copied Frontend + */ +.horizontal_radio .frm_radio, +.horizontal_radio .frm_checkbox { + margin-right: 5px; + display: inline-block; +} + +.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label, +.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label { + display: flex; + align-items: center; + gap: 9px; + white-space: normal; +} + +.frm_form_field.frm_two_col .frm_opt_container, +.frm_form_field.frm_three_col .frm_opt_container, +.frm_form_field.frm_four_col .frm_opt_container { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-auto-rows: max-content; + grid-gap: 0 2.5%; +} + +.frm_form_field.frm_three_col .frm_opt_container { + grid-template-columns: repeat(3, 1fr); +} + +.frm_form_field.frm_four_col .frm_opt_container { + grid-template-columns: repeat(4, 1fr); +} + +.frm_form_field.frm_two_col .frm_radio, +.frm_form_field.frm_two_col .frm_checkbox, +.frm_form_field.frm_three_col .frm_radio, +.frm_form_field.frm_three_col .frm_checkbox, +.frm_form_field.frm_four_col .frm_radio, +.frm_form_field.frm_four_col .frm_checkbox { + grid-column-end: span 1; +} + +/** + * Components - Fields Part 2 + */ +.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], +.frm_wrap .with_frm_style .frm_radio input[type=radio], +.frm_wrap input[type=checkbox], +.frm-white-body input[type=checkbox], +.field-group input[type=checkbox], +.frm_scale input[type=radio], +.frm_radio input[type=radio], +.frm_checkbox input[type=checkbox] { + width: 15px; + min-width: 15px; + height: 15px; + border: 1px solid var(--grey-300); + box-shadow: var(--box-shadow-sm); + -webkit-appearance: none; +} + +.frm_wrap input[type=radio] { + border-color: var(--grey-300); + box-shadow: var(--box-shadow-sm); +} +.frm_wrap input[type=radio]:checked::before { + background-color: var(--primary-500); +} + +.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], +.frm_wrap input[type=checkbox], +.frm-white-body input[type=checkbox], +.field-group input[type=checkbox], +.frm_checkbox input[type=checkbox] { + border-radius: 4px; +} + +.frm-white-body input[type=checkbox]:checked, +.frm_wrap input[type=checkbox]:checked { + background-color: var(--border-color-active, var(--primary-500)) !important; + border-color: var(--border-color-active, var(--primary-500)) !important; +} + +.frm-white-body input[type=checkbox]:checked:focus, +.frm_wrap input[type=checkbox]:checked:focus { + border-color: var(--border-color-active, var(--primary-500)); +} + +.frm-white-body input[type=checkbox]:checked::before, +.frm_wrap input[type=checkbox]:checked::before { + content: ""; + display: block; + width: 100% !important; + height: 100% !important; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important; + background-size: 8px !important; + background-repeat: no-repeat !important; + background-position: center !important; + margin: 0; +} + +.frm_radio input[type=radio], +.frm_checkbox input[type=checkbox] { + margin-right: 5px; +} + +.frm_inner_field_container { + margin-bottom: 10px; +} + +.frm_conf_inline .frm_inner_field_container, +.frm_conf_inline .frm_inner_conf_container { + width: 49%; + float: left; +} + +.frm_conf_inline .frm_inner_field_container { + margin-right: 2%; + clear: both; +} + +.frm_inner_field_container > label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > label, +.frm_field_box .divider_section_only:hover > .frm_inner_field_container > label, +li.ui-state-default.selected > .frm_inner_field_container > label { + max-width: calc(100% - 100px); +} + +.frm-drag-fade { + background-color: var(--lightest-grey) !important; + border-radius: 4px; +} + +.frm-drag-fade * { + opacity: 0; +} + +.frm-dragging .divider_section_only, +.frm-dragging .frm_field_box { + pointer-events: none; +} + +.frm_form_settings #op-popup, +.frm_form_settings com-1password-op-button, +.frm_conf_below .frm_conf_field_container .frm_primary_label, +.frm_conf_inline .frm_inner_field_container .frm-show-click a, +.frm_conf_below .frm_conf_field_container .frm-show-click a { + display: none !important; +} + +.frm_conf_inline .frm_inner_field_container .frm-field-action-icons { + position: absolute; + right: 5px; +} + +.frm_conf_below .frm_conf_field_container { + margin-top: 10px; +} + +.frm_calc_dec { + width: 50px; +} + +.frm_ext_sc { + display: none; +} + +.frm_long_input { + width: 100% !important; + box-sizing: border-box; +} + +/** + * Utilities - Text Align - Part 2 + */ +.frmcenter { + text-align: center; +} + +/** + * Components - Image Help + */ +img.frm_help { + margin-left: 2px; + vertical-align: middle; + padding-bottom: 2px; +} + +/** + * Components - Loading + */ +.frm_spinner.frm-wait, +.frm_spinner.spinner { + float: left; + visibility: hidden; + margin: 0 10px; +} + +.frm_visible_spinner.frm-wait, +.frm_visible_spinner.spinner { + visibility: visible; + float: none; +} + +.frm_form_action_settings .frm_spinner.frm-wait, +.frm_form_action_settings .frm_spinner.spinner { + visibility: visible; + float: none; + vertical-align: bottom; +} + +.frm_form_action_settings .frm_loading { + font-size: 15px; + text-align: center; +} + +.frm_ajax_settings_tab .frm-wait, +.frm_ajax_settings_tab .spinner { + visibility: visible; + float: none; + margin-top: 20px; +} + +.wp-core-ui .frm_loading_button.button-primary.frm-button-primary, +.frm_loading_button, +.frm_loading_form.frm_button_submit { + position: relative !important; + opacity: 0.8; + color: transparent !important; + text-shadow: none !important; +} + +.frm_loading_button:hover, +.frm_loading_button:active, +.frm_loading_button:focus, +.frm_loading_form.frm_button_submit:hover, +.frm_loading_form.frm_button_submit:active, +.frm_loading_form.frm_button_submit:focus { + cursor: not-allowed; + color: transparent !important; + outline: none !important; + box-shadow: none; +} + +.frm-wait { + margin: 20px; + width: 20px; + height: 20px; + position: relative; + display: inline-block; +} + +#frm-show-fields .frm-wait:only-child { + position: absolute; + left: 50px; + top: 30px; +} + +.frm-wait::before, +.frm_loading_button::before, +.frm_loading_form.frm_button_submit::before { + content: ""; + display: inline-block; + position: absolute; + background: transparent; + border: 1px solid #fff; + border-top-color: transparent; + border-left-color: transparent; + border-radius: 50%; + box-sizing: border-box; + top: 50%; + left: 50%; + margin-top: -10px; + margin-left: -10px; + width: 20px; + height: 20px; + animation: spin 2s linear infinite; +} + +.frm-wait::before { + border-bottom-color: var(--primary-700); + border-right-color: var(--primary-700); +} + +.frm_loading_button.frm-button-secondary::before { + border-bottom-color: var(--primary-500); + border-right-color: var(--primary-500); +} + +input[type=submit]:focus { + outline: none !important; +} + +/* Effects */ +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/** + * Components - Fields Part 3 + */ +label input[type=checkbox], label input[type=radio] { + vertical-align: inherit; +} + +#editorcontainer #dyncontent { + margin: 0; + width: 100%; + padding: 6px; + line-height: var(--leading); + border: 0 none; + outline: none; + box-sizing: border-box; +} + +/*ICONS*/ +.frm_postbox_icon { + margin: -6px 0 0 -10px; +} + +.frm_form_builder a:hover { + text-decoration: underline; +} + +.frm_form_builder .widget-title h4 { + padding: 10px 15px; +} + +.frm_form_builder .widget-top a.widget-action::after { + margin: 7px 12px 0; +} + +.frmbutton.frm_tgateway { + display: none !important; +} + +.frm_html_legend pre { + display: inline; +} + +#ed_fullscreen { + display: none !important; +} + +.frm_posttax_opt_list { + overflow: auto; + max-height: 200px; + background-color: #fff; +} + +.frm_posttax_opt_list p.howto { + font-size: 12px; +} + +.frm_border_bottom { + border-bottom: 1px solid var(--grey-300); + margin-bottom: 10px; + padding-bottom: 10px; +} + +.frm_posttax_opt_list .frm_border_bottom span.howto { + padding-right: 10px; +} + +.frm_posttax_opt_list .frm_border_bottom input { + margin-right: 1px; +} + +.frm_add_remove div.frm_form_field { + padding-bottom: 5px; +} + +.frm_field_opts_list { + max-height: 260px; + overflow: auto; +} + +/** + * Utilities - Background + */ +.frm_white_bg { + background-color: #fff; +} + +/** + * Utilities - Border - Light + */ +.frm_border_light { + border: solid 1px #ddd; +} + +/** + * Components - Form Input Styles + */ +#new_fields .form-table input[type=text], +#new_fields .form-table select, +.form-table .form-field input, +.form-table .form-field .quicktags-toolbar input, +.form-field input, .form-field .quicktags-toolbar input { + width: auto; +} + +/** + * Components - Affiliate Link + */ +.frm_aff_link { + float: right; +} + +/** + * Component: Select Box + */ +.frm_select_box { + text-align: center; + font-weight: 700; + width: 100%; + background-color: transparent !important; +} + +.wp-list-table input.frm_select_box { + text-align: left; + font-weight: 400; + font-size: inherit !important; + border: none; + padding: 0 !important; + background-color: transparent !important; +} + +.wp-list-table input.frm_select_box:focus { + outline: none; + box-shadow: none; +} + +.wp-list-table .frm_no_items.frm_select_box { + text-align: center; + font-weight: 700; + width: 500px; + max-width: 100%; + font-size: inherit; +} + +/** + * Component: Options Panel + */ +#frm-options-panel { + padding: 0 var(--gap-sm); + color: var(--grey-900); + overflow: hidden; +} + +.frm-right-panel a.frm_add_logic_link, +#frm-options-panel h3 { + font-size: var(--text-md); + font-weight: 500; + background-color: #fff; + border-radius: var(--small-radius); + padding: 18px var(--gap-sm); + margin: 2px calc(-1 * var(--gap-sm)); + transition: background-color 200ms ease-out, box-shadow 200ms ease-out, color 200ms ease-out; +} +.frm-right-panel a.frm_add_logic_link .frmsvg, +#frm-options-panel h3 .frmsvg { + width: 13px; + height: 13px; + color: var(--grey-500); + transition: transform 300ms ease-in; +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type), .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child, +#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type), +#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child { + color: var(--grey-700); + box-shadow: var(--box-shadow-sm); +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg, .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg, +#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg, +#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg { + transform: rotate(-180deg); +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div, +#frm-options-panel h3:not(.frm-collapsed) + div { + padding-top: 6px; + padding-bottom: 6px; +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container, +#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container { + padding-bottom: 14px; +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child, +#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child { + margin-top: var(--gap-sm); +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6, +#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6 { + margin-top: var(--gap-sm); +} +.frm-right-panel a.frm_add_logic_link.frm-collapsed, +#frm-options-panel h3.frm-collapsed { + color: var(--grey-500); + background-color: transparent; +} +.frm-right-panel a.frm_add_logic_link:hover, +#frm-options-panel h3:hover { + color: var(--grey-700); + background-color: #fff; + box-shadow: var(--box-shadow-sm); +} +.frm-right-panel a.frm_add_logic_link:focus-visible, +#frm-options-panel h3:focus-visible { + outline: 1px solid var(--primary-500) !important; + outline-offset: -1px; +} + +.frm-right-panel a.frm_add_logic_link:focus { + outline: auto; +} + +/** + * Component: Field Key + */ +.frm_field_key { + background-color: #F7F7F7; +} + +/** + * Component: Form Editor + */ +#frm_form_editor_container #edit-slug-box { + padding: 0; +} + +/** + * Component: Alt Table + */ +.frm-alt-table { + position: relative; + width: 100%; + border-collapse: collapse; + margin-top: 0.5em; + font-size: 15px; +} + +/* Before `applyZebraStriping` is executed, an empty space is displayed */ +#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #fff; +} + +.frm-alt-table th { + width: 200px; +} + +.frm-alt-table tr, +.frm-alt-table tr.frm-odd { + background-color: transparent; +} + +.frm-alt-table tr.frm-even { + background-color: var(--sidebar-color); +} + +.frm-alt-table th, +.frm-alt-table td { + background-color: transparent; + vertical-align: top; + text-align: left; + padding: 20px; +} + +.frm-alt-table h3 { + margin-bottom: 0; +} + +/** + * Component: Checkbox Button + */ +.form-field .frm_cb_button { + height: 22px; + line-height: 20px; + margin-bottom: 10px; + margin-right: 5px; +} + +/** + * Option Label + */ +.edit_field_type_select .frm_option_val_label { + margin-left: 12px; +} + +/** + * Components - Rich Text Editor + */ +.frm_rte { + background: url(../images/rte.png) no-repeat; +} + +.frm_rte .howto { + margin: 10px 0 46px; +} + +/** + * Component: Subform Section + */ +.subform_section { + margin: 25px; +} + +.subform_section, +.subform_section label, +.subform_section input { + opacity: 80; +} + +.subform_section .frm_sortable_field_opts { + display: none; +} + +#frm_form_editor_container .subform_section .frm_primary_label { + display: block; +} + +.subform_section.subform_break { + border-top: 1px dashed #ccc; +} + +/** + * Component: HTML Field + */ +.button-secondary.frm_html_field { + background-color: #ededed; + padding: 10px 20px; + line-height: inherit; + width: auto; + height: auto !important; + border-radius: 0; + box-sizing: content-box; +} + +.frm_html_field_placeholder { + margin-bottom: 10px; + text-align: center; +} + +.recaptcha_placeholder { + border: 1px solid #d3d3d3; + width: 300px; +} + +.turnstile_placeholder { + width: 300px; +} + +/** + * Component: RTE Textarea + */ +.frm_sorting .frm_rte textarea { + width: 653px; + background: #fff; + margin: 1px 0 0; + border: 1px solid #dfdfdf; + border-top: none; + border-radius: 0; + float: none !important; +} + +.frm_full_rte textarea { + width: 98%; + padding: 0; +} + +/** + * Component: Field Box + */ +.frm_field_box { + padding: 5px; + min-height: 20px; + margin: 10px 0; +} + +/** + * Components - Indent Options + */ +.frm_indent_opt, td.frm_indent_opt { + padding-left: 25px; +} + +/** + * Components - Charts + */ +.frm_charts object { + background: transparent; +} + +.frm_charts h2 { + height: 34px; +} + +/** + * Component: Sortable Placeholder + */ +.frm_single_option.ui-sortable-placeholder, +li.sortable-placeholder { + border: none; + margin: 0; + visibility: visible !important; + box-shadow: 2px -10px 0 2px var(--primary-500); +} + +#frm_form_editor_container > ul > .frm_single_option.ui-sortable-placeholder, +#frm_form_editor_container > ul > li.sortable-placeholder { + width: calc(100% - 5px) !important; + height: 0 !important; +} + +#frm_form_editor_container > ul > li > ul { + position: relative; +} + +#frm_form_editor_container > ul > li > ul > li.sortable-placeholder, +#frm_form_editor_container ul.start_divider > li > ul > li.sortable-placeholder { + position: absolute; + top: 20px; + bottom: 0; +} + +.edit_field_type_divider + li.sortable-placeholder { + box-shadow: 2px 5px 0 2px var(--primary-500); +} + +.start_divider li.sortable-placeholder { + box-shadow: 2px -5px 0 2px var(--primary-500); +} + +.frm-is-collapsed + .sortable-placeholder { + box-shadow: 2px 15px 0 2px var(--primary-500); +} + +.frm_single_option.ui-sortable-placeholder { + box-shadow: 0 0 1px 1px var(--primary-500); +} + +/** + * Component: Sorting Display + */ +.frm_sorting > li.edit_field_type_end_divider:first-child, +.frm-show-click, +li.ui-state-default.edit_field_type_divider .frm-show-click { + display: none; +} + +.frm_form_field.ui-sortable-helper .frm-field-action-icons, +.frm_form_field.ui-sortable-helper .frm_form_fields, +.frm_form_field.ui-sortable-helper .frm_description, +.frm_form_field.ui-sortable-helper .description { + display: none; +} + +.frm_form_field.ui-sortable-helper .frm_primary_label, +.frm_form_field.ui-sortable-helper .frm_inner_field_container { + margin: 0 !important; +} + +.frm-single-settings .frm-show-click { + display: block !important; +} + +.frm-show-hover, +.frm_single_visible_hover, +li.ui-state-default.edit_field_type_divider .frm-show-hover { + opacity: 0; + transition: opacity 0.15s ease-in-out; +} + +#frm-show-fields .frm-field-settings-open .frm-show-hover { + opacity: 1; +} + +.frm_sortable_field_opts { + margin-top: 5px; +} + +/** + * Component: Single Option + */ +.frm_single_option { + clear: both; + margin: 0 !important; + padding-bottom: 5px; +} +.frm_single_option input[type=radio], +.frm_single_option input[type=checkbox] { + margin-top: 0; +} +.frm_single_option .frm-with-right-icon input[type=text] + .frmsvg { + position: relative; + right: 27px; + width: 14px; + height: 14px; + padding: 0; + margin: var(--gap-2xs) 0 0; +} + +.frm_product_price_wrapper, +.frm_image_preview_wrapper, +#new_fields .frm_single_option select, +#new_fields .frm_single_option input[type=text] { + width: calc(100% - 106px) !important; + flex-grow: 1; +} + +.frm-right-panel .frm_single_option a.frm_remove_tag, +.frm_single_option a { + padding-left: 7px; +} + +.frm_single_option:hover .frm_single_visible_hover { + opacity: 100; +} + +.frm_single_option .frm-drag { + font-size: 23px; + width: 24px; + height: 24px; + margin-left: -6px; + margin-right: var(--gap-xs); + color: var(--grey-500); +} + +.frm_single_option .frm-drag::before { + vertical-align: middle; +} + +.frm-drag, +.frm_single_option.ui-sortable-helper { + cursor: move; +} + +.frm_single_option .frm_option_key { + margin-left: 19px !important; +} + +.frm_option_key input[type=text] { + margin-top: var(--gap-xs) !important; + margin-left: 11px !important; +} +.frm_option_key input[type=checkbox] + input[type=text], +.frm_option_key input[type=radio] + input[type=text] { + margin-left: 30px !important; +} + +li.ui-state-default.selected .frm-show-click, +li.ui-state-default.selected.edit_field_type_divider .frm-show-click { + display: inline; + vertical-align: top; +} + +.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > .frm-show-hover, +.frm_field_box .divider_section_only:hover > .frm_inner_field_container > .frm-show-hover, +li.ui-state-default.selected > .frm_inner_field_container > .frm-show-hover, +li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { + opacity: 100; +} + +li.frm_field_box > ul.frm_grid_container { + position: relative; +} + +/** + * Component: UI Icon + */ +.frm_sorting span.ui-icon { + width: 16px; +} + +/** + * Component: Entry Page + */ +body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container { + --field-border-width: 1px; + --border-color: var(--grey-300); + --border-color-active: var(--primary-500); + --border-radius: var(--small-radius); +} + +#form_show_entry_page .frm_file_link, +#form_show_entry_page .frm_image_option_container { + display: inline-flex; + flex-wrap: nowrap; + flex-direction: column; + text-align: center; + align-items: center; + width: 150px; + margin-right: 10px; + margin-bottom: 10px; +} + +#form_show_entry_page .frm_image_option_container img { + width: 150px; + height: 150px; + object-fit: cover; +} + +#form_show_entry_page .frm_file_link img { + max-width: 150px; + height: auto; +} + +#form_show_entry_page .frm_file_link ~ br { + display: none; +} + +#form_show_entry_page .frm_upload_label { + padding: 10px; +} + +#form_show_entry_page.frm_wrap .postbox { + overflow: hidden; +} + +.frm_image_option_container .frm_image_placeholder_icon svg { + height: 150px; +} + +.frm_list_entry_page .frm_file_link, +.frm_list_entry_page .frm_image_option_container.frm_label_with_image { + display: block; + text-align: center; +} + +.frm_list_entry_page .frm_image_option_container img { + width: 75px; + height: 75px; + object-fit: cover; +} + +.frm_list_entry_page img { + max-width: 100%; + height: auto; +} + +.frm_image_option_container .frm_empty_url { + background-color: var(--sidebar-color); +} + +.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image { + display: block; + padding: 5px 0 10px; +} + +.frm_list_entry_page .frm_upload_label, +.frm-summary-page-wrapper .frm_text_label_for_image { + display: block; +} + +/** + * Welcome and Global Settings Image Options + */ +#frm-welcome .frm_image_options .frm_image_option_container, +#form_global_settings .frm_image_options .frm_image_option_container { + background: var(--sidebar-color); +} + +#frm-welcome .frm_image_option_container svg, +#form_global_settings .frm_image_option_container svg { + max-width: calc(100% - 20px); +} + +/** + * Component: Option Templates + */ +/* Style image option container for Directory add on. */ +#frm-new-template .frm_image_option_container svg { + height: 50px; + margin: 10px auto 0; +} + +/* Show an icon on top */ +.frm_image_option_container { + position: relative; +} + +.frm_text_label_for_image > svg { + width: 30px; + position: absolute; + top: 5px; + right: calc(50% - 15px); +} + +/* End show an icon on top */ +.frm_single_option .frm_option_key { + margin-top: 17px; +} +.frm_single_option .frm_option_key.frm_image_preview_wrapper { + margin-top: var(--gap-xs); +} + +/** + * Component: Image + */ +.frm_image_data { + margin-left: var(--gap-sm); + display: flex; + flex-direction: column; + font-size: var(--text-sm); + justify-content: space-around; + min-width: 0; /* Allows flex items to shrink below content size */ +} + +.frm_image_styling_frame { + display: flex; + align-items: stretch; + margin-left: 36px; + margin-bottom: var(--gap-xs); + width: 100%; +} +.frm_image_styling_frame img { + height: 54px; + width: 54px; + min-width: auto; + min-height: auto; + border-radius: 3px; + object-fit: cover; + object-position: center; +} +.frm_image_styling_frame .frm_email_attachment_icon img { + height: auto; + width: auto; + max-width: 54px; +} + +.frm_image_preview_title { + color: var(--grey-500); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + min-width: 0; /* Critical for text truncation in flex */ + flex: 1 1 auto; /* Better flex behavior */ +} + +.frm_wrap .frm_choose_image_box { + cursor: pointer; + color: var(--primary-500); + background-color: #fff; + margin-left: 32px; + text-align: center; + width: 100%; +} + +.frm-type-ranking .frm_option_key .frm_choose_image_box { + margin-left: 11px !important; +} + +.frm_wrap .frm_choose_image_box:hover { + background: #fff; +} + +a.frm_remove_image_option, +.frm_remove_image_option { + color: var(--grey-400); + cursor: pointer; +} + +a.frm_remove_image_option:hover .frmsvg, +a.frm_remove_image_option:hover, +.frm_remove_image_option:hover { + color: rgba(40, 47, 54, 0.8); +} + +/** + * Component: Settings and Panel + */ +/* Form Settings Tabs */ +.frm-form-setting-tabs { + margin-top: var(--gap-sm) !important; +} + +.frm-right-panel > .postbox { + background-color: transparent; + border: none; + box-shadow: none; + margin: 0; +} + +.frm-right-panel .postbox.frm_with_icons .inside, +.frm-right-panel .postbox .inside, +.frm-right-panel .inside { + font-size: var(--text-md); + padding: 15px 20px 20px; + color: var(--grey-700); +} + +.frm-right-panel .misc-pub-section { + padding: var(--gap-xs) 0; + position: relative; +} + +.frm-right-panel .inside a, +.frm-form-setting-tabs a { + font-size: var(--text-md); + color: var(--grey-700); + padding: var(--gap-sm); + display: block; +} + +.frm-form-setting-tabs a { + color: var(--grey-900); + padding: var(--gap-sm) var(--gap-md); +} + +.frm-right-panel .inside a { + padding: 0; + color: var(--primary-500); + display: inline-block; +} + +.frm-right-panel .inside a:hover { + color: var(--primary-700); +} + +.frm-form-setting-tabs a:hover { + background: var(--sidebar-hover); + color: var(--grey-900); +} + +.frm-right-panel .inside i, +.frm-form-setting-tabs a i, +.frm-form-setting-tabs a .frmsvg { + margin: 0 5px; + display: inline-block; + width: 20px; + height: 20px; + color: var(--grey-500); +} + +.frm-form-setting-tabs a .frmsvg { + margin: 0; +} + +.frm-right-panel .inside a:hover i, +.frm-right-panel .inside a:hover .frmsvg, +.frm-form-setting-tabs a:hover .frmsvg, +.frm-form-setting-tabs a:hover span { + color: var(--grey-700); +} + +.frm_settings_form .tabs-panel { + padding: 0 25px; +} + +#form_settings_page .tabs-panel, +.frm_settings_form .tabs-panel { + max-height: initial !important; + min-height: 50px !important; +} + +#frm_adv_info .tabs-panel { + min-height: 0 !important; + overflow-x: hidden; + padding: 0; + border: none; + background: transparent; +} + +select.frm_cancelnew, input.frm_enternew { + width: 175px; +} + +.frm_posttax_opt_list { + border: 1px solid var(--grey-300); + padding: var(--gap-md); + border-radius: var(--small-radius); + margin: 5px 0 5px var(--gap-md); +} + +/* Color picker CSS */ +.frm_settings_form .wp-picker-open + .wp-picker-input-wrap, +.frm-right-panel .wp-picker-open + .wp-picker-input-wrap { + position: absolute; + margin-left: calc((100% - 35px) * -1); + margin-top: 1px; + width: calc(100% - 36px); +} +.frm_settings_form .wp-picker-container input[type=text].wp-color-picker, +.frm-right-panel .wp-picker-container input[type=text].wp-color-picker { + border: none; + padding: 5px 8px; + font-family: inherit; + color: var(--grey-700); + font-size: var(--text-md); + width: 100%; + line-height: var(--leading); +} +.frm_settings_form .wp-picker-input-wrap .wp-picker-clear, +.frm-right-panel .wp-picker-input-wrap .wp-picker-clear { + display: none !important; +} +.frm_settings_form .wp-picker-holder, +.frm-right-panel .wp-picker-holder { + position: absolute; + z-index: 999; +} +.frm_settings_form .wp-picker-input-wrap label, +.frm-right-panel .wp-picker-input-wrap label { + margin-bottom: 0; +} +.frm_settings_form .wp-picker-container .wp-color-result.button, +.frm-right-panel .wp-picker-container .wp-color-result.button { + width: 100%; + overflow: hidden; + margin: 0 !important; + height: var(--h-md) !important; + padding: 0 0 0 var(--gap-lg) !important; + border-radius: var(--small-radius); + border-color: var(--grey-300); +} +.frm_settings_form .wp-color-result-text, +.frm-right-panel .wp-color-result-text { + line-height: var(--leading) !important; + font-size: var(--text-md); + background: #fff !important; + color: var(--grey-900); + padding: 5px 8px; + border-color: var(--grey-300); + text-align: left; +} +.frm_settings_form .color-alpha, +.frm-right-panel .color-alpha { + width: var(--gap-lg) !important; +} + +.frm_grid_container .wp-picker-container { + width: 100%; + position: relative; +} + +.wp-picker-container button.wp-color-result { + border: 1px solid var(--grey-300) !important; +} + +.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker { + max-width: 100%; + position: relative; +} + +.frm_end .wp-picker-holder { + margin-left: -145px; +} + +.frm_end.frm6 .wp-picker-holder { + margin-left: -86px; +} + +/* End of color picker CSS */ +/** + * Toggle Components + * + * These are the styles for the "Enable Formidable styling" toggle in the visual styler. + * To use this element, you can call the FrmHtmlHelper::toggle function. + */ +.frm_toggle_opt { + padding: 0; + white-space: normal; + display: inline; + vertical-align: middle; + font-weight: 400; +} + +.frm_on_label, +.frm_off_label { + color: var(--grey-700); +} + +.frm_toggle { + position: relative; + display: inline-block; + width: 40px; + height: var(--h-xs); + vertical-align: middle; +} + +.frm_toggle_block { + display: inline-flex !important; + gap: var(--gap-xs); + align-items: center; +} + +.frm_toggle input, +.frm_toggle_block input { + display: none !important; +} + +.frm_toggle_slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--grey-200); + transition: 0.4s; + border-radius: 30px; +} + +.frm_toggle_slider::before { + box-sizing: border-box; + content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E"); + position: absolute; + left: 2px; + bottom: 2px; + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + font-size: 20px; + line-height: 20px; + background-color: #fff; + border-radius: 50%; + transition: 0.4s; + box-shadow: var(--box-shadow-md); +} + +input:checked + .frm_toggle .frm_toggle_slider { + background-color: var(--primary-500); +} + +input:focus + .frm_toggle .frm_toggle_slider { + box-shadow: var(--box-shadow-md); +} + +input:checked + .frm_toggle .frm_toggle_slider::before { + transform: translateX(16px); + content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E"); +} + +input[disabled] + .frm_toggle_slider, +input[disabled] + .frm_toggle .frm_toggle_slider { + pointer-events: none; + cursor: text; + opacity: 0.5; +} + +.frm_toggle_opt ~ .frm_toggle .frm_toggle_slider::before { + content: "" !important; /* Don't show x/check if off label included or on builder page */ +} + +.rtl .frm_toggle_opt { + padding: 0 8px; +} + +.rtl .frm_toggle_slider::before { + left: 17px; +} + +.rtl input:checked + .frm_toggle .frm_toggle_slider::before { + transform: none !important; + left: 1px; +} + +/* Deprecated admin toggle */ +.frm_toggle_off, +.frm_toggle_on { + display: none; + color: #fff; + z-index: 999; + position: absolute; + font-size: 10px; + line-height: 20px; + left: 6px; +} + +.frm_toggle_off { + display: inline; + left: auto; + right: 5px; + color: var(--dark-grey); +} + +.frm_toggle_long { + width: 80% !important; + height: 28px; + display: inline-block !important; +} + +.frm_toggle_long .frm_toggle_slider { + background: var(--primary-700); + box-shadow: 0 0 0 2px var(--primary-700); +} + +.frm_toggle_long .frm_toggle_off, +.frm_toggle_long .frm_toggle_on { + width: 50%; + text-align: center; + font-size: 13px; + line-height: 28px; +} + +.frm_toggle_long .frm_toggle_on { + left: 0; +} + +.frm_toggle_long .frm_toggle_off { + right: 0; +} + +.frm_toggle_long .frm_toggle_slider::before { + width: 50%; + left: 0; + top: 0; + border-radius: var(--border-radius) 0 0 var(--border-radius); + height: 100%; + background-color: #fff; + color: var(--primary-color); + content: "" !important; +} + +.frm_toggle_long input:checked + .frm_toggle_slider::before { + transform: translateX(101%); + border-radius: 0 var(--border-radius) var(--border-radius) 0; +} + +input:checked + .frm_toggle_slider + .frm_toggle_on { + display: inline; +} + +input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { + display: none; +} + +.frm_toggle_long .frm_toggle_on, +.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { + display: inline; + color: var(--primary-500); + font-weight: 400; +} + +.frm_toggle_long .frm_toggle_off, +.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on { + color: #fff; + font-weight: 700; +} + +/* End toggle styling */ +/** + * Global Settings + */ +.tabs-panel { + height: auto !important; + min-height: 260px; +} + +.tabs-panel.panel_secondary { + min-height: 20px; + margin-top: 10px; + margin-left: 150px; +} + +label.frm-example-icon { + margin-right: 20px !important; + display: inline-block !important; +} + +#frm_stripe_icon { + border-radius: 5px; +} + +#captcha_settings .frm_primary_label { + margin-top: var(--gap-sm); +} + +.frm-long-icon-buttons { + display: flex; + gap: var(--gap-md); +} + +.frm-long-icon-buttons > label { + border: 1px solid var(--grey-300); + color: var(--grey-700); + border-radius: var(--small-radius); + display: flex; + padding: var(--gap-sm); + gap: var(--gap-sm); + justify-content: center; + align-items: center; + width: calc(33% - var(--gap-sm)); + box-sizing: border-box; +} + +.frm-long-icon-buttons > label:hover { + color: var(--primary-500); +} + +.frm-long-icon-buttons input[type=radio] { + display: none; +} + +.frm-long-icon-buttons input[type=radio]:checked + label { + border-color: var(--primary-500); + box-shadow: 0 0 0 1px var(--primary-color); +} + +.frm-long-icon-buttons label > svg { + height: 21px; +} + +.frm-example-icon .frmsvg, +.frm-example-icon i { + height: 20px; + width: 20px; + font-size: 20px; + color: var(--grey-700); +} + +.frm_license_msg { + margin-top: 0; +} + +.frm_authorized_box .frm-show-unauthorized, +.frm_unauthorized_box .frm-show-authorized { + display: none; +} + +.edd_frm_status_icon.frmsvg { + margin: 0 5px; +} + +.edd_frm_license_row .frm_action_success .frmsvg { + color: green; +} + +.edd_frm_license_row .frm_action_error .frmsvg { + color: #D54E21; +} + +/* Hide the install steps for solutions */ +#form_global_settings .tabs-panel .num svg { + display: none; +} + +/* Empty List */ +.frm_no_items { + margin: 0 auto 50px; + text-align: center; + color: var(--grey-700); + max-width: 500px; +} + +.frm-subscribe { + margin: var(--gap-lg) 0; +} + +.frm_inbox_count { + color: #fff; + border-radius: 50%; + display: inline-block; + margin-right: 8px; + font-size: 11px; + text-align: center; + min-width: 18px; + height: 18px; + margin-left: 2px; + vertical-align: text-bottom; +} + +/** + * Global Payment Settings + */ +#payments_settings .frm_payments_section .form-table td { + padding-left: 0; + padding-right: 0; +} + +#payments_settings .frm_payments_section .form-table { + margin-top: 0; +} + +#frm_authnet_general_settings > tr:first-of-type > td:first-of-type { + padding-top: 0; +} + +#frm_authnet_general_settings h3 { + margin-bottom: 0; +} + +.frm_payment_settings_tab .frmsvg { + height: 22px; +} + +.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg { + width: 83px; +} + +.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg { + width: 99px; +} + +.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg { + width: 89px; +} + +.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg { + width: 53px; +} + +.frm-email-style { + float: left; + margin-right: var(--gap-md); +} +.frm-email-style:last-of-type { + margin-right: 0; +} +.frm-email-style__card { + position: relative; +} +.frm-email-style__name { + margin-top: var(--gap-xs); + padding-top: var(--gap-2xs); + text-align: center; +} +.frm-email-style__name .frmsvg { + vertical-align: sub; +} +.frm-email-style__click { + display: block; + border-radius: 12px; + border: 1px solid var(--grey-200); + box-shadow: 0px 0.47px 0.94px 0px rgba(16, 24, 40, 0.0588235294); +} +.frm-email-style__click:focus, .frm-email-style--selected .frm-email-style__click { + border-color: var(--primary-500); + outline: 1px solid var(--primary-500); +} +.frm-email-style__click img { + width: 160px; + display: block; +} +.frm-email-style--disabled .frm-email-style__click:after { + content: ""; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: var(--grey-100); + opacity: 0.5; +} +.frm-email-style__buttons { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 100; + display: none; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 12px; +} +.frm-email-style__button { + cursor: pointer; + display: block; +} +.frm-email-style__button:disabled { + cursor: not-allowed; + display: none; + background: var(--primary-700) !important; + border-color: var(--primary-700) !important; +} +.frm-email-style--selected .frm-email-style__button:disabled { + display: block; +} +.frm-email-style--selected .frm-email-style__button[data-action=choose] { + display: none; +} +.frm-email-style--disabled .frm-email-style__button[data-action=choose] { + display: none; +} +.frm-email-style:hover .frm-email-style__buttons, .frm-email-style__click:focus + .frm-email-style__buttons, .frm-email-style:focus-within .frm-email-style__buttons { + display: flex; +} + +#frm-send-test-email, +.frm-upload-image-btn, +.frm-remove-image-btn, +.frm-reset-colors-btn { + cursor: pointer; +} + +#frm-send-test-email-modal .postbox { + padding: var(--gap-sm) var(--gap-md); +} +#frm-send-test-email-modal .postbox * { + box-sizing: border-box; +} +#frm-send-test-email-modal .inside { + margin: 0; + padding: 0; +} + +/** + * Import/Export + */ +.frm-lite .xml_opts .frm-export-xml-items { + display: none; +} + +.csv_opts #frm_csv_col_sep { + width: 45px; +} + +#frm_advanced td.frm_left_label { + width: 20%; + padding-right: 2px; +} + +/** + * Component: Where Options + */ +#frm_where_options select { + max-width: 200px; +} + +#frm_where_options select.frm_insert_where_options { + width: 30%; +} + +#frm_where_options select.frm_where_is_options { + width: 20%; +} + +#frm_where_options span.frm_where_val { + width: 32%; + display: inline-block; + position: relative; +} + +#frm_where_options span.frm_where_val .frm_tooltip_icon, +#frm_where_options span.frm_where_val .frm_help { + left: -4px; + position: absolute; +} + +#frm_where_options span.frm_where_val.frm_hidden { + display: none; +} + +#frm_where_options span.frm_where_val input, #frm_where_options span.frm_where_val select { + width: 90%; + margin-left: 10px; +} + +#frm_where_options { + min-height: 31px; +} + +/** + * Component: Tabs Panel + */ +.tabs-panel.active .tabs-panel, +.frm_settings_form .tabs-panel .tabs-panel { + border: none; + padding: 0; +} + +/** + * Component: Feature Banner + */ +.frm-feature-banner { + background: var(--grey-700); + color: #fff; + border-radius: var(--small-radius); + padding: 20px; + margin: 10px 0; +} + +.frm-feature-banner p { + font-size: var(--text-sm); +} + +.frm-feature-banner .dismiss { + margin-top: -10px; + margin-right: -10px; +} + +.frm-feature-banner .dismiss svg { + color: #fff; +} + +.frm-feature-banner .frm-big-icon { + padding-right: 20px; + float: left; + min-height: 60px; +} + +.frm-big-icon svg { + height: 60px; + width: 60px; +} + +.frm-feature-banner p { + margin-top: 0; +} + +/** + * Add-on Backward Compatibility + */ +/*for add-on reverse compatibility */ +.frm_98_width { + width: 100% !important; +} + +/** + * Form Settings Tab styles + */ +h2.frm-h2, +.frm_form_settings h2 { + border-bottom: 1px solid var(--grey-300); + color: var(--grey-900); + font-weight: 400 !important; + padding: 9px 0 5px; + margin: 0; +} + +.frm_settings_form h3, +.frm_form_settings h3, +.frm_form_settings span.frm_add_logic_link { + font-size: var(--text-md); + border-top: 1px solid var(--grey-300); + padding-top: var(--gap-sm); + margin: var(--gap-sm) 0; + font-weight: 400; + text-transform: uppercase; + color: var(--medium-grey); + display: block; +} + +.frm_form_settings .howto { + color: var(--grey-500); + font-size: var(--text-sm); + margin-top: 8px; +} + +.frm_form_settings .advanced_settings .form-table { + margin-top: 0; +} + +.frm_form_settings td.frm_175_width { + width: 175px; +} + +.frm_form_settings #success_url { + width: 95%; +} + +.frm_wrap .ui-autocomplete { + padding: 3px 0; + max-height: 310px; +} + +.frm_wrap .ui-widget { + font-family: inherit; +} + +.frm_wrap .ui-autocomplete li { + padding: 2px 4px; + background: none; + color: var(--grey-700); + border: none; + font-weight: 400; +} + +.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active { + border: none; + font-weight: inherit; +} + +.frm_select_with_label { + margin: 7px 0 0; +} + +/** + * Customization Panel styles + */ +/* Customization Panel */ +#frm-insert-fields-box, #frm-conditionals { + max-height: none; +} + +#frm-conditionals, #frm-adv-info-tab { + display: none; + max-height: 355px; +} + +#frm-insert-fields-box ul.subsubsub, +#frm-conditionals ul.subsubsub { + float: right; + margin: 0; +} + +#frm-insert-fields-box ul.alignleft, +#frm-conditionals ul.alignleft { + margin: 4px 0 0; +} + +#frm_adv_info ul.frm_code_list.frm-full-hover { + clear: both; + max-height: 215px; + overflow: auto; +} + +#frm-insert-fields-box ul.frm_code_list li.clear.frm_block { + height: 10px; +} + +#frm_adv_info .frm_noallow { + display: none; +} + +#frm_adv_info #frm-conditionals .frm_noallow { + display: block; +} + +/** + * Customize HTML Tab styles + */ +/* Customize HTML Tab */ +#frm_html_tab.frm_hidden { + display: none; +} + +#frm_html_tab.active { + display: inline; +} + +/** + * Form Actions Tab styles + */ +.frm_email_reply_container select, +.frm_email_reply_container input, +.form-table td.frm_150_width { + width: 170px; +} + +#frm_notification_settings .frm_no_top_padding { + padding-top: 0; +} + +.frm_email_settings.frm_email_settings.widgets-holder-wrap { + overflow: auto; + box-shadow: none; +} + +#frm_notification_settings .widget-top .widget-action, +#frm_form_editor_container .widget-top .widget-action { + border: 0; + margin: 0; + padding: 8px; + background: 0 0; + cursor: pointer; + outline: 0; +} + +#frm_notification_settings .widget-top .widget-action { + padding-top: 13.5px; +} + +#frm_email_addon_menu { + border: 1px solid var(--grey-300); + padding: var(--gap-sm); + border-radius: 4px; + margin: var(--gap-md) 0 var(--gap-sm); +} + +#frm_email_addon_menu .frm-search { + float: right; + margin: 0; +} + +#frm_email_addon_menu h3.frm-no-border { + clear: none; + padding-top: 7px; +} + +.frm_email_settings .widget .widget-top { + background-color: var(--sidebar-color); +} + +.frm_email_settings .widget .widget-top, +.frm_email_settings .widget .widget-top h3 { + cursor: pointer !important; +} + +.frm_email_settings .widget { + margin-bottom: var(--gap-sm); +} + +.frm_form_action_settings .widget-top { + box-shadow: none; + border-color: var(--grey-300); + border-radius: var(--small-radius); + background: var(--lightest-grey); + color: var(--grey-700); +} + +.frm_form_action_settings:hover .widget-top { + border-color: var(--grey); +} + +.frm_form_action_settings.open .widget-top { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom: none; +} + +.frm_form_action_settings.open:hover .widget-top { + border-color: var(--grey-300); +} + +.frm_form_action_settings > .widget-inside { + display: none; +} + +.frm_form_action_settings.open > .widget-inside { + display: block; +} + +.frm_form_action_settings .widget-inside { + min-height: 25px; + padding: 15px; + border-color: var(--grey-300); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.frm_form_action_settings .widget-title h4, +.frm_form_action_settings .widget-title h3 { + display: inline-block; + border-bottom: none; + padding: 10px 10px 5px; + font-size: var(--text-md); + font-weight: 500; +} + +#frm_email_addon_menu h3 { + margin: 0 0 var(--gap-sm); + clear: both; +} + +.frm_single_api_settings p > label { + display: inline; +} + +.frm_form_action_icon { + margin-right: 5px; +} + +.frm_actions_list { + margin: 0; + display: inline; +} + +.frm_actions_list li { + float: left; + width: 15.6%; + margin: 10px 0.5% 15px; + height: 100px; + text-align: center; +} + +.frm-limited-actions .frm-group-heading, +.frm-limited-actions #frm-hide-groups, +.frm-all-actions #frm-show-groups, +.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show) { + display: none; +} + +label.frm_action_events { + padding-left: 15px; +} + +#frm-hide-groups, +#frm-show-groups { + font-size: var(--text-md); + float: right; +} + +.frm_actions_list a:active, .frm_actions_list a:focus { + outline: none; +} + +.frm_actions_list a { + font-size: var(--text-sm); + color: var(--grey-700); + word-break: break-word; +} + +.frm_actions_list span.frm-outer-circle { + /* 50px total with 30px content */ + background-color: var(--grey-100); + padding: 10px; + text-align: center; + border-radius: 50%; + display: block; + width: 30px; + height: 30px; + margin: 0 auto 15px; + line-height: 1; +} + +.frm_email_settings .widget-title h4 { + color: var(--grey-700); +} + +.frm_disabled_action .widget-title h4 { + color: var(--grey); +} + +.frm_actions_list a .frmsvg, +.frm_actions_list a i { + height: 18px; + width: 18px; + font-size: 18px; + padding: 2px; + color: var(--lightest-grey); +} + +span.frm-inner-circle, +.frm_email_settings .widget-title .frm_form_action_icon { + background-color: var(--grey-400); + border-radius: 50%; + display: inline-block; + text-align: center; + line-height: 1; +} + +span.frm-inner-circle { + background-color: var(--primary-700); + height: 22px; + width: 22px; + padding: 4px; + color: #fff; +} + +.frm-inner-circle svg { + fill: currentColor; +} + +.frm_email_settings .widget-title .frm_form_action_icon { + height: 15px; + width: 15px; + padding: 5px; + color: #fff; + vertical-align: middle; +} + +.frm_actions_list .frmsvg, +.frm_actions_list i::before, +.frm_email_settings .widget-title .frm_form_action_icon i, +.frm_email_settings .widget-title .frm_form_action_icon .frmsvg { + height: 15px; + width: 15px; + vertical-align: text-top; +} + +.frm_actions_list i::before { + vertical-align: middle; +} + +.frm_email_settings .widget-title:hover .frm_form_action_icon { + background-color: var(--grey); +} + +span.frm-inner-circle.frm-inverse { + background-color: transparent; + color: var(--primary-700); + padding: 0; + height: 30px; + width: 100%; +} + +.frm_actions_list span.frm-inverse i, +.frm_actions_list span.frm-inverse .frmsvg { + color: var(--primary-700); + height: 30px; + width: 30px; + font-size: 30px; + padding: 0; +} + +.frm_actions_list i.frm-inverse::before { + height: 30px; + width: 100%; + font-size: 30px; +} + +.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse { + background: #fff; + padding: 0; + height: 24px; + width: 24px; +} + +.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg, +.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before { + color: var(--grey-400); + height: 24px; + width: 24px; + font-size: 24px; +} + +.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg, +.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before { + color: var(--grey-500); +} + +.frm_email_icons { + padding: 10px 0 5px 6px; + font-size: 20px; +} + +.frm_email_icons a { + margin-left: 8px; + color: var(--grey); + opacity: 0; + transition: all 0.2s ease; +} + +.frm_email_icons a .frmsvg { + color: var(--grey); +} + +.frm_email_icons a:hover, +.widget-top:hover .frm_email_icons a { + opacity: 1; +} + +.frm_actions_list a.frm_inactive_action { + color: var(--grey); +} + +.frm_inactive_action .frm-inner-circle, +.frm_actions_list .frm_inactive_action i { + opacity: 0.4; +} + +/** + * Component: Notification Settings + */ +table td, .form-table tr td { + vertical-align: top; +} + +#new_fields .form-table tr td { + display: block; + padding: 7px 0 0; +} + +#new_fields .form-table tr td:first-child { + margin: 0; +} + +#new_fields .form-table tr td:last-child { + margin-bottom: 9px; +} + +.form-table #list-table th { + text-align: center; +} + +#form_settings_page th, +#form_settings_page td, +.frm_settings_form td, +#frm_notification_settings .frm_form_action_settings td p { + padding: 7px 0; +} + +#permissions_settings_settings .frm_grid_container { + align-items: center; +} + +#frm_notification_settings .form-table > tbody > tr > th { + width: 150px; + font-weight: 400; + padding-right: 10px; +} + +#frm_notification_settings .frm_single_email_settings .form-table > tbody > tr > th { + width: 80px; +} + +#frm_notification_settings table tr td:first-child { + padding-left: 0; +} + +#frm_notification_settings table tr td:last-child { + padding-right: 0; +} + +#frm_notification_settings .frm_left_label { + float: none; /* For add-ons that haven't been updated for 4.0 */ + width: auto !important; +} + +.frm-fields .frm_autoresponder_rows select { + width: auto; +} + +#frm_notification_settings .frm_with_left_label, +#frm_notification_settings .frm_left_label + textarea, +#frm_notification_settings .frm_left_label + select, +#frm_notification_settings .frm_left_label + input[type=text] { + width: 100%; +} + +#frm_notification_settings .frm_email_buttons { + padding: var(--gap-2xs); + background: var(--light-blue); + color: var(--primary-700); + border-radius: var(--small-radius); + border-color: var(--blue-border); + line-height: 1; + height: auto; + min-height: 12px; + font-size: var(--text-xs); + box-shadow: none; +} + +p.frm_bcc_cc_container, +p.frm_reply_to_container { + float: right; + z-index: 1; + position: relative; +} + +p.frm_bcc_cc_container { + margin: 14px 0 0; +} + +p.frm_reply_to_container { + margin: -4px 0 0; +} + +.frm_email_row .frm_cancel1_icon::before { + vertical-align: bottom; +} + +.frm_cc_row.frm_email_row .frm-with-right-icon, +.frm_bcc_row.frm_email_row .frm-with-right-icon, +.frm_reply_to_row.frm_email_row .frm-with-right-icon { + width: calc(100% - 20px); + display: inline-block; +} + +.frm_email_row .frm_remove_field .frm_close_icon { + position: relative; + fill: var(--grey-500); + vertical-align: middle; +} + +/** + * Component: Logic Fields + */ +.frm-inline-select, +p.frm-inline-select, +.frm_logic_rows .frm-collapse-me { + line-height: var(--h-md) !important; +} + +.frm_logic_row { + padding: var(--gap-xs) 0 0; +} + +.frm-single-settings ul.frm_sortable_field_opts { + border-bottom: 1px solid var(--grey-200); + padding-bottom: var(--gap-xs); + margin-bottom: var(--gap-xs); +} + +.frm-single-settings .frm-add-other svg.frm_add_tag { + position: relative; + top: 5px; + margin-right: 4px; +} + +.frm-single-settings .frm_single_option .frm_remove_tag::before { + content: ""; +} + +.frm-single-settings input[type=checkbox][readonly] { + opacity: 0.5; + pointer-events: none; +} + +.advanced_settings .frm_logic_row { + margin: 14px 0; +} + +.advanced_settings .frm_logic_row select, +.advanced_settings .frm_logic_row input { + max-width: 30% !important; +} + +.frm_form_action_settings .frm_logic_row p { + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +/** + * Component: Form Settings Widget + */ +#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside { + padding-bottom: 0; +} + +#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside { + padding-left: 15px; + padding-right: 15px; +} + +#form_global_settings h3 { + font-size: var(--text-sm); + margin-top: 25px; +} + +#form_global_settings .tabs-panel + h3 { + margin-top: 0; + border: none; +} + +#poststuff .frm_form_settings .widget-inside h3, +#poststuff .frm_form_settings .advanced_settings h3, +#poststuff .frm_settings_form h3, +#frm_advanced .inside h3 { + border-top: 1px solid #eee; + border-bottom: none; + margin: 15px -15px 0; + padding: 8px 15px; + font-size: var(--text-sm); +} + +#poststuff .frm_form_settings h3.frm_first_h3, +#poststuff h3.frm_first_h3 { + border: none; + margin-top: 0; +} + +h3.frm_add_logic_link { + margin-bottom: 0 !important; +} + +a.frm_add_logic_link.frm_hidden { + display: none; +} +a.frm_add_logic_link.frm_hidden + .frm_logic_rows { + height: auto; +} + +/** + * Icon Font styles + */ +.frm_icon_font { + color: #A0A0A0; + color: var(--grey); +} + +.frm-fields label .frm_icon_font { + font-size: inherit; +} + +.misc-pub-revisions.frm_icon_font, +.misc-pub-revisions.frm_icon_font:hover { + color: inherit; +} + +.postbox.frm_with_icons .inside { + padding: 0; + margin: 0; +} + +.frm_add_tag::before { + content: "\e602"; +} + +.frm_remove_tag::before { + content: "\e600"; +} + +.frm_logic_row .frm1 > .frm_remove_tag { + padding: 0; +} + +.frm_tooltip_icon::before { + font-size: 13px; + vertical-align: top; +} + +.frm_help svg, +.frm_help .frmsvg { + height: 13px; + width: 13px; + vertical-align: top; + color: var(--grey-400); +} + +.form-field input[type=text].frm_other_input { + width: 30%; + margin-left: 10px; +} + +.frm-add-other { + text-align: right; +} + +.frm-add-other .frm_add_tag { + vertical-align: 20%; +} + +.frm_action_icon { + margin: 5px 0 0 5px; +} + +span.frm_action_icon { + margin: 0 4px 0 0; +} + +.frm_action_icon:active { + outline: none; +} + +a.frm_action_icon:hover { + text-decoration: none; +} + +.frm_action_icon.frm_error_icon::before { + content: "\e608"; +} + +.frm_inactive_icon.frm_action_icon.frm_error_icon::before { + content: "\e606"; +} + +.frm-field-action-icons { + text-align: right; + position: absolute; + top: 2px; + right: 2px; + max-width: 100%; +} + +.frm-field-action-icons .frm-field-id { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 80px; + max-width: calc(100% - 50px); + position: relative; + top: 2px; +} + +.frm-field-action-icons > a { + font-size: var(--text-md); + width: 17px; +} + +.frm-field-action-icons a:hover { + text-decoration: none; +} + +.frm-field-action-icons .dropdown { + display: inline-block; +} + +.frm-field-action-icons > a .frmsvg { + color: var(--grey-500) !important; + font-size: 17px; + width: 17px; + height: 17px; +} + +.frm-field-action-icons > a .frmsvg, +.frm-field-action-icons > div > a .frmsvg { + vertical-align: baseline; +} + +.edit_field_type_end_divider .frm-field-action-icons { + display: none !important; +} + +.frm-move { + cursor: grab; +} + +/** + * Extended Howto styles + */ +span.howto { + display: inline; +} + +.frm_import_message { + margin: 15px 0; + line-height: 2.5; +} + +/** + * Form Widget styles + */ +.frm_sorting .form-field .widget input[type=text], +.frm_sorting .form-field .widget input[type=number], +.frm_sorting .form-field .widget select, +#wpcontent .frm_sorting .form-field .widget select, +.frm_sorting .form-field .widget textarea { + width: auto; +} + +/** + * Tag Checklist styles + */ +.tagchecklist span.no_taglist { + display: inline; + float: none; + line-height: 15px; + margin-right: 0; + font-size: inherit; +} + +.tagchecklist .frm_exclude_cat_list span { + display: inline; +} + +.tagchecklist span a::before { + line-height: 23px; + text-align: start; +} + +.frm_form_action_settings .frm_email_row .frm_tooltip_icon { + position: relative; + bottom: 2px; +} + +/** + * No Entries Page styles + */ +.frm_no_entries_form { + padding: 60px 0; +} + +.frm_no_entries_form .frm_no_entries_header { + font-size: 20px; + margin-bottom: 10px; +} + +.frm_no_entries_form .frm_no_entries_text { + line-height: var(--leading); +} + +#form_entries_page #the-list .no-items { + height: 240px; /* Equals to the max height of search dropdown */ +} + +/** + * Reports Page styles + */ +#form_reports_page img.frm_no_reports { + max-width: 100%; +} + +.frm_wrap .google-visualization-table .gradient, +.frm_wrap .google-visualization-table-tr-head, +.frm_wrap .google-visualization-table-tr-odd, +.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over { + background: var(--lightest-grey); +} + +.frm_wrap .google-visualization-table-tr-over { + background: #fff; +} + +.frm_wrap .google-visualization-table-table th, +.frm_wrap .google-visualization-table-table td { + border-right-width: 0; + padding: 10px !important; +} + +.frm_wrap .google-visualization-table-tr-head, +.frm_wrap .google-visualization-table-tr-head th { + white-space: pre-wrap; + font-size: var(--text-md); + font-weight: 400 !important; + text-align: left; +} + +.frm_wrap .google-visualization-table-td-number { + text-align: inherit; +} + +#form_reports_page .postbox { + text-align: center; + float: none; + display: inline-block; + margin-right: 2%; + width: 20%; + min-width: 175px; +} + +/** + * Views Page styles + */ +#form_views_page img.frm_no_views { + max-width: 100%; +} + +/** + * Component: Field Options Popup + */ +.frm_field_opts_popup { + min-width: 300px; + background-color: #fff; +} + +.frm_field_opts_popup #wpadminbar { + display: none; +} + +.frm_prepop { + width: 100%; + list-style: none; + overflow: auto; + margin: 0; + max-height: 295px; +} + +.frm_prepop li { + margin: 0; +} + +.frm_prepop li a { + display: block; + text-decoration: none; + cursor: pointer; + padding: 5px 20px; +} + +.frm_prepop li a:hover { + background: var(--sidebar-color); +} + +/** + * Form Editor Container + */ +#frm_form_editor_container #frm_form_key_box { + width: 13em; + max-width: 30%; +} + +#frm_form_editor_container #frm_form_desc { + width: 70%; +} + +#frm_form_editor_container .ui-widget-content { + display: none; + padding: 15px; +} + +#frm_form_editor_container .ui-widget-content label { + float: left; + width: 170px; + text-align: right; + padding-right: 5px; + clear: both; +} + +#frm_form_editor_container .ui-widget-content label.nofloat { + clear: none; + float: none; + margin-left: 10px; +} + +#frm_form_editor_container .ui-state-default { + color: #333 !important; +} + +.frm_green { + color: var(--green) !important; +} + +#frm_form_editor_container .ui-state-default a.frm_orange, .frm-right-panel a.frm_orange, #postbox-container-1 a.frm_orange { + color: #D54E21; +} + +#styling_settings input[type=checkbox], #styling_settings input[type=radio] { + border: solid 1px #bbb; +} + +#styling_settings .widget .widget-top, #frm_form_editor_container .widget .widget-top { + cursor: pointer; +} + +/** + * Widget Sorting + */ +.frm_sorting .widget, .frm_settings_page .widget { + background: #fff; +} + +.frm_sorting .widget-title h4 { + font-weight: 400; +} + +.frm_sorting .widget, #postbox-container-1 .widget, .frm-right-panel .widget, .frm_settings_page .widget { + margin-bottom: 0; +} + +.frm_settings_page .widget-inside { + padding: 0 5px 5px; +} + +.frm_sorting .widget, +.widget-inside, +.frm_sorting .form-field .widget { + display: none; +} + +#frm-show-fields { + min-height: 350px; + padding: 0 0 35px; + margin: 0; + position: relative; +} + +.frm-has-fields #frm-show-fields { + min-height: 50px; +} + +#frm_builder_page .frm-lite-credit-card-element, +body.frm-admin-page-styles .frm-lite-credit-card-element { + position: relative; +} + +#frm_builder_page .frm-lite-credit-card-element > div, +body.frm-admin-page-styles .frm-lite-credit-card-element > div { + position: absolute; + top: calc(50% - 1px); + transform: translateY(-50%); + right: 10px; + color: #d0d4dd; +} + +#frm_builder_page #frm_field_group_controls { + position: absolute; + padding: 5px; + border-radius: 4px 4px 0 0; + text-align: right; + box-sizing: border-box; + right: 0; + top: -28px; + height: 28px; + z-index: 3; /* section dividers use z-index: 2; position above that to avoid it taking over hover control. */ +} + +.frm-field-group-hover-target, +.frm-has-open-field-group-popup, +#frm_builder_page #frm_field_group_controls, +.frm-selected-field-group { + background: rgba(65, 153, 253, 0.04); +} + +.frm-selected-field-group { + position: relative; +} + +#frm_builder_page #frm_field_group_controls > span:first-child { + margin-right: 5px; +} + +#frm_builder_page #frm_field_group_controls svg { + pointer-events: none; +} + +#frm_field_group_controls { + visibility: hidden; +} + +.frm-field-group-hover-target #frm_field_group_controls { + visibility: visible; +} + +#frm_field_group_controls .dropdown-item a span { + color: var(--grey-700); +} + +#frm_field_group_controls .dropdown-item a:hover { + text-decoration: none; +} + +/** + * Field Sorting + */ +.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider { + display: none !important; +} + +.frm-right-panel .ui-state-default, +#postbox-container-1 .ui-state-default, +.frm_sorting > li.ui-state-default, +.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { + border: 1px solid transparent; + font-weight: 400 !important; + background-color: transparent; + background-image: none; + padding: 5px; + margin: 0; + box-shadow: none; + display: block; + text-align: inherit !important; + overflow: visible; + position: relative; +} + +#frm-show-fields li.frm_cancel_sort { + /* If a section gets dropped into a section, hide it */ + display: none; +} + +.divider_drop { + text-align: center; +} + +.divider_drop .howto .frm_icon_font { + font-style: normal; +} + +.show_repeat_sec { + display: none; +} + +.repeat_section .show_repeat_sec { + display: inline-block; + margin: 5px 0 0; +} + +.repeat_section tr.show_repeat_sec { + display: table-row; +} + +.repeat_format .frm_repeat_label, +.repeat_formattext .frmsvg, +.repeat_formattext i { + display: none; +} + +/** + * Frm Button + */ +.frm_button { + text-decoration: none; + border: 1px solid #eee; + padding: 5px; + color: #444; + vertical-align: middle; + box-shadow: none !important; +} + +a.frm_button:hover { + text-decoration: none !important; +} + +.frm_button, +.frm_button .frm_icon_font::before { + font-size: 13px; + vertical-align: middle; +} + +.frm_button .frmsvg { + width: 13px; + height: 13px; +} + +/** + * Components - Divider + */ +.frm-right-panel .ui-state-default, +#postbox-container-1 .ui-state-default { + padding: 0; + margin: 0; +} + +ul.start_divider { + padding: 8px 13px 0 8px; + min-height: 115px; + transition: all 0.4s linear; +} + +.frm-section-collapsed .frm_no_section_fields, +.frm-section-collapsed ul.start_divider { + height: 0; + min-height: 0 !important; +} + +.frm-section-collapsed ul.start_divider { + overflow: hidden; +} + +.frm-section-collapsed .frm_no_section_fields { + overflow: hidden; + padding: 0; + opacity: 0; +} + +.frm-section-collapsed .divider_section_only .frm-collapsed-label { + display: inline; +} + +.frm-page-collapsed .frm_clone_icon, +.frm-page-collapsed .frm_delete_field, +.frm-page-collapsed .frm_clone_field, +.frm-section-collapsed .frm_clone_icon { + opacity: 0.5; + cursor: not-allowed; +} + +/* Hide the Duplicate summary option because we are missing the logic that also adds a new page */ +.edit_field_type_summary .frm_more_options_li:nth-child(2) { + display: none !important; +} + +.edit_field_type_submit .frm_more_options_li:not(:last-child) { + display: none !important; +} + +.frm_no_section_fields:not(.frm_block) + ul.start_divider { + padding: 0; + min-height: 132px; +} + +.frm_sorting li.ui-state-default .divider_section_only { + padding: 6px; + margin-top: -10px; + border: 2px solid transparent; + border-radius: var(--small-radius); + z-index: 2; + position: relative; +} + +.divider_section_only > .frm_inner_field_container { + padding: 5px 0; + margin: 0; +} + +.frm-collapsed-label, +.divider_section_only > .frm_inner_field_container .frm_form_fields { + display: none; +} + +.frm-section-collapsed .divider_section_only::after, +.divider_section_only::before { + content: ""; + display: block; + padding: 2px 0; + line-height: 1px; + border-top: 2px solid var(--grey-300); + top: -2px; + position: absolute; + width: 100%; + transition: 0.5s border-color ease-in-out; +} + +.frm-section-collapsed .divider_section_only::after { + top: auto; + bottom: -6px; +} + +.frm-section-collapsed .divider_section_only:hover::after, +li.selected.frm-section-collapsed .divider_section_only::before, +li.selected.frm-section-collapsed .divider_section_only::after, +.divider_section_only:hover::before, +li.selected .divider_section_only::before { + border-color: transparent; +} + +.frm_sorting li.ui-state-default.edit_field_type_divider { + overflow: visible; + position: relative; + padding: 0 0 0 20px; + margin: 25px 0 0 -5px; + border-left: 1px solid var(--primary-700); + transition: border 0.7s ease-out; +} + +.frm-section-collapsed { + border-left-color: transparent !important; +} + +.frm_sorting li.edit_field_type_end_divider, +.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { + margin: 0 0 var(--gap-sm); +} + +.frm-first-page .frm_prev_page { + display: none; +} + +/** + * Components - Form Rows + */ +#frm_builder_page .frm_remove_form_row.frm_button, +#frm_builder_page .frm_add_form_row.frm_button { + border-radius: var(--small-radius); + border: 1px solid var(--blue-border); +} + +#frm_builder_page .frm_remove_form_row .frmsvg, +#frm_builder_page .frm_remove_form_row i::before, +#frm_builder_page .frm_add_form_row .frmsvg, +#frm_builder_page .frm_add_form_row i::before { + color: var(--primary-700); +} + +.frm-preview-buttons .frm_button_submit { + margin: 0 5px; +} + +.frm-page-break { + border-top: 1px dashed var(--primary-700); + margin-top: var(--gap-lg); + position: relative; +} + +.frm-page-break::before, +.frm-page-break::after { + content: ""; + position: absolute; + background-color: #fff; + border-radius: 50%; + border: 1px solid var(--primary-700); + text-rendering: auto; + -webkit-font-smoothing: antialiased; +} + +/** + * Components - Divider Icons + */ +.edit_field_type_divider .frm-divider-icon.frmsvg { + padding: 2px; + position: absolute; + left: -12px; + color: #fff; + background-color: var(--primary-700); + border-radius: 50%; +} + +.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg { + height: 8px; + width: 8px; + padding: 0; + bottom: -4px; + left: -24.5px; + color: var(--primary-700); + background-color: #fff; +} + +.edit_field_type_divider.selected .frm-divider-icon.frmsvg, +.edit_field_type_divider:hover .frm-divider-icon.frmsvg { + background: var(--primary-500); +} + +.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg, +.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg { + background-color: #fff; + color: var(--primary-500); +} + +.frm-page-break::before, +.frm-page-break::after { + width: 8px; + height: 8px; + top: -6px; + border-color: var(--grey); +} + +.frm-page-break::after { + right: 0; +} + +#frm-fake-page .frm-page-break { + border-color: var(--grey); +} + +#frm-fake-page { + padding: 0 5px; +} + +.frm_sorting li.edit_field_type_divider:hover, +.frm_sorting li.edit_field_type_divider.selected { + border-left-color: var(--primary-500); +} + +/** + * Component: Page Collapsed + */ +.frm-section-collapsed::after { + border-color: transparent !important; + color: transparent; +} + +.frm-page-break .frm-collapse-page.button { + margin-left: 46%; + margin-top: -16px; + padding: 6px 12px !important; +} + +#frm-fake-page.frm-page-collapsed { + margin-bottom: 0; +} + +.frm-page-collapsed { + position: relative; + overflow: visible !important; + margin-bottom: var(--gap-lg); +} + +.frm-collapse-page .frmsvg, +.frm-collapse-page .frm_arrowdown6_icon { + width: var(--text-sm); + height: var(--text-sm); + font-size: var(--text-sm); + text-align: center; + margin-left: 2px; + color: currentColor; + transition: transform 300ms ease-in-out; +} + +.frm-page-collapsed .frm-collapse-page .frmsvg { + transform: rotate(180deg); +} + +#frm-fake-page .frm_arrowdown6_icon { + color: currentColor; +} + +.frm-collapsed i::before, +.frm-page-collapsed .frm_arrowdown6_icon::before { + content: "\e913"; +} + +.frm-collapse-section svg { + fill: var(--primary-color); + transition: transform 0.2s ease-out, fill 0.2s ease-out; +} + +.frm-collapse-section:hover svg { + fill: var(--primary-700); +} + +.frm-section-collapsed .frm-collapse-section svg { + transform: rotate(-90deg); +} + +.open .widget-top .widget-title-action button .frmsvg { + transform: rotate(90deg); +} + +.widget-top .widget-title-action button .frmsvg use { + color: var(--grey); +} + +.frm-collapsed + .frm-collapse-me { + overflow: hidden !important; +} + +.frm-collapse-me { + padding-bottom: 10px; +} + +.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect) { + position: relative; + z-index: 1; +} + +.frm-collapsed + div { + height: 0; + padding: 0; +} +.frm-collapsed + div.frm-collapse-me { + display: none; +} + +.frm-collapsible { + display: flex; + justify-content: space-between; + align-items: center; + font-weight: 700; + padding: var(--gap-xs) 0; + margin: 0; + cursor: pointer; + /* prevent text selection */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.frm-collapsible.frm-collapsed { + font-weight: 400; +} +.frm-collapsible:not(.frm-collapsed) .frmsvg { + transform: rotate(-180deg); +} +h4.frm-collapsible { + font-size: var(--text-md); +} + +.frm-collapsible + .frm-collapse-me { + padding-bottom: 0; +} +.frm-collapsible:focus-visible { + outline: 1px solid var(--primary-500); +} + +/** + * Divider Labels + */ +.frm_sorting .divider_section_only > .frm_ipe_field_label { + font-size: 116%; +} + +#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button { + width: 150px; + text-align: center; + margin-bottom: 3px; + display: block; +} + +tr.frm_options_heading td { + padding-bottom: 0; +} + +.frm_sorting .widget-inside .form-table td p, +.frm_sorting .widget-inside .form-wrap label { + padding: 10px 0; +} + +/** + * Empty Fields + */ +.frm_no_fields, +.frm_no_section_fields { + text-align: center; + position: absolute; + color: var(--medium-grey); + font-size: var(--text-md); + box-sizing: border-box; + border: 1px dashed var(--grey-300); + outline: 2px solid transparent; +} + +.frm-over-droppable + .frm_no_fields { + border-style: solid; + border-color: var(--primary-500); + outline-color: var(--primary-500); +} + +.frm_no_section_fields { + display: none; + margin: 0; + padding: 20px 0 0; + width: calc(100% - 20px); + height: 121px; + transition: all 0.4s linear; +} + +.frm-empty-fields .frm_updated_message ~ .frm_no_fields { + top: 60px; +} + +#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields > .frm_field_box:last-child { + visibility: hidden; +} + +.frm-has-fields .frm_no_fields { + display: none; +} + +#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder { + display: none; +} + +#frm-form-button { + display: none; + margin: 0 7px 25px; +} + +.frm-has-fields #frm-form-button { + display: block; +} + +.frm-large-plus.frmsvg { + color: var(--primary-700); + height: 45px; + width: 45px; +} + +.frm_no_section_fields p { + color: var(--grey); + font-size: 15px; +} + +.frm_no_fields { + top: 0; + width: calc(100% - 24px); + min-height: 320px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: var(--gap-md); + padding: var(--gap-md); + border: 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); + border-radius: var(--medium-radius); + margin: var(--gap-sm) 12px; +} +.frm_no_fields img { + margin-left: calc(-1 * var(--gap-lg)); +} +.frm_no_fields .frm_drag_inst { + font-size: 20px; + font-weight: 600; + margin: 0 0 12px; +} +.frm_no_fields p { + color: var(--grey-600); + font-size: var(--text-md); + margin: 0; +} + +/** + * Product Fields + */ +.frm_product_price_wrapper { + display: inline-block; + vertical-align: middle; +} + +.frm_prod_type_single .frm_product_price_wrapper { + width: 100%; +} + +#new_fields .frm_product_price_wrapper input:first-child { + width: 60% !important; + float: left; +} + +#new_fields .frm_product_price_wrapper input:nth-child(2) { + width: 37% !important; + float: right; +} + +/** + * Field Choices + */ +li.frm_single_option { + padding-bottom: var(--gap-sm); + border-bottom: 0; +} + +.frm_prod_type_single input[type=radio], +.frm_prod_type_single .frm_drag_icon, +.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3), +.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag, +.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product), +.frm_prod_type_single .frm-bulk-edit-link, +.frm_prod_type_user_def.frm_grid_container, +.frm_prod_options_heading.frm_prod_user_def { + display: none; +} + +.frm_prod_type_single .frm-ai-generate-options-modal-trigger { + display: none !important; +} + +.frm_prod_type_single .frm_option_key { + margin-left: 0 !important; +} +.frm_prod_type_single .frm_option_key input[type=checkbox] + input[type=text], +.frm_prod_type_single .frm_option_key input[type=radio] + input[type=text] { + margin-left: 0 !important; +} + +.plugin-card-bottom .frm-trash { + color: #a00; +} + +/** + * Field Labels + */ +.frm-fields p > .frm_inline_label, +.frm_inline_label { + padding-left: 3px; + margin-right: 12px; + display: inline-block; +} + +.frm_left_label { + clear: both; + float: left; + width: 32% !important; + margin-right: 2% !important; + line-height: 2em; +} + +table td.frm_left_label { + float: none; + line-height: inherit; + padding: 5px 0 5px 2%; +} + +.frm_left_label.frm_alignright { + padding-right: 10px; + text-align: right; +} + +.frm-fields .frm_left_label + textarea, +.frm-fields .frm_left_label + select, +.frm-fields .frm_left_label + input[type=text], +.frm_with_left_label { + width: 66%; +} + +td.frm_left_label + td { + width: 66%; + padding-top: 0; +} + +#html_settings label { + display: block; +} + +#html_settings .frm_field_html_box { + width: 100%; +} + +.frm-has-required .frm-required { + color: var(--error-500); +} + +/** + * Category Tabs + */ +ul.frm-category-tabs { + margin-top: 2px; +} + +.frm-category-tabs > li a, +.frm-category-tabs > li a:active { + outline: none; + box-shadow: none; + display: flex; + gap: var(--gap-xs); + align-items: center; +} + +.frm-category-tabs > li.active .frmsvg, +.frm-category-tabs > li.active i, +.frm-category-tabs > li.active span, +.frm-category-tabs > li.active a { + color: var(--primary-500); +} + +.frm_wrap .manage-menus { + margin-top: 0; + border: none; + border-bottom: 1px solid var(--grey-300); + background: var(--lightest-grey); +} + +.general_settings .postbox .manage-menus { + border-top: none; + border-left: none; + border-right: none; +} + +.frm-postbox-no-h3 { + padding-top: 10px; +} + +/** + * Components : UI State Defaults + */ +.frm-right-panel .ui-state-default, #postbox-container-1 .ui-state-default { + color: var(--grey-900); +} + +.no_repeat_section .frm_sorting > li.ui-state-default.edit_field_type_end_divider:hover { + box-shadow: none; +} + +.frm-selected-field-group li.ui-state-default, +.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected, +.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover, +.frm_sorting li.ui-state-default.frm_not_divider:hover, +.frm_sorting li.ui-state-default.ui-sortable-helper, +.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover, +.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover, +.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only, +.frm_update_msg, +.frm_sorting li.ui-state-default.frm_not_divider.selected, +.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only { + border-color: var(--primary-500); + transition: 0.5s border-color ease-in-out; +} + +.frm_sorting li.ui-state-default.frm_not_divider.selected { + box-shadow: 0 0 1px 0 var(--primary-500); +} + +.frm_sorting li.ui-state-default { + transition: 0.7s box-shadow ease-in-out, 0.7s height linear; +} + +.frm_sorting li.ui-state-default.frm-newly-added { + box-shadow: inset 0 0 2px 1px var(--blue-border); +} + +.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { + visibility: visible !important; + display: inline !important; +} + +.edit_field_type_end_divider > label { + display: none !important; +} + +/** + * Update Message + */ +.frm_email_actions.feature-filter { + font-weight: 700; + border: 1px solid #DFDFDF; + background-color: #EEE; + padding: 3px 5px 2px; + font-size: var(--text-md); + line-height: 20px; +} + +.frm_update_msg { + border-style: solid; + margin: 10px 0; + color: #21759B; + padding: 8px 15px; + border-radius: 4px; +} + +.frm_update_msg.wrap { + margin: 10px 20px 0 2px; +} + +#frm-insert-fields-box .frm_update_msg { + margin-right: 0.9em; +} + +.frm_update_msg a { + font-weight: 700; +} + +.widefat td { + width: auto; +} + +.widefat .column-id { + width: 3.7em; +} + +.widefat .column-show_count { + width: 5em; +} + +.widefat .column-shortcode { + width: 9em; +} + +/** + * Admin Columns + */ +.toplevel_page_formidable .column-shortcode div { + display: flex; + gap: var(--gap-xs); +} + +.widefat .column-entries, .widefat .column-link { + width: 10%; + text-align: center; +} + +.widefat .column-form_key, .widefat .column-created_at { + width: 10%; +} + +.frm-white-body .search-box, +.frm_wrap .frm-search { + float: right; + margin: 0; + clear: right; +} + +.frm-white-body .search-box, +.frm-search { + min-width: 32%; + position: relative; + display: flex; + gap: var(--gap-sm); + align-items: center; +} + +.frm-inline-modal .frm-search, +#frm_adv_info .frm-search { + float: none; + width: 100%; + clear: both; + margin: var(--gap-xs) 0; +} + +/** + * Button Group + */ +.frm-button-group a { + margin: 0 7px !important; +} + +/** + * Input Icons + */ +.frm_has_textarea .frm-with-right-icon { + display: block; +} + +.frm-with-left-icon, +.frm-with-right-icon { + position: relative; +} + +i.frm-show-box, +i.frm-show-inline-modal, +.frm-with-left-icon i, +.frm-with-right-icon i:not([class*=mce-]), +.frmsvg.frm-show-box, +.frmsvg.frm-show-inline-modal, +.frm-with-left-icon .frmsvg, +.frm-with-right-icon .frmsvg, +.frm-search > .frmsvg, +.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { + position: absolute; + padding: 0 14px; + pointer-events: none; + left: 0; + color: var(--grey-400); + font-size: var(--text-xs); +} + +.frm-search > .frmsvg, +.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { + padding-left: var(--gap-xs); + padding-right: var(--gap-xs); +} + +.frm-search > .frmsvg { + box-sizing: unset; +} + +.frm-with-right-icon .frmsvg, +.frm-with-right-icon i:not([class*=mce-]) { + right: 0; + top: -3px; + left: auto; + padding: 0 10px 0 5px; +} + +.frm_form_settings .frm-with-right-icon .frmsvg { + top: 0; +} + +.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg, +#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg { + top: auto; + bottom: var(--gap-sm); +} +.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg, +#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg { + bottom: var(--gap-lg); +} + +.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg { + top: auto; + bottom: 6px; +} + +.frmsvg.frm-show-box, +.frmsvg.frm-show-inline-modal, +i.frm-show-box, +i.frm-show-inline-modal { + top: auto; + background-color: var(--primary-50); + color: var(--primary-500); + border-radius: 6px; + padding: var(--gap-2xs); + margin: 5px; /* input height - svg / 2 */ + margin-bottom: 0; + z-index: 1; + cursor: pointer; + pointer-events: initial; +} +.frmsvg.frm-show-box:focus, +.frmsvg.frm-show-inline-modal:focus, +i.frm-show-box:focus, +i.frm-show-inline-modal:focus { + outline: 1px solid var(--primary-500); +} + +/** + * Inline Modals + */ +.frm-open + .frm-inline-modal { + top: -10px; + margin-bottom: 0; +} +.frm-open + .frm-inline-modal.frm-modal-no-dismiss .inside > .frm-search:first-child { + margin-top: var(--gap-sm); +} + +.frm_grid_container > .frm-open + .frm-inline-modal { + top: -4px; +} +.frm_grid_container > .frm-open + .frm-inline-modal.frm-modal-no-dismiss { + top: 0 !important; +} + +/** + * Input Positioning + */ +.frm-with-left-icon input { + padding-left: 37px !important; +} + +.frm_wrap .frm-with-right-icon textarea, +.frm_wrap .frm-with-right-icon input, +.frm_wrap .frm-with-right-icon input[type=text] { + padding-right: var(--gap-md); +} + +#frm-show-fields .frm-with-left-icon .frmsvg, +#frm-show-fields .frm-with-left-icon i { + padding-top: 10px; +} + +/** + * Search Inputs + */ +.frm-search input[name=s], +.frm-search .dropdown-toggle, +.frm-search input.frm-search-input { + color: var(--grey-800); + border-color: var(--grey-300); + border-radius: var(--small-radius); + box-shadow: var(--box-shadow-xs); +} +.frm-search input[type=search], +.frm-search input[type=text] { + padding-left: var(--gap-lg) !important; +} +.frm-search .dropdown-toggle { + width: 100%; + float: none; + max-width: 200px; + background: transparent; + padding: 7px; + padding-left: 33px !important; + min-height: 32px; + text-align: inherit; + overflow: hidden; + text-overflow: ellipsis; +} +.frm-search #search-submit a { + color: var(--grey-800); +} +.frm-search #search-submit .caret { + opacity: 0.7; +} + +.frm-white-body .search-box input[name=s], +#wpwrap .frm-search input[type=search] { + flex: 1; + font-size: var(--text-md); + line-height: var(--text-xl); + padding: var(--gap-xs); +} + +span.multiselect-selected-text { + white-space: nowrap; + display: inline-block; + max-width: calc(90% - var(--gap-xs)); + text-overflow: ellipsis; + overflow: hidden; +} + +/** + * Not Set Fields + */ +.frm-not-set input { + color: var(--primary-500) !important; + font-size: 13px; +} + +.frm-not-set .frmsvg, +.frm-not-set i { + color: var(--primary-700); + opacity: 1; +} + +/** + * Shortcode Select + */ +.post-type-frm_display select[name=m] + #post-query-submit, +select[name=m] { + display: none; +} + +.frm_shortcode_select optgroup option { + margin-left: 1em; +} + +.frm_shortcode_select optgroup { + padding-top: 5px; +} + +.frm_shortcode_select .frm_subopt { + margin-left: 2em; +} + +.misc-pub-section a.edit-frm_shortcode, .misc-pub-section a.edit-form-status { + float: none; + font-size: 13px; +} + +.frm-grid { + border-collapse: collapse; + border: none; + margin-right: 10px; +} + +.frm-grid td, .frm-grid th { + padding: 5px; + border: 1px solid black; +} + +/** + * View Page Admin + */ +.post-type-frm_display #poststuff #post-body.columns-2 { + margin-right: var(--big-sidebar); +} + +.post-type-frm_display #post-body.columns-2 #postbox-container-1 { + margin-right: calc(var(--big-sidebar) * -1); + width: calc(var(--big-sidebar) - 40px); +} + +.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables { + width: 100%; +} + +#frm_dyncontent .hndle, +#frm_dyncontent .handlediv { + display: none !important; +} + +.post-type-frm_display .meta-box-sortables .frm_form_nav > li > a, +.post-type-frm_display .frm_form_nav .nav-tab-active { + padding: 0 2px 5px; + line-height: 1.4; +} + +.post-type-frm_display #advanced-sortables h2.hndle, +.post-type-frm_display #side-sortables h2.hndle, +.post-type-frm_display #normal-sortables h2.hndle { + border-bottom: 1px solid var(--grey-300); + margin: 10px 0 0 !important; + padding: 0 25px 8px; +} + +.post-type-frm_display #side-sortables h2.hndle { + margin-top: 0 !important; + padding-top: 10px; +} + +.post-type-frm_display #post-body-content { + margin-top: var(--gap-lg); +} + +.post-type-frm_display.edit-php #wpbody-content > .wrap { + margin: 0; +} + +.post-type-frm_display .postbox .hndle, +.post-type-frm_display .postbox { + border-color: var(--grey-300); +} + +.post-type-frm_display #postbox-container-1 .postbox, +.post-type-frm_display #postbox-container-2 .postbox { + border-radius: var(--small-radius); + border-color: var(--grey-300); + box-shadow: none; +} + +.post-type-frm_display #side-sortables .postbox { + border-radius: 0; + border-top-width: 0; + margin-bottom: 0; +} + +.post-type-frm_display #side-sortables .misc-pub-section { + padding: 15px 20px 10px; +} + +/** + * View Page Admin Icons + */ +.post-type-frm_display .misc-pub-section .frmsvg, +.post-type-frm_display #post-body .misc-pub-post-status::before, +.post-type-frm_display #post-body #visibility::before, +.post-type-frm_display .curtime #timestamp::before, +.post-type-frm_display #post-body .misc-pub-revisions::before, +.post-type-frm_display span.wp-media-buttons-icon::before { + color: var(--grey); +} + +.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #publishing-action, +.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #minor-publishing-actions, +.post-type-frm_display #frm_top_bar + #poststuff #edit-slug-box, +.post-type-frm_display .wrap h1.wp-heading-inline, +.post-type-frm_display .wrap > .page-title-action { + display: none; +} + +/** + * View Page Admin Tabs + */ +.post-type-frm_display #poststuff h2.nav-tab-wrapper { + padding-left: 10px; + margin-bottom: 0; + padding-bottom: 0; +} + +.post-type-frm_display .nav-menus-php .wrap { + margin: 10px 0 0; +} + +.post-type-frm_display .nav-menus-php .wrap p { + padding-left: 12px; + padding-right: 12px; +} + +.post-type-frm_display .nav-tab { + display: inline-block; + background-color: #f4f4f4; +} + +.post-type-frm_display .nav-tab.frm_hidden { + display: none; +} + +.post-type-frm_display .nav-tab:hover { + background-color: #e4e4e4; +} + +/** + * Order/Where Rows + */ +.frm_order_row, +.frm_where_row { + margin-bottom: 7px; + line-height: 30px; +} + +.frm-single-settings .frm_prod_field_opt_cont { + margin-top: initial; + margin-bottom: 20px; +} + +/** + * Editor Elements + */ +/*hide elements if js is avail*/ +select.texture { + display: none; +} + +.post-type-frm_display #wp-content-editor-tools, +#wp-content-editor-tools { + background-color: transparent; +} + +.post-type-frm_display #major-publishing-actions { + border-color: var(--grey-300); + background: var(--sidebar-color); +} + +/** + * Advanced Info Panel + */ +.post-type-frm_display #frm_adv_info { + width: calc(var(--big-sidebar) - 40px); + height: calc(100vh - 32px); + overflow: hidden; +} + +.post-type-frm_display #frm_adv_info:not(.frm_fixed) { + top: 0 !important; +} + +.post-type-frm_display #frm_adv_info.frm_fixed { + position: fixed; + z-index: 9999; + top: 32px; +} + +.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover { + max-height: calc(100vh - 180px); +} + +/** + * Column Layout + */ +.frm_col_one { + margin-right: 4%; + clear: both; +} + +ul .frm_col_one { + float: left; +} + +ul .frm_col_two { + float: right; +} + +ul.frm_two_col { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: var(--gap-sm); +} + +.frm_two_col li { + margin-bottom: 0; +} + +/** + * Component: Info Modals + */ +.frm-info-modal a, +.frm-info-modal ul, +.frm-info-modal p, +.frm-info-modal, +.settings-lite-cta a, +.settings-lite-cta ul, +.settings-lite-cta { + color: var(--grey-500); + font-size: var(--text-md); + box-shadow: none !important; +} + +.frm-info-modal h3, +.settings-lite-cta h3 { + font-size: 17px !important; +} + +.frm-green-icons .frmsvg { + color: var(--green); +} + +.frm-info-modal .postbox .inside, +.settings-lite-cta .postbox .inside { + padding: var(--gap-md); + margin: 0; +} + +.cta-inside a { + color: var(--orange); +} + +.info-modal-inside a.frm-standard-link { + color: var(--primary-500); +} + +.info-modal-inside a.frm-standard-link:hover { + color: var(--primary-700); +} + +.frm_no_p_margin > p { + margin: 0; +} + +/** + * Component: Code List + */ +.frm_code_list a.button { + display: block; + text-align: center; + font-size: 11px; + overflow: hidden; +} + +#frm-navbarDrop + .frm_code_list.frm-full-hover { + margin: var(--gap-xs) 0 0; + min-width: 300px; + max-height: 256px; +} + +.frm_code_list.frm-full-hover li { + margin: 0; +} + +.frm-select-list-item, +.frm_wrap .ui-autocomplete li > div, +.multiselect-container button.multiselect-option, +.frm-dropdown-menu > .dropdown-item > a, +.frm-dropdown-menu > .dropdown-item > a:visited, +.frm-dropdown-menu > .dropdown-item > a:link, +.frm-dropdown-menu .frm_dropdown_li, +.frm_code_list.frm-full-hover a { + display: flex; + color: var(--grey-700); + padding: 5px 10px; + font-size: var(--text-md); + gap: var(--gap-xs); + align-items: center; +} + +.multiselect-container button.multiselect-option.disabled { + opacity: 0.5; +} + +.frm_code_list.frm-full-hover a span { + max-width: 83px; + margin-right: var(--gap-xs); + margin-left: auto; +} + +.frm_code_list.frm-full-hover a { + border-radius: var(--small-radius); +} +.frm_code_list.frm-full-hover a:not(#frm-insert-condition), +.frm_code_list.frm-full-hover a span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.frm_code_list.frm-full-hover a:focus span:last-child { + outline: 1px solid var(--primary-500); + outline-offset: var(--gap-2xs); +} + +.frm_code_list.frm-full-hover.frmcenter a { + display: block; +} + +#frm-layout-classes frm-full-hover a span { + max-width: 45%; +} + +.frm-select-list-item.active, +.frm-select-list-item:hover, +.frm_wrap .ui-autocomplete li div.ui-state-active, +.frm_wrap .ui-autocomplete li.ui-state-focus, +.multiselect-container button.multiselect-option.active, +.multiselect-container button.multiselect-option:hover, +.frm-dropdown-menu > .dropdown-item > a:hover, +.frm_code_list.frm-full-hover a:hover span, +.frm_code_list.frm-full-hover a:hover { + background: var(--primary-25); + color: var(--primary-500); +} + +.frm-select-list-item .frmsvg, +.frm-dropdown-menu > .dropdown-item > a .frmsvg { + opacity: 0.8; +} + +.frm-select-list-item:hover .frmsvg, +.frm-dropdown-menu > .dropdown-item > a:hover .frmsvg { + opacity: 1; +} + +.frm-dropdown-menu.frm_code_list > li > a { + padding: 3px 15px; + width: 300px; +} + +#frm_edit_box_content_modal .frm-with-search, +.frm-dropdown-menu .frm-with-search { + padding: var(--gap-xs) 10px 0; +} + +.frm-dropdown-menu .subsubsub { + padding: 0 10px; +} + +.frm_grid_container { + overflow: visible; +} + +.frm_code_list.frm_grid_container { + grid-gap: var(--gap-xs); +} + +.frm_code_list.frm_grid_container li { + width: auto; + margin: 0; +} + +.frm_code_list.frm_grid_container a { + display: block; + font-size: var(--text-md) !important; + font-weight: 500; + text-align: center; + color: var(--primary-500); + background-color: var(--light-blue); + border: 1px solid var(--primary-300); + border-radius: var(--small-radius); + padding: 10px 0; + box-shadow: var(--box-shadow-sm); +} +.frm_code_list.frm_grid_container a:hover { + background-color: var(--primary-500); + color: #fff; +} +.frm_code_list.frm_grid_container a:focus-visible { + outline: 2px solid var(--primary-500); + outline-offset: -1px; +} + +.frm-single-settings .frm_code_list.frm-full-hover, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { + padding: 0; + margin: var(--gap-xs) -10px 0; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a { + font-size: var(--text-md); + color: var(--grey-900); + padding: var(--gap-xs) 12px; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a span, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span { + margin: 0; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a span:first-child, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:first-child { + max-width: 130px; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a span:last-child, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:last-child { + max-width: 120px; + margin-left: auto; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover { + font-weight: 500; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover .frmsvg, +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover span, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover .frmsvg, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover span { + color: var(--primary-500); +} + +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { + margin: var(--gap-xs) 0 0; +} +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg { + width: 20px; + height: 20px; +} + +/** + * Component: Insert Fields + */ +.frm_field_list #frm-insert-fields { + max-height: none; + font-size: var(--text-sm); +} +.frm_field_list #frm-insert-fields .button a { + display: block; + max-width: 95%; + overflow: hidden; +} + +#frm-insert-fields { + padding: 0 var(--gap-xs); + overflow: hidden; +} +#frm-insert-fields .frm-search { + float: none; + margin: 0 0 var(--gap-md); + width: auto; +} +#frm-insert-fields li { + /* Prevents advanced fields from always appearing in search results */ +} +#frm-insert-fields li, +#frm-insert-fields li a { + text-decoration: none; + font-weight: 500; + font-size: var(--text-md) !important; + color: var(--grey-900); +} +#frm-insert-fields li.frm_show_upgrade { + cursor: pointer; + opacity: 0.5; +} +#frm-insert-fields li span:not(.frm-new-pill) { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: left; +} +#frm-insert-fields li a.disabled:hover { + cursor: not-allowed; +} +#frm-insert-fields li.ui-draggable-disabled { + opacity: 0.5; +} +#frm-insert-fields li a:not(.disabled):hover .frmsvg, +#frm-insert-fields li a:not(.disabled):hover i { + color: var(--grey-600); +} +#frm-insert-fields li.frm_show_upgrade, +#frm-insert-fields li a { + text-decoration: none; + display: inline-flex !important; + gap: var(--gap-xs); + align-items: center; + border-radius: var(--small-radius) !important; + padding: 11px var(--gap-md) 11px var(--gap-xs) !important; + color: var(--grey-900) !important; +} +#frm-insert-fields li a { + display: flex !important; + transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out; +} +#frm-insert-fields li a:not(.disabled):hover { + background: #fff; + box-shadow: var(--box-shadow-md); +} +#frm-insert-fields li a:focus-visible { + outline: 1px solid var(--primary-500); +} +#frm-insert-fields li.frm_show_upgrade.frm_hidden { + display: none !important; +} +#frm-insert-fields .frm-with-line { + padding: 12px var(--gap-md); + font-weight: 500; + font-size: var(--text-sm); +} +#frm-insert-fields .frm-with-line::before { + margin-left: calc(-1 * var(--gap-sm)); + width: calc(100% + var(--gap-md)); +} + +.frm_code_list { + clear: both; +} +.frm_code_list.frm-full-hover a.frm_hidden, +.frm_code_list .frmkeys { + display: none; +} + +.frmsvg { + fill: currentColor; + width: 18px; + height: 18px; + vertical-align: middle; +} +.frmsvg svg { + pointer-events: none; +} +.frmsvg.frm_svg40 { + width: 40px; + height: 40px; +} +.frmsvg.frm_svg24 { + width: 24px; + height: 24px; +} +.frmsvg.frm_svg20 { + width: 20px; + height: 20px; +} +.frmsvg.frm_svg15 { + width: 15px; + height: 15px; +} +.frmsvg.frm_svg14 { + width: 14px !important; + height: 14px !important; +} +.frmsvg.frm_svg13 { + width: 13px; + height: 13px; +} +.frmsvg.frm_svg12 { + width: 12px; + height: 12px; +} +.frmsvg.frm_svg9 { + width: 9px; + height: 9px; +} + +input[disabled] { + pointer-events: none; +} + +.frmbutton.ui-sortable-helper .frmsvg, +.field_type_list li.frmbutton .frmsvg, +.frmbutton.ui-sortable-helper i, +.field_type_list li.frmbutton i, +.frm_code_list a .frmsvg, +.frm_code_list a i { + color: var(--grey-500); + display: inline-block; + vertical-align: middle; + width: var(--text-md); + font-size: var(--text-md); +} + +.field_type_list.frm_grid_container { + gap: 10px; + margin: 13px 0; +} +.field_type_list li { + margin: 0; + padding: 0; +} +.field_type_list li.frmbutton .frmsvg { + width: 24px; + height: 24px; + font-size: 24px; +} + +.frm_code_list i::before { + font-size: inherit; +} + +/* Icon while dragging */ +.frmbutton.ui-draggable-dragging { + pointer-events: none; +} +.frmbutton.ui-draggable-dragging a { + color: var(--grey-900) !important; + background: var(--grey-100); + text-decoration: none; + display: inline-flex !important; + gap: var(--gap-xs); + align-items: center; + border-radius: var(--small-radius) !important; + padding: 11px var(--gap-md) 11px var(--gap-xs) !important; + box-shadow: var(--box-shadow-md); +} + +/** + * Component: Field Dragging + */ +.frmbutton.ui-draggable-dragging a { + border: 1px solid var(--grey-300); + box-shadow: var(--box-shadow-md); +} + +.frmbutton.ui-draggable-dragging span { + font-size: 15px; +} + +#frm-show-fields .frmbutton.ui-sortable-helper i, +.frmbutton.ui-draggable-dragging i, +.frmbutton.ui-draggable-dragging .frmsvg { + color: #fff !important; +} + +.frmbutton.ui-draggable-dragging i, +.frmbutton.ui-draggable-dragging .frmsvg { + color: var(--grey-700) !important; +} + +.frm_sorting li.ui-state-default.ui-sortable-helper, +.frmbutton.ui-sortable-helper { + transition: opacity 0.2s; + opacity: 1; + position: fixed; + z-index: 99999; +} + +#frm-insert-fields .frmbutton.ui-sortable-helper a, +#frm-show-fields .frmbutton.ui-sortable-helper a { + min-width: 100px; +} + +/* End dragging */ +li.frm_noallow.button, +.frm_noallow { + opacity: 0.5; +} + +.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before, +li.frm_noallow.button.frm_show_upgrade { + cursor: pointer; +} + +.field_type_list li.frm_noallow.button.frm_show_upgrade:hover { + border-color: inherit; +} + +.frm_noallow a { + color: inherit; +} + +/** + * Component: Upgrade Modal + */ +#frm_upgrade_modal_image { + max-width: 200px; +} + +#frm_upgrade_modal .frm-upgrade-message img { + margin-top: 10px; + width: 100%; +} + +/** + * Layout: Reports Info + */ +.frm-tab-message { + max-width: 600px; + margin: 20px auto; + color: rgba(63, 75, 91, 0.8); +} + +.frm-settings-screenshot-toolbar { + min-height: 39px; + display: flex; +} + +.frm-settings-screenshot-toolbar .frm-minmax-icon { + height: 8px; + width: 8px; + border-radius: 50%; + align-self: center; + margin-left: 10px; +} + +.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type { + margin-left: 20px; +} + +.frm-settings-screenshot-toolbar img { + object-fit: contain; + align-self: flex-end; + margin-left: 25px; +} + +.frm-settings-screenshot-toolbar + div { + background: #fff; + padding-top: 25px; + border-radius: 0 0 16px 16px; +} + +.frm-settings-screenshot-toolbar + div img { + max-width: calc(100% - 40px); +} + +.frm-settings-screenshot-wrapper { + max-width: 700px; + margin: 50px auto 0; + box-shadow: 0 4px 4px rgba(189, 196, 205, 0.25), 0 12px 56px rgba(42, 57, 75, 0.25); + border-radius: 16px; + background: #EBECF1; +} + +/** + * Component: Dialog + */ +.frm-dialog { + z-index: 100; + padding: 0 !important; + border-radius: 16px; + border: none; + background-color: #fff; + max-width: 100% !important; +} + +.frm-dialog .postbox { + background: transparent; + box-shadow: none; + border: none; + line-height: var(--leading); +} + +.frm-dialog input[type=text], +.frm-dialog textarea { + font-size: var(--text-md); +} + +.frm-dialog textarea { + height: 75px; +} + +.frm-dialog button.frm-button-primary { + margin-right: 10px; +} + +.frm-dialog .frm-sub-label, +.frm-sub-label { + color: var(--grey); + text-transform: none; + padding-left: 8px; +} + +h2 .frm-sub-label { + font-size: var(--text-md); +} + +.frm-views-editor-body .ui-widget-overlay, +.frm-white-body .ui-widget-overlay, +.toplevel_page_formidable .ui-widget-overlay, +body[class*=formidable-payments] .ui-widget-overlay, +body.plugins-php .ui-widget-overlay { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: var(--grey-500); + opacity: 0.5; + z-index: 2; +} + +/** + * Component: Circled Icons + */ +.frm-circled-icon { + width: 60px; + height: 60px; + border-radius: 50%; + background-color: var(--primary-25); +} + +.frm-circled-icon-large { + width: 80px; + height: 80px; +} + +.frm-circled-icon-green { + background-color: var(--success-50); +} + +.frm-circled-icon .frmsvg { + width: 21px; + height: 24px; +} + +.frm-circled-icon-large .frmsvg { + width: 24px; +} + +.frm-circled-icon .frmsvg use { + color: var(--primary-500); +} + +.frm-circled-icon-green .frmsvg use { + color: var(--success-500); +} + +.frm-border-icon { + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); +} + +.frm-upgrade-message img { + max-width: 100%; +} + +/** + * Component: Link Styles + */ +a.frm-link-secondary { + color: #c4c4c4; + font-size: var(--text-sm); + text-decoration: underline; +} + +.field_type_list li.button.frm_noallow, +.field_type_list li.button.frm_noallow:hover, +.button.frm_noallow, +.button.frm_noallow:hover { + color: inherit; + border-color: #ccc; + background: inherit; +} + +iframe#dyncontent_ifr { + min-height: 150px; +} + +/*! * Bootstrap v4.6.1 - */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.wp-core-ui .frm_grey.frm-button-primary.disabled,.wp-core-ui .frm_grey.frm-button-primary,#frm-welcome .frm_grey{opacity:.5;background:#f6f6f6 !important;border-color:#ddd !important;color:#9fa5aa !important}.windows::-webkit-scrollbar,.windows ::-webkit-scrollbar{width:7px;background:rgba(0,0,0,0)}.windows::-webkit-scrollbar-thumb,.windows ::-webkit-scrollbar-thumb{background:var(--grey-300);-webkit-border-radius:var(--border-radius);-webkit-box-shadow:none}.windows::-webkit-scrollbar-corner,.windows ::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.frm-scrollbar-wrapper,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list,#frm_builder_page #frm_adv_info .frm_code_list,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div,.frm-single-settings .frm_field_opts_list{overflow-x:hidden;overflow-y:auto !important;-ms-overflow-style:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.frm-scrollbar-wrapper:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover,#frm_builder_page #frm_adv_info .frm_code_list:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover,.frm-single-settings .frm_field_opts_list:hover{scrollbar-color:var(--grey-300) rgba(0,0,0,0)}.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb{background:var(--grey-300)}.frm-scrollbar-wrapper::-webkit-scrollbar,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar{width:3px}.frm-scrollbar-wrapper::-webkit-scrollbar-track,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-track,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover{background:var(--grey-300)}.rtl h3{font-weight:inherit !important}.rtl.js .accordion-section-title::after{left:10px;right:auto}.rtl #frm_top_bar #frm_bs_dropdown{padding-left:15px}.rtl .frm-full-close,.rtl .frm_wrap .columns-2 .frm-right-panel+div,.rtl .frm-right-panel{border-left-width:0;border-right:1px solid var(--grey-300)}.rtl .frm-full-close{padding-left:0;padding-right:var(--gap-md)}.rtl .frm-text-right{text-align:left}.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child{border-left-width:1px}.rtl .frm-dropdown-menu{text-align:right}.rtl .frm_actions_dropdown .frm_icon_font{float:right;margin-right:0;margin-left:3px}.rtl #frm-insert-fields-box,.rtl #frm-conditionals{padding-right:.9em}.rtl #html_settings .frm_field_html_box{margin-right:0}.rtl .frm_list_entry_page h2{float:right}.rtl .frm_scale{float:right;margin-left:10px;margin-right:0}.rtl .frm-page-break .frm-collapse-page.button{margin-left:0;margin-right:46%}.rtl .frm-field-action-icons{right:unset;left:2px}.rtl .frm_has_shortcodes>i{right:auto;left:5px}.rtl p.frm_reply_to_container,.rtl p.frm_bcc_cc_container{float:left}.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg{right:auto;left:0}.rtl .frm-inline-modal>a.dismiss{left:13px;right:auto}.rtl.wp-admin .frm_wrap select{padding-left:var(--gap-lg) !important;padding-right:5px !important;background-position:left 11px top 55%}.rtl .frm_code_list.frm-full-hover a span{margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:unset;margin-right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:unset;margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline{left:unset !important;right:0}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first{right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last{right:calc(-1*var(--gap-xs))}.rtl .frm-unit-input .frm-input-group-suffix{right:unset;left:1px;padding-right:unset;padding-left:var(--gap-xs)}.rtl .frm-unit-input .frm-input-group-suffix select{text-align:left;background-position:left 0 top 50%;padding-left:21px !important}span.clear{display:block}.clearfix::after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:inline-block}.frm_form_fields .clear{height:auto}* html .clearfix{height:1%}.clearfix{display:block}#frm_small_device_message_container{display:none}@media only screen and (max-width: 1200px){.frm-addons{grid-template-columns:1fr 1fr}#frm_top_bar h1{min-width:0}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin:0}.frm_actions_list{margin-left:0}#frm_bs_dropdown .frm_bstooltip{display:none !important}}@media only screen and (max-width: 960px){.frm-white-body,.frm_wrap{--gap-sm: 8px;--gap-md: 16px;--gap-2xl: 24px}.frm-settings-panel{--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 32px}.auto-fold #adminmenuwrap{width:36px}.frm_wrap #postbox-container-1 #frm_adv_info{min-width:220px}p.howto{display:inline-block}.auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container,.auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container{left:36px}}@media only screen and (max-width: 850px){.frm-white-body,.frm_wrap{--biggest-sidebar: 350px;--big-sidebar: 350px}.frm_col_one{clear:none}.frm-fields p>.frm_inline_label,.frm_inline_label{display:block;margin:5px 0}#frm_top_bar h1{width:auto;max-width:200px}#frm-publishing{width:auto}#frm_form_editor_container,.frm-entry-container{margin:0 20px}.frm_wrap .frm-search{float:none !important;width:auto;clear:both}.post-type-frm_display #frm_adv_info{top:auto !important;position:static;width:auto}.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{min-width:275px}.frm_wrap #frm_adv_info ul.category-tabs li,.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border:none}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:12px}.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border-bottom:2px solid #5b9dd9;padding-bottom:8px}.post-type-frm_display #poststuff{padding:10px 25px}.post-type-frm_display #side-sortables .postbox{margin-bottom:20px;border-radius:var(--small-radius);border-top-width:1px}#frm_top_bar .frm_form_nav{box-shadow:0 -0.47px 10px 0 rgba(16,24,40,.0588235294)}#frm_top_bar ul.frm_form_nav{padding:1em 0;position:fixed;bottom:0;width:100%;background:#fff;z-index:99;transform:translate(-50%, 0);left:50%}.frm_page_container>.columns-2,#frm_styler_wrapper{padding-bottom:64px}#frm_style_preview .frm_floating_style_button:not(.frm_hidden){position:static;display:inline-block}.frm_wrap .columns-2 .frm-right-panel{padding-bottom:0}#frm-publishing{margin-left:auto}#frm_top_bar>.frm-full-close:last-child{margin-left:0}#frm_bs_dropdown{display:block}#frm_bs_dropdown .frm_bstooltip{display:block !important}}@media only screen and (max-width: 782px){.frm-white-body,.frm_wrap{--small-sidebar: 20%;--medium-sidebar: 35% }#form_settings_page .advanced_settings .form-table td,.form-table th{display:table-cell;width:auto !important}.frm-white-body #publishing-action,.frm_wrap #publishing-action{line-height:normal}.frm-white-body #screen-meta-links{display:none}.frm_wrap .misc-pub-section{padding:6px 0}.frm_wrap .misc-pub-section>a{float:none;white-space:nowrap}.frm-form-setting-tabs a{position:relative;padding:10px 5px 10px 40px}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{position:absolute;left:13px;top:calc(50% - 10px);margin:0}#frm-insert-fields .button,#frm-insert-fields .button a,.frmbutton.ui-sortable-helper a{line-height:26px;max-height:28px}a.frm_add_logic_link{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}a.frm_add_logic_link:not([id^=logic_]) .frmsvg,a.frm_add_logic_link i{display:none}#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 83px)}.frm_single_entry_page .frm_form_fields input[type=text],.frm_single_entry_page .frm_form_fields select,.frm_single_entry_page .frm_form_fields textarea{width:100%}.with_frm_style .frm_radio input[type=radio],.with_frm_style .frm_checkbox input[type=checkbox]{width:25px !important}.frm_single_entry_page .with_frm_style .frm_radio input[type=radio],.frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox]{width:18px !important}.wp-list-table.toplevel_page_formidable .column-entries,.wp-list-table.toplevel_page_formidable .column-form_key,.wp-list-table.toplevel_page_formidable .column-shortcode,.wp-list-table.toplevel_page_formidable .column-created_at{display:none !important}.wp-list-table.toplevel_page_formidable td.column-entries,.wp-list-table.toplevel_page_formidable td.column-form_key,.wp-list-table.toplevel_page_formidable td.column-shortcode,.wp-list-table.toplevel_page_formidable td.column-created_at{padding:3px 8px 3px 35%;text-align:left}#form_entries_page .wp-list-table th.frm_hidden,#form_entries_page .wp-list-table td.frm_hidden{display:none !important}.frm-white-body.auto-fold #wpcontent{padding-left:0}.frm_right_addon .frm_remove_field{bottom:11px}.frm-addons{grid-template-columns:1fr}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{left:0 !important}.frm_single_entry_page.frm_wrap .columns-2{display:block;border-bottom:none}.frm_single_entry_page .wrap.frm-with-margin{margin:10px 20px}.frm_single_entry_page #post-body-content+.frm-right-panel{width:auto;margin:0 20px;border:1px solid var(--sidebar-hover);border-radius:6px}#wp-content-media-buttons a.frm_insert_form{padding:0 var(--gap-sm)}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{width:1.2rem;height:1.2rem}}@media only screen and (max-width: 700px){.frm-white-body,.frm_wrap{--biggest-sidebar: 50%;--big-sidebar: 50%}}@media only screen and (max-width: 600px){.frm-white-body,.frm_wrap{--small-sidebar: 45px}.frm-form-setting-tabs a{visibility:collapse;font-size:0;padding:0 var(--gap-sm)}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{visibility:visible;position:initial;font-size:18px}#frm_builder_page #frm-insert-fields{padding:0}.frm_wrap #frm_adv_info ul.category-tabs li{display:inline-block;padding:0;margin:2px 0;border-bottom:2px solid rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li.tabs,.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:0;padding:0}.field_type_list li{text-align:center}#frm-insert-fields li a{padding:5px}#frm_form_editor_container .frm_primary_label{clear:both}#frm_builder_page .frm_code_list a.button{padding:2px}#frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:0;left:auto}.frm-right-panel h3.accordion-section-title{padding-right:10px;padding-left:10px;font-size:20px;white-space:nowrap;overflow:hidden}.frm-right-panel .accordion-section-title::before{margin-left:0;margin-right:3px}.rtl #frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:auto;left:0}.frm_on_submit_type svg{display:none}}@media only screen and (max-width: 475px){#frm_bs_dropdown{float:none}#frm-nav-tabs{padding:0;white-space:nowrap}#frm-nav-tabs a{margin-right:0}#frm_small_device_message_container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;width:100%;height:100%;z-index:999999;background:var(--primary-500)}#frm_small_device_message{text-align:center;display:flex;flex-direction:column;align-items:center;width:80%;padding:1rem;background:#fff;border:solid 1px #fff;border-radius:var(--medium-radius)}#frm_small_device_message::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-78%, -65%);width:900px;height:900px;background-color:#0d7dfc;border-radius:50%;z-index:-1;opacity:.3}#frm_small_device_message>svg{padding-bottom:1rem}.toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter,.post-type-frm_display:has(#frm_small_device_message_container) #posts-filter{display:none}}@media print{a,.misc-pub-section a{color:#000 !important}.add-new-h2,#frm_top_bar,.dashicons,#adminmenuwrap,#adminmenuback,#wphead,#button_bar,#submitdiv,.button-secondary,#screen-metas,#screen-meta-links,#footer,#wpfooter,.inner-sidebar,.frm_form_nav,.frm_flash_graph,.frm_no_print,object,.error{visibility:hidden;display:none !important}.widget,.postbox,.stuffbox,.postbox h3{border-width:0 !important;border-color:#fff}.postbox{background:#fff !important;border:none;position:static}.postbox h3,.postbox h4{background:#fff !important}#wpbody-content{float:none}#wpcontent,#post-body-content,.has-right-sidebar #post-body,#poststuff .columns-2{margin:0 !important}.frm_wrap #poststuff .columns-2{display:block}#post-body-content+.frm-right-panel,.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{border:none;width:auto;display:block;padding:20px}.frm_wrap .columns-2,.frm_wrap .frm_page_container{height:auto;display:block}.misc-pub-section>span{padding:0}.frm-right-panel .postbox .inside{padding-left:12px;padding-right:12px}.curtime #timestamp::before{display:none;content:none !important}.frm_charts .alignleft{float:none}.pg_odd,.pg_even{page-break-inside:avoid;max-width:600px}.form-table td,.form-table th{padding:0}.frm_file_container a{display:block;width:100%}}.frm-admin-page-styles #frm-publishing #save_menu_header,.frm-admin-page-styles2 #frm-publishing #save_menu_header{display:inline-block}.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first{order:2}.frm-video-wrapper iframe{width:100%;max-width:843px;border-radius:var(--border-radius)}#frm_field_group_popup{position:absolute;top:0;right:0;width:366px;max-height:231px;border-radius:8px;background:#fff;box-shadow:0 20px 48px rgba(40,47,54,.15);z-index:3;box-sizing:border-box;padding:24px 0;text-align:left}.rtl #frm_field_group_popup{text-align:right}.frm-merge-fields-into-row #frm_field_group_popup{top:unset;bottom:50px;height:196px}#frm_field_group_popup>hr{margin:12px 0}#frm_field_group_popup .frm-cancel-custom-field-group-layout,#frm_field_group_popup .frm-save-custom-field-group-layout{padding:4px 18px}#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover{border-color:var(--primary-500) !important;color:var(--primary-500);background-color:rgba(0,0,0,0) !important}.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group{display:none}.frm-merge-fields-into-row>a{color:rgba(40,47,54,.85);position:relative;top:2px}.frm-row-layout-title{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:27px}.frm-row-layout-option{background:#f6f7fb;box-sizing:border-box;border-radius:2px;padding:15px 10px}#frm_field_group_popup .frm-row-layout-option .frm_grid_container{grid-gap:0 5%;grid-template-columns:repeat(12, auto)}#frm_field_group_popup .frm-row-layout-option{cursor:pointer;border:2px solid rgba(0,0,0,0)}#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,#frm_field_group_popup .frm-row-layout-option:hover{border-color:var(--primary-500)}.frm-custom-field-group-layout,.frm-break-field-group{padding:4px 24px;cursor:pointer;font-size:var(--text-sm);line-height:19px;color:#484e54}.frm-custom-field-group-layout:hover,.frm-break-field-group:hover{background-color:rgba(245,245,245,.9607843137)}.frm-custom-field-group-layout svg,.frm-break-field-group svg{margin-right:5px}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}#frm_banner{width:100%;color:#fff;background:var(--primary-500);height:40px;line-height:40px;text-align:center;position:relative}.frm-banner-emoji{font-size:19px}.frm-banner-emoji,.frm-banner-title{margin-right:5px;vertical-align:top}.frm-banner-cta a{text-decoration:underline !important}#frm_banner .frm-banner-cta a.frm_inbox_dismiss{display:none}.frm-banner-dismiss{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.frm-banner-dismiss .frmsvg{vertical-align:top}.frm-ready-made-solution:not(.frm-search-result){display:none !important}#frm_leave_email_wrapper .frmsvg{top:0}#frm-add-my-email-address{margin-top:30px}.frm-ready-made-solution h3~a{color:var(--primary-500)}.frm-ready-made-solution img{max-width:100%;display:block;box-shadow:var(--box-shadow-lg)}.frm_single_on_submit_settings .frm_form_field{margin:22px 0}.frm_on_submit_type_setting{padding:8px 0}.frm_on_submit_type label{display:flex;border:1px solid var(--grey-border);border-radius:var(--small-radius);gap:16px;padding:16px;align-items:center;justify-content:center}.frm_on_submit_type input{opacity:0 !important;position:absolute;z-index:-1}.frm_on_submit_type input[type=radio]:checked+label{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}#form_settings_page .frm_on_submit_type label:hover,.frm_on_submit_type input[type=radio]:checked+label svg{color:var(--primary-color)}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}#frm-form-templates-modal textarea{height:108px}#frm-form-templates-modal .frm-fields button.btn{border-color:var(--grey-300);color:var(--grey-900);cursor:pointer}#frm-form-templates-modal .frm-fields button.btn .frmsvg{color:var(--grey-400);width:14px;height:14px}#frm-form-templates-modal .frm-form-templates-modal-fieldset{position:relative}#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg{padding:0;top:0;left:13px}#frm-form-templates-modal .postbox{display:block !important}#frm_empty_inbox #frm-leave-email-modal{margin-top:var(--gap-2xl)}#frm-name-your-form-modal .frm_modal_top{padding-top:var(--gap-sm)}#frm-field-group-message{position:absolute;bottom:32px;right:calc(50% - var(--biggest-sidebar));padding:var(--gap-xs) var(--gap-sm);border-radius:100px;background-color:var(--primary-25)}#frm-field-group-message .frm-field-group-message-text{gap:10px;color:var(--grey-800)}#frm-field-group-message-dismiss{margin-left:var(--gap-xs)}#frm-field-group-message-dismiss .frmsvg{color:var(--grey-800);width:15px;height:15px;cursor:pointer;transition:color 300ms ease-in-out}#frm-field-group-message-dismiss .frmsvg:hover{color:var(--grey-500)}.frm-card-item{display:flex;border:1px solid var(--grey-200);border-radius:var(--small-radius);padding:var(--gap-sm);box-shadow:var(--box-shadow-xs);background:#fff}.frm-card-item:not(.frm-counter-card){gap:10px}.frm-compact-card-item{padding:var(--gap-sm) 35px 10px 35px}.frm-card-bottom{background-color:var(--grey-50);margin-left:calc(var(--gap-sm)*-1);margin-bottom:calc(var(--gap-sm)*-1);margin-right:calc(var(--gap-sm)*-1);padding:var(--gap-sm);border-radius:0 0 var(--small-radius) var(--small-radius)}#welcome-panel:has(#frm_form_pf_importer){background-color:#fff;margin:var(--gap-sm) var(--gap-md) var(--gap-md);line-height:2}#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content{text-align:start !important;min-height:unset;display:block}#frm_form_pf_importer div{margin:10px 0 !important}#frm_form_pf_importer button{border:1px solid var(--primary-500);padding:7px 16px;min-height:28px;line-height:var(--leading);margin-bottom:0;background:var(--primary-500);color:#fff !important}#frm_form_pf_importer button:hover{background:#135e96;border-color:#135e96}.frm-option-box{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;background-color:#fff;padding:12px var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius);margin-bottom:var(--gap-xs);transition:background-color 100ms ease-out;cursor:pointer}.frm-option-box:hover{background-color:var(--grey-25)}.frm-option-box.frm-checked{background-color:var(--primary-25);border-color:var(--primary-200)}.frm-option-box.frm-disabled{cursor:default}.frm-option-box input[type=checkbox]{margin:0}.frm-option-box.frm-disabled input[type=checkbox]{opacity:.5}.frm-option-box .frm_help .frmsvg{width:12px;height:12px}.frm-validation-error:not(.frm_hidden){display:flex}.frm-validation-error{gap:calc(var(--gap-xs) + var(--gap-2xs))}.frm-validation-error span{color:var(--error-500)}.frm-validation-error span[frm-error]{display:none}.frm-validation-error[frm-error=empty] span[frm-error=empty],.frm-validation-error[frm-error=invalid] span[frm-error=invalid],.frm-validation-error[frm-error=custom] span[frm-error=custom]{display:inline-block}.frm-box{padding:var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius)}.frm-link-with-external-icon{display:flex;align-items:center;gap:var(--gap-2xs);font-size:var(--text-xs)}.frm-link-with-external-icon .frmsvg{width:16px;height:16px;transform:rotate(45deg)}#wpbody-content .frm-page-skeleton ul,#wpbody-content .frm-page-skeleton li{margin:0}#wpbody-content .frm-page-skeleton .frm-right-panel{padding:2px;overflow-y:initial}#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper{padding:var(--gap-md) var(--gap-sm)}#wpbody-content .frm-page-skeleton .frm-search{float:none;padding:0 var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>svg{left:var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>input{width:100%}.frm-page-skeleton-cat{cursor:pointer;padding:var(--gap-xs);border-radius:var(--small-radius);background-color:rgba(0,0,0,0);transition:background-color 250ms ease-out}.frm-page-skeleton-cat:hover{background-color:var(--grey-100)}.frm-page-skeleton-cat>*{z-index:2}.frm-page-skeleton-cat-text{color:var(--grey-900);text-transform:capitalize}.frm-page-skeleton-cat-count{color:var(--grey-400)}.frm-current .frm-page-skeleton-cat-text,.frm-current .frm-page-skeleton-cat-count{color:var(--primary-500)}.frm-list-grid-layout{display:grid;grid-template-columns:repeat(auto-fill, minmax(303px, 1fr));grid-auto-rows:max-content;gap:var(--gap-sm)}.frm-list-grid-layout>*{grid-column:span 1}#frm-page-skeleton-empty-state{height:100%;margin-top:calc(-1*var(--gap-md))}#frm-page-skeleton-empty-state .frm-page-skeleton-text{max-width:420px}.frm-page-skeleton-divider{border-top:1px solid var(--grey-200);margin:0}.field_type_list .frm_tsubmit{display:none !important}#frm_style_sidebar .accordion-section-title::after,#frm_view_editor_left .accordion-section-title::after{content:""}a[href="#square_settings"] svg.frmsvg{width:23px !important;height:22px !important}#frm_square_test_setup_modal a:focus{box-shadow:none !important}@media only screen and (max-width: 900px){#square_settings .frm_grid_container:has(.frm-card-item){grid-template-columns:repeat(1, 1fr)}#square_settings .frm-card-item+.frm-card-item{margin-top:var(--gap-sm)}}#frm_sale_banner{display:flex;height:90px;flex-direction:row;align-items:center;gap:var(--gap-sm);cursor:pointer;position:relative}#frm_sale_banner>div:first-child{align-self:flex-end;width:150px;height:100%;display:flex;justify-content:center}#frm_sale_banner>div:first-child img{align-self:center}#frm_sale_banner>div:nth-child(3){margin-left:auto;margin-right:50px}#frm_sale_banner>div:nth-child(2)>div:last-child{opacity:.8}#frm_sale_banner a:not(.dismiss){text-shadow:none;border-radius:30px;border:1px rgba(0,0,0,0);font-size:var(--text-sm);padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;margin-bottom:0;display:inline-block;font-weight:700;background-color:#fff;color:#000}#frm_sale_banner .dismiss{position:absolute;color:#fff;opacity:.6;right:15px;top:10px}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"]{background-color:#f0f0f0 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"]{background-color:#e6470f !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"]{background-color:#ed1d34 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"]{background-color:#3e041a !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"]{background-color:#362630 !important}.frm-lookup-box-label{display:none}.frm-inline-modal[id^=frm-lookup-box]{background-color:rgba(0,0,0,0);border:0;box-shadow:none}.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs,.frm-inline-modal[id^=frm-lookup-box] .dismiss{display:none}.frm_single_option a.frm_remove_tag svg,.frm_single_option a.frm_add_opt svg{width:15px;height:15px}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px} + */ +.tooltip { + /* Copied from Bootstrap */ + position: absolute; + display: block; + margin: 0; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; + /* Custom rules */ + z-index: 9999999; + pointer-events: none; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; + margin-left: 0 !important; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.frm-dropdown-menu.show { + display: block; +} + +.frm-single-settings .frm-dropdown-menu.show { + background: #fff; +} + +/* End Bootstrap */ +.preview.dropdown .dropdown-menu { + min-width: 205px; +} + +.frm_clear { + clear: both; +} + +.frm_clearfix::after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +.frm_clearfix { + display: block; +} + +.frm_admin_progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.frm_admin_progress_bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + transition: width 0.6s ease; + background-color: #04A4CC; +} + +.tooltip.frm_tooltip { + position: fixed; + top: auto !important; + bottom: 0 !important; + left: 0 !important; + max-width: none; + width: 100% !important; + z-index: 99999; +} + +.tooltip.frm_tooltip.bottom { + padding: 0; +} + +.frm_tooltip .tooltip-inner { + max-width: none; + min-height: 40px !important; + text-align: left; + box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.5); + padding: 10px 40px; + border-top-color: #ccc; + background: var(--sidebar-color); + color: var(--grey-700); + border-radius: 0; + opacity: 1; + font-size: var(--text-sm); +} + +#frm_custom_css_box { + width: 100%; +} + +/** + * Component: Admin Inputs + */ +.frmdates_add_blackout_date_link, +.frmdates_add_exception_link, +.frm_form_field.frm_scroll_box .frm_opt_container, +.frm-white-body .wrap input[type=text], +.frm-white-body .wrap input[type=search], +.frm-white-body .wrap input[type=number], +.frm-white-body .wrap select, +#frm-form-templates-modal select, +.frm-white-body .wrap textarea, +button.frm_choose_image_box, +#titlediv input[type=text], +.frm-fields button.btn, +.frm_wrap textarea, +.frm_wrap input[type=tel], +.frm_wrap input[type=text], +.frm_wrap input[type=email] .frm_wrap input[type=search], +.frm_wrap input[type=number], +.frm_wrap input[type=date], +.frm_wrap select, +.wp-admin .frm_wrap select, +.field-group textarea, +.field-group input[type=text], +.field-group select, +.frm-fields .frm-input-field { + outline: 0; + box-shadow: var(--box-shadow-xs); + border-radius: var(--small-radius); + padding: 5px 14px; + border-color: var(--grey-300); + color: var(--grey-800); + font-size: var(--text-md); + margin: 0; + background-color: #fff; + line-height: var(--leading); +} + +.frm_input_with_suffix { + border-radius: var(--small-radius); + border: 1px solid var(--grey-300); + display: inline-block; + padding-right: 14px; +} + +.frm_input_with_suffix input { + border: 0 !important; + padding-right: 5px !important; +} + +.frm_wrap ::-webkit-datetime-edit { + line-height: var(--leading); +} + +.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus, +.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus, +.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus, +.frm_wrap input:focus, +.frm_wrap select:focus, +.wp-core-ui .frm_wrap select:focus, +#frm-form-templates-modal select:focus, +.frm-btn-group .multiselect.dropdown-toggle:focus, +.frm_wrap textarea:focus { + border-color: var(--primary-500) !important; + box-shadow: none !important; +} + +/* +Pages like Entries and Styles need the border-color and box-shadow properties without the !important flag. +To achieve this, we exclude them above and duplicate these rules specifically for those pages without using !important. +*/ +.wp-admin .frm_fields_container textarea:focus, +.wp-admin .frm_fields_container input:focus, +.wp-admin .frm_fields_container select:focus { + border-color: var(--primary-500); + box-shadow: none; +} + +#postbox-container-2 textarea, +.frm_wrap textarea, +.field-group textarea { + line-height: 2; +} + +.frm_wrap input[type=number] { + height: auto; +} + +.frm_wrap select { + padding: 2px; +} + +.wp-admin .frm_wrap select, +#frm-form-templates-modal select { + max-width: 100%; +} + +.frm_form_field.frm_scroll_box .frm_opt_container { + padding: 10px 12px; +} + +.frm_wrap input[disabled], +.frm_wrap select[disabled], +.frm_wrap textarea[disabled], +.frm_wrap input[readonly], +.frm_wrap select[readonly], +.frm_wrap textarea[readonly], +.frm_wrap input::placeholder { + color: var(--grey-500); +} + +textarea[id^=frm_calc_]::placeholder { + font-size: var(--text-sm); + line-height: var(--leading); + font-style: italic; + color: var(--grey-400); + padding-top: 5px; +} + +.frm_wrap .frm-button-primary.frm-disabled { + opacity: 0.5; + cursor: default; +} + +#postcustomstuff table td > div { + /* To override some inline css in add-on */ + padding-top: 0 !important; +} + +.wp-admin .frm_wrap .form-table select { + vertical-align: top; +} + +.frm_wrap .frm_form_builder select { + line-height: var(--leading); + height: var(--text-md); + width: 100%; +} + +#postbox-container-2 select, +.wp-admin .frm_wrap select, +.frm_wrap .frm_form_builder select, +#frm-form-templates-modal select { + height: auto; +} + +.frm-white-body .tablenav select, +.frm-white-body .tablenav input[type=text], +.wp-admin .frm_wrap .tablenav select, +.frm_wrap .tablenav input[type=date], +.frm_wrap .tablenav input[type=text] { + padding-top: 0; + padding-bottom: 0; + line-height: 1; +} + +.frm_wrap .tablenav ::-webkit-datetime-edit { + line-height: 1; +} + +.frm-fields button.btn, +.frm-fields textarea, +.frm-fields input[type=text], +.frm-fields select, +.field-group textarea, +.field-group input[type=text], +.field-group select, +.accordion-container input.hex, +.frm-fields .frm-input-field { + width: 100%; + outline: 0; +} + +.frm-fields button.btn { + height: var(--h-md); + text-align: inherit; +} + +.global-font .field-group input[type=text] { + width: auto; +} + +/** + * Component: Button Grey + */ +.wp-core-ui .frm_grey.frm-button-primary.disabled, +.wp-core-ui .frm_grey.frm-button-primary, +#frm-welcome .frm_grey { + opacity: 0.5; + background: #F6F6F6 !important; + border-color: #ddd !important; + color: #9FA5AA !important; +} + +/** + * Component: Scrollbars + */ +.windows::-webkit-scrollbar, +.windows ::-webkit-scrollbar { + width: 7px; + background: transparent; +} +.windows::-webkit-scrollbar-thumb, +.windows ::-webkit-scrollbar-thumb { + background: var(--grey-300); + -webkit-border-radius: var(--border-radius); + -webkit-box-shadow: none; +} +.windows::-webkit-scrollbar-corner, +.windows ::-webkit-scrollbar-corner { + background: transparent; +} + +.frm-scrollbar-wrapper, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list, +#frm_builder_page #frm_adv_info .frm_code_list, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div, +.frm-single-settings .frm_field_opts_list { + overflow-x: hidden; + overflow-y: auto !important; /* Enable scrolling */ + -ms-overflow-style: none; /* For IE and Edge */ + scrollbar-color: transparent transparent; /* Firefox Scrollbar - transparent by default and show on hover */ + scrollbar-width: thin; +} +.frm-scrollbar-wrapper:hover, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover, +#frm_builder_page #frm_adv_info .frm_code_list:hover, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover, +.frm-single-settings .frm_field_opts_list:hover { + scrollbar-color: var(--grey-300) transparent; /* Firefox Scrollbar - Show on hover with transparent background */ +} +.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover::-webkit-scrollbar-thumb, +.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb { + background: var(--grey-300); /* Show scrollbar on hover */ +} +.frm-scrollbar-wrapper::-webkit-scrollbar, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar { + width: 3px; +} +.frm-scrollbar-wrapper::-webkit-scrollbar-track, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-track, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track { + background: transparent; /* Transparent background */ + border-radius: 100vw; /* Consistent radius with thumb */ +} +.frm-scrollbar-wrapper::-webkit-scrollbar-thumb, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb { + background: transparent; + border-radius: 100vw; +} +.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb:hover, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover { + background: var(--grey-300); /* Show scrollbar on hover */ +} + +/** + * Component: RTL + */ +.rtl h3 { + font-weight: inherit !important; +} + +.rtl.js .accordion-section-title::after { + left: 10px; + right: auto; +} + +.rtl #frm_top_bar #frm_bs_dropdown { + padding-left: 15px; +} + +.rtl .frm-full-close, +.rtl .frm_wrap .columns-2 .frm-right-panel + div, +.rtl .frm-right-panel { + border-left-width: 0; + border-right: 1px solid var(--grey-300); +} + +.rtl .frm-full-close { + padding-left: 0; + padding-right: var(--gap-md); +} + +.rtl .frm-text-right { + text-align: left; +} + +.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child { + border-left-width: 1px; +} + +.rtl .frm-dropdown-menu { + text-align: right; +} + +.rtl .frm_actions_dropdown .frm_icon_font { + float: right; + margin-right: 0; + margin-left: 3px; +} + +.rtl #frm-insert-fields-box, +.rtl #frm-conditionals { + padding-right: 0.9em; +} + +.rtl #html_settings .frm_field_html_box { + margin-right: 0; +} + +.rtl .frm_list_entry_page h2 { + float: right; +} + +.rtl .frm_scale { + float: right; + margin-left: 10px; + margin-right: 0; +} + +.rtl .frm-page-break .frm-collapse-page.button { + margin-left: 0; + margin-right: 46%; +} + +.rtl .frm-field-action-icons { + right: unset; + left: 2px; +} + +.rtl .frm_has_shortcodes > i { + right: auto; + left: 5px; +} + +.rtl p.frm_reply_to_container, +.rtl p.frm_bcc_cc_container { + float: left; +} + +.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg { + right: auto; + left: 0; +} + +.rtl .frm-inline-modal > a.dismiss { + left: 13px; + right: auto; +} + +.rtl.wp-admin .frm_wrap select { + padding-left: var(--gap-lg) !important; + padding-right: 5px !important; + background-position: left 11px top 55%; +} + +.rtl .frm_code_list.frm-full-hover a span { + margin-left: var(--gap-xs); +} + +.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { + margin-left: unset; + margin-right: var(--gap-xs); +} +.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { + margin-right: unset; + margin-left: var(--gap-xs); +} +.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline { + left: unset !important; + right: 0; +} +.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first { + right: var(--gap-xs); +} +.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last { + right: calc(-1 * var(--gap-xs)); +} + +.rtl .frm-unit-input .frm-input-group-suffix { + right: unset; + left: 1px; + padding-right: unset; + padding-left: var(--gap-xs); +} +.rtl .frm-unit-input .frm-input-group-suffix select { + text-align: left; + background-position: left 0 top 50%; + padding-left: 21px !important; +} + +/** + * Component: Clearfix + */ +span.clear { + display: block; +} + +.clearfix::after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.clearfix { + display: inline-block; +} + +/*Override styling from other plugins*/ +.frm_form_fields .clear { + height: auto; +} + +/* Hides from IE-mac \*/ +* html .clearfix { + height: 1%; +} + +.clearfix { + display: block; +} + +#frm_small_device_message_container { + display: none; +} + +/* End hide from IE-mac */ +/** + * Responsive Styles + * + * Media queries for desktop, tablet, and mobile devices + */ +@media only screen and (max-width: 1200px) { + .frm-addons { + grid-template-columns: 1fr 1fr; + } + #frm_top_bar h1 { + min-width: 0; /* Reset the min-width to prevent menu items from stacking vertically */ + } +} +@media only screen and (max-width: 1050px) { + .frm-white-body, + .frm_wrap { + --biggest-sidebar: 390px; + } + #form_settings_page .columns-2 { + margin: 0; + } + .frm_actions_list { + margin-left: 0; + } + #frm_bs_dropdown .frm_bstooltip { + /* There isn't enough room for the title on a screen this size so just hide it. */ + display: none !important; + } +} +@media only screen and (max-width: 960px) { + .frm-white-body, + .frm_wrap { + --gap-sm: 8px; + --gap-md: 16px; + --gap-2xl: 24px; + } + /* Revert settings panel gap variables to default */ + .frm-settings-panel { + --gap-sm: 16px; + --gap-md: 24px; + --gap-2xl: 32px; + } + .auto-fold #adminmenuwrap { + width: 36px; + } + .frm_wrap #postbox-container-1 #frm_adv_info { + min-width: 220px; + } + p.howto { + display: inline-block; + } + /* Fix: Issue where the admin page content had extra white space to the left on small screens */ + .auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container, + .auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container { + left: 36px; + } +} +@media only screen and (max-width: 850px) { + .frm-white-body, + .frm_wrap { + --biggest-sidebar: 350px; + --big-sidebar: 350px; + } + .frm_col_one { + clear: none; + } + .frm-fields p > .frm_inline_label, + .frm_inline_label { + display: block; + margin: 5px 0; + } + #frm_top_bar h1 { + width: auto; + max-width: 200px; + } + #frm-publishing { + width: auto; + } + #frm_form_editor_container, + .frm-entry-container { + margin: 0 20px; + } + .frm_wrap .frm-search { + float: none !important; + width: auto; + clear: both; + } + .post-type-frm_display #frm_adv_info { + top: auto !important; + position: static; + width: auto; + } + .frm_wrap .frm-right-panel #frm_adv_info, + .frm_wrap #postbox-container-1 #frm_adv_info { + min-width: 275px; + } + .frm_wrap #frm_adv_info ul.category-tabs li, + .frm_wrap #frm_adv_info ul.category-tabs li.tabs { + border: none; + } + .frm_wrap #frm_adv_info ul.category-tabs li:first-child { + margin-left: 12px; + } + .frm_wrap #frm_adv_info ul.category-tabs li.tabs { + border-bottom: 2px solid #5b9dd9; + padding-bottom: 8px; + } + .post-type-frm_display #poststuff { + padding: 10px 25px; + } + .post-type-frm_display #side-sortables .postbox { + margin-bottom: 20px; + border-radius: var(--small-radius); + border-top-width: 1px; + } + #frm_top_bar .frm_form_nav { + box-shadow: 0 -0.47px 10px 0 rgba(16, 24, 40, 0.0588235294); + } + #frm_top_bar ul.frm_form_nav { + padding: 1em 0; + position: fixed; + bottom: 0; + width: 100%; + background: white; + z-index: 99; + transform: translate(-50%, 0); + left: 50%; + } + .frm_page_container > .columns-2, + #frm_styler_wrapper { + padding-bottom: 64px; + } + #frm_style_preview .frm_floating_style_button:not(.frm_hidden) { + position: static; + display: inline-block; + } + .frm_wrap .columns-2 .frm-right-panel { + padding-bottom: 0; + } + #frm-publishing { + margin-left: auto; + } + #frm_top_bar > .frm-full-close:last-child { + margin-left: 0; + } + #frm_bs_dropdown { + display: block; + } + #frm_bs_dropdown .frm_bstooltip { + display: block !important; + } +} +@media only screen and (max-width: 782px) { + .frm-white-body, + .frm_wrap { + --small-sidebar: 20%; + --medium-sidebar: 35% ; + } + #form_settings_page .advanced_settings .form-table td, .form-table th { + display: table-cell; + width: auto !important; + } + .frm-white-body #publishing-action, + .frm_wrap #publishing-action { + line-height: normal; + } + .frm-white-body #screen-meta-links { + display: none; + } + .frm_wrap .misc-pub-section { + padding: 6px 0; + } + .frm_wrap .misc-pub-section > a { + float: none; + white-space: nowrap; + } + .frm-form-setting-tabs a { + position: relative; + padding: 10px 5px 10px 40px; + } + .frm-form-setting-tabs a .frmsvg, + .frm-form-setting-tabs a i { + position: absolute; + left: 13px; + top: calc(50% - 10px); + margin: 0; + } + #frm-insert-fields .button, + #frm-insert-fields .button a, + .frmbutton.ui-sortable-helper a { + line-height: 26px; + max-height: 28px; + } + a.frm_add_logic_link { + margin-left: 0; + margin-right: 0; + width: 100%; + box-sizing: border-box; + } + a.frm_add_logic_link:not([id^=logic_]) .frmsvg, + a.frm_add_logic_link i { + display: none; + } + #new_fields .frm_single_option select, + #new_fields .frm_single_option input[type=text] { + width: calc(100% - 83px); + } + .frm_single_entry_page .frm_form_fields input[type=text], + .frm_single_entry_page .frm_form_fields select, + .frm_single_entry_page .frm_form_fields textarea { + width: 100%; + } + .with_frm_style .frm_radio input[type=radio], + .with_frm_style .frm_checkbox input[type=checkbox] { + width: 25px !important; + } + .frm_single_entry_page .with_frm_style .frm_radio input[type=radio], + .frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox] { + width: 18px !important; + } + .wp-list-table.toplevel_page_formidable .column-entries, + .wp-list-table.toplevel_page_formidable .column-form_key, + .wp-list-table.toplevel_page_formidable .column-shortcode, + .wp-list-table.toplevel_page_formidable .column-created_at { + display: none !important; + } + .wp-list-table.toplevel_page_formidable td.column-entries, + .wp-list-table.toplevel_page_formidable td.column-form_key, + .wp-list-table.toplevel_page_formidable td.column-shortcode, + .wp-list-table.toplevel_page_formidable td.column-created_at { + padding: 3px 8px 3px 35%; + text-align: left; + } + #form_entries_page .wp-list-table th.frm_hidden, + #form_entries_page .wp-list-table td.frm_hidden { + display: none !important; + } + .frm-white-body.auto-fold #wpcontent { + padding-left: 0; + } + .frm_right_addon .frm_remove_field { + bottom: 11px; + } + .frm-addons { + grid-template-columns: 1fr; + } + .frm-admin-page-styles .frm_page_container, + .frm_wrap .frm_page_container { + left: 0 !important; + } + .frm_single_entry_page.frm_wrap .columns-2 { + display: block; + border-bottom: none; + } + .frm_single_entry_page .wrap.frm-with-margin { + margin: 10px 20px; + } + .frm_single_entry_page #post-body-content + .frm-right-panel { + width: auto; + margin: 0 20px; + border: 1px solid var(--sidebar-hover); + border-radius: 6px; + } + #wp-content-media-buttons a.frm_insert_form { + padding: 0 var(--gap-sm); + } + .frm-white-body input[type=checkbox]:checked::before, + .frm_wrap input[type=checkbox]:checked::before { + width: 1.2rem; + height: 1.2rem; + } +} +@media only screen and (max-width: 700px) { + .frm-white-body, + .frm_wrap { + --biggest-sidebar: 50%; + --big-sidebar: 50%; + } +} +@media only screen and (max-width: 600px) { + .frm-white-body, + .frm_wrap { + --small-sidebar: 45px; + } + .frm-form-setting-tabs a { + visibility: collapse; + font-size: 0; + padding: 0 var(--gap-sm); + } + .frm-form-setting-tabs a .frmsvg, + .frm-form-setting-tabs a i { + visibility: visible; + position: initial; + font-size: 18px; + } + #frm_builder_page #frm-insert-fields { + padding: 0; + } + .frm_wrap #frm_adv_info ul.category-tabs li { + display: inline-block; + padding: 0; + margin: 2px 0; + border-bottom: 2px solid transparent; + } + .frm_wrap #frm_adv_info ul.category-tabs li.tabs, + .frm_wrap #frm_adv_info ul.category-tabs li:first-child { + margin-left: 0; + padding: 0; + } + .field_type_list li { + text-align: center; + } + #frm-insert-fields li a { + padding: 5px; + } + #frm_form_editor_container .frm_primary_label { + clear: both; + } + #frm_builder_page .frm_code_list a.button { + padding: 2px; + } + #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { + right: 0; + left: auto; + } + .frm-right-panel h3.accordion-section-title { + padding-right: 10px; + padding-left: 10px; + font-size: 20px; + white-space: nowrap; + overflow: hidden; + } + .frm-right-panel .accordion-section-title::before { + margin-left: 0; + margin-right: 3px; + } + .rtl #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { + right: auto; + left: 0; + } + .frm_on_submit_type svg { + display: none; + } +} +@media only screen and (max-width: 475px) { + #frm_bs_dropdown { + float: none; + } + #frm-nav-tabs { + padding: 0; + white-space: nowrap; + } + #frm-nav-tabs a { + margin-right: 0; + } + #frm_small_device_message_container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: fixed; + top: 0; + width: 100%; + height: 100%; + z-index: 999999; + background: var(--primary-500); + } + #frm_small_device_message { + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + width: 80%; + padding: 1rem; + background: #fff; + border: solid 1px #fff; + border-radius: var(--medium-radius); + } + #frm_small_device_message::before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-78%, -65%); + width: 900px; + height: 900px; + background-color: #0D7DFC; + border-radius: 50%; + z-index: -1; + opacity: 0.3; + } + #frm_small_device_message > svg { + padding-bottom: 1rem; + } + .toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter, + .post-type-frm_display:has(#frm_small_device_message_container) #posts-filter { + display: none; + } +} +@media print { + a, .misc-pub-section a { + color: #000 !important; + } + .add-new-h2, #frm_top_bar, .dashicons, + #adminmenuwrap, #adminmenuback, #wphead, #button_bar, #submitdiv, .button-secondary, + #screen-metas, #screen-meta-links, #footer, #wpfooter, .inner-sidebar, .frm_form_nav, + .frm_flash_graph, .frm_no_print, object, .error { + visibility: hidden; + display: none !important; + } + .widget, .postbox, .stuffbox, .postbox h3 { + border-width: 0 !important; + border-color: #fff; + } + .postbox { + background: #fff !important; + border: none; + position: static; + } + .postbox h3, .postbox h4 { + background: #fff !important; + } + #wpbody-content { + float: none; + } + #wpcontent, #post-body-content, + .has-right-sidebar #post-body, + #poststuff .columns-2 { + margin: 0 !important; + } + .frm_wrap #poststuff .columns-2 { + display: block; + } + #post-body-content + .frm-right-panel, + .frm_wrap .columns-2 .frm-right-panel, + .frm-right-panel { + border: none; + width: auto; + display: block; + padding: 20px; + } + .frm_wrap .columns-2, + .frm_wrap .frm_page_container { + height: auto; + display: block; + } + .misc-pub-section > span { + padding: 0; + } + .frm-right-panel .postbox .inside { + padding-left: 12px; + padding-right: 12px; + } + .curtime #timestamp::before { + display: none; + content: none !important; + } + .frm_charts .alignleft { + float: none; + } + .pg_odd, .pg_even { + page-break-inside: avoid; + max-width: 600px; + } + .form-table td, .form-table th { + padding: 0; + } + .frm_file_container a { + display: block; + width: 100%; + } +} +/** + * Extended Components + * + * Additional components loaded after the main layout + */ +/** + * Layout: Publishing + */ +.frm-admin-page-styles #frm-publishing #save_menu_header, +.frm-admin-page-styles2 #frm-publishing #save_menu_header { + display: inline-block; +} + +/* Change the order of subfields of the Name field in the backend */ +.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first { + order: 2; +} + +.frm-video-wrapper iframe { + width: 100%; + max-width: 843px; + border-radius: var(--border-radius); +} + +/** + * Field group popup and related functionality + */ +#frm_field_group_popup { + position: absolute; + top: 0; + right: 0; + width: 366px; + max-height: 231px; + border-radius: 8px; + background: #fff; + box-shadow: 0 20px 48px rgba(40, 47, 54, 0.15); + z-index: 3; + box-sizing: border-box; + padding: 24px 0; + text-align: left; +} + +.rtl #frm_field_group_popup { + text-align: right; +} + +.frm-merge-fields-into-row #frm_field_group_popup { + top: unset; + bottom: 50px; + height: 196px; +} + +#frm_field_group_popup > hr { + margin: 12px 0; +} + +#frm_field_group_popup .frm-cancel-custom-field-group-layout, +#frm_field_group_popup .frm-save-custom-field-group-layout { + padding: 4px 18px; +} + +#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover { + border-color: var(--primary-500) !important; + color: var(--primary-500); + background-color: transparent !important; +} + +.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group { + display: none; +} + +.frm-merge-fields-into-row > a { + color: rgba(40, 47, 54, 0.85); + position: relative; + top: 2px; +} + +.frm-row-layout-title { + font-weight: 600; + font-size: 11px; + line-height: 15px; + text-transform: uppercase; + color: rgba(40, 47, 54, 0.45); + margin-bottom: 27px; +} + +.frm-row-layout-option { + background: #F6F7FB; + box-sizing: border-box; + border-radius: 2px; + padding: 15px 10px; +} + +#frm_field_group_popup .frm-row-layout-option .frm_grid_container { + grid-gap: 0 5%; + grid-template-columns: repeat(12, auto); +} + +#frm_field_group_popup .frm-row-layout-option { + cursor: pointer; + border: 2px solid transparent; +} + +#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout, +#frm_field_group_popup .frm-row-layout-option:hover { + border-color: var(--primary-500); +} + +.frm-custom-field-group-layout, +.frm-break-field-group { + padding: 4px 24px; + cursor: pointer; + font-size: var(--text-sm); + line-height: 19px; + color: rgb(72, 78, 84); +} + +.frm-custom-field-group-layout:hover, +.frm-break-field-group:hover { + background-color: rgba(245, 245, 245, 0.9607843137); +} + +.frm-custom-field-group-layout svg, +.frm-break-field-group svg { + margin-right: 5px; +} + +/** + * Field multiselect popup + */ +#frm_field_multiselect_popup { + background: white; + height: 48px; + position: fixed; + border-radius: 4px; + box-shadow: 0 8px 24px rgba(40, 47, 54, 0.15); + color: rgba(40, 47, 54, 0.85); + font-size: 13px; + right: 30px; + bottom: 10px; + z-index: 2; +} + +#frm_field_multiselect_popup > div { + display: inline-block; + line-height: 48px; + vertical-align: top; +} + +#frm_field_multiselect_popup.frm-unmergable > .frm-merge-fields-into-row, +#frm_field_multiselect_popup.frm-unmergable > .frm-multiselect-popup-separator { + display: none; +} + +#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator) { + padding: 0 20px; + cursor: pointer; +} + +#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator):hover { + background: rgba(245, 245, 245, 0.9607843137); +} + +.frm-builder-popup-heading { + font-weight: 600; + font-size: 11px; + line-height: 15px; + text-transform: uppercase; + color: rgba(40, 47, 54, 0.45); + margin-bottom: 7px; +} + +.frm-builder-popup-subheading { + font-size: 12px; + line-height: 16px; + color: rgba(40, 47, 54, 0.45); +} + +#frm_field_group_popup input[type=text] { + height: 30px; + border-radius: 3px; + font-size: 14px; + padding: 8px; + color: rgb(84, 95, 110); + border-color: rgba(40, 47, 54, 0.2); +} + +.frm-multiselect-popup-separator { + height: 36px; + width: 1px; + position: relative; + top: 6px; + background: #C4C4C4; +} + +.frm-sortable-helper, +.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider) { + pointer-events: none; +} + +.frm-sortable-helper { + /* Make sure the item being dragged appears above other form builder fields */ + z-index: 99; +} + +/** + * Component: Banner Notification + */ +#frm_banner { + width: 100%; + color: #fff; + background: var(--primary-500); + height: 40px; + line-height: 40px; + text-align: center; + position: relative; +} + +.frm-banner-emoji { + font-size: 19px; +} + +.frm-banner-emoji, +.frm-banner-title { + margin-right: 5px; + vertical-align: top; +} + +.frm-banner-cta a { + text-decoration: underline !important; +} + +#frm_banner .frm-banner-cta a.frm_inbox_dismiss { + display: none; +} + +.frm-banner-dismiss { + cursor: pointer; + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); +} + +.frm-banner-dismiss .frmsvg { + vertical-align: top; +} + +/** + * Ready-made solution styles + */ +.frm-ready-made-solution:not(.frm-search-result) { + display: none !important; +} + +#frm_leave_email_wrapper .frmsvg { + top: 0; +} + +#frm-add-my-email-address { + margin-top: 30px; +} + +.frm-ready-made-solution h3 ~ a { + color: var(--primary-500); +} + +.frm-ready-made-solution img { + max-width: 100%; + display: block; + box-shadow: var(--box-shadow-lg); +} + +/** + * Component: On Submit Action + */ +.frm_single_on_submit_settings .frm_form_field { + margin: 22px 0; +} + +.frm_on_submit_type_setting { + padding: 8px 0; +} + +.frm_on_submit_type label { + display: flex; + border: 1px solid var(--grey-border); + border-radius: var(--small-radius); + gap: 16px; + padding: 16px; + align-items: center; + justify-content: center; +} + +.frm_on_submit_type input { + opacity: 0 !important; + position: absolute; + z-index: -1; +} + +.frm_on_submit_type input[type=radio]:checked + label { + border-color: var(--primary-color); + box-shadow: 0 0 0 1px var(--primary-color); +} + +#form_settings_page .frm_on_submit_type label:hover, +.frm_on_submit_type input[type=radio]:checked + label svg { + color: var(--primary-color); +} + +/** + * Component: Call-to-Action + */ +.frm_pro_tip, +.frm-cta { + justify-content: space-between; + align-items: center; + gap: var(--gap-2xl); + padding: var(--gap-xs) var(--gap-sm); + border-radius: var(--small-radius); + background: var(--primary-25); +} + +.frm-cta.frm-cta-border { + border: 1px solid var(--primary-200); +} + +.frm-cta.frm-cta-border .frm-cta-footer { + background-color: #fff; + padding: 12px var(--gap-sm); + border-top: 1px solid var(--primary-200); + border-bottom-left-radius: var(--small-radius); + border-bottom-right-radius: var(--small-radius); + margin-top: 12px; + margin-bottom: calc(-1 * var(--gap-sm)); + margin-left: calc(-1 * var(--gap-sm)); + margin-right: calc(-1 * var(--gap-sm)); +} + +.frm-cta h4 { + font-weight: 600; + margin-top: 0; + margin-bottom: var(--gap-2xs); +} + +.frm-cta-green { + background-color: var(--success-25); +} + +.frm-cta-green .frm-banner-title { + gap: calc(var(--gap-2xs) + 1px); + color: var(--grey-700); +} + +.frm-cta-green.frm-cta-border { + border-color: var(--success-100); +} + +.frm-cta-green.frm-cta-border .frm-cta-footer { + border-color: var(--success-100); +} + +.frm-cta-red { + background-color: var(--error-25); +} + +.frm-cta-red.frm-cta-border { + border-color: var(--error-100); +} + +.frm-cta-icon { + padding: 3px 15px 3px 0; + border-right: 1px solid currentColor; +} + +#frm-upgrade-banner { + gap: 0; +} + +#frm-upgrade-banner .frm-cta-icon + .frm-cta-content { + margin-right: auto; + padding-left: 15px; +} + +#frm-upgrade-banner.frm-gradient h4, +#frm-upgrade-banner.frm-gradient p { + color: currentColor; +} + +#frm-upgrade-banner.frm-gradient h4 { + font-size: 16px; + font-weight: 600; +} + +#frm-upgrade-banner.frm-gradient p { + font-size: 14px; +} + +.frm-right-panel .inside .frm_pro_tip, +.frm_pro_tip { + color: var(--grey-700); + background: #FFE7DE; + margin: 0 auto; + display: flex; + gap: var(--gap-xs); +} + +.frm_field_list .frm_pro_tip { + margin: 10px 15px; + position: relative; + width: calc(100% - 30px); + box-sizing: border-box; + font-size: 14px; +} + +.frm_pro_tip .frmsvg, +.frm_pro_tip i { + color: var(--orange); +} + +.frm-tip-info { + flex: 1; + text-align: left; +} + +.frm-tip-cta { + color: var(--orange); +} + +.frm-gradient .frm-tip-cta, +.frm-light-tip .frm-gradient .frm-tip-cta { + color: currentColor; + font-weight: 700; +} + +.frm-tip-badge { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + color: #1E63D5; + background-color: #fff; + line-height: 1; + border-radius: 4px; + padding: 3px 4px; +} + +.frm-light-tip .frm_pro_tip { + background: var(--primary-25); +} + +.frm-light-tip .frm_pro_tip .frmsvg, +.frm-light-tip .frm_pro_tip i, +.frm-light-tip .frm-tip-cta { + color: var(--primary-500); +} + +.nav-tab-wrapper .frm_pro_tip { + float: right; +} + +/** + * Component: Form Templates Modal + */ +/* Start confirm and form templates modals */ +#frm-form-templates-modal textarea { + height: 108px; +} + +#frm-form-templates-modal .frm-fields button.btn { + border-color: var(--grey-300); + color: var(--grey-900); + cursor: pointer; +} + +#frm-form-templates-modal .frm-fields button.btn .frmsvg { + color: var(--grey-400); + width: 14px; + height: 14px; +} + +#frm-form-templates-modal .frm-form-templates-modal-fieldset { + position: relative; +} + +#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg { + padding: 0; + top: 0; + left: 13px; +} + +/* Fixes pro issue #3508, prevent a conflict that hides the postbox in modal */ +#frm-form-templates-modal .postbox { + display: block !important; +} + +/* Leave email modal */ +#frm_empty_inbox #frm-leave-email-modal { + margin-top: var(--gap-2xl); +} + +/* Name your form modal */ +#frm-name-your-form-modal .frm_modal_top { + padding-top: var(--gap-sm); +} + +/* End confirm and form templates modals */ +/** + * Component: Field Group Message + */ +#frm-field-group-message { + position: absolute; + bottom: 32px; + right: calc(50% - var(--biggest-sidebar)); + padding: var(--gap-xs) var(--gap-sm); + border-radius: 100px; + background-color: var(--primary-25); +} + +#frm-field-group-message .frm-field-group-message-text { + gap: 10px; + color: var(--grey-800); +} + +#frm-field-group-message-dismiss { + margin-left: var(--gap-xs); +} + +#frm-field-group-message-dismiss .frmsvg { + color: var(--grey-800); + width: 15px; + height: 15px; + cursor: pointer; + transition: color 300ms ease-in-out; +} + +#frm-field-group-message-dismiss .frmsvg:hover { + color: var(--grey-500); +} + +/** + * Component - Card Item + */ +.frm-card-item { + display: flex; + border: 1px solid var(--grey-200); + border-radius: var(--small-radius); + padding: var(--gap-sm); + box-shadow: var(--box-shadow-xs); + background: #FFF; +} + +.frm-card-item:not(.frm-counter-card) { + gap: 10px; +} + +.frm-compact-card-item { + padding: var(--gap-sm) 35px 10px 35px; +} + +.frm-card-bottom { + background-color: var(--grey-50); + margin-left: calc(var(--gap-sm) * -1); + margin-bottom: calc(var(--gap-sm) * -1); + margin-right: calc(var(--gap-sm) * -1); + padding: var(--gap-sm); + border-radius: 0 0 var(--small-radius) var(--small-radius); +} + +/** + * Component: Pirate Forms Importer + */ +#welcome-panel:has(#frm_form_pf_importer) { + background-color: #fff; + margin: var(--gap-sm) var(--gap-md) var(--gap-md); + line-height: 2; +} + +#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content { + text-align: start !important; + min-height: unset; + display: block; +} + +#frm_form_pf_importer div { + margin: 10px 0 !important; +} + +#frm_form_pf_importer button { + border: 1px solid var(--primary-500); + padding: 7px 16px; + min-height: 28px; + line-height: var(--leading); + margin-bottom: 0; + background: var(--primary-500); + color: #fff !important; +} + +#frm_form_pf_importer button:hover { + background: #135e96; + border-color: #135e96; +} + +/** + * Component: Option Box + */ +.frm-option-box { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 14px; + font-weight: 500; + background-color: #fff; + padding: 12px var(--gap-sm); + border: 1px solid var(--grey-200); + border-radius: var(--small-radius); + margin-bottom: var(--gap-xs); + transition: background-color 100ms ease-out; + cursor: pointer; +} + +.frm-option-box:hover { + background-color: var(--grey-25); +} + +.frm-option-box.frm-checked { + background-color: var(--primary-25); + border-color: var(--primary-200); +} + +.frm-option-box.frm-disabled { + cursor: default; +} + +.frm-option-box input[type=checkbox] { + margin: 0; +} + +.frm-option-box.frm-disabled input[type=checkbox] { + opacity: 0.5; +} + +.frm-option-box .frm_help .frmsvg { + width: 12px; + height: 12px; +} + +/** + * Component: Validation Error + */ +.frm-validation-error:not(.frm_hidden) { + display: flex; +} + +.frm-validation-error { + gap: calc(var(--gap-xs) + var(--gap-2xs)); +} + +.frm-validation-error span { + color: var(--error-500); +} + +.frm-validation-error span[frm-error] { + display: none; +} + +.frm-validation-error[frm-error=empty] span[frm-error=empty], +.frm-validation-error[frm-error=invalid] span[frm-error=invalid], +.frm-validation-error[frm-error=custom] span[frm-error=custom] { + display: inline-block; +} + +/** + * Utility: Box + */ +.frm-box { + padding: var(--gap-sm); + border: 1px solid var(--grey-200); + border-radius: var(--small-radius); +} + +/** + * External Link styles + */ +.frm-link-with-external-icon { + display: flex; + align-items: center; + gap: var(--gap-2xs); + font-size: var(--text-xs); +} + +.frm-link-with-external-icon .frmsvg { + width: 16px; + height: 16px; + transform: rotate(45deg); +} + +/** + * Page Skeleton + * + * Manages the layout and appearance of the page's content area. + */ +/* Core Styles for the Page */ +#wpbody-content .frm-page-skeleton { + /* Sidebar Styles */ + /* Scrollbar */ + /* Search */ +} +#wpbody-content .frm-page-skeleton ul, +#wpbody-content .frm-page-skeleton li { + margin: 0; +} +#wpbody-content .frm-page-skeleton .frm-right-panel { + padding: 2px; + overflow-y: initial; +} +#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper { + padding: var(--gap-md) var(--gap-sm); +} +#wpbody-content .frm-page-skeleton .frm-search { + float: none; + padding: 0 var(--gap-2xs); +} +#wpbody-content .frm-page-skeleton .frm-search > svg { + left: var(--gap-2xs); +} +#wpbody-content .frm-page-skeleton .frm-search > input { + width: 100%; +} + +/* Categories */ +.frm-page-skeleton-cat { + cursor: pointer; + padding: var(--gap-xs); + border-radius: var(--small-radius); + background-color: transparent; + transition: background-color 250ms ease-out; +} +.frm-page-skeleton-cat:hover { + background-color: var(--grey-100); +} +.frm-page-skeleton-cat > * { + z-index: 2; +} + +.frm-page-skeleton-cat-text { + color: var(--grey-900); + text-transform: capitalize; +} + +.frm-page-skeleton-cat-count { + color: var(--grey-400); +} + +.frm-current .frm-page-skeleton-cat-text, +.frm-current .frm-page-skeleton-cat-count { + color: var(--primary-500); +} + +/* Page Content Styles */ +.frm-list-grid-layout { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(303px, 1fr)); + grid-auto-rows: max-content; + gap: var(--gap-sm); +} +.frm-list-grid-layout > * { + grid-column: span 1; +} + +/* Empty State Styles */ +#frm-page-skeleton-empty-state { + height: 100%; + margin-top: calc(-1 * var(--gap-md)); +} +#frm-page-skeleton-empty-state .frm-page-skeleton-text { + max-width: 420px; +} + +/* Helper Classes */ +.frm-page-skeleton-divider { + border-top: 1px solid var(--grey-200); + margin: 0; +} + +/** + * Submit field styles + */ +.field_type_list .frm_tsubmit { + display: none !important; +} + +/** + * Component: Accordion Title + */ +#frm_style_sidebar .accordion-section-title::after, +#frm_view_editor_left .accordion-section-title::after { + content: ""; +} + +a[href="#square_settings"] svg.frmsvg { + width: 23px !important; + height: 22px !important; +} + +#frm_square_test_setup_modal a:focus { + box-shadow: none !important; +} + +@media only screen and (max-width: 900px) { + #square_settings .frm_grid_container:has(.frm-card-item) { + grid-template-columns: repeat(1, 1fr); + } + #square_settings .frm-card-item + .frm-card-item { + margin-top: var(--gap-sm); + } +} +#frm_sale_banner { + display: flex; + height: 90px; + flex-direction: row; + align-items: center; + gap: var(--gap-sm); + cursor: pointer; + position: relative; +} +#frm_sale_banner > div:first-child { + align-self: flex-end; + width: 150px; + height: 100%; + display: flex; + justify-content: center; +} +#frm_sale_banner > div:first-child img { + align-self: center; +} +#frm_sale_banner > div:nth-child(3) { + margin-left: auto; + margin-right: 50px; +} +#frm_sale_banner > div:nth-child(2) > div:last-child { + opacity: 0.8; +} +#frm_sale_banner a:not(.dismiss) { + text-shadow: none; + border-radius: 30px; + border: 1px transparent; + font-size: var(--text-sm); + padding: 7px 16px; + height: auto; + min-height: 28px; + outline: none; + line-height: var(--leading); + box-sizing: border-box; + margin-bottom: 0; + display: inline-block; + font-weight: 700; + background-color: #fff; + color: #000; +} +#frm_sale_banner .dismiss { + position: absolute; + color: #fff; + opacity: 0.6; + right: 15px; + top: 10px; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"] { + background-color: #F0F0F0 !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"] { + background-color: #E6470F !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"] { + background-color: #ED1D34 !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"] { + background-color: #3E041A !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"] { + background-color: #362630 !important; +} + +/** + * Backwards Compatibility + */ +.frm-lookup-box-label { + display: none; +} + +.frm-inline-modal[id^=frm-lookup-box] { + background-color: transparent; + border: 0; + box-shadow: none; +} +.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs, +.frm-inline-modal[id^=frm-lookup-box] .dismiss { + display: none; +} + +.frm_single_option a.frm_remove_tag svg, +.frm_single_option a.frm_add_opt svg { + width: 15px; + height: 15px; +} + +#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame { + margin-left: 12px; +} + +/*# sourceMappingURL=frm_admin.css.map*/ \ No newline at end of file diff --git a/js/addons-page.js b/js/addons-page.js index c3de805933..20dd829fce 100644 --- a/js/addons-page.js +++ b/js/addons-page.js @@ -1 +1,4787 @@ -(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return function(t,e){var n,r,a,c,l,s,u,f,d,p=1,y=t.length,m="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),s=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,l=c.width&&u>0?s.repeat(u):"",m+=c.align?d+n+l:"0"===s?d+l+n:l+d+n)}return m}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],l=e[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}var c=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.url,r=(t.nonce,"frm_hidden"),o="frm-hide-js",i="frm-current";function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},O=["(","?"],_={")":["("],":":["?","?:"]},j=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var T={contextDelimiter:"",onMissingKey:null};function F(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},T)this.options[n]=void 0!==e&&n in e?e[n]:T[n]}function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||x[o]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(N(n)&&R(r))if("function"==typeof o)if("number"==typeof i){var c={callback:o,priority:i,namespace:r};if(a[n]){var l,s=a[n].handlers;for(l=s.length;l>0&&!(i>=s[l-1].priority);l--);l===s.length?s[l]=c:s.splice(l,0,c),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++}))}else a[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},B=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var i=t[e];if(N(r)&&(n||R(o))){if(!i[r])return 0;var a=0;if(n)a=i[r].handlers.length,i[r]={runs:i[r].runs,handlers:[]};else for(var c=i[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),a++,i.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},s=c.length-1;s>=0;s--)l(s);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),a}}},M=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some((function(t){return t.namespace===r})):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,c=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},L),r.data[e]),t),r.data[e][""]=D(D({},L[""]),r.data[e][""])},c=function(t,e){a(t,e),i()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},s=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+s(r),o,t,e,r)):o};if(n){var f=function(t){q.test(t)&&i()};n.addAction("hookAdded","core/i18n",f),n.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+s(e),r,t,e)):r},_x:u,_n:function(t,e,r,o){var i=l(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+s(o),i,t,e,r,o)):i},_nx:function(t,e,r,o,i){var a=l(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+s(i),a,t,e,r,o,i)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(t,e,o){var i,a,c=e?e+""+t:t,l=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+s(o),l,t,e,o)),l}}}(0,0,V));G.getLocaleData.bind(G),G.setLocaleData.bind(G),G.resetLocaleData.bind(G),G.subscribe.bind(G);var J=G.__.bind(G),H=(G._x.bind(G),G._n.bind(G),G._nx.bind(G),G.isRTL.bind(G),G.hasTranslation.bind(G),window.frmDom),Q=H.tag,W=H.div,Y=H.a,tt=H.img;function et(t){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(t)}function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function rt(t,e,n){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ot,it=document.getElementById("post-body-content"),at=document.getElementById("".concat(v,"-sidebar")),ct=((ot=Y({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),W({id:"".concat(v,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(r),children:[tt({src:"".concat(e,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),W({className:"frmcenter",children:[Q("h2",{className:"".concat(v,"-title frm-mb-0")}),Q("p",{className:"".concat(v,"-text frm-mb-0")})]}),ot]}));null==it||it.appendChild(ct);var lt=function(){var t=document.querySelector("#".concat(v,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(v,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(v,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==mt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==mt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=pt(pt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:b,selectedCategoryEl:vt}),ht=bt.getState,gt=bt.getSingleState,St=bt.setState,wt=bt.setSingleState,xt=function(t){var e,n=t.currentTarget,r=n.getAttribute("data-category"),o=ht(),a=o.selectedCategory,c=o.selectedCategoryEl,l=o.notEmptySearchText;if(a!==r){a=wp.hooks.applyFilters("frmPage.selectedCategory",r),c.classList.remove(i),(c=n).classList.add(i),St({selectedCategory:a,selectedCategoryEl:c}),l&&((e=ut().searchInput).value="",e.dispatchEvent(new Event("input",{bubbles:!0}))),wp.hooks.doAction("frmPage.onCategoryClick",a);var u=ut().bodyContent;new s(u).fadeIn()}};function Ot(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),xt(t))}var _t=window.frmAddonsVars.addonRequestURL,jt="frm-addons",Et="available-addons",Pt="active-addons",kt="basic",At="plus",Ct="business",Tt="elite",Ft=ut(),It=Ft.bodyContent,Dt=Ft.sidebar;It.querySelectorAll(".frm-card-item:not(.plugin-card-formidable-pro)").forEach((function(t){var e=t.dataset.categories;switch(!0){case e.includes(Ct):t.setAttribute("data-categories","".concat(e,",").concat(Tt));break;case e.includes(At):t.setAttribute("data-categories","".concat(e,",").concat(Ct,",").concat(Tt));break;case e.includes(kt):t.setAttribute("data-categories","".concat(e,",").concat(At,",").concat(Ct,",").concat(Tt))}})),ft({upgradeBanner:document.getElementById("frm-upgrade-banner"),availableCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Et,'"]')),activeCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Pt,'"]')),categoriesTopDivider:Dt.querySelector(".".concat(v,"-divider")),basicPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(kt,'"]')),plusPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(At,'"]')),businessPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Ct,'"]')),elitePlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Tt,'"]')),addonsList:document.getElementById("".concat(jt,"-list")),addons:It.querySelectorAll(".frm-card-item"),availableAddons:It.querySelectorAll(".frm-card-item:not(.frm-locked-item)"),addonsToggle:It.querySelectorAll(".frm_toggle_block"),bodyContentChildren:null==It?void 0:It.children});var Lt={};Lt[Et]=[],Lt[Pt]=[];var qt,Rt=".".concat(v,"-cat-count");function Nt(){var t=ut(),e=t.activeCategory,n=t.availableCategory,r=t.categoriesTopDivider,o=document.querySelectorAll(".frm-addon-active:not(.frm-locked-item)");0!==o.length?(Lt[Pt]=o,e.querySelector(Rt).textContent=o.length):p([e,n,r])}function zt(){var t=ht().selectedCategory,e=ut(),n=e.emptyState,r=e.emptyStateButton,o=e.emptyStateTitle,i=e.emptyStateText;n.setAttribute("data-view",t),o.textContent=J("No add-ons found","formidable"),i.textContent=J("Sorry, we didn't find any add-ons that match your criteria.","formidable"),r.textContent=J("Request Add-On","formidable"),r.href=_t,r.setAttribute("target","_blank"),d([n,r])}function Bt(t,e){if(t){if("string"==typeof t)return Mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mt(t,e):void 0}}function Mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(new Map([["frm-addon-not-installed",".frm-install-addon"],["frm-addon-installed",".frm-activate-addon"],["frm-addon-active",".frm-deactivate-addon"]]).entries());try{for(a.s();!(o=a.n()).done;){var c=(n=o.value,r=2,function(t){if(Array.isArray(t))return t}(n)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],l=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(t){s=!0,o=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(n,r)||Bt(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],s=c[1];if(i.classList.contains(l)){(qt=i.querySelector(s)).click();break}}}catch(t){a.e(t)}finally{a.f()}}};var Ut=window.frmDom.search.init;function Zt(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=ht(),a=ut().allItemsCategory;wt("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ut(),n=e.bodyContent,r=e.bodyContentChildren,o=e.addonsList;t&>("selectedCategoryEl").classList.remove(i),p(r),y(o),new s(n).fadeIn()}(r),r&&wt("selectedCategory","")),function(t){if(t){var e,n=ut().emptyState;e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")&&m(n)}else zt()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}function Kt(){var t;ut().categoryItems.forEach((function(t){f(t,xt),t.addEventListener("keydown",Ot)})),wp.hooks.addAction("frmPage.onCategoryClick","frmAddonsPage",(function(t){!function(t){var e=ut(),n=e.bodyContent,r=e.addons,o=e.emptyState,i=e.upgradeBanner;m(o),y(i),n.dataset.category=t,b!==t?(p(r),0===Lt[t].length?(zt(),m(i)):d(Lt[t])):d(r)}(t)})),ut().addonsToggle.forEach((function(t){return t.addEventListener("click",$t)})),wp.hooks.addAction("frm_update_addon_state","frmAddonPage",(function(){Nt()})),t=ut().searchInput,Ut(t,"frm-card-item",{handleSearchResult:Zt})}var Xt;Xt=function(){(function(){var t,e,n,r,i,a,c,l,u,f,d=ut(),p=d.sidebar,m=d.searchInput,v=d.bodyContent,b=new s(v);m.value="",Nt(),function(){var t=ut(),e=t.bodyContent,n=t.availableCategory,r=t.availableAddons;if(Lt[Et]=r,n){n.querySelector(Rt).textContent=r.length;var o=e.querySelector(".".concat(jt,"-available-count"));o&&(o.textContent=r.length)}}(),function(){var t=ut(),e=t.allItemsCategory,n=t.addons;e.querySelector(Rt).textContent=n.length}(),e=(t=ut()).basicPlanCategory,n=t.plusPlanCategory,r=t.businessPlanCategory,i=t.elitePlanCategory,c=(a=function(t){return parseInt(t.querySelector(Rt).textContent,10)||0})(e),l=a(n)-1,u=a(r)-1,f=a(i)-1,n.querySelector(Rt).textContent=c+l,r.querySelector(Rt).textContent=c+l+u,i.querySelector(Rt).textContent=c+l+u+f,v.classList.remove(o),p.classList.remove(o),b.fadeIn(),y(p)})(),ut().addons.forEach((function(t){var e=t.getAttribute("data-categories");e&&e.split(",").forEach((function(e){Lt[e]||(Lt[e]=[]),Lt[e].push(t)}))})),Kt()},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Xt):Xt())})()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@tannin/compile/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/compile/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compile) +/* harmony export */ }); +/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); +/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); + + + +/** + * Given a C expression, returns a function which can be called to evaluate its + * result. + * + * @example + * + * ```js + * import compile from '@tannin/compile'; + * + * const evaluate = compile( 'n > 1' ); + * + * evaluate( { n: 2 } ); + * // ⇒ true + * ``` + * + * @param {string} expression C expression. + * + * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. + */ +function compile( expression ) { + var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( variables ) { + return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/evaluate/index.js": +/*!************************************************!*\ + !*** ./node_modules/@tannin/evaluate/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ evaluate) +/* harmony export */ }); +/** + * Operator callback functions. + * + * @type {Object} + */ +var OPERATORS = { + '!': function( a ) { + return ! a; + }, + '*': function( a, b ) { + return a * b; + }, + '/': function( a, b ) { + return a / b; + }, + '%': function( a, b ) { + return a % b; + }, + '+': function( a, b ) { + return a + b; + }, + '-': function( a, b ) { + return a - b; + }, + '<': function( a, b ) { + return a < b; + }, + '<=': function( a, b ) { + return a <= b; + }, + '>': function( a, b ) { + return a > b; + }, + '>=': function( a, b ) { + return a >= b; + }, + '==': function( a, b ) { + return a === b; + }, + '!=': function( a, b ) { + return a !== b; + }, + '&&': function( a, b ) { + return a && b; + }, + '||': function( a, b ) { + return a || b; + }, + '?:': function( a, b, c ) { + if ( a ) { + throw b; + } + + return c; + }, +}; + +/** + * Given an array of postfix terms and operand variables, returns the result of + * the postfix evaluation. + * + * @example + * + * ```js + * import evaluate from '@tannin/evaluate'; + * + * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' + * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; + * + * evaluate( terms, {} ); + * // ⇒ 6.333333333333334 + * ``` + * + * @param {string[]} postfix Postfix terms. + * @param {Object} variables Operand variables. + * + * @return {*} Result of evaluation. + */ +function evaluate( postfix, variables ) { + var stack = [], + i, j, args, getOperatorResult, term, value; + + for ( i = 0; i < postfix.length; i++ ) { + term = postfix[ i ]; + + getOperatorResult = OPERATORS[ term ]; + if ( getOperatorResult ) { + // Pop from stack by number of function arguments. + j = getOperatorResult.length; + args = Array( j ); + while ( j-- ) { + args[ j ] = stack.pop(); + } + + try { + value = getOperatorResult.apply( null, args ); + } catch ( earlyReturn ) { + return earlyReturn; + } + } else if ( variables.hasOwnProperty( term ) ) { + value = variables[ term ]; + } else { + value = +term; + } + + stack.push( value ); + } + + return stack[ 0 ]; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/plural-forms/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@tannin/plural-forms/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluralForms) +/* harmony export */ }); +/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); + + +/** + * Given a C expression, returns a function which, when called with a value, + * evaluates the result with the value assumed to be the "n" variable of the + * expression. The result will be coerced to its numeric equivalent. + * + * @param {string} expression C expression. + * + * @return {Function} Evaluator function. + */ +function pluralForms( expression ) { + var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( n ) { + return +evaluate( { n: n } ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/postfix/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/postfix/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ postfix) +/* harmony export */ }); +var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + +/** + * Operator precedence mapping. + * + * @type {Object} + */ +PRECEDENCE = { + '(': 9, + '!': 8, + '*': 7, + '/': 7, + '%': 7, + '+': 6, + '-': 6, + '<': 5, + '<=': 5, + '>': 5, + '>=': 5, + '==': 4, + '!=': 4, + '&&': 3, + '||': 2, + '?': 1, + '?:': 1, +}; + +/** + * Characters which signal pair opening, to be terminated by terminators. + * + * @type {string[]} + */ +OPENERS = [ '(', '?' ]; + +/** + * Characters which signal pair termination, the value an array with the + * opener as its first member. The second member is an optional operator + * replacement to push to the stack. + * + * @type {string[]} + */ +TERMINATORS = { + ')': [ '(' ], + ':': [ '?', '?:' ], +}; + +/** + * Pattern matching operators and openers. + * + * @type {RegExp} + */ +PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + +/** + * Given a C expression, returns the equivalent postfix (Reverse Polish) + * notation terms as an array. + * + * If a postfix string is desired, simply `.join( ' ' )` the result. + * + * @example + * + * ```js + * import postfix from '@tannin/postfix'; + * + * postfix( 'n > 1' ); + * // ⇒ [ 'n', '1', '>' ] + * ``` + * + * @param {string} expression C expression. + * + * @return {string[]} Postfix terms. + */ +function postfix( expression ) { + var terms = [], + stack = [], + match, operator, term, element; + + while ( ( match = expression.match( PATTERN ) ) ) { + operator = match[ 0 ]; + + // Term is the string preceding the operator match. It may contain + // whitespace, and may be empty (if operator is at beginning). + term = expression.substr( 0, match.index ).trim(); + if ( term ) { + terms.push( term ); + } + + while ( ( element = stack.pop() ) ) { + if ( TERMINATORS[ operator ] ) { + if ( TERMINATORS[ operator ][ 0 ] === element ) { + // Substitution works here under assumption that because + // the assigned operator will no longer be a terminator, it + // will be pushed to the stack during the condition below. + operator = TERMINATORS[ operator ][ 1 ] || operator; + break; + } + } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { + // Push to stack if either an opener or when pop reveals an + // element of lower precedence. + stack.push( element ); + break; + } + + // For each popped from stack, push to terms. + terms.push( element ); + } + + if ( ! TERMINATORS[ operator ] ) { + stack.push( operator ); + } + + // Slice matched fragment from expression to continue match. + expression = expression.substr( match.index + operator.length ); + } + + // Push remainder of operand, if exists, to terms. + expression = expression.trim(); + if ( expression ) { + terms.push( expression ); + } + + // Pop remaining items from stack into terms. + return terms.concat( stack.reverse() ); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback AddHook + * + * Adds the hook to the appropriate hooks container. + * + * @param {string} hookName Name of hook to add + * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. + * @param {import('.').Callback} callback Function to call when the hook is run + * @param {number} [priority=10] Priority of this hook + */ + +/** + * Returns a function which, when invoked, will add a hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {AddHook} Function that adds a new hook. + */ + +function createAddHook(hooks, storeKey) { + return function addHook(hookName, namespace, callback) { + var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } + + if ('function' !== typeof callback) { + // eslint-disable-next-line no-console + console.error('The hook callback must be a function.'); + return; + } // Validate numeric priority + + + if ('number' !== typeof priority) { + // eslint-disable-next-line no-console + console.error('If specified, the hook priority must be a number.'); + return; + } + + var handler = { + callback: callback, + priority: priority, + namespace: namespace + }; + + if (hooksStore[hookName]) { + // Find the correct insert index of the new hook. + var handlers = hooksStore[hookName].handlers; + /** @type {number} */ + + var i; + + for (i = handlers.length; i > 0; i--) { + if (priority >= handlers[i - 1].priority) { + break; + } + } + + if (i === handlers.length) { + // If append, operate via direct assignment. + handlers[i] = handler; + } else { + // Otherwise, insert before index via splice. + handlers.splice(i, 0, handler); + } // We may also be currently executing this hook. If the callback + // we're adding would come after the current callback, there's no + // problem; otherwise we need to increase the execution index of + // any other runs by 1 to account for the added element. + + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex++; + } + }); + } else { + // This is the first hook of its type. + hooksStore[hookName] = { + handlers: [handler], + runs: 0 + }; + } + + if (hookName !== 'hookAdded') { + hooks.doAction('hookAdded', hookName, namespace, callback, priority); + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); +//# sourceMappingURL=createAddHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Returns a function which, when invoked, will return the name of the + * currently running hook, or `null` if no hook of the given type is currently + * running. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {() => string | null} Function that returns the current hook name or null. + */ +function createCurrentHook(hooks, storeKey) { + return function currentHook() { + var _hooksStore$__current, _hooksStore$__current2; + + var hooksStore = hooks[storeKey]; + 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; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); +//# sourceMappingURL=createCurrentHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + +/** + * @callback DidHook + * + * Returns the number of times an action has been fired. + * + * @param {string} hookName The hook name to check. + * + * @return {number | undefined} The number of times the hook has run. + */ + +/** + * Returns a function which, when invoked, will return the number of times a + * hook has been called. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DidHook} Function that returns a hook's call count. + */ + +function createDidHook(hooks, storeKey) { + return function didHook(hookName) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { + return; + } + + return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); +//# sourceMappingURL=createDidHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback DoingHook + * Returns whether a hook is currently being executed. + * + * @param {string} [hookName] The name of the hook to check for. If + * omitted, will check for any hook being executed. + * + * @return {boolean} Whether the hook is being executed. + */ + +/** + * Returns a function which, when invoked, will return whether a hook is + * currently being executed. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DoingHook} Function that returns whether a hook is currently + * being executed. + */ +function createDoingHook(hooks, storeKey) { + return function doingHook(hookName) { + var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. + + if ('undefined' === typeof hookName) { + return 'undefined' !== typeof hooksStore.__current[0]; + } // Return the __current hook. + + + return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); +//# sourceMappingURL=createDoingHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback HasHook + * + * Returns whether any handlers are attached for the given hookName and optional namespace. + * + * @param {string} hookName The name of the hook to check for. + * @param {string} [namespace] Optional. The unique namespace identifying the callback + * in the form `vendor/plugin/function`. + * + * @return {boolean} Whether there are handlers that are attached to the given hook. + */ + +/** + * Returns a function which, when invoked, will return whether any handlers are + * attached to a particular hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {HasHook} Function that returns whether any handlers are + * attached to a particular hook and optional namespace. + */ +function createHasHook(hooks, storeKey) { + return function hasHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; // Use the namespace if provided. + + if ('undefined' !== typeof namespace) { + return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { + return hook.namespace === namespace; + }); + } + + return hookName in hooksStore; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); +//# sourceMappingURL=createHasHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _Hooks: () => (/* binding */ _Hooks), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); +/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); +/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); +/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); +/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); +/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); +/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Internal class for constructing hooks. Use `createHooks()` function + * + * Note, it is necessary to expose this class to make its type public. + * + * @private + */ + +var _Hooks = function _Hooks() { + (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); + + /** @type {import('.').Store} actions */ + this.actions = Object.create(null); + this.actions.__current = []; + /** @type {import('.').Store} filters */ + + this.filters = Object.create(null); + this.filters.__current = []; + this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); + this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); + this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); + this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); + this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); + this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); + this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); + this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); + this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); + this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); + this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); + this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); + this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); + this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); + this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); + this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); +}; +/** @typedef {_Hooks} Hooks */ + +/** + * Returns an instance of the hooks object. + * + * @return {Hooks} A Hooks instance. + */ + +function createHooks() { + return new _Hooks(); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); +//# sourceMappingURL=createHooks.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback RemoveHook + * Removes the specified callback (or all callbacks) from the hook with a given hookName + * and namespace. + * + * @param {string} hookName The name of the hook to modify. + * @param {string} namespace The unique namespace identifying the callback in the + * form `vendor/plugin/function`. + * + * @return {number | undefined} The number of callbacks removed. + */ + +/** + * Returns a function which, when invoked, will remove a specified hook or all + * hooks by the given name. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, + * without regard to namespace. Used to create + * `removeAll*` functions. + * + * @return {RemoveHook} Function that removes hooks. + */ + +function createRemoveHook(hooks, storeKey) { + var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function removeHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } // Bail if no hooks exist by this name + + + if (!hooksStore[hookName]) { + return 0; + } + + var handlersRemoved = 0; + + if (removeAll) { + handlersRemoved = hooksStore[hookName].handlers.length; + hooksStore[hookName] = { + runs: hooksStore[hookName].runs, + handlers: [] + }; + } else { + // Try to find the specified callback to remove. + var handlers = hooksStore[hookName].handlers; + + var _loop = function _loop(i) { + if (handlers[i].namespace === namespace) { + handlers.splice(i, 1); + handlersRemoved++; // This callback may also be part of a hook that is + // currently executing. If the callback we're removing + // comes after the current callback, there's no problem; + // otherwise we need to decrease the execution index of any + // other runs by 1 to account for the removed element. + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex--; + } + }); + } + }; + + for (var i = handlers.length - 1; i >= 0; i--) { + _loop(i); + } + } + + if (hookName !== 'hookRemoved') { + hooks.doAction('hookRemoved', hookName, namespace); + } + + return handlersRemoved; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); +//# sourceMappingURL=createRemoveHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); + + +/** + * Returns a function which, when invoked, will execute all callbacks + * registered to a hook of the specified type, optionally returning the final + * value of the call chain. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to + * return its first argument. + * + * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. + */ +function createRunHook(hooks, storeKey) { + var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function runHooks(hookName) { + var hooksStore = hooks[storeKey]; + + if (!hooksStore[hookName]) { + hooksStore[hookName] = { + handlers: [], + runs: 0 + }; + } + + hooksStore[hookName].runs++; + var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. + + if (true) { + // Handle any 'all' hooks registered. + if ('hookAdded' !== hookName && hooksStore.all) { + handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); + } + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!handlers || !handlers.length) { + return returnFirstArg ? args[0] : undefined; + } + + var hookInfo = { + name: hookName, + currentIndex: 0 + }; + + hooksStore.__current.push(hookInfo); + + while (hookInfo.currentIndex < handlers.length) { + var handler = handlers[hookInfo.currentIndex]; + var result = handler.callback.apply(null, args); + + if (returnFirstArg) { + args[0] = result; + } + + hookInfo.currentIndex++; + } + + hooksStore.__current.pop(); + + if (returnFirstArg) { + return args[0]; + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); +//# sourceMappingURL=createRunHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ actions: () => (/* binding */ actions), +/* harmony export */ addAction: () => (/* binding */ addAction), +/* harmony export */ addFilter: () => (/* binding */ addFilter), +/* harmony export */ applyFilters: () => (/* binding */ applyFilters), +/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ currentAction: () => (/* binding */ currentAction), +/* harmony export */ currentFilter: () => (/* binding */ currentFilter), +/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), +/* harmony export */ didAction: () => (/* binding */ didAction), +/* harmony export */ didFilter: () => (/* binding */ didFilter), +/* harmony export */ doAction: () => (/* binding */ doAction), +/* harmony export */ doingAction: () => (/* binding */ doingAction), +/* harmony export */ doingFilter: () => (/* binding */ doingFilter), +/* harmony export */ filters: () => (/* binding */ filters), +/* harmony export */ hasAction: () => (/* binding */ hasAction), +/* harmony export */ hasFilter: () => (/* binding */ hasFilter), +/* harmony export */ removeAction: () => (/* binding */ removeAction), +/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), +/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), +/* harmony export */ removeFilter: () => (/* binding */ removeFilter) +/* harmony export */ }); +/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); +/** + * Internal dependencies + */ + +/** @typedef {(...args: any[])=>any} Callback */ + +/** + * @typedef Handler + * @property {Callback} callback The callback + * @property {string} namespace The namespace + * @property {number} priority The namespace + */ + +/** + * @typedef Hook + * @property {Handler[]} handlers Array of handlers + * @property {number} runs Run counter + */ + +/** + * @typedef Current + * @property {string} name Hook name + * @property {number} currentIndex The index + */ + +/** + * @typedef {Record & {__current: Current[]}} Store + */ + +/** + * @typedef {'actions' | 'filters'} StoreKey + */ + +/** + * @typedef {import('./createHooks').Hooks} Hooks + */ + +var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); +var addAction = defaultHooks.addAction, + addFilter = defaultHooks.addFilter, + removeAction = defaultHooks.removeAction, + removeFilter = defaultHooks.removeFilter, + hasAction = defaultHooks.hasAction, + hasFilter = defaultHooks.hasFilter, + removeAllActions = defaultHooks.removeAllActions, + removeAllFilters = defaultHooks.removeAllFilters, + doAction = defaultHooks.doAction, + applyFilters = defaultHooks.applyFilters, + currentAction = defaultHooks.currentAction, + currentFilter = defaultHooks.currentFilter, + doingAction = defaultHooks.doingAction, + doingFilter = defaultHooks.doingFilter, + didAction = defaultHooks.didAction, + didFilter = defaultHooks.didFilter, + actions = defaultHooks.actions, + filters = defaultHooks.filters; + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a hookName string. + * + * @param {string} hookName The hook name to validate. Should be a non empty string containing + * only numbers, letters, dashes, periods and underscores. Also, + * the hook name cannot begin with `__`. + * + * @return {boolean} Whether the hook name is valid. + */ +function validateHookName(hookName) { + if ('string' !== typeof hookName || '' === hookName) { + // eslint-disable-next-line no-console + console.error('The hook name must be a non-empty string.'); + return false; + } + + if (/^__/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name cannot begin with `__`.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); +//# sourceMappingURL=validateHookName.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a namespace string. + * + * @param {string} namespace The namespace to validate - should take the form + * `vendor/plugin/function`. + * + * @return {boolean} Whether the namespace is valid. + */ +function validateNamespace(namespace) { + if ('string' !== typeof namespace || '' === namespace) { + // eslint-disable-next-line no-console + console.error('The namespace must be a non-empty string.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { + // eslint-disable-next-line no-console + console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); +//# sourceMappingURL=validateNamespace.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": +/*!******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createI18n: () => (/* binding */ createI18n) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); + + +function 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; } + +function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } + +/** + * External dependencies + */ + +/** + * @typedef {Record} LocaleData + */ + +/** + * Default locale data to use for Tannin domain when not otherwise provided. + * Assumes an English plural forms expression. + * + * @type {LocaleData} + */ + +var DEFAULT_LOCALE_DATA = { + '': { + /** @param {number} n */ + plural_forms: function plural_forms(n) { + return n === 1 ? 0 : 1; + } + } +}; +/* + * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, + * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. + */ + +var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; +/** + * @typedef {(domain?: string) => LocaleData} GetLocaleData + * + * Returns locale data by domain in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData + * + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData + * + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** @typedef {() => void} SubscribeCallback */ + +/** @typedef {() => void} UnsubscribeCallback */ + +/** + * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe + * + * Subscribes to changes of locale data + */ + +/** + * @typedef {(domain?: string) => string} GetFilterDomain + * Retrieve the domain to use when calling domain-specific filters. + */ + +/** + * @typedef {(text: string, domain?: string) => string} __ + * + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + */ + +/** + * @typedef {(text: string, context: string, domain?: string) => string} _x + * + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n + * + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx + * + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + */ + +/** + * @typedef {() => boolean} IsRtl + * + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + */ + +/** + * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation + * + * Check if there is a translation for a given string in singular form. + */ + +/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ + +/** + * An i18n instance + * + * @typedef I18n + * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. + * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. + * @property {__} __ Retrieve the translation of text. + * @property {_x} _x Retrieve translated string with gettext context. + * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied + * number. + * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * @property {IsRtl} isRTL Check if current locale is RTL. + * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. + */ + +/** + * Create an i18n instance + * + * @param {LocaleData} [initialData] Locale data configuration. + * @param {string} [initialDomain] Domain for which configuration applies. + * @param {Hooks} [hooks] Hooks implementation. + * @return {I18n} I18n instance + */ + +var createI18n = function createI18n(initialData, initialDomain, hooks) { + /** + * The underlying instance of Tannin to which exported functions interface. + * + * @type {Tannin} + */ + var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); + var listeners = new Set(); + + var notifyListeners = function notifyListeners() { + listeners.forEach(function (listener) { + return listener(); + }); + }; + /** + * Subscribe to changes of locale data. + * + * @param {SubscribeCallback} callback Subscription callback. + * @return {UnsubscribeCallback} Unsubscribe callback. + */ + + + var subscribe = function subscribe(callback) { + listeners.add(callback); + return function () { + return listeners.delete(callback); + }; + }; + /** @type {GetLocaleData} */ + + + var getLocaleData = function getLocaleData() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return tannin.data[domain]; + }; + /** + * @param {LocaleData} [data] + * @param {string} [domain] + */ + + + var doSetLocaleData = function doSetLocaleData(data) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits + // a plural forms expression). + + tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); + }; + /** @type {SetLocaleData} */ + + + var setLocaleData = function setLocaleData(data, domain) { + doSetLocaleData(data, domain); + notifyListeners(); + }; + /** @type {ResetLocaleData} */ + + + var resetLocaleData = function resetLocaleData(data, domain) { + // Reset all current Tannin locale data. + tannin.data = {}; // Reset cached plural forms functions cache. + + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + /** + * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not + * otherwise previously assigned. + * + * @param {string|undefined} domain Domain to retrieve the translated text. + * @param {string|undefined} context Context information for the translators. + * @param {string} single Text to translate if non-plural. Used as + * fallback return value on a caught error. + * @param {string} [plural] The text to be used if the number is + * plural. + * @param {number} [number] The number to compare against to use + * either the singular or plural form. + * + * @return {string} The translated string. + */ + + + var dcnpgettext = function dcnpgettext() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + var context = arguments.length > 1 ? arguments[1] : undefined; + var single = arguments.length > 2 ? arguments[2] : undefined; + var plural = arguments.length > 3 ? arguments[3] : undefined; + var number = arguments.length > 4 ? arguments[4] : undefined; + + if (!tannin.data[domain]) { + // use `doSetLocaleData` to set silently, without notifying listeners + doSetLocaleData(undefined, domain); + } + + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + /** @type {GetFilterDomain} */ + + + var getFilterDomain = function getFilterDomain() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return domain; + }; + /** @type {__} */ + + + var __ = function __(text, domain) { + var translation = dcnpgettext(domain, undefined, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext', translation, text, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) + ); + }; + /** @type {_x} */ + + + var _x = function _x(text, context, domain) { + var translation = dcnpgettext(domain, context, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation based on context information. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) + ); + }; + /** @type {_n} */ + + + var _n = function _n(single, plural, number, domain) { + var translation = dcnpgettext(domain, undefined, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) + ); + }; + /** @type {_nx} */ + + + var _nx = function _nx(single, plural, number, context, domain) { + var translation = dcnpgettext(domain, context, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string with gettext context. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) + ); + }; + /** @type {IsRtl} */ + + + var isRTL = function isRTL() { + return 'rtl' === _x('ltr', 'text direction'); + }; + /** @type {HasTranslation} */ + + + var hasTranslation = function hasTranslation(single, context, domain) { + var _tannin$data, _tannin$data2; + + var key = context ? context + "\x04" + single : single; + 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]); + + if (hooks) { + /** + * Filters the presence of a translation in the locale data. + * + * @param {boolean} hasTranslation Whether the translation is present or not.. + * @param {string} single The singular form of the translated text (used as key in locale data) + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation', result, single, context, domain); + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); + } + + return result; + }; + + if (initialData) { + setLocaleData(initialData, initialDomain); + } + + if (hooks) { + /** + * @param {string} hookName + */ + var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + + hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); + hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); + } + + return { + getLocaleData: getLocaleData, + setLocaleData: setLocaleData, + resetLocaleData: resetLocaleData, + subscribe: subscribe, + __: __, + _x: _x, + _n: _n, + _nx: _nx, + isRTL: isRTL, + hasTranslation: hasTranslation + }; +}; +//# sourceMappingURL=create-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* binding */ __), +/* harmony export */ _n: () => (/* binding */ _n), +/* harmony export */ _nx: () => (/* binding */ _nx), +/* harmony export */ _x: () => (/* binding */ _x), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), +/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), +/* harmony export */ isRTL: () => (/* binding */ isRTL), +/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), +/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), +/* harmony export */ subscribe: () => (/* binding */ subscribe) +/* harmony export */ }); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); +/** + * Internal dependencies + */ + +/** + * WordPress dependencies + */ + + +var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); +/** + * Default, singleton instance of `I18n`. + */ + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); +/* + * Comments in this file are duplicated from ./i18n due to + * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 + */ + +/** + * @typedef {import('./create-i18n').LocaleData} LocaleData + * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback + * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback + */ + +/** + * Returns locale data by domain in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {string} [domain] Domain for which to get the data. + * @return {LocaleData} Locale data. + */ + +var getLocaleData = i18n.getLocaleData.bind(i18n); +/** + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var setLocaleData = i18n.setLocaleData.bind(i18n); +/** + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var resetLocaleData = i18n.resetLocaleData.bind(i18n); +/** + * Subscribes to changes of locale data + * + * @param {SubscribeCallback} callback Subscription callback + * @return {UnsubscribeCallback} Unsubscribe callback + */ + +var subscribe = i18n.subscribe.bind(i18n); +/** + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + * + * @param {string} text Text to translate. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated text. + */ + +var __ = i18n.__.bind(i18n); +/** + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + * + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated context string without pipe. + */ + +var _x = i18n._x.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _n = i18n._n.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _nx = i18n._nx.bind(i18n); +/** + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + * + * @return {boolean} Whether locale is RTL. + */ + +var isRTL = i18n.isRTL.bind(i18n); +/** + * Check if there is a translation for a given string (in singular form). + * + * @param {string} single Singular form of the string to look up. + * @param {string} [context] Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * @return {boolean} Whether the translation exists or not. + */ + +var hasTranslation = i18n.hasTranslation.bind(i18n); +//# sourceMappingURL=default-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), +/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), +/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), +/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), +/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), +/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), +/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), +/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), +/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), +/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), +/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), +/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) +/* harmony export */ }); +/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": +/*!**************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ sprintf: () => (/* binding */ sprintf) +/* harmony export */ }); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); +/** + * External dependencies + */ + + +/** + * Log to console, once per message; or more precisely, per referentially equal + * argument set. Because Jed throws errors, we log these to the console instead + * to avoid crashing the application. + * + * @param {...*} args Arguments to pass to `console.error` + */ + +var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console + +/** + * Returns a formatted string. If an error occurs in applying the format, the + * original format string is returned. + * + * @param {string} format The format of the string to generate. + * @param {...*} args Arguments to apply to the format. + * + * @see https://www.npmjs.com/package/sprintf-js + * + * @return {string} The formatted string. + */ + +function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); + } catch (error) { + logErrorOnce('sprintf error: \n\n' + error.toString()); + return format; + } +} +//# sourceMappingURL=sprintf.js.map + +/***/ }), + +/***/ "./js/src/addons-page/addons/categorizeAddons.js": +/*!*******************************************************!*\ + !*** ./js/src/addons-page/addons/categorizeAddons.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedAddons: () => (/* binding */ buildCategorizedAddons), +/* harmony export */ categorizedAddons: () => (/* binding */ categorizedAddons) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * Internal dependencies + */ + + +var categorizedAddons = {}; +categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE] = []; +categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE] = []; + +/** + * Builds a categorized list of addons. + * + * @return {void} + */ +function buildCategorizedAddons() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + addons = _getElements.addons; + addons.forEach(function (addon) { + // Extract and split the categories from data attribute + var dataCategories = addon.getAttribute('data-categories'); + if (!dataCategories) { + return; + } + var categories = dataCategories.split(','); + categories.forEach(function (category) { + // Initialize the category array if not already done + if (!categorizedAddons[category]) { + categorizedAddons[category] = []; + } + + // Add the addon to the appropriate category + categorizedAddons[category].push(addon); + }); + }); +} + +/***/ }), + +/***/ "./js/src/addons-page/addons/index.js": +/*!********************************************!*\ + !*** ./js/src/addons-page/addons/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedAddons), +/* harmony export */ categorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.categorizedAddons) +/* harmony export */ }); +/* harmony import */ var _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeAddons */ "./js/src/addons-page/addons/categorizeAddons.js"); + + +/***/ }), + +/***/ "./js/src/addons-page/constants.js": +/*!*****************************************!*\ + !*** ./js/src/addons-page/constants.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PLANS: () => (/* binding */ PLANS), +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ VIEWS: () => (/* binding */ VIEWS), +/* harmony export */ addonRequestURL: () => (/* binding */ addonRequestURL) +/* harmony export */ }); +var addonRequestURL = window.frmAddonsVars.addonRequestURL; + +var PREFIX = 'frm-addons'; +var VIEWS = { + AVAILABLE: 'available-addons', + ACTIVE: 'active-addons' +}; +var PLANS = { + BASIC: 'basic', + PLUS: 'plus', + BUSINESS: 'business', + ELITE: 'elite' +}; + +/***/ }), + +/***/ "./js/src/addons-page/elements/elements.js": +/*!*************************************************!*\ + !*** ./js/src/addons-page/elements/elements.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + bodyContent = _getElements.bodyContent, + sidebar = _getElements.sidebar; +bodyContent.querySelectorAll('.frm-card-item:not(.plugin-card-formidable-pro)').forEach(function (addon) { + var categories = addon.dataset.categories; + switch (true) { + case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS): + addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); + break; + case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS): + addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); + break; + case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC): + addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); + break; + } +}); +(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ + // Body elements + upgradeBanner: document.getElementById('frm-upgrade-banner'), + // Category elements + availableCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE, "\"]")), + activeCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE, "\"]")), + categoriesTopDivider: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-divider")), + basicPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC, "\"]")), + plusPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, "\"]")), + businessPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, "\"]")), + elitePlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE, "\"]")), + // Card elements + addonsList: document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")), + addons: bodyContent.querySelectorAll('.frm-card-item'), + availableAddons: bodyContent.querySelectorAll('.frm-card-item:not(.frm-locked-item)'), + addonsToggle: bodyContent.querySelectorAll('.frm_toggle_block'), + // Add children of the bodyContent to the elements object + bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children +}); + + +/***/ }), + +/***/ "./js/src/addons-page/elements/index.js": +/*!**********************************************!*\ + !*** ./js/src/addons-page/elements/index.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/addons-page/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/addons-page/events/addonToggleListener.js": +/*!**********************************************************!*\ + !*** ./js/src/addons-page/events/addonToggleListener.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui/ */ "./js/src/addons-page/ui/index.js"); +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +/** + * Internal dependencies + */ + + +var targetButton; + +/** + * Manages event handling for addons toggle. + * + * @return {void} + */ +function addAddonToggleEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + addonsToggle = _getElements.addonsToggle; + addonsToggle.forEach(function (addonToggle) { + return addonToggle.addEventListener('click', onAddonToggleClick); + }); + wp.hooks.addAction('frm_update_addon_state', 'frmAddonPage', function () { + (0,_ui___WEBPACK_IMPORTED_MODULE_1__.setupActiveCategory)(); + }); +} + +/** + * Handles the click event on the addon toggle. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onAddonToggleClick = function onAddonToggleClick(event) { + var _targetButton; + if ((_targetButton = targetButton) !== null && _targetButton !== void 0 && _targetButton.classList.contains('frm_loading_button')) { + return; + } + var addonToggle = event.currentTarget; + var addon = addonToggle.closest('.frm-card-item'); + var actionMap = new Map([['frm-addon-not-installed', '.frm-install-addon'], ['frm-addon-installed', '.frm-activate-addon'], ['frm-addon-active', '.frm-deactivate-addon']]); + var _iterator = _createForOfIteratorHelper(actionMap.entries()), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _slicedToArray(_step.value, 2), + className = _step$value[0], + selector = _step$value[1]; + if (addon.classList.contains(className)) { + targetButton = addon.querySelector(selector); + targetButton.click(); + break; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addAddonToggleEvents); + +/***/ }), + +/***/ "./js/src/addons-page/events/index.js": +/*!********************************************!*\ + !*** ./js/src/addons-page/events/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); +/* harmony import */ var _addonToggleListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addonToggleListener */ "./js/src/addons-page/events/addonToggleListener.js"); +/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./searchListener */ "./js/src/addons-page/events/searchListener.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Attaches event listeners for handling user interactions. + * + * @return {void} + */ +function addEventListeners() { + (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); + wp.hooks.addAction('frmPage.onCategoryClick', 'frmAddonsPage', function (selectedCategory) { + (0,_ui__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory)(selectedCategory); + }); + (0,_addonToggleListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_searchListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + +/***/ }), + +/***/ "./js/src/addons-page/events/searchListener.js": +/*!*****************************************************!*\ + !*** ./js/src/addons-page/events/searchListener.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); +/** + * Internal dependencies + */ + + + +var initSearch = window.frmDom.search.init; + +/** + * Adds search-related event listeners by calling the 'initSearch' function. + * + * @see frmDom.search method + * @return {void} + */ +function addSearchEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + searchInput = _getElements.searchInput; + initSearch(searchInput, 'frm-card-item', { + handleSearchResult: handleSearchResult + }); +} + +/** + * Manages UI state based on search results and input value. + * + * @private + * @param {Object} args Contains flags for search status. + * @param {boolean} args.foundSomething True if search yielded results. + * @param {boolean} args.notEmptySearchText True if search input is not empty. + * @param {Event} event The event object (input, search, or change event). + * @return {void} + */ +function handleSearchResult(_ref, event) { + var foundSomething = _ref.foundSomething, + notEmptySearchText = _ref.notEmptySearchText; + // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, + // triggering this method twice on 'x' button click. + if (event && event.type === 'search' && event.target.value === '') { + return; + } + var state = (0,_shared__WEBPACK_IMPORTED_MODULE_1__.getState)(); + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + allItemsCategory = _getElements2.allItemsCategory; + (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('notEmptySearchText', notEmptySearchText); + + // Revert to 'All Templates' if search and selected category are both empty + if (!state.notEmptySearchText && !state.selectedCategory) { + allItemsCategory.dispatchEvent(new Event('click', { + bubbles: true + })); + return; + } + + // Display search state if a category is selected + if (state.selectedCategory) { + (0,_ui__WEBPACK_IMPORTED_MODULE_2__.showSearchState)(notEmptySearchText); + + // Setting "selectedCategory" to an empty string as a flag for search state + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('selectedCategory', ''); + } + } + (0,_ui__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements)(foundSomething); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); + +/***/ }), + +/***/ "./js/src/addons-page/shared/index.js": +/*!********************************************!*\ + !*** ./js/src/addons-page/shared/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/addons-page/shared/pageState.js"); + + +/***/ }), + +/***/ "./js/src/addons-page/shared/pageState.js": +/*!************************************************!*\ + !*** ./js/src/addons-page/shared/pageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/** + * External dependencies + */ + + +// NOTE: +// Use setState() here to add new states on the Add-Ons page. +// Check the 'core/page-skeleton' package for shared states you can use. + + + +/***/ }), + +/***/ "./js/src/addons-page/ui/index.js": +/*!****************************************!*\ + !*** ./js/src/addons-page/ui/index.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements), +/* harmony export */ setupActiveCategory: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupActiveCategory), +/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupInitialView), +/* harmony export */ showEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_3__.showEmptyState), +/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.showSearchState), +/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory) +/* harmony export */ }); +/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/addons-page/ui/setupInitialView.js"); +/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/addons-page/ui/showSelectedCategory.js"); +/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./searchState */ "./js/src/addons-page/ui/searchState.js"); +/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/addons-page/ui/showEmptyState.js"); + + + + + +/***/ }), + +/***/ "./js/src/addons-page/ui/searchState.js": +/*!**********************************************!*\ + !*** ./js/src/addons-page/ui/searchState.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), +/* harmony export */ showSearchState: () => (/* binding */ showSearchState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Updates the UI to display the search state. + * + * @param {boolean} notEmptySearchText True if search input is not empty. + * @return {void} + */ +function showSearchState(notEmptySearchText) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + bodyContent = _getElements.bodyContent, + bodyContentChildren = _getElements.bodyContentChildren, + addonsList = _getElements.addonsList; + + // Remove highlighting from the currently selected category if the search text is not empty + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); + } + + // Hide non-relevant elements in the body content + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(addonsList); + + // Smoothly display the updated UI elements + new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent).fadeIn(); +} + +/** + * Displays search results based on search outcome. + * + * @param {boolean} foundSomething True if search yielded results. + * @return {void} + */ +function displaySearchElements(foundSomething) { + // Show empty state if no templates found + if (!foundSomething) { + (0,___WEBPACK_IMPORTED_MODULE_5__.showEmptyState)(); + return; + } + + // Hide empty state if currently displayed + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + emptyState = _getElements2.emptyState; + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); + } +} + +/***/ }), + +/***/ "./js/src/addons-page/ui/setupInitialView.js": +/*!***************************************************!*\ + !*** ./js/src/addons-page/ui/setupInitialView.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupActiveCategory: () => (/* binding */ setupActiveCategory), +/* harmony export */ setupInitialView: () => (/* binding */ setupInitialView) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * External dependencies + */ + + + + +/** + * Internal dependencies + */ + + + +var CAT_COUNT_CLASS = ".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-cat-count"); + +/** + * Sets up the initial view, performing any required + * DOM manipulations for proper element presentation. + * + * @return {void} + */ +function setupInitialView() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + sidebar = _getElements.sidebar, + searchInput = _getElements.searchInput, + bodyContent = _getElements.bodyContent; + var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); + searchInput.value = ''; + setupActiveCategory(); + setupAvailableCategory(); + setupAllAddonsCategory(); + setupPlansCategory(); + + // Smoothly display the updated UI elements + bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + bodyContentAnimate.fadeIn(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(sidebar); +} + +/** + * Sets up the "Active" category, updating the + * categorizedAddons object and the category count. + * + * @return {void} + */ +function setupActiveCategory() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + activeCategory = _getElements2.activeCategory, + availableCategory = _getElements2.availableCategory, + categoriesTopDivider = _getElements2.categoriesTopDivider; + var activeAddons = document.querySelectorAll('.frm-addon-active:not(.frm-locked-item)'); + if (activeAddons.length === 0) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([activeCategory, availableCategory, categoriesTopDivider]); + return; + } + _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.ACTIVE] = activeAddons; + + // Set "Active" category count + activeCategory.querySelector(CAT_COUNT_CLASS).textContent = activeAddons.length; +} + +/** + * Sets up the "Available" category, updating the + * categorizedAddons object and the category count. + * + * @private + * @return {void} + */ +function setupAvailableCategory() { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + bodyContent = _getElements3.bodyContent, + availableCategory = _getElements3.availableCategory, + availableAddons = _getElements3.availableAddons; + _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.AVAILABLE] = availableAddons; + + // Set "Available" category count + if (availableCategory) { + availableCategory.querySelector(CAT_COUNT_CLASS).textContent = availableAddons.length; + var upgradeBannerAvailableCount = bodyContent.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_5__.PREFIX, "-available-count")); + if (upgradeBannerAvailableCount) { + upgradeBannerAvailableCount.textContent = availableAddons.length; + } + } +} + +/** + * Sets up the "All Add-Ons" category, updating the + * category count. + * + * @private + * @return {void} + */ +function setupAllAddonsCategory() { + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + allItemsCategory = _getElements4.allItemsCategory, + addons = _getElements4.addons; + + // Set "All Add-Ons" category count + allItemsCategory.querySelector(CAT_COUNT_CLASS).textContent = addons.length; +} + +/** + * Sets up the "All Add-Ons" category, updating the + * category count. + * + * @private + * @return {void} + */ +function setupPlansCategory() { + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + basicPlanCategory = _getElements5.basicPlanCategory, + plusPlanCategory = _getElements5.plusPlanCategory, + businessPlanCategory = _getElements5.businessPlanCategory, + elitePlanCategory = _getElements5.elitePlanCategory; + var getCount = function getCount(category) { + return parseInt(category.querySelector(CAT_COUNT_CLASS).textContent, 10) || 0; + }; + + // The "Formidable Pro" add-on is included in all plans, so we just consider that in the basicCount + var basicCount = getCount(basicPlanCategory); + var plusCount = getCount(plusPlanCategory) - 1; + var businessCount = getCount(businessPlanCategory) - 1; + var eliteCount = getCount(elitePlanCategory) - 1; + + // Update the text content for each category + plusPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount; + businessPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount; + elitePlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount + eliteCount; +} + +/***/ }), + +/***/ "./js/src/addons-page/ui/showEmptyState.js": +/*!*************************************************!*\ + !*** ./js/src/addons-page/ui/showEmptyState.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showEmptyState: () => (/* binding */ showEmptyState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Display the search-empty state. + * + * @return {void} + */ +function showEmptyState() { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory; + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyState = _getElements.emptyState, + emptyStateButton = _getElements.emptyStateButton, + emptyStateTitle = _getElements.emptyStateTitle, + emptyStateText = _getElements.emptyStateText; + emptyState.setAttribute('data-view', selectedCategory); + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No add-ons found', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any add-ons that match your criteria.', 'formidable'); + emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request Add-On', 'formidable'); + emptyStateButton.href = _constants__WEBPACK_IMPORTED_MODULE_4__.addonRequestURL; + emptyStateButton.setAttribute('target', '_blank'); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); +} + +/***/ }), + +/***/ "./js/src/addons-page/ui/showSelectedCategory.js": +/*!*******************************************************!*\ + !*** ./js/src/addons-page/ui/showSelectedCategory.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Show addons based on selected category. + * + * @param {string} selectedCategory The selected category to display addons for. + * @return {void} + */ +function showSelectedCategory(selectedCategory) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements.bodyContent, + addons = _getElements.addons, + emptyState = _getElements.emptyState, + upgradeBanner = _getElements.upgradeBanner; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(emptyState); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(upgradeBanner); + bodyContent.dataset.category = selectedCategory; + if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === selectedCategory) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(addons); + return; + } + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(addons); + if (_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory].length === 0) { + (0,___WEBPACK_IMPORTED_MODULE_4__.showEmptyState)(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(upgradeBanner); + } else { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory]); + } +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/factory/createPageElements.js": +/*!***************************************************!*\ + !*** ./js/src/core/factory/createPageElements.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* binding */ createPageElements) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page elements manager. + * + * @param {Object} [initialElements={}] An object containing initial DOM elements. + * @throws {Error} Throws an error if the `initialElements` is not an object. + * @return {Object} An object with methods to get and add elements. + */ +function createPageElements() { + var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialElements) !== 'object' || initialElements === null) { + throw new Error('createPageElements: initialElements must be a non-null object'); + } + var elements = initialElements; + + /** + * Retrieve the initialized essential DOM elements. + * + * @return {Object} The initialized elements object. + */ + function getElements() { + return elements; + } + + /** + * Add new elements to the elements object. + * + * @param {Object} newElements An object containing new elements to be added. + * @throws {Error} Throws an error if the `newElements` is not a non-null object. + * @return {void} Updates the elements object by merging the new elements into it. + */ + function addElements(newElements) { + if (_typeof(newElements) !== 'object' || newElements === null) { + throw new Error('addElements: newElements must be a non-null object'); + } + elements = _objectSpread(_objectSpread({}, elements), newElements); + } + return { + getElements: getElements, + addElements: addElements + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageState.js": +/*!************************************************!*\ + !*** ./js/src/core/factory/createPageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageState: () => (/* binding */ createPageState) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page state manager. + * + * @param {Object} [initialState={}] An object containing the initial state. + * @throws {Error} Throws an error if the `initialState` is not a plain object. + * @return {Object} An object with methods to initialize, get, and set the page state. + */ +function createPageState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialState) !== 'object' || initialState === null) { + throw new Error('createPageState: initialState must be a non-null object'); + } + var state = initialState; + + /** + * Returns the current page state. + * + * @return {Object|null} The current state of the page or null if not initialized. + */ + var getState = function getState() { + return state; + }; + + /** + * Returns a specific property from the current page state. + * + * @param {string} propertyName The name of the property to retrieve. + * @return {*} The value of the specified property, or null if it doesn't exist. + */ + var getSingleState = function getSingleState(propertyName) { + var value = Reflect.get(state, propertyName); + + // We convert `undefined` to `null` for a consistent API. + // This makes it easier for users to handle the results since all missing properties return `null`. + return value === undefined ? null : value; + }; + + /** + * Updates the page state with new values. + * + * @param {Object} newState The new values to update the state with. + * @throws {Error} Throws an error if `newState` is not a plain object. + * @return {void} + */ + var setState = function setState(newState) { + if (_typeof(newState) !== 'object' || newState === null) { + throw new Error('setState: newState must be a non-null object'); + } + state = _objectSpread(_objectSpread({}, state), newState); + }; + + /** + * Updates a specific property in the page state with a new value. + * + * @param {string} propertyName The name of the property to update. + * @param {*} value The new value to set for the property. + * @return {void} + */ + var setSingleState = function setSingleState(propertyName, value) { + if (Reflect.has(state, propertyName)) { + Reflect.set(state, propertyName, value); + } + }; + return { + getState: getState, + getSingleState: getSingleState, + setState: setState, + setSingleState: setSingleState + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/index.js": +/*!**************************************!*\ + !*** ./js/src/core/factory/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), +/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) +/* harmony export */ }); +/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); +/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/constants.js": +/*!************************************************!*\ + !*** ./js/src/core/page-skeleton/constants.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* binding */ VIEWS) +/* harmony export */ }); +var PREFIX = 'frm-page-skeleton'; +var SEARCH_RESULT_ITEM = 'frm-card-item'; +var VIEWS = { + ALL_ITEMS: 'all-items' +}; + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/elements.js": +/*!********************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/elements.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* binding */ addElements), +/* harmony export */ getElements: () => (/* binding */ getElements) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var bodyContent = document.getElementById('post-body-content'); +var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); + +// Append empty state elements to body content +var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); +bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); +var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); +var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ + bodyContent: bodyContent, + // Sidebar elements + sidebar: sidebar, + searchInput: sidebar.querySelector('.frm-search-input'), + categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), + allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) + }, emptyStateElements)), + getElements = _createPageElements.getElements, + addElements = _createPageElements.addElements; + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": +/*!*****************************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), +/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _window$frmDom = window.frmDom, + tag = _window$frmDom.tag, + div = _window$frmDom.div, + a = _window$frmDom.a, + img = _window$frmDom.img; + +/** + * Create and return the Empty State HTML element. + * + * @return {HTMLElement} The Empty State element. + */ +function createEmptyStateElement() { + var button = a({ + className: 'button button-primary frm-button-primary' + }); + button.setAttribute('role', 'button'); + return div({ + id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), + className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), + children: [img({ + src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), + alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') + }), div({ + className: 'frmcenter', + children: [tag('h2', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") + }), tag('p', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") + })] + }), button] + }); +} + +/** + * Return the elements related to the Empty State. + * + * @return {Object} Object containing Empty State related DOM elements. + */ +function getEmptyStateElements() { + var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); + return { + emptyState: emptyState, + emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), + emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), + emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') + }; +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/index.js": +/*!*****************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/categoryListener.js": +/*!**************************************************************!*\ + !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Manages event handling for sidebar category links. + * + * @return {void} + */ +function addCategoryEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + categoryItems = _getElements.categoryItems; + + // Attach click and keyboard event listeners to each sidebar category + categoryItems.forEach(function (category) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); + category.addEventListener('keydown', onCategoryKeydown); + }); +} + +/** + * Handles the click event on a category item. + * + * @private + * @param {Event} event The click event object. + */ +var onCategoryClick = function onCategoryClick(event) { + var clickedCategory = event.currentTarget; + var newSelectedCategory = clickedCategory.getAttribute('data-category'); + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory, + selectedCategoryEl = _getState.selectedCategoryEl, + notEmptySearchText = _getState.notEmptySearchText; + + // If the selected category hasn't changed, return early + if (selectedCategory === newSelectedCategory) { + return; + } + + /** + * Filter hook to modify the selected category. + * + * @param {string} selectedCategory The selected category + */ + selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); + + // Highlight the newly clicked category and update the application state + selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + selectedCategoryEl = clickedCategory; + selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ + selectedCategory: selectedCategory, + selectedCategoryEl: selectedCategoryEl + }); + + // Reset the search input if it contains text + if (notEmptySearchText) { + (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); + } + + /** + * Trigger custom action to update category content. + * + * @param {string} selectedCategory The selected category. + */ + wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); + + // Smoothly display the updated UI elements + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements2.bodyContent; + new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); +}; + +/** + * Handles the keyboard event on a category item. + * + * @param {KeyboardEvent} event The keyboard event object. + * @return {void} + */ +function onCategoryKeydown(event) { + // Only respond to 'Enter' or 'Space' key presses + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + onCategoryClick(event); + } +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/events/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), +/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); +/** + * Internal dependencies + */ + + +/** + * Resets the value of the search input and triggers an input event. + * + * @return {void} + */ +function resetSearchInput() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + searchInput = _getElements.searchInput; + searchInput.value = ''; + searchInput.dispatchEvent(new Event('input', { + bubbles: true + })); +} + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/index.js": +/*!********************************************!*\ + !*** ./js/src/core/page-skeleton/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), +/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), +/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), +/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); + + + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/pageState.js": +/*!*******************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/pageState.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* binding */ getSingleState), +/* harmony export */ getState: () => (/* binding */ getState), +/* harmony export */ setSingleState: () => (/* binding */ setSingleState), +/* harmony export */ setState: () => (/* binding */ setState) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + allItemsCategory = _getElements.allItemsCategory; +var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ + notEmptySearchText: false, + selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, + selectedCategoryEl: allItemsCategory + }), + getState = _createPageState.getState, + getSingleState = _createPageState.getSingleState, + setState = _createPageState.setState, + setSingleState = _createPageState.setSingleState; + + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./node_modules/memize/index.js": +/*!**************************************!*\ + !*** ./node_modules/memize/index.js ***! + \**************************************/ +/***/ ((module) => { + +/** + * Memize options object. + * + * @typedef MemizeOptions + * + * @property {number} [maxSize] Maximum size of the cache. + */ + +/** + * Internal cache entry. + * + * @typedef MemizeCacheNode + * + * @property {?MemizeCacheNode|undefined} [prev] Previous node. + * @property {?MemizeCacheNode|undefined} [next] Next node. + * @property {Array<*>} args Function arguments for cache + * entry. + * @property {*} val Function result. + */ + +/** + * Properties of the enhanced function for controlling cache. + * + * @typedef MemizeMemoizedFunction + * + * @property {()=>void} clear Clear the cache. + */ + +/** + * Accepts a function to be memoized, and returns a new memoized function, with + * optional options. + * + * @template {Function} F + * + * @param {F} fn Function to memoize. + * @param {MemizeOptions} [options] Options object. + * + * @return {F & MemizeMemoizedFunction} Memoized function. + */ +function memize( fn, options ) { + var size = 0; + + /** @type {?MemizeCacheNode|undefined} */ + var head; + + /** @type {?MemizeCacheNode|undefined} */ + var tail; + + options = options || {}; + + function memoized( /* ...args */ ) { + var node = head, + len = arguments.length, + args, i; + + searchCache: while ( node ) { + // Perform a shallow equality test to confirm that whether the node + // under test is a candidate for the arguments passed. Two arrays + // are shallowly equal if their length matches and each entry is + // strictly equal between the two sets. Avoid abstracting to a + // function which could incur an arguments leaking deoptimization. + + // Check whether node arguments match arguments length + if ( node.args.length !== arguments.length ) { + node = node.next; + continue; + } + + // Check whether node arguments match arguments values + for ( i = 0; i < len; i++ ) { + if ( node.args[ i ] !== arguments[ i ] ) { + node = node.next; + continue searchCache; + } + } + + // At this point we can assume we've found a match + + // Surface matched node to head if not already + if ( node !== head ) { + // As tail, shift to previous. Must only shift if not also + // head, since if both head and tail, there is no previous. + if ( node === tail ) { + tail = node.prev; + } + + // Adjust siblings to point to each other. If node was tail, + // this also handles new tail's empty `next` assignment. + /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; + if ( node.next ) { + node.next.prev = node.prev; + } + + node.next = head; + node.prev = null; + /** @type {MemizeCacheNode} */ ( head ).prev = node; + head = node; + } + + // Return immediately + return node.val; + } + + // No cached value found. Continue to insertion phase: + + // Create a copy of arguments (avoid leaking deoptimization) + args = new Array( len ); + for ( i = 0; i < len; i++ ) { + args[ i ] = arguments[ i ]; + } + + node = { + args: args, + + // Generate the result from original function + val: fn.apply( null, args ), + }; + + // Don't need to check whether node is already head, since it would + // have been returned above already if it was + + // Shift existing head down list + if ( head ) { + head.prev = node; + node.next = head; + } else { + // If no head, follows that there's no tail (at initial or reset) + tail = node; + } + + // Trim tail if we're reached max size and are pending cache insertion + if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { + tail = /** @type {MemizeCacheNode} */ ( tail ).prev; + /** @type {MemizeCacheNode} */ ( tail ).next = null; + } else { + size++; + } + + head = node; + + return node.val; + } + + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + + if ( false ) {} + + // Ignore reason: There's not a clear solution to create an intersection of + // the function with additional properties, where the goal is to retain the + // function signature of the incoming argument and add control properties + // on the return value. + + // @ts-ignore + return memoized; +} + +module.exports = memize; + + +/***/ }), + +/***/ "./node_modules/sprintf-js/src/sprintf.js": +/*!************************************************!*\ + !*** ./node_modules/sprintf-js/src/sprintf.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports.sprintf = sprintf + exports.vsprintf = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line + + +/***/ }), + +/***/ "./node_modules/tannin/index.js": +/*!**************************************!*\ + !*** ./node_modules/tannin/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Tannin) +/* harmony export */ }); +/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); + + +/** + * Tannin constructor options. + * + * @typedef {Object} TanninOptions + * + * @property {string} [contextDelimiter] Joiner in string lookup with context. + * @property {Function} [onMissingKey] Callback to invoke when key missing. + */ + +/** + * Domain metadata. + * + * @typedef {Object} TanninDomainMetadata + * + * @property {string} [domain] Domain name. + * @property {string} [lang] Language code. + * @property {(string|Function)} [plural_forms] Plural forms expression or + * function evaluator. + */ + +/** + * Domain translation pair respectively representing the singular and plural + * translation. + * + * @typedef {[string,string]} TanninTranslation + */ + +/** + * Locale data domain. The key is used as reference for lookup, the value an + * array of two string entries respectively representing the singular and plural + * translation. + * + * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain + */ + +/** + * Jed-formatted locale data. + * + * @see http://messageformat.github.io/Jed/ + * + * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData + */ + +/** + * Default Tannin constructor options. + * + * @type {TanninOptions} + */ +var DEFAULT_OPTIONS = { + contextDelimiter: '\u0004', + onMissingKey: null, +}; + +/** + * Given a specific locale data's config `plural_forms` value, returns the + * expression. + * + * @example + * + * ``` + * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' + * ``` + * + * @param {string} pf Locale data plural forms. + * + * @return {string} Plural forms expression. + */ +function getPluralExpression( pf ) { + var parts, i, part; + + parts = pf.split( ';' ); + + for ( i = 0; i < parts.length; i++ ) { + part = parts[ i ].trim(); + if ( part.indexOf( 'plural=' ) === 0 ) { + return part.substr( 7 ); + } + } +} + +/** + * Tannin constructor. + * + * @class + * + * @param {TanninLocaleData} data Jed-formatted locale data. + * @param {TanninOptions} [options] Tannin options. + */ +function Tannin( data, options ) { + var key; + + /** + * Jed-formatted locale data. + * + * @name Tannin#data + * @type {TanninLocaleData} + */ + this.data = data; + + /** + * Plural forms function cache, keyed by plural forms string. + * + * @name Tannin#pluralForms + * @type {Object} + */ + this.pluralForms = {}; + + /** + * Effective options for instance, including defaults. + * + * @name Tannin#options + * @type {TanninOptions} + */ + this.options = {}; + + for ( key in DEFAULT_OPTIONS ) { + this.options[ key ] = options !== undefined && key in options + ? options[ key ] + : DEFAULT_OPTIONS[ key ]; + } +} + +/** + * Returns the plural form index for the given domain and value. + * + * @param {string} domain Domain on which to calculate plural form. + * @param {number} n Value for which plural form is to be calculated. + * + * @return {number} Plural form index. + */ +Tannin.prototype.getPluralForm = function( domain, n ) { + var getPluralForm = this.pluralForms[ domain ], + config, plural, pf; + + if ( ! getPluralForm ) { + config = this.data[ domain ][ '' ]; + + pf = ( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + if ( typeof pf !== 'function' ) { + plural = getPluralExpression( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); + } + + getPluralForm = this.pluralForms[ domain ] = pf; + } + + return getPluralForm( n ); +}; + +/** + * Translate a string. + * + * @param {string} domain Translation domain. + * @param {string|void} context Context distinguishing terms of the same name. + * @param {string} singular Primary key for translation lookup. + * @param {string=} plural Fallback value used for non-zero plural + * form index. + * @param {number=} n Value to use in calculating plural form. + * + * @return {string} Translated string. + */ +Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { + var index, key, entry; + + if ( n === undefined ) { + // Default to singular. + index = 0; + } else { + // Find index by evaluating plural form for value. + index = this.getPluralForm( domain, n ); + } + + key = singular; + + // If provided, context is prepended to key with delimiter. + if ( context ) { + key = context + this.options.contextDelimiter + singular; + } + + entry = this.data[ domain ][ key ]; + + // Verify not only that entry exists, but that the intended index is within + // range and non-empty. + if ( entry && entry[ index ] ) { + return entry[ index ]; + } + + if ( this.options.onMissingKey ) { + this.options.onMissingKey( singular, domain ); + } + + // If entry not found, fall back to singular vs. plural with zero index + // representing the singular value. + return index === 0 ? singular : plural; +}; + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) +/* harmony export */ }); +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _classCallCheck) +/* harmony export */ }); +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _iterableToArray) +/* harmony export */ }); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) +/* harmony export */ }); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _toConsumableArray) +/* harmony export */ }); +/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); +/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); + + + + +function _toConsumableArray(r) { + return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; + } +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _defineProperty) +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(e, r, t) { + return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPrimitive) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function toPrimitive(t, r) { + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPropertyKey) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function toPropertyKey(t) { + var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); + return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!*************************************!*\ + !*** ./js/src/addons-page/index.js ***! + \*************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/addons-page/ui/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/addons-page/events/index.js"); +/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addons */ "./js/src/addons-page/addons/index.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__["default"])(function () { + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); + (0,_addons__WEBPACK_IMPORTED_MODULE_2__.buildCategorizedAddons)(); + (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); +}); +})(); + +/******/ })() +; +//# sourceMappingURL=addons-page.js.map \ No newline at end of file diff --git a/js/form-templates.js b/js/form-templates.js index 957358992d..1b5a83479a 100644 --- a/js/form-templates.js +++ b/js/form-templates.js @@ -1,2 +1,6257 @@ -/*! For license information please see form-templates.js.LICENSE.txt */ -(()=>{var t={616:t=>{t.exports=function(t,e){var r,n,o=0;function a(){var a,i,c=r,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(i=0;i{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,i,c,l,u,s,f,p,m=1,d=t.length,h="";for(n=0;n=0),c.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,c.width?parseInt(c.width):0);break;case"e":r=c.precision?parseFloat(r).toExponential(c.precision):parseFloat(r).toExponential();break;case"f":r=c.precision?parseFloat(r).toFixed(c.precision):parseFloat(r);break;case"g":r=c.precision?String(Number(r.toPrecision(c.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=c.precision?r.substring(0,c.precision):r;break;case"t":r=String(!!r),r=c.precision?r.substring(0,c.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=c.precision?r.substring(0,c.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=c.precision?r.substring(0,c.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?h+=r:(!o.number.test(c.type)||f&&!c.sign?p="":(p=f?"+":"-",r=r.toString().replace(o.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",s=c.width-(p+r).length,l=c.width&&s>0?u.repeat(s):"",h+=c.align?p+r+l:"0"===u?p+l+r:l+p+r)}return h}(function(t){if(c[t])return c[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=o.text.exec(r)))n.push(e[0]);else if(null!==(e=o.modulo.exec(r)))n.push("%");else{if(null===(e=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var i=[],l=e[2],u=[];if(null===(u=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=o.key_access.exec(l)))i.push(u[1]);else{if(null===(u=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(u[1])}e[2]=i}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return c[t]=n}(t),arguments)}function i(t,e){return a.apply(null,[t].concat(e||[]))}var c=Object.create(null);e.sprintf=a,e.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=i,void 0===(n=function(){return{sprintf:a,vsprintf:i}}.call(e,r,e,t))||(t.exports=n))}()}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.canAccessApplicationDashboard,n=t.applicationsUrl,o=window.frmFormTemplatesVars,a=o.FEATURED_TEMPLATES_KEYS,i=o.upgradeLink,c="frm-form-templates",l="available-templates",u="favorites",s="custom",f="search",p="440px",m="550px",d="frm-page-skeleton",h="all-items";function y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function v(t){for(var e=1;e":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},x=["(","?"],S={")":["("],":":["?","?:"]},T=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};var A={contextDelimiter:"",onMissingKey:null};function P(t,e){var r;for(r in this.data=t,this.pluralForms={},this.options={},A)this.options[r]=void 0!==e&&r in e?e[r]:A[r]}function F(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function B(t){for(var e=1;e=0||w[o]3&&void 0!==arguments[3]?arguments[3]:10,i=t[e];if(M(r)&&q(n))if("function"==typeof o)if("number"==typeof a){var c={callback:o,priority:a,namespace:n};if(i[r]){var l,u=i[r].handlers;for(l=u.length;l>0&&!(a>=u[l-1].priority);l--);l===u.length?u[l]=c:u.splice(l,0,c),i.__current.forEach((function(t){t.name===r&&t.currentIndex>=l&&t.currentIndex++}))}else i[r]={handlers:[c],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,n,o,a)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},R=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n,o){var a=t[e];if(M(n)&&(r||q(o))){if(!a[n])return 0;var i=0;if(r)i=a[n].handlers.length,a[n]={runs:a[n].runs,handlers:[]};else for(var c=a[n].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),i++,a.__current.forEach((function(e){e.name===n&&e.currentIndex>=t&&e.currentIndex--})))},u=c.length-1;u>=0;u--)l(u);return"hookRemoved"!==n&&t.doAction("hookRemoved",n,o),i}}},z=function(t,e){return function(r,n){var o=t[e];return void 0!==n?r in o&&o[r].handlers.some((function(t){return t.namespace===n})):r in o}},Y=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=t[e];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var a=o[n].handlers,i=arguments.length,c=new Array(i>1?i-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";n.data[e]=B(B(B({},D),n.data[e]),t),n.data[e][""]=B(B({},D[""]),n.data[e][""])},c=function(t,e){i(t,e),a()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return n.data[t]||i(void 0,t),n.dcnpgettext(t,e,r,o,a)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},s=function(t,e,n){var o=l(n,e,t);return r?(o=r.applyFilters("i18n.gettext_with_context",o,t,e,n),r.applyFilters("i18n.gettext_with_context_"+u(n),o,t,e,n)):o};if(r){var f=function(t){N.test(t)&&a()};r.addAction("hookAdded","core/i18n",f),r.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[t]},setLocaleData:c,resetLocaleData:function(t,e){n.data={},n.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var n=l(e,void 0,t);return r?(n=r.applyFilters("i18n.gettext",n,t,e),r.applyFilters("i18n.gettext_"+u(e),n,t,e)):n},_x:s,_n:function(t,e,n,o){var a=l(o,void 0,t,e,n);return r?(a=r.applyFilters("i18n.ngettext",a,t,e,n,o),r.applyFilters("i18n.ngettext_"+u(o),a,t,e,n,o)):a},_nx:function(t,e,n,o,a){var i=l(a,o,t,e,n);return r?(i=r.applyFilters("i18n.ngettext_with_context",i,t,e,n,o,a),r.applyFilters("i18n.ngettext_with_context_"+u(a),i,t,e,n,o,a)):i},isRTL:function(){return"rtl"===s("ltr","text direction")},hasTranslation:function(t,e,o){var a,i,c=e?e+""+t:t,l=!(null===(a=n.data)||void 0===a||null===(i=a[null!=o?o:"default"])||void 0===i||!i[c]);return r&&(l=r.applyFilters("i18n.has_translation",l,t,e,o),l=r.applyFilters("i18n.has_translation_"+u(o),l,t,e,o)),l}}}(0,0,V));Z.getLocaleData.bind(Z),Z.setLocaleData.bind(Z),Z.resetLocaleData.bind(Z),Z.subscribe.bind(Z);var J=Z.__.bind(Z),X=(Z._x.bind(Z),Z._n.bind(Z),Z._nx.bind(Z),Z.isRTL.bind(Z),Z.hasTranslation.bind(Z),window.frmGlobal),W=X.url,Q=(X.nonce,"frm_hidden"),tt="frm-hide-js",et="frm-current",rt=window.frmDom,nt=rt.tag,ot=rt.div,at=rt.a,it=rt.img;function ct(t){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function lt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ut(t,e,r){return(e=function(t){var e=function(t){if("object"!=ct(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=ct(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ct(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var st,ft=document.getElementById("post-body-content"),pt=document.getElementById("".concat(d,"-sidebar")),mt=((st=at({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),ot({id:"".concat(d,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(Q),children:[it({src:"".concat(W,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),ot({className:"frmcenter",children:[nt("h2",{className:"".concat(d,"-title frm-mb-0")}),nt("p",{className:"".concat(d,"-text frm-mb-0")})]}),st]}));null==ft||ft.appendChild(mt);var dt=function(){var t=document.querySelector("#".concat(d,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(d,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(d,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),ht=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==b(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==b(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=v(v({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==xt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==xt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=bt(bt({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({notEmptySearchText:!1,selectedCategory:h,selectedCategoryEl:St}),Et=Tt.getState,_t=Tt.getSingleState,Ot=Tt.setState,Lt=Tt.setSingleState;function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function kt(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function fe(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var pe=null;function me(){var t;return t=se().mark((function t(){var e,r,n;return se().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=window.frmAdminBuild,r=e.initModal,n=e.offsetModalY,(pe=r("#frm-form-templates-modal",p))&&n(pe,"103px"),wp.hooks.addAction("frmAdmin.beforeOpenConfirmModal","frmFormTemplates",(function(t){var e=t.$info;e.dialog("option","width",m),n(e,"103px")}));case 4:case"end":return t.stop()}}),t)})),me=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){fe(a,n,o,i,c,"next",t)}function c(t){fe(a,n,o,i,c,"throw",t)}i(void 0)}))},me.apply(this,arguments)}function de(){return pe}function he(t){var e=yt().pageTitleText,r=t||_t("selectedCategoryEl").querySelector(".".concat(d,"-cat-text")).textContent;e.textContent=r}var ye=function(t){return!!Nt(t)&&t.classList.contains("".concat(c,"-favorite-item"))},ve=function(t){return!!Nt(t)&&t.classList.contains("".concat(c,"-custom-item"))},ge={},be=function(){var t=yt(),e=t.createFormButton,r=t.newTemplateForm,n=t.newTemplateNameInput,o=t.newTemplateActionInput,a=window.frmAdminBuild.installNewForm;n.value="",o.value="frm_install_form",a(r,"frm_install_form",e)};var we=".".concat(c,"-item-favorite-button"),xe="".concat(we," use"),Se="#frm_heart_solid_icon",Te="#frm_heart_icon",Ee=function(t){var e,r=t.currentTarget,n=yt(),o=n.templatesList,i=n.featuredTemplatesList,l=n.favoritesCategoryCountEl,s=n.customTemplatesTitle,f=r.closest(".frm-card-item"),p=f.dataset.id,m=ye(f),d=ve(f),h=function(t){return!!Nt(t)&&a.includes(Number(t.dataset.id))}(f),y=null;if(f.classList.toggle("".concat(c,"-favorite-item"),!m),h){var v=f.closest("#".concat(c,"-list"))?i:o;v&&(y=v.querySelector('.frm-card-item[data-id="'.concat(p,'"]'))).classList.toggle("".concat(c,"-favorite-item"),!m)}var g,b=Et(),w=b.selectedCategory,x=b.favoritesCount,S=m?"remove":"add",T=f.querySelector(xe),E=null===(e=y)||void 0===e?void 0:e.querySelector(xe);"add"===S?(++x.total,d?++x.custom:++x.default,T.setAttribute("xlink:href",Se),null==E||E.setAttribute("xlink:href",Se)):(--x.total,d?--x.custom:--x.default,T.setAttribute("xlink:href",Te),null==E||E.setAttribute("xlink:href",Te)),l.textContent=x.total,Lt("favoritesCount",x),u===w&&(0===x.total&&qe(),Rt(f),0===x.default&&Rt(o),0!==x.custom&&0!==x.default||Rt(s)),g=function(){return t=p,e=S,r=d,n=new FormData,o=frmDom.ajax.doJsonPost,n.append("template_id",t),n.append("operation",e),n.append("is_custom_template",r),o("add_or_remove_favorite_template",n);var t,e,r,n,o},At=At.then(g).catch(g)};var _e=function(t){var e=t.currentTarget,r=e.closest(".frm-card-item"),n=function(t){return!!Nt(t)&&t.classList.contains("".concat(c,"-locked-item"))}(r),o=ve(r);if(n||!o)if(t.preventDefault(),Lt("selectedTemplate",r),n)!function(t){var e=t.dataset.requiredPlan;switch(e){case"basic":case"plus":case"business":case"elite":Ue(e,t);break;case"renew":He()}}(r);else{var a=yt(),i=a.newTemplateForm,l=a.newTemplateNameInput,u=a.newTemplateDescriptionInput,s=a.newTemplateLinkInput,f=a.newTemplateActionInput,p=window.frmAdminBuild.installNewForm,m=r.querySelector(".frm-form-template-name").textContent.trim(),d=r.querySelector(".frm-form-templates-item-description").textContent.trim(),h="frm_install_template";l.value=m,u.value=d,f.value=h,s.value=e.href,p(i,h,e)}};var Oe=window.frmDom.search.init;function Le(t,e){var r=t.foundSomething,n=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=Et(),a=yt().allItemsCategory;Lt("notEmptySearchText",n),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=yt(),r=e.bodyContent,n=e.bodyContentChildren,o=e.pageTitle,a=e.templatesList,i=e.applicationTemplates,c=new Ct(r);t&&_t("selectedCategoryEl").classList.remove(et),Mt(n),he(J("Search Result","formidable")),qt([o,a,i]),c.fadeIn()}(n),n&&Lt("selectedCategory","")),function(t){if(t){var e,r=yt().emptyState;if(e=r,"none"!==window.getComputedStyle(e).getPropertyValue("display")){var n=yt().pageTitle;Rt(r),Gt(n)}var o=yt(),a=o.templatesList,i=o.applicationTemplates,c=o.applicationTemplatesTitle,l=o.applicationTemplatesList;qt([a,i,c]),0===a.offsetHeight&&Mt([a,c]),0===(null==l?void 0:l.offsetHeight)&&Rt(i)}else!function(){var t,e=Et().notEmptySearchText,r=yt(),n=r.pageTitle,o=r.emptyState,a=r.emptyStateButton,i=r.applicationTemplates;if(f!==(null===(t=o.dataset)||void 0===t?void 0:t.view)){o.setAttribute("data-view",f);var c=yt(),l=c.emptyStateTitle,u=c.emptyStateText;l.textContent=J("No templates found","formidable"),u.textContent=J("Sorry, we didn't find any templates that match your criteria.","formidable"),a.textContent=J("Start from Scratch","formidable"),Mt([n,i]),qt([o,a])}else e?(Gt(o),Mt([n,i])):(Rt(o),o.removeAttribute("data-view"))}()}(r)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}var je=function(){var t,e=yt().emptyState;f===(null===(t=e.dataset)||void 0===t?void 0:t.view)&&(Lt("selectedCategory",""),$t(),yt().searchInput.focus())};var ke=function(){var t=Et().selectedCategory;s===t&&Ke()},Ie=function(){var t=yt().createTemplateFormsDropdown,e=t.value;if(e&&"no-forms"!==e){Ce(!1);var r=t.options[t.selectedIndex],n=r.dataset.description.trim(),o=r.dataset.name.trim(),a=" ".concat(J("Template","formidable"));o.endsWith(a)||(o+=a);var i=yt(),c=i.createTemplateName,l=i.createTemplateDescription;c.value=o,l.value=n}else Ce(!0)},Ce=function(t){var e=yt(),r=e.createTemplateName,n=e.createTemplateDescription,o=e.createTemplateButton;[r,n].forEach((function(e){e.disabled=t,t&&(e.value="")})),o.classList.toggle("disabled",t)},Ae=function(){var t=window.frmAdminBuild.installNewForm,e="frm_create_template",r=yt(),n=r.newTemplateForm,o=r.newTemplateActionInput,a=r.newTemplateNameInput,i=r.newTemplateDescriptionInput,c=r.newTemplateLinkInput,l=r.createTemplateName,u=r.createTemplateDescription,s=r.createTemplateFormsDropdown,f=r.createTemplateButton;o.value=e,a.value=l.value.trim(),i.value=u.value.trim(),c.value=s.value,t(n,e,f)};var Pe=function(t){if(!t.target.closest("a")){var e=t.currentTarget;window.location.href=e.dataset.href}};function Fe(){var t,e,r,n;yt().categoryItems.forEach((function(t){Ft(t,zt),t.addEventListener("keydown",Yt)})),wp.hooks.addAction("frmPage.onCategoryClick","frmFormTemplates",(function(t){!function(t){var e=yt(),r=e.bodyContentChildren,n=e.pageTitle,o=e.showCreateTemplateModalButton,a=e.templatesList,i=e.templateItems;switch(h!==t&&Mt(r),he(),Rt(o),Gt(n),t){case h:!function(){var t=yt(),e=t.bodyContentChildren,r=t.pageTitleDivider,n=t.templateItems,o=t.twinFeaturedTemplateItems,a=t.customTemplatesSection,i=t.emptyState,c=t.applicationTemplates;qt([].concat(De(e),De(n))),Mt([r].concat(De(o),[a,i,c]))}();break;case l:!function(){if(0!==Et().availableTemplatesCount){var t=yt(),e=t.templatesList,r=t.templateItems,n=t.availableTemplateItems;Mt(r),qt([e].concat(De(n)))}else!function(){var t=yt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",l);var o=yt(),a=o.emptyStateTitle,i=o.emptyStateText,c=Et().extraTemplatesCount;a.textContent=J("No Templates Available","formidable"),i.textContent=function(t){try{for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0&&s.push(n),t.custom>0){var p=Array.from(u).filter((function(t){return!ye(t)}));Mt(p),s.push(a),s.push(l),0===t.default?Rt(i):s.push(i)}qt(s)}else qe()}();break;case s:!function(){if(0!==Et().customCount){var t=yt(),e=t.showCreateTemplateModalButton,r=t.pageTitleDivider,n=t.customTemplatesSection,o=t.customTemplatesList,a=t.customTemplatesTitle,i=t.customTemplateItems;Rt(a),qt([e,r,n,o].concat(De(i)))}else!function(){var t=yt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",s);var o=yt(),a=o.emptyStateTitle,i=o.emptyStateText;a.textContent=J("You currently have no templates.","formidable"),i.textContent=J("You haven't created any form templates. Begin now to simplify your workflow and save time.","formidable"),n.textContent=J("Create Template","formidable"),Rt(e),qt([r,n])}()}();break;default:Mt(i),qt([a].concat(De(ge[t])))}}(t)})),n=yt().createFormButton,Ft(n,be),document.querySelectorAll(we).forEach((function(t){return Ft(t,Ee)})),document.querySelectorAll(".".concat(c,"-use-template-button")).forEach((function(t){return t.addEventListener("click",_e)})),t=yt(),e=t.searchInput,r=t.emptyStateButton,Oe(e,"frm-card-item",{handleSearchResult:Le}),Ft(r,je),function(){var t=yt(),e=t.createTemplateFormsDropdown,r=t.createTemplateButton,n=t.showCreateTemplateModalButton,o=t.emptyStateButton;Ft(n,ke),Ft(o,ke),e.addEventListener("change",Ie),Ft(r,Ae)}()}function Be(t){var e,r;(function(t){if(t&&t.length){var e=t.map((function(t){return function(t){var e=t.name,r=t.key,o=t.hasLiteThumbnail,a=t.isWebp,i=o?a?"".concat(ne,"/").concat(r,".webp"):"".concat(ne,"/").concat(r,".png"):"".concat(ne,"/placeholder.svg");return Wt("li",{className:"frm-card-item",data:{href:"".concat(n,"&triggerViewApplicationModal=1&template=").concat(r),"frm-search-text":e.toLowerCase()},children:[Qt({className:"".concat(c,"-item-icon"),child:re({src:i})}),Qt({className:"".concat(c,"-item-body"),children:[te({text:J("Ready Made Solution","formidable"),className:"frm-meta-tag frm-orange-tag frm-text-xs"}),Wt("h3",{text:e,className:"frm-text-sm frm-font-medium frm-m-0"}),ee({text:J("See all applications","formidable"),className:"frm-text-xs frm-font-semibold",href:n})]})]})}(t)}));Jt=Qt({id:"".concat(c,"-applications"),className:Q,children:[Wt("h2",{text:J("Application Templates"),className:"frm-text-sm frm-mb-sm"}),Wt("ul",{className:"".concat(c,"-list frm-list-grid-layout"),children:e})]})}})(t.templates),(e=yt()).applicationTemplates||void 0===Jt||(e.bodyContent.appendChild(Jt),vt({applicationTemplates:Jt,applicationTemplatesTitle:Jt.querySelector("h2"),applicationTemplatesList:Jt.querySelector(".".concat(c,"-list")),applicationTemplateItems:Jt.querySelectorAll(".frm-card-item")})),void 0!==(r=yt().applicationTemplateItems)&&r.forEach((function(t){t.addEventListener("click",Pe)}))}function De(t){return function(t){if(Array.isArray(t))return Ne(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Ne(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ne(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ne(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Re(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function ze(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){Re(a,n,o,i,c,"next",t)}function c(t){Re(a,n,o,i,c,"throw",t)}i(void 0)}))}}var Ye=function(t){return ze(Ge().mark((function e(){var r,n,o,a,i,c,l=arguments;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=de()){e.next=3;break}return e.abrupt("return");case 3:for(n=yt(),o=n.modalItems,Mt(o),r.dialog("option","width",p),a=l.length,i=new Array(a),c=0;c use").setAttribute("xlink:href",n?"#frm_checkmark_icon":"#frm_close_icon")}));var u=e.dataset.slug?"-".concat(e.dataset.slug):"";l.href=i+u,Gt(o)})),He=Ye((function(){var t=yt().renewAccountModal;Gt(t)})),Ke=Ye((function(){de().dialog("option","width",m);var t=yt().createTemplateModal;Gt(t)}));const Ve=function(){e&&(0,frmDom.ajax.doJsonFetch)("get_applications_data&view=templates").then(Be),function(){me.apply(this,arguments)}(),yt().templateItems.forEach((function(t){t.getAttribute("data-categories").split(",").forEach((function(e){ge[e]||(ge[e]=[]),ge[e].push(t)}))})),function(){var t=yt(),e=t.sidebar,r=t.searchInput,n=t.bodyContent,o=t.twinFeaturedTemplateItems,a=t.availableTemplatesCategory,i=new Ct(n);if(r.value="",Mt(o),a){var c=Et().availableTemplatesCount;a.querySelector(".".concat(d,"-cat-count")).textContent=c}var l,u=yt().extraTemplateCountElements,s=Et().extraTemplatesCount;u.forEach((function(t){return t.textContent=s})),n.classList.remove(tt),e.classList.remove(tt),i.fadeIn(),Gt(e),Dt.has("return_page")&&(l=yt().headerCancelButton,new Ct(l).fadeIn())}(),Fe()};var Ze;Ze=function(){wp.hooks.doAction("frmFormTemplates.beforeInitialize",{getState:Et,setState:Ot}),Ve(),wp.hooks.doAction("frmFormTemplates.afterInitialize",{getState:Et,setState:Ot}),wp.hooks.doAction("frm_new_form_modal_form",jQuery("#frm-new-template"))},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Ze):Ze())})()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@tannin/compile/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/compile/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compile) +/* harmony export */ }); +/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); +/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); + + + +/** + * Given a C expression, returns a function which can be called to evaluate its + * result. + * + * @example + * + * ```js + * import compile from '@tannin/compile'; + * + * const evaluate = compile( 'n > 1' ); + * + * evaluate( { n: 2 } ); + * // ⇒ true + * ``` + * + * @param {string} expression C expression. + * + * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. + */ +function compile( expression ) { + var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( variables ) { + return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/evaluate/index.js": +/*!************************************************!*\ + !*** ./node_modules/@tannin/evaluate/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ evaluate) +/* harmony export */ }); +/** + * Operator callback functions. + * + * @type {Object} + */ +var OPERATORS = { + '!': function( a ) { + return ! a; + }, + '*': function( a, b ) { + return a * b; + }, + '/': function( a, b ) { + return a / b; + }, + '%': function( a, b ) { + return a % b; + }, + '+': function( a, b ) { + return a + b; + }, + '-': function( a, b ) { + return a - b; + }, + '<': function( a, b ) { + return a < b; + }, + '<=': function( a, b ) { + return a <= b; + }, + '>': function( a, b ) { + return a > b; + }, + '>=': function( a, b ) { + return a >= b; + }, + '==': function( a, b ) { + return a === b; + }, + '!=': function( a, b ) { + return a !== b; + }, + '&&': function( a, b ) { + return a && b; + }, + '||': function( a, b ) { + return a || b; + }, + '?:': function( a, b, c ) { + if ( a ) { + throw b; + } + + return c; + }, +}; + +/** + * Given an array of postfix terms and operand variables, returns the result of + * the postfix evaluation. + * + * @example + * + * ```js + * import evaluate from '@tannin/evaluate'; + * + * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' + * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; + * + * evaluate( terms, {} ); + * // ⇒ 6.333333333333334 + * ``` + * + * @param {string[]} postfix Postfix terms. + * @param {Object} variables Operand variables. + * + * @return {*} Result of evaluation. + */ +function evaluate( postfix, variables ) { + var stack = [], + i, j, args, getOperatorResult, term, value; + + for ( i = 0; i < postfix.length; i++ ) { + term = postfix[ i ]; + + getOperatorResult = OPERATORS[ term ]; + if ( getOperatorResult ) { + // Pop from stack by number of function arguments. + j = getOperatorResult.length; + args = Array( j ); + while ( j-- ) { + args[ j ] = stack.pop(); + } + + try { + value = getOperatorResult.apply( null, args ); + } catch ( earlyReturn ) { + return earlyReturn; + } + } else if ( variables.hasOwnProperty( term ) ) { + value = variables[ term ]; + } else { + value = +term; + } + + stack.push( value ); + } + + return stack[ 0 ]; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/plural-forms/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@tannin/plural-forms/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluralForms) +/* harmony export */ }); +/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); + + +/** + * Given a C expression, returns a function which, when called with a value, + * evaluates the result with the value assumed to be the "n" variable of the + * expression. The result will be coerced to its numeric equivalent. + * + * @param {string} expression C expression. + * + * @return {Function} Evaluator function. + */ +function pluralForms( expression ) { + var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( n ) { + return +evaluate( { n: n } ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/postfix/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/postfix/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ postfix) +/* harmony export */ }); +var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + +/** + * Operator precedence mapping. + * + * @type {Object} + */ +PRECEDENCE = { + '(': 9, + '!': 8, + '*': 7, + '/': 7, + '%': 7, + '+': 6, + '-': 6, + '<': 5, + '<=': 5, + '>': 5, + '>=': 5, + '==': 4, + '!=': 4, + '&&': 3, + '||': 2, + '?': 1, + '?:': 1, +}; + +/** + * Characters which signal pair opening, to be terminated by terminators. + * + * @type {string[]} + */ +OPENERS = [ '(', '?' ]; + +/** + * Characters which signal pair termination, the value an array with the + * opener as its first member. The second member is an optional operator + * replacement to push to the stack. + * + * @type {string[]} + */ +TERMINATORS = { + ')': [ '(' ], + ':': [ '?', '?:' ], +}; + +/** + * Pattern matching operators and openers. + * + * @type {RegExp} + */ +PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + +/** + * Given a C expression, returns the equivalent postfix (Reverse Polish) + * notation terms as an array. + * + * If a postfix string is desired, simply `.join( ' ' )` the result. + * + * @example + * + * ```js + * import postfix from '@tannin/postfix'; + * + * postfix( 'n > 1' ); + * // ⇒ [ 'n', '1', '>' ] + * ``` + * + * @param {string} expression C expression. + * + * @return {string[]} Postfix terms. + */ +function postfix( expression ) { + var terms = [], + stack = [], + match, operator, term, element; + + while ( ( match = expression.match( PATTERN ) ) ) { + operator = match[ 0 ]; + + // Term is the string preceding the operator match. It may contain + // whitespace, and may be empty (if operator is at beginning). + term = expression.substr( 0, match.index ).trim(); + if ( term ) { + terms.push( term ); + } + + while ( ( element = stack.pop() ) ) { + if ( TERMINATORS[ operator ] ) { + if ( TERMINATORS[ operator ][ 0 ] === element ) { + // Substitution works here under assumption that because + // the assigned operator will no longer be a terminator, it + // will be pushed to the stack during the condition below. + operator = TERMINATORS[ operator ][ 1 ] || operator; + break; + } + } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { + // Push to stack if either an opener or when pop reveals an + // element of lower precedence. + stack.push( element ); + break; + } + + // For each popped from stack, push to terms. + terms.push( element ); + } + + if ( ! TERMINATORS[ operator ] ) { + stack.push( operator ); + } + + // Slice matched fragment from expression to continue match. + expression = expression.substr( match.index + operator.length ); + } + + // Push remainder of operand, if exists, to terms. + expression = expression.trim(); + if ( expression ) { + terms.push( expression ); + } + + // Pop remaining items from stack into terms. + return terms.concat( stack.reverse() ); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback AddHook + * + * Adds the hook to the appropriate hooks container. + * + * @param {string} hookName Name of hook to add + * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. + * @param {import('.').Callback} callback Function to call when the hook is run + * @param {number} [priority=10] Priority of this hook + */ + +/** + * Returns a function which, when invoked, will add a hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {AddHook} Function that adds a new hook. + */ + +function createAddHook(hooks, storeKey) { + return function addHook(hookName, namespace, callback) { + var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } + + if ('function' !== typeof callback) { + // eslint-disable-next-line no-console + console.error('The hook callback must be a function.'); + return; + } // Validate numeric priority + + + if ('number' !== typeof priority) { + // eslint-disable-next-line no-console + console.error('If specified, the hook priority must be a number.'); + return; + } + + var handler = { + callback: callback, + priority: priority, + namespace: namespace + }; + + if (hooksStore[hookName]) { + // Find the correct insert index of the new hook. + var handlers = hooksStore[hookName].handlers; + /** @type {number} */ + + var i; + + for (i = handlers.length; i > 0; i--) { + if (priority >= handlers[i - 1].priority) { + break; + } + } + + if (i === handlers.length) { + // If append, operate via direct assignment. + handlers[i] = handler; + } else { + // Otherwise, insert before index via splice. + handlers.splice(i, 0, handler); + } // We may also be currently executing this hook. If the callback + // we're adding would come after the current callback, there's no + // problem; otherwise we need to increase the execution index of + // any other runs by 1 to account for the added element. + + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex++; + } + }); + } else { + // This is the first hook of its type. + hooksStore[hookName] = { + handlers: [handler], + runs: 0 + }; + } + + if (hookName !== 'hookAdded') { + hooks.doAction('hookAdded', hookName, namespace, callback, priority); + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); +//# sourceMappingURL=createAddHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Returns a function which, when invoked, will return the name of the + * currently running hook, or `null` if no hook of the given type is currently + * running. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {() => string | null} Function that returns the current hook name or null. + */ +function createCurrentHook(hooks, storeKey) { + return function currentHook() { + var _hooksStore$__current, _hooksStore$__current2; + + var hooksStore = hooks[storeKey]; + 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; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); +//# sourceMappingURL=createCurrentHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + +/** + * @callback DidHook + * + * Returns the number of times an action has been fired. + * + * @param {string} hookName The hook name to check. + * + * @return {number | undefined} The number of times the hook has run. + */ + +/** + * Returns a function which, when invoked, will return the number of times a + * hook has been called. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DidHook} Function that returns a hook's call count. + */ + +function createDidHook(hooks, storeKey) { + return function didHook(hookName) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { + return; + } + + return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); +//# sourceMappingURL=createDidHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback DoingHook + * Returns whether a hook is currently being executed. + * + * @param {string} [hookName] The name of the hook to check for. If + * omitted, will check for any hook being executed. + * + * @return {boolean} Whether the hook is being executed. + */ + +/** + * Returns a function which, when invoked, will return whether a hook is + * currently being executed. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DoingHook} Function that returns whether a hook is currently + * being executed. + */ +function createDoingHook(hooks, storeKey) { + return function doingHook(hookName) { + var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. + + if ('undefined' === typeof hookName) { + return 'undefined' !== typeof hooksStore.__current[0]; + } // Return the __current hook. + + + return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); +//# sourceMappingURL=createDoingHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback HasHook + * + * Returns whether any handlers are attached for the given hookName and optional namespace. + * + * @param {string} hookName The name of the hook to check for. + * @param {string} [namespace] Optional. The unique namespace identifying the callback + * in the form `vendor/plugin/function`. + * + * @return {boolean} Whether there are handlers that are attached to the given hook. + */ + +/** + * Returns a function which, when invoked, will return whether any handlers are + * attached to a particular hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {HasHook} Function that returns whether any handlers are + * attached to a particular hook and optional namespace. + */ +function createHasHook(hooks, storeKey) { + return function hasHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; // Use the namespace if provided. + + if ('undefined' !== typeof namespace) { + return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { + return hook.namespace === namespace; + }); + } + + return hookName in hooksStore; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); +//# sourceMappingURL=createHasHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _Hooks: () => (/* binding */ _Hooks), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); +/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); +/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); +/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); +/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); +/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); +/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Internal class for constructing hooks. Use `createHooks()` function + * + * Note, it is necessary to expose this class to make its type public. + * + * @private + */ + +var _Hooks = function _Hooks() { + (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); + + /** @type {import('.').Store} actions */ + this.actions = Object.create(null); + this.actions.__current = []; + /** @type {import('.').Store} filters */ + + this.filters = Object.create(null); + this.filters.__current = []; + this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); + this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); + this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); + this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); + this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); + this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); + this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); + this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); + this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); + this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); + this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); + this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); + this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); + this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); + this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); + this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); +}; +/** @typedef {_Hooks} Hooks */ + +/** + * Returns an instance of the hooks object. + * + * @return {Hooks} A Hooks instance. + */ + +function createHooks() { + return new _Hooks(); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); +//# sourceMappingURL=createHooks.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback RemoveHook + * Removes the specified callback (or all callbacks) from the hook with a given hookName + * and namespace. + * + * @param {string} hookName The name of the hook to modify. + * @param {string} namespace The unique namespace identifying the callback in the + * form `vendor/plugin/function`. + * + * @return {number | undefined} The number of callbacks removed. + */ + +/** + * Returns a function which, when invoked, will remove a specified hook or all + * hooks by the given name. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, + * without regard to namespace. Used to create + * `removeAll*` functions. + * + * @return {RemoveHook} Function that removes hooks. + */ + +function createRemoveHook(hooks, storeKey) { + var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function removeHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } // Bail if no hooks exist by this name + + + if (!hooksStore[hookName]) { + return 0; + } + + var handlersRemoved = 0; + + if (removeAll) { + handlersRemoved = hooksStore[hookName].handlers.length; + hooksStore[hookName] = { + runs: hooksStore[hookName].runs, + handlers: [] + }; + } else { + // Try to find the specified callback to remove. + var handlers = hooksStore[hookName].handlers; + + var _loop = function _loop(i) { + if (handlers[i].namespace === namespace) { + handlers.splice(i, 1); + handlersRemoved++; // This callback may also be part of a hook that is + // currently executing. If the callback we're removing + // comes after the current callback, there's no problem; + // otherwise we need to decrease the execution index of any + // other runs by 1 to account for the removed element. + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex--; + } + }); + } + }; + + for (var i = handlers.length - 1; i >= 0; i--) { + _loop(i); + } + } + + if (hookName !== 'hookRemoved') { + hooks.doAction('hookRemoved', hookName, namespace); + } + + return handlersRemoved; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); +//# sourceMappingURL=createRemoveHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); + + +/** + * Returns a function which, when invoked, will execute all callbacks + * registered to a hook of the specified type, optionally returning the final + * value of the call chain. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to + * return its first argument. + * + * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. + */ +function createRunHook(hooks, storeKey) { + var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function runHooks(hookName) { + var hooksStore = hooks[storeKey]; + + if (!hooksStore[hookName]) { + hooksStore[hookName] = { + handlers: [], + runs: 0 + }; + } + + hooksStore[hookName].runs++; + var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. + + if (true) { + // Handle any 'all' hooks registered. + if ('hookAdded' !== hookName && hooksStore.all) { + handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); + } + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!handlers || !handlers.length) { + return returnFirstArg ? args[0] : undefined; + } + + var hookInfo = { + name: hookName, + currentIndex: 0 + }; + + hooksStore.__current.push(hookInfo); + + while (hookInfo.currentIndex < handlers.length) { + var handler = handlers[hookInfo.currentIndex]; + var result = handler.callback.apply(null, args); + + if (returnFirstArg) { + args[0] = result; + } + + hookInfo.currentIndex++; + } + + hooksStore.__current.pop(); + + if (returnFirstArg) { + return args[0]; + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); +//# sourceMappingURL=createRunHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ actions: () => (/* binding */ actions), +/* harmony export */ addAction: () => (/* binding */ addAction), +/* harmony export */ addFilter: () => (/* binding */ addFilter), +/* harmony export */ applyFilters: () => (/* binding */ applyFilters), +/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ currentAction: () => (/* binding */ currentAction), +/* harmony export */ currentFilter: () => (/* binding */ currentFilter), +/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), +/* harmony export */ didAction: () => (/* binding */ didAction), +/* harmony export */ didFilter: () => (/* binding */ didFilter), +/* harmony export */ doAction: () => (/* binding */ doAction), +/* harmony export */ doingAction: () => (/* binding */ doingAction), +/* harmony export */ doingFilter: () => (/* binding */ doingFilter), +/* harmony export */ filters: () => (/* binding */ filters), +/* harmony export */ hasAction: () => (/* binding */ hasAction), +/* harmony export */ hasFilter: () => (/* binding */ hasFilter), +/* harmony export */ removeAction: () => (/* binding */ removeAction), +/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), +/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), +/* harmony export */ removeFilter: () => (/* binding */ removeFilter) +/* harmony export */ }); +/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); +/** + * Internal dependencies + */ + +/** @typedef {(...args: any[])=>any} Callback */ + +/** + * @typedef Handler + * @property {Callback} callback The callback + * @property {string} namespace The namespace + * @property {number} priority The namespace + */ + +/** + * @typedef Hook + * @property {Handler[]} handlers Array of handlers + * @property {number} runs Run counter + */ + +/** + * @typedef Current + * @property {string} name Hook name + * @property {number} currentIndex The index + */ + +/** + * @typedef {Record & {__current: Current[]}} Store + */ + +/** + * @typedef {'actions' | 'filters'} StoreKey + */ + +/** + * @typedef {import('./createHooks').Hooks} Hooks + */ + +var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); +var addAction = defaultHooks.addAction, + addFilter = defaultHooks.addFilter, + removeAction = defaultHooks.removeAction, + removeFilter = defaultHooks.removeFilter, + hasAction = defaultHooks.hasAction, + hasFilter = defaultHooks.hasFilter, + removeAllActions = defaultHooks.removeAllActions, + removeAllFilters = defaultHooks.removeAllFilters, + doAction = defaultHooks.doAction, + applyFilters = defaultHooks.applyFilters, + currentAction = defaultHooks.currentAction, + currentFilter = defaultHooks.currentFilter, + doingAction = defaultHooks.doingAction, + doingFilter = defaultHooks.doingFilter, + didAction = defaultHooks.didAction, + didFilter = defaultHooks.didFilter, + actions = defaultHooks.actions, + filters = defaultHooks.filters; + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a hookName string. + * + * @param {string} hookName The hook name to validate. Should be a non empty string containing + * only numbers, letters, dashes, periods and underscores. Also, + * the hook name cannot begin with `__`. + * + * @return {boolean} Whether the hook name is valid. + */ +function validateHookName(hookName) { + if ('string' !== typeof hookName || '' === hookName) { + // eslint-disable-next-line no-console + console.error('The hook name must be a non-empty string.'); + return false; + } + + if (/^__/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name cannot begin with `__`.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); +//# sourceMappingURL=validateHookName.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a namespace string. + * + * @param {string} namespace The namespace to validate - should take the form + * `vendor/plugin/function`. + * + * @return {boolean} Whether the namespace is valid. + */ +function validateNamespace(namespace) { + if ('string' !== typeof namespace || '' === namespace) { + // eslint-disable-next-line no-console + console.error('The namespace must be a non-empty string.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { + // eslint-disable-next-line no-console + console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); +//# sourceMappingURL=validateNamespace.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": +/*!******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createI18n: () => (/* binding */ createI18n) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); + + +function 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; } + +function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } + +/** + * External dependencies + */ + +/** + * @typedef {Record} LocaleData + */ + +/** + * Default locale data to use for Tannin domain when not otherwise provided. + * Assumes an English plural forms expression. + * + * @type {LocaleData} + */ + +var DEFAULT_LOCALE_DATA = { + '': { + /** @param {number} n */ + plural_forms: function plural_forms(n) { + return n === 1 ? 0 : 1; + } + } +}; +/* + * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, + * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. + */ + +var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; +/** + * @typedef {(domain?: string) => LocaleData} GetLocaleData + * + * Returns locale data by domain in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData + * + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData + * + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** @typedef {() => void} SubscribeCallback */ + +/** @typedef {() => void} UnsubscribeCallback */ + +/** + * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe + * + * Subscribes to changes of locale data + */ + +/** + * @typedef {(domain?: string) => string} GetFilterDomain + * Retrieve the domain to use when calling domain-specific filters. + */ + +/** + * @typedef {(text: string, domain?: string) => string} __ + * + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + */ + +/** + * @typedef {(text: string, context: string, domain?: string) => string} _x + * + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n + * + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx + * + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + */ + +/** + * @typedef {() => boolean} IsRtl + * + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + */ + +/** + * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation + * + * Check if there is a translation for a given string in singular form. + */ + +/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ + +/** + * An i18n instance + * + * @typedef I18n + * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. + * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. + * @property {__} __ Retrieve the translation of text. + * @property {_x} _x Retrieve translated string with gettext context. + * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied + * number. + * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * @property {IsRtl} isRTL Check if current locale is RTL. + * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. + */ + +/** + * Create an i18n instance + * + * @param {LocaleData} [initialData] Locale data configuration. + * @param {string} [initialDomain] Domain for which configuration applies. + * @param {Hooks} [hooks] Hooks implementation. + * @return {I18n} I18n instance + */ + +var createI18n = function createI18n(initialData, initialDomain, hooks) { + /** + * The underlying instance of Tannin to which exported functions interface. + * + * @type {Tannin} + */ + var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); + var listeners = new Set(); + + var notifyListeners = function notifyListeners() { + listeners.forEach(function (listener) { + return listener(); + }); + }; + /** + * Subscribe to changes of locale data. + * + * @param {SubscribeCallback} callback Subscription callback. + * @return {UnsubscribeCallback} Unsubscribe callback. + */ + + + var subscribe = function subscribe(callback) { + listeners.add(callback); + return function () { + return listeners.delete(callback); + }; + }; + /** @type {GetLocaleData} */ + + + var getLocaleData = function getLocaleData() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return tannin.data[domain]; + }; + /** + * @param {LocaleData} [data] + * @param {string} [domain] + */ + + + var doSetLocaleData = function doSetLocaleData(data) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits + // a plural forms expression). + + tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); + }; + /** @type {SetLocaleData} */ + + + var setLocaleData = function setLocaleData(data, domain) { + doSetLocaleData(data, domain); + notifyListeners(); + }; + /** @type {ResetLocaleData} */ + + + var resetLocaleData = function resetLocaleData(data, domain) { + // Reset all current Tannin locale data. + tannin.data = {}; // Reset cached plural forms functions cache. + + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + /** + * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not + * otherwise previously assigned. + * + * @param {string|undefined} domain Domain to retrieve the translated text. + * @param {string|undefined} context Context information for the translators. + * @param {string} single Text to translate if non-plural. Used as + * fallback return value on a caught error. + * @param {string} [plural] The text to be used if the number is + * plural. + * @param {number} [number] The number to compare against to use + * either the singular or plural form. + * + * @return {string} The translated string. + */ + + + var dcnpgettext = function dcnpgettext() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + var context = arguments.length > 1 ? arguments[1] : undefined; + var single = arguments.length > 2 ? arguments[2] : undefined; + var plural = arguments.length > 3 ? arguments[3] : undefined; + var number = arguments.length > 4 ? arguments[4] : undefined; + + if (!tannin.data[domain]) { + // use `doSetLocaleData` to set silently, without notifying listeners + doSetLocaleData(undefined, domain); + } + + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + /** @type {GetFilterDomain} */ + + + var getFilterDomain = function getFilterDomain() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return domain; + }; + /** @type {__} */ + + + var __ = function __(text, domain) { + var translation = dcnpgettext(domain, undefined, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext', translation, text, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) + ); + }; + /** @type {_x} */ + + + var _x = function _x(text, context, domain) { + var translation = dcnpgettext(domain, context, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation based on context information. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) + ); + }; + /** @type {_n} */ + + + var _n = function _n(single, plural, number, domain) { + var translation = dcnpgettext(domain, undefined, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) + ); + }; + /** @type {_nx} */ + + + var _nx = function _nx(single, plural, number, context, domain) { + var translation = dcnpgettext(domain, context, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string with gettext context. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) + ); + }; + /** @type {IsRtl} */ + + + var isRTL = function isRTL() { + return 'rtl' === _x('ltr', 'text direction'); + }; + /** @type {HasTranslation} */ + + + var hasTranslation = function hasTranslation(single, context, domain) { + var _tannin$data, _tannin$data2; + + var key = context ? context + "\x04" + single : single; + 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]); + + if (hooks) { + /** + * Filters the presence of a translation in the locale data. + * + * @param {boolean} hasTranslation Whether the translation is present or not.. + * @param {string} single The singular form of the translated text (used as key in locale data) + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation', result, single, context, domain); + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); + } + + return result; + }; + + if (initialData) { + setLocaleData(initialData, initialDomain); + } + + if (hooks) { + /** + * @param {string} hookName + */ + var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + + hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); + hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); + } + + return { + getLocaleData: getLocaleData, + setLocaleData: setLocaleData, + resetLocaleData: resetLocaleData, + subscribe: subscribe, + __: __, + _x: _x, + _n: _n, + _nx: _nx, + isRTL: isRTL, + hasTranslation: hasTranslation + }; +}; +//# sourceMappingURL=create-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* binding */ __), +/* harmony export */ _n: () => (/* binding */ _n), +/* harmony export */ _nx: () => (/* binding */ _nx), +/* harmony export */ _x: () => (/* binding */ _x), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), +/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), +/* harmony export */ isRTL: () => (/* binding */ isRTL), +/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), +/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), +/* harmony export */ subscribe: () => (/* binding */ subscribe) +/* harmony export */ }); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); +/** + * Internal dependencies + */ + +/** + * WordPress dependencies + */ + + +var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); +/** + * Default, singleton instance of `I18n`. + */ + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); +/* + * Comments in this file are duplicated from ./i18n due to + * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 + */ + +/** + * @typedef {import('./create-i18n').LocaleData} LocaleData + * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback + * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback + */ + +/** + * Returns locale data by domain in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {string} [domain] Domain for which to get the data. + * @return {LocaleData} Locale data. + */ + +var getLocaleData = i18n.getLocaleData.bind(i18n); +/** + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var setLocaleData = i18n.setLocaleData.bind(i18n); +/** + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var resetLocaleData = i18n.resetLocaleData.bind(i18n); +/** + * Subscribes to changes of locale data + * + * @param {SubscribeCallback} callback Subscription callback + * @return {UnsubscribeCallback} Unsubscribe callback + */ + +var subscribe = i18n.subscribe.bind(i18n); +/** + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + * + * @param {string} text Text to translate. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated text. + */ + +var __ = i18n.__.bind(i18n); +/** + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + * + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated context string without pipe. + */ + +var _x = i18n._x.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _n = i18n._n.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _nx = i18n._nx.bind(i18n); +/** + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + * + * @return {boolean} Whether locale is RTL. + */ + +var isRTL = i18n.isRTL.bind(i18n); +/** + * Check if there is a translation for a given string (in singular form). + * + * @param {string} single Singular form of the string to look up. + * @param {string} [context] Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * @return {boolean} Whether the translation exists or not. + */ + +var hasTranslation = i18n.hasTranslation.bind(i18n); +//# sourceMappingURL=default-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), +/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), +/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), +/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), +/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), +/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), +/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), +/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), +/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), +/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), +/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), +/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) +/* harmony export */ }); +/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": +/*!**************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ sprintf: () => (/* binding */ sprintf) +/* harmony export */ }); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); +/** + * External dependencies + */ + + +/** + * Log to console, once per message; or more precisely, per referentially equal + * argument set. Because Jed throws errors, we log these to the console instead + * to avoid crashing the application. + * + * @param {...*} args Arguments to pass to `console.error` + */ + +var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console + +/** + * Returns a formatted string. If an error occurs in applying the format, the + * original format string is returned. + * + * @param {string} format The format of the string to generate. + * @param {...*} args Arguments to apply to the format. + * + * @see https://www.npmjs.com/package/sprintf-js + * + * @return {string} The formatted string. + */ + +function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); + } catch (error) { + logErrorOnce('sprintf error: \n\n' + error.toString()); + return format; + } +} +//# sourceMappingURL=sprintf.js.map + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/factory/createPageElements.js": +/*!***************************************************!*\ + !*** ./js/src/core/factory/createPageElements.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* binding */ createPageElements) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page elements manager. + * + * @param {Object} [initialElements={}] An object containing initial DOM elements. + * @throws {Error} Throws an error if the `initialElements` is not an object. + * @return {Object} An object with methods to get and add elements. + */ +function createPageElements() { + var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialElements) !== 'object' || initialElements === null) { + throw new Error('createPageElements: initialElements must be a non-null object'); + } + var elements = initialElements; + + /** + * Retrieve the initialized essential DOM elements. + * + * @return {Object} The initialized elements object. + */ + function getElements() { + return elements; + } + + /** + * Add new elements to the elements object. + * + * @param {Object} newElements An object containing new elements to be added. + * @throws {Error} Throws an error if the `newElements` is not a non-null object. + * @return {void} Updates the elements object by merging the new elements into it. + */ + function addElements(newElements) { + if (_typeof(newElements) !== 'object' || newElements === null) { + throw new Error('addElements: newElements must be a non-null object'); + } + elements = _objectSpread(_objectSpread({}, elements), newElements); + } + return { + getElements: getElements, + addElements: addElements + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageState.js": +/*!************************************************!*\ + !*** ./js/src/core/factory/createPageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageState: () => (/* binding */ createPageState) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page state manager. + * + * @param {Object} [initialState={}] An object containing the initial state. + * @throws {Error} Throws an error if the `initialState` is not a plain object. + * @return {Object} An object with methods to initialize, get, and set the page state. + */ +function createPageState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialState) !== 'object' || initialState === null) { + throw new Error('createPageState: initialState must be a non-null object'); + } + var state = initialState; + + /** + * Returns the current page state. + * + * @return {Object|null} The current state of the page or null if not initialized. + */ + var getState = function getState() { + return state; + }; + + /** + * Returns a specific property from the current page state. + * + * @param {string} propertyName The name of the property to retrieve. + * @return {*} The value of the specified property, or null if it doesn't exist. + */ + var getSingleState = function getSingleState(propertyName) { + var value = Reflect.get(state, propertyName); + + // We convert `undefined` to `null` for a consistent API. + // This makes it easier for users to handle the results since all missing properties return `null`. + return value === undefined ? null : value; + }; + + /** + * Updates the page state with new values. + * + * @param {Object} newState The new values to update the state with. + * @throws {Error} Throws an error if `newState` is not a plain object. + * @return {void} + */ + var setState = function setState(newState) { + if (_typeof(newState) !== 'object' || newState === null) { + throw new Error('setState: newState must be a non-null object'); + } + state = _objectSpread(_objectSpread({}, state), newState); + }; + + /** + * Updates a specific property in the page state with a new value. + * + * @param {string} propertyName The name of the property to update. + * @param {*} value The new value to set for the property. + * @return {void} + */ + var setSingleState = function setSingleState(propertyName, value) { + if (Reflect.has(state, propertyName)) { + Reflect.set(state, propertyName, value); + } + }; + return { + getState: getState, + getSingleState: getSingleState, + setState: setState, + setSingleState: setSingleState + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/index.js": +/*!**************************************!*\ + !*** ./js/src/core/factory/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), +/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) +/* harmony export */ }); +/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); +/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/constants.js": +/*!************************************************!*\ + !*** ./js/src/core/page-skeleton/constants.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* binding */ VIEWS) +/* harmony export */ }); +var PREFIX = 'frm-page-skeleton'; +var SEARCH_RESULT_ITEM = 'frm-card-item'; +var VIEWS = { + ALL_ITEMS: 'all-items' +}; + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/elements.js": +/*!********************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/elements.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* binding */ addElements), +/* harmony export */ getElements: () => (/* binding */ getElements) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var bodyContent = document.getElementById('post-body-content'); +var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); + +// Append empty state elements to body content +var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); +bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); +var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); +var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ + bodyContent: bodyContent, + // Sidebar elements + sidebar: sidebar, + searchInput: sidebar.querySelector('.frm-search-input'), + categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), + allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) + }, emptyStateElements)), + getElements = _createPageElements.getElements, + addElements = _createPageElements.addElements; + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": +/*!*****************************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), +/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _window$frmDom = window.frmDom, + tag = _window$frmDom.tag, + div = _window$frmDom.div, + a = _window$frmDom.a, + img = _window$frmDom.img; + +/** + * Create and return the Empty State HTML element. + * + * @return {HTMLElement} The Empty State element. + */ +function createEmptyStateElement() { + var button = a({ + className: 'button button-primary frm-button-primary' + }); + button.setAttribute('role', 'button'); + return div({ + id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), + className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), + children: [img({ + src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), + alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') + }), div({ + className: 'frmcenter', + children: [tag('h2', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") + }), tag('p', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") + })] + }), button] + }); +} + +/** + * Return the elements related to the Empty State. + * + * @return {Object} Object containing Empty State related DOM elements. + */ +function getEmptyStateElements() { + var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); + return { + emptyState: emptyState, + emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), + emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), + emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') + }; +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/index.js": +/*!*****************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/categoryListener.js": +/*!**************************************************************!*\ + !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Manages event handling for sidebar category links. + * + * @return {void} + */ +function addCategoryEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + categoryItems = _getElements.categoryItems; + + // Attach click and keyboard event listeners to each sidebar category + categoryItems.forEach(function (category) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); + category.addEventListener('keydown', onCategoryKeydown); + }); +} + +/** + * Handles the click event on a category item. + * + * @private + * @param {Event} event The click event object. + */ +var onCategoryClick = function onCategoryClick(event) { + var clickedCategory = event.currentTarget; + var newSelectedCategory = clickedCategory.getAttribute('data-category'); + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory, + selectedCategoryEl = _getState.selectedCategoryEl, + notEmptySearchText = _getState.notEmptySearchText; + + // If the selected category hasn't changed, return early + if (selectedCategory === newSelectedCategory) { + return; + } + + /** + * Filter hook to modify the selected category. + * + * @param {string} selectedCategory The selected category + */ + selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); + + // Highlight the newly clicked category and update the application state + selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + selectedCategoryEl = clickedCategory; + selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ + selectedCategory: selectedCategory, + selectedCategoryEl: selectedCategoryEl + }); + + // Reset the search input if it contains text + if (notEmptySearchText) { + (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); + } + + /** + * Trigger custom action to update category content. + * + * @param {string} selectedCategory The selected category. + */ + wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); + + // Smoothly display the updated UI elements + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements2.bodyContent; + new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); +}; + +/** + * Handles the keyboard event on a category item. + * + * @param {KeyboardEvent} event The keyboard event object. + * @return {void} + */ +function onCategoryKeydown(event) { + // Only respond to 'Enter' or 'Space' key presses + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + onCategoryClick(event); + } +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/events/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), +/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); +/** + * Internal dependencies + */ + + +/** + * Resets the value of the search input and triggers an input event. + * + * @return {void} + */ +function resetSearchInput() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + searchInput = _getElements.searchInput; + searchInput.value = ''; + searchInput.dispatchEvent(new Event('input', { + bubbles: true + })); +} + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/index.js": +/*!********************************************!*\ + !*** ./js/src/core/page-skeleton/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), +/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), +/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), +/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); + + + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/pageState.js": +/*!*******************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/pageState.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* binding */ getSingleState), +/* harmony export */ getState: () => (/* binding */ getState), +/* harmony export */ setSingleState: () => (/* binding */ setSingleState), +/* harmony export */ setState: () => (/* binding */ setState) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + allItemsCategory = _getElements.allItemsCategory; +var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ + notEmptySearchText: false, + selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, + selectedCategoryEl: allItemsCategory + }), + getState = _createPageState.getState, + getSingleState = _createPageState.getSingleState, + setState = _createPageState.setState, + setSingleState = _createPageState.setSingleState; + + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./js/src/form-templates/elements/applicationTemplatesElement.js": +/*!***********************************************************************!*\ + !*** ./js/src/form-templates/elements/applicationTemplatesElement.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplatesElement: () => (/* binding */ addApplicationTemplatesElement), +/* harmony export */ createApplicationTemplates: () => (/* binding */ createApplicationTemplates) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + +var _window$frmDom = window.frmDom, + tag = _window$frmDom.tag, + div = _window$frmDom.div, + span = _window$frmDom.span, + a = _window$frmDom.a, + img = _window$frmDom.img; + +// Application templates element +var applicationTemplates; + +// Base URL for the thumbnail images of applications +var thumbnailBaseURL = "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/applications/thumbnails"); + +/** + * Create and return the application templates HTML element. + * + * @param {Object[]} applications Array of application objects. + * @return {void} + */ +function createApplicationTemplates(applications) { + if (!applications || !applications.length) { + return; + } + var templateItems = applications.map(function (template) { + return createTemplateItem(template); + }); + applicationTemplates = div({ + id: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-applications"), + className: core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, + children: [tag('h2', { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Application Templates'), + className: 'frm-text-sm frm-mb-sm' + }), tag('ul', { + className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list frm-list-grid-layout"), + children: templateItems + })] + }); +} + +/** + * Create and return an individual item element for a application template. + * + * @private + * @param {Object} template The application object. + * @return {HTMLElement} Element representing a single application template. + */ +function createTemplateItem(template) { + var name = template.name, + key = template.key, + hasLiteThumbnail = template.hasLiteThumbnail, + isWebp = template.isWebp; + // eslint-disable-next-line no-nested-ternary + var thumbnailURL = hasLiteThumbnail ? isWebp ? "".concat(thumbnailBaseURL, "/").concat(key, ".webp") : "".concat(thumbnailBaseURL, "/").concat(key, ".png") : "".concat(thumbnailBaseURL, "/placeholder.svg"); + return tag('li', { + className: 'frm-card-item', + data: { + href: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl, "&triggerViewApplicationModal=1&template=").concat(key), + 'frm-search-text': name.toLowerCase() + }, + children: [div({ + className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-icon"), + child: img({ + src: thumbnailURL + }) + }), div({ + className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-body"), + children: [span({ + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Ready Made Solution', 'formidable'), + className: 'frm-meta-tag frm-orange-tag frm-text-xs' + }), tag('h3', { + text: name, + className: 'frm-text-sm frm-font-medium frm-m-0' + }), a({ + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('See all applications', 'formidable'), + className: 'frm-text-xs frm-font-semibold', + href: _shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl + })] + })] + }); +} + +/** + * Inject application Templates elements into the DOM and the elements object. + * + * @return {void} + */ +function addApplicationTemplatesElement() { + var elements = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(); + if (elements.applicationTemplates || undefined === applicationTemplates) { + return; + } + elements.bodyContent.appendChild(applicationTemplates); + (0,_elements__WEBPACK_IMPORTED_MODULE_4__.addElements)({ + applicationTemplates: applicationTemplates, + applicationTemplatesTitle: applicationTemplates.querySelector('h2'), + applicationTemplatesList: applicationTemplates.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list")), + applicationTemplateItems: applicationTemplates.querySelectorAll('.frm-card-item') + }); +} + +/***/ }), + +/***/ "./js/src/form-templates/elements/elements.js": +/*!****************************************************!*\ + !*** ./js/src/form-templates/elements/elements.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +var _document$getElementB; +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + bodyContent = _getElements.bodyContent; +var templatesList = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")); +var customTemplatesSection = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-section")); +var favoritesCategory = document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.FAVORITES, "\"]")); +var modal = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal")); +(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ + // Body elements + headerCancelButton: (_document$getElementB = document.getElementById('frm-publishing')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.querySelector('a'), + createFormButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-create-form")), + pageTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title")), + pageTitleText: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-text")), + pageTitleDivider: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-divider")), + upsellBanner: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-upsell-banner")), + extraTemplateCountElements: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-extra-templates-count")), + // Templates elements + templatesList: templatesList, + templateItems: templatesList.querySelectorAll('.frm-card-item'), + availableTemplateItems: templatesList.querySelectorAll(".frm-card-item:not(.".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-locked-item)")), + twinFeaturedTemplateItems: templatesList.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-item")), + featuredTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-list")), + // Custom Templates Section elements + customTemplatesSection: customTemplatesSection, + customTemplateItems: customTemplatesSection.querySelectorAll('.frm-card-item'), + customTemplatesTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-title")), + customTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list")), + // Sidebar elements + favoritesCategory: favoritesCategory, + favoritesCategoryCountEl: favoritesCategory === null || favoritesCategory === void 0 ? void 0 : favoritesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-count")), + availableTemplatesCategory: document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.AVAILABLE_TEMPLATES, "\"]")), + // Modal elements + modal: modal, + modalItems: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal-item")), + // Create New Template Modal + showCreateTemplateModalButton: document.getElementById('frm-show-create-template-modal'), + createTemplateModal: document.getElementById('frm-create-template-modal'), + createTemplateFormsDropdown: document.getElementById('frm-create-template-modal-forms-select'), + createTemplateName: document.getElementById('frm_create_template_name'), + createTemplateDescription: document.getElementById('frm_create_template_description'), + createTemplateButton: document.getElementById('frm-create-template-button'), + // Renew Account Modal + renewAccountModal: document.getElementById('frm-renew-modal'), + // Upgrade Modal + upgradeModal: document.getElementById('frm-form-upgrade-modal'), + upgradeModalTemplateNames: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-template-name'), + upgradeModalPlansIcons: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-plan-icon'), + upgradeModalLink: document.getElementById('frm-upgrade-modal-link'), + // New Template Form elements + newTemplateForm: document.getElementById('frm-new-template'), + newTemplateNameInput: document.getElementById('frm_template_name'), + newTemplateDescriptionInput: document.getElementById('frm_template_desc'), + newTemplateLinkInput: document.getElementById('frm_link'), + newTemplateActionInput: document.getElementById('frm_action_type'), + // Add children of the bodyContent to the elements object. + bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children +}); + + +/***/ }), + +/***/ "./js/src/form-templates/elements/index.js": +/*!*************************************************!*\ + !*** ./js/src/form-templates/elements/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplatesElement: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplatesElement), +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ createApplicationTemplates: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.createApplicationTemplates), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); +/* harmony import */ var _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplatesElement */ "./js/src/form-templates/elements/applicationTemplatesElement.js"); + + + +/***/ }), + +/***/ "./js/src/form-templates/events/applicationTemplateListener.js": +/*!*********************************************************************!*\ + !*** ./js/src/form-templates/events/applicationTemplateListener.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplateEvents: () => (/* binding */ addApplicationTemplateEvents) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * Internal dependencies + */ + + +/** + * Manages event handling for an application template. + * + * @return {void} + */ +function addApplicationTemplateEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + applicationTemplateItems = _getElements.applicationTemplateItems; + if (undefined === applicationTemplateItems) { + return; + } + + // Attach click event listener + applicationTemplateItems.forEach(function (template) { + template.addEventListener('click', onApplicationTemplateClick); + }); +} + +/** + * Handles the click event on an application template. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onApplicationTemplateClick = function onApplicationTemplateClick(event) { + // Check if the clicked element is an anchor tag + if (event.target.closest('a')) { + return; + } + var applicationTemplate = event.currentTarget; + window.location.href = applicationTemplate.dataset.href; +}; + +/***/ }), + +/***/ "./js/src/form-templates/events/createFormButtonListener.js": +/*!******************************************************************!*\ + !*** ./js/src/form-templates/events/createFormButtonListener.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +/** + * Manages event handling for the "Create a blank form" button. + * + * @return {void} + */ +function addCreateFormButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createFormButton = _getElements.createFormButton; + + // Attach click event listener + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createFormButton, onCreateFormButtonClick); +} + +/** + * Handles the click event on the "Create a blank form" button. + * + * @private + * @return {void} + */ +var onCreateFormButtonClick = function onCreateFormButtonClick() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createFormButton = _getElements2.createFormButton, + newTemplateForm = _getElements2.newTemplateForm, + newTemplateNameInput = _getElements2.newTemplateNameInput, + newTemplateActionInput = _getElements2.newTemplateActionInput; + var installNewForm = window.frmAdminBuild.installNewForm; + newTemplateNameInput.value = ''; + newTemplateActionInput.value = 'frm_install_form'; + installNewForm(newTemplateForm, 'frm_install_form', createFormButton); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateFormButtonEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/createTemplateListeners.js": +/*!*****************************************************************!*\ + !*** ./js/src/form-templates/events/createTemplateListeners.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + + +/** + * Manages event handling for the 'Create New Template' modal. + * + * @return {void} + */ +function addCreateTemplateEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateFormsDropdown = _getElements.createTemplateFormsDropdown, + createTemplateButton = _getElements.createTemplateButton, + showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, + emptyStateButton = _getElements.emptyStateButton; + + // Show the 'Create New Template' modal when either empty state or show modal button is clicked + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(emptyStateButton, onShowCreateTemplateModalButtonClick); + + // Handle changes in the forms selection dropdown for creating a new template + createTemplateFormsDropdown.addEventListener('change', onFormsSelectChange); + + // Create a new template when the create button inside the modal is clicked + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createTemplateButton, onCreateTemplateButtonClick); +} + +/** + * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal. + * + * @private + * @return {void} + */ +var onShowCreateTemplateModalButtonClick = function onShowCreateTemplateModalButtonClick() { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory; + if (!(0,_utils__WEBPACK_IMPORTED_MODULE_5__.isCustomCategory)(selectedCategory)) { + return; + } + (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showCreateTemplateModal)(); +}; + +/** + * Handles changes in the forms selection dropdown for creating a new template. + * + * @private + * @return {void} + */ +var onFormsSelectChange = function onFormsSelectChange() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + formsSelect = _getElements2.createTemplateFormsDropdown; + var formId = formsSelect.value; + if (!formId || formId === 'no-forms') { + toggleDisableModalElements(true); + return; + } + toggleDisableModalElements(false); + var selectedOption = formsSelect.options[formsSelect.selectedIndex]; + var formDescription = selectedOption.dataset.description.trim(); + var formName = selectedOption.dataset.name.trim(); + var templateString = " ".concat((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Template', 'formidable')); + if (!formName.endsWith(templateString)) { + formName += templateString; + } + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateName = _getElements3.createTemplateName, + createTemplateDescription = _getElements3.createTemplateDescription; + createTemplateName.value = formName; + createTemplateDescription.value = formDescription; +}; + +/** + * Toggles the disabled state of elements in the 'Create Template' modal. + * + * @private + * @param {boolean} shouldDisable True to disable, false to enable. + * @return {void} + */ +var toggleDisableModalElements = function toggleDisableModalElements(shouldDisable) { + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateName = _getElements4.createTemplateName, + createTemplateDescription = _getElements4.createTemplateDescription, + createTemplateButton = _getElements4.createTemplateButton; + + // Toggle the disabled attribute for input and textarea + [createTemplateName, createTemplateDescription].forEach(function (element) { + element.disabled = shouldDisable; + if (shouldDisable) { + element.value = ''; // Clear the content for input and textarea + } + }); + + // Toggle the disabled class for the button + createTemplateButton.classList.toggle('disabled', shouldDisable); +}; + +/** + * Handles the click event on the 'Create Template' button to create a new template. + * + * @private + * @return {void} + */ +var onCreateTemplateButtonClick = function onCreateTemplateButtonClick() { + var installNewForm = window.frmAdminBuild.installNewForm; + var actionName = 'frm_create_template'; + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + newTemplateForm = _getElements5.newTemplateForm, + newTemplateActionInput = _getElements5.newTemplateActionInput, + newTemplateNameInput = _getElements5.newTemplateNameInput, + newTemplateDescriptionInput = _getElements5.newTemplateDescriptionInput, + newTemplateLinkInput = _getElements5.newTemplateLinkInput, + createTemplateName = _getElements5.createTemplateName, + createTemplateDescription = _getElements5.createTemplateDescription, + createTemplateFormsDropdown = _getElements5.createTemplateFormsDropdown, + createTemplateButton = _getElements5.createTemplateButton; + newTemplateActionInput.value = actionName; + newTemplateNameInput.value = createTemplateName.value.trim(); + newTemplateDescriptionInput.value = createTemplateDescription.value.trim(); + newTemplateLinkInput.value = createTemplateFormsDropdown.value; + + // Install new form template + installNewForm(newTemplateForm, actionName, createTemplateButton); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateTemplateEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/favoriteButtonListener.js": +/*!****************************************************************!*\ + !*** ./js/src/form-templates/events/favoriteButtonListener.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +var FAVORITE_BUTTON_CLASS = ".".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-item-favorite-button"); +var HEART_ICON_SELECTOR = "".concat(FAVORITE_BUTTON_CLASS, " use"); +var FILLED_HEART_ICON = '#frm_heart_solid_icon'; +var LINEAR_HEART_ICON = '#frm_heart_icon'; +var OPERATION = { + ADD: 'add', + REMOVE: 'remove' +}; + +/** + * Manages event handling for favorite buttons. + * + * @return {void} + */ +function addFavoriteButtonEvents() { + var favoriteButtons = document.querySelectorAll(FAVORITE_BUTTON_CLASS); + + // Attach click event listeners to each favorite button + favoriteButtons.forEach(function (favoriteButton) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(favoriteButton, onFavoriteButtonClick); + }); +} + +/** + * Handles the click event on the add to favorite button. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onFavoriteButtonClick = function onFavoriteButtonClick(event) { + var _twinFeaturedTemplate; + var favoriteButton = event.currentTarget; + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + templatesList = _getElements.templatesList, + featuredTemplatesList = _getElements.featuredTemplatesList, + favoritesCategoryCountEl = _getElements.favoritesCategoryCountEl, + customTemplatesTitle = _getElements.customTemplatesTitle; + + /** + * Get necessary template information + */ + var template = favoriteButton.closest('.frm-card-item'); + var templateId = template.dataset.id; + var isFavorited = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); + var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isCustomTemplate)(template); + var isTemplateFeatured = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFeaturedTemplate)(template); + + /** + * Toggle the favorite status in the UI. + * If template is featured, toggle its twin version in the respective list. + */ + var twinFeaturedTemplate = null; + template.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); + if (isTemplateFeatured) { + var templateList = template.closest("#".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-list")) ? featuredTemplatesList : templatesList; + if (templateList) { + twinFeaturedTemplate = templateList.querySelector(".frm-card-item[data-id=\"".concat(templateId, "\"]")); + // Toggle twin template's favorite status + twinFeaturedTemplate.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); + } + } + + /** + * Update favorite counts and icons based on the new state + */ + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getState)(), + selectedCategory = _getState.selectedCategory, + favoritesCount = _getState.favoritesCount; + var currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD; + var heartIcon = template.querySelector(HEART_ICON_SELECTOR); + var twinTemplateHeartIcon = (_twinFeaturedTemplate = twinFeaturedTemplate) === null || _twinFeaturedTemplate === void 0 ? void 0 : _twinFeaturedTemplate.querySelector(HEART_ICON_SELECTOR); + if (OPERATION.ADD === currentOperation) { + // Increment favorite counts + ++favoritesCount.total; + isTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions + // Set heart icon to filled + heartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); + twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); + } else { + // Decrement favorite counts + --favoritesCount.total; + isTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions + // Set heart icon to outline + heartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); + twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); + } + + // Update UI and state to reflect new favorite counts + favoritesCategoryCountEl.textContent = favoritesCount.total; + (0,_shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState)('favoritesCount', favoritesCount); + + /** + * Hide UI elements if 'Favorites' is active and counts are zero. + */ + if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoritesCategory)(selectedCategory)) { + if (0 === favoritesCount.total) { + (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showFavoritesEmptyState)(); + } + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(template); + if (0 === favoritesCount.default) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(templatesList); + } + if (0 === favoritesCount.custom || 0 === favoritesCount.default) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); + } + } + + // Update server-side data for favorite templates + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.addToRequestQueue)(function () { + return updateFavoriteTemplate(templateId, currentOperation, isTemplateCustom); + }); +}; + +/** + * Update server-side data for favorite templates. + * + * @param {string} id The template ID. + * @param {string} operation The operation to perform ('add' or 'remove'). + * @param {boolean} isCustom Flag indicating whether the template is custom. + * @return {Promise} The result of the server-side update. + */ +function updateFavoriteTemplate(id, operation, isCustom) { + var formData = new FormData(); + var doJsonPost = frmDom.ajax.doJsonPost; + formData.append('template_id', id); + formData.append('operation', operation); + formData.append('is_custom_template', isCustom); + return doJsonPost('add_or_remove_favorite_template', formData); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addFavoriteButtonEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/index.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/events/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplateEvents: () => (/* reexport safe */ _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_7__.addApplicationTemplateEvents), +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createFormButtonListener */ "./js/src/form-templates/events/createFormButtonListener.js"); +/* harmony import */ var _favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./favoriteButtonListener */ "./js/src/form-templates/events/favoriteButtonListener.js"); +/* harmony import */ var _useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useTemplateButtonListener */ "./js/src/form-templates/events/useTemplateButtonListener.js"); +/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./searchListener */ "./js/src/form-templates/events/searchListener.js"); +/* harmony import */ var _createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createTemplateListeners */ "./js/src/form-templates/events/createTemplateListeners.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./applicationTemplateListener */ "./js/src/form-templates/events/applicationTemplateListener.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Attaches event listeners for handling user interactions. + * + * @return {void} + */ +function addEventListeners() { + (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); + wp.hooks.addAction('frmPage.onCategoryClick', 'frmFormTemplates', function (selectedCategory) { + // Display templates of the selected category + (0,_ui__WEBPACK_IMPORTED_MODULE_6__.showSelectedCategory)(selectedCategory); + }); + (0,_createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__["default"])(); + (0,_favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); + (0,_searchListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); + (0,_createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__["default"])(); +} + + +/***/ }), + +/***/ "./js/src/form-templates/events/searchListener.js": +/*!********************************************************!*\ + !*** ./js/src/form-templates/events/searchListener.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + +var initSearch = window.frmDom.search.init; + +/** + * Adds search-related event listeners by calling the 'initSearch' function. + * + * @see frmDom.search method + * @return {void} + */ +function addSearchEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + searchInput = _getElements.searchInput, + emptyStateButton = _getElements.emptyStateButton; + initSearch(searchInput, 'frm-card-item', { + handleSearchResult: handleSearchResult + }); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(emptyStateButton, onEmptyStateButtonClick); +} + +/** + * Manages UI state based on search results and input value. + * + * @private + * @param {Object} args Contains flags for search status. + * @param {boolean} args.foundSomething True if search yielded results. + * @param {boolean} args.notEmptySearchText True if search input is not empty. + * @param {Event} event The event object (input, search, or change event). + * @return {void} + */ +function handleSearchResult(_ref, event) { + var foundSomething = _ref.foundSomething, + notEmptySearchText = _ref.notEmptySearchText; + // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, + // triggering this method twice on 'x' button click. + if (event && event.type === 'search' && event.target.value === '') { + return; + } + var state = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(); + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + allItemsCategory = _getElements2.allItemsCategory; + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('notEmptySearchText', notEmptySearchText); + + // Revert to 'All Templates' if search and selected category are both empty + if (!state.notEmptySearchText && !state.selectedCategory) { + allItemsCategory.dispatchEvent(new Event('click', { + bubbles: true + })); + return; + } + + // Display search state if a category is selected + if (state.selectedCategory) { + (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showSearchState)(notEmptySearchText); + + // Setting "selectedCategory" to an empty string as a flag for search state + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); + } + } + (0,_ui__WEBPACK_IMPORTED_MODULE_4__.displaySearchElements)(foundSomething, notEmptySearchText); +} + +/** + * Handles the click event on the empty state button. + * + * @private + * @return {void} + */ +var onEmptyStateButtonClick = function onEmptyStateButtonClick() { + var _emptyState$dataset; + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyState = _getElements3.emptyState; + if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH !== ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { + return; + } + + // Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty + // @see handleSearchResult() + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); + (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.resetSearchInput)(); + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + searchInput = _getElements4.searchInput; + searchInput.focus(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/useTemplateButtonListener.js": +/*!*******************************************************************!*\ + !*** ./js/src/form-templates/events/useTemplateButtonListener.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/ */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/** + * Internal dependencies + */ + + + + + +/** + * Manages event handling for use template buttons. + * + * @return {void} + */ +function addUseTemplateButtonEvents() { + var useTemplateButtons = document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-use-template-button")); + + // Attach click event listeners to each use template button + useTemplateButtons.forEach(function (useTemplateButton) { + return useTemplateButton.addEventListener('click', onUseTemplateButtonClick); + }); +} + +/** + * Handles the click event on the use template button. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onUseTemplateButtonClick = function onUseTemplateButtonClick(event) { + var useTemplateButton = event.currentTarget; + var template = useTemplateButton.closest('.frm-card-item'); + var isLocked = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isLockedTemplate)(template); + var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isCustomTemplate)(template); + + // Allow the default link behavior, if the template is custom and not locked + if (!isLocked && isTemplateCustom) { + return; + } + + // Prevent the default link behavior for non-custom or locked templates + event.preventDefault(); + + // Update app state with selected template + (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('selectedTemplate', template); + + // Handle locked templates + if (isLocked) { + (0,_ui___WEBPACK_IMPORTED_MODULE_2__.showLockedTemplateModal)(template); + return; + } + + // Prepare for new template installation + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + newTemplateForm = _getElements.newTemplateForm, + newTemplateNameInput = _getElements.newTemplateNameInput, + newTemplateDescriptionInput = _getElements.newTemplateDescriptionInput, + newTemplateLinkInput = _getElements.newTemplateLinkInput, + newTemplateActionInput = _getElements.newTemplateActionInput; + var installNewForm = window.frmAdminBuild.installNewForm; + var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); + var templateDescription = template.querySelector('.frm-form-templates-item-description').textContent.trim(); + var actionName = 'frm_install_template'; + newTemplateNameInput.value = templateName; + newTemplateDescriptionInput.value = templateDescription; + newTemplateActionInput.value = actionName; + newTemplateLinkInput.value = useTemplateButton.href; + + // Install new form template + installNewForm(newTemplateForm, actionName, useTemplateButton); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addUseTemplateButtonEvents); + +/***/ }), + +/***/ "./js/src/form-templates/initializeFormTemplates.js": +/*!**********************************************************!*\ + !*** ./js/src/form-templates/initializeFormTemplates.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates */ "./js/src/form-templates/templates/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./events */ "./js/src/form-templates/events/index.js"); +/** + * Internal dependencies + */ + + + + +/** + * Initializes form templates. + * + * @return {void} + */ +function initializeFormTemplates() { + (0,_templates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates)(); + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.initializeModal)(); + (0,_templates__WEBPACK_IMPORTED_MODULE_1__.buildCategorizedTemplates)(); + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); + (0,_events__WEBPACK_IMPORTED_MODULE_2__.addEventListeners)(); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeFormTemplates); + +/***/ }), + +/***/ "./js/src/form-templates/shared/constants.js": +/*!***************************************************!*\ + !*** ./js/src/form-templates/shared/constants.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FEATURED_TEMPLATES_KEYS: () => (/* binding */ FEATURED_TEMPLATES_KEYS), +/* harmony export */ MODAL_SIZES: () => (/* binding */ MODAL_SIZES), +/* harmony export */ PLANS: () => (/* binding */ PLANS), +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ VIEW_SLUGS: () => (/* binding */ VIEW_SLUGS), +/* harmony export */ applicationsUrl: () => (/* binding */ applicationsUrl), +/* harmony export */ canAccessApplicationDashboard: () => (/* binding */ canAccessApplicationDashboard), +/* harmony export */ upgradeLink: () => (/* binding */ upgradeLink) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + canAccessApplicationDashboard = _window$frmGlobal.canAccessApplicationDashboard, + applicationsUrl = _window$frmGlobal.applicationsUrl; + +var _window$frmFormTempla = window.frmFormTemplatesVars, + FEATURED_TEMPLATES_KEYS = _window$frmFormTempla.FEATURED_TEMPLATES_KEYS, + upgradeLink = _window$frmFormTempla.upgradeLink; + +var PREFIX = 'frm-form-templates'; +var VIEW_SLUGS = { + AVAILABLE_TEMPLATES: 'available-templates', + FAVORITES: 'favorites', + CUSTOM: 'custom', + SEARCH: 'search' +}; +var PLANS = { + BASIC: 'basic', + PLUS: 'plus', + BUSINESS: 'business', + ELITE: 'elite', + RENEW: 'renew', + FREE: 'free' +}; +var MODAL_SIZES = { + GENERAL: '440px', + CREATE_TEMPLATE: '550px' +}; + +/***/ }), + +/***/ "./js/src/form-templates/shared/index.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/shared/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FEATURED_TEMPLATES_KEYS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.FEATURED_TEMPLATES_KEYS), +/* harmony export */ MODAL_SIZES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES), +/* harmony export */ PLANS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PLANS), +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ VIEW_SLUGS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_SLUGS), +/* harmony export */ applicationsUrl: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.applicationsUrl), +/* harmony export */ canAccessApplicationDashboard: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.canAccessApplicationDashboard), +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState), +/* harmony export */ upgradeLink: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.upgradeLink) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/form-templates/shared/constants.js"); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/form-templates/shared/pageState.js"); + + + +/***/ }), + +/***/ "./js/src/form-templates/shared/pageState.js": +/*!***************************************************!*\ + !*** ./js/src/form-templates/shared/pageState.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _window$frmFormTempla = window.frmFormTemplatesVars, + templatesCount = _window$frmFormTempla.templatesCount, + favoritesCount = _window$frmFormTempla.favoritesCount, + customCount = _window$frmFormTempla.customCount; +var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + availableTemplateItems = _getElements.availableTemplateItems; +var availableTemplatesCount = availableTemplateItems.length; +(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState)({ + availableTemplatesCount: availableTemplatesCount, + customCount: Number(customCount), + extraTemplatesCount: templatesCount - availableTemplatesCount, + favoritesCount: favoritesCount, + selectedTemplate: false +}); + + +/***/ }), + +/***/ "./js/src/form-templates/templates/applicationTemplates.js": +/*!*****************************************************************!*\ + !*** ./js/src/form-templates/templates/applicationTemplates.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ maybeAddApplicationTemplates: () => (/* binding */ maybeAddApplicationTemplates) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ "./js/src/form-templates/events/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * Internal dependencies + */ + + + + +/** + * Adds application templates if the user has dashboard access. + * + * @return {void} + */ +function maybeAddApplicationTemplates() { + // Exit if the user doesn't have permission to see application dashboard + if (!_shared__WEBPACK_IMPORTED_MODULE_2__.canAccessApplicationDashboard) { + return; + } + var doJsonFetch = frmDom.ajax.doJsonFetch; + doJsonFetch('get_applications_data&view=templates').then(setupApplicationTemplates); +} + +/** + * Sets up application templates by creating HTML elements, injecting them into the DOM, + * and adding event handlers. + * + * @private + * @param {Object} data The data object containing information for application templates. + * @return {void} + */ +function setupApplicationTemplates(data) { + // Create application templates + (0,_elements__WEBPACK_IMPORTED_MODULE_0__.createApplicationTemplates)(data.templates); + + // Inject templates into the DOM + (0,_elements__WEBPACK_IMPORTED_MODULE_0__.addApplicationTemplatesElement)(); + + // Set up event handling + (0,_events__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplateEvents)(); +} + +/***/ }), + +/***/ "./js/src/form-templates/templates/categorizeTemplates.js": +/*!****************************************************************!*\ + !*** ./js/src/form-templates/templates/categorizeTemplates.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedTemplates: () => (/* binding */ buildCategorizedTemplates), +/* harmony export */ categorizedTemplates: () => (/* binding */ categorizedTemplates) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * Internal dependencies + */ + +var categorizedTemplates = {}; + +/** + * Builds a categorized list of templates. + * + * @return {void} + */ +function buildCategorizedTemplates() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + templateItems = _getElements.templateItems; + templateItems.forEach(function (template) { + // Extract and split the categories from data attribute + var categories = template.getAttribute('data-categories').split(','); + categories.forEach(function (category) { + // Initialize the category array if not already done + if (!categorizedTemplates[category]) { + categorizedTemplates[category] = []; + } + + // Add the template to the appropriate category + categorizedTemplates[category].push(template); + }); + }); +} + +/***/ }), + +/***/ "./js/src/form-templates/templates/index.js": +/*!**************************************************!*\ + !*** ./js/src/form-templates/templates/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedTemplates), +/* harmony export */ categorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.categorizedTemplates), +/* harmony export */ maybeAddApplicationTemplates: () => (/* reexport safe */ _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates) +/* harmony export */ }); +/* harmony import */ var _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeTemplates */ "./js/src/form-templates/templates/categorizeTemplates.js"); +/* harmony import */ var _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplates */ "./js/src/form-templates/templates/applicationTemplates.js"); + + + +/***/ }), + +/***/ "./js/src/form-templates/ui/index.js": +/*!*******************************************!*\ + !*** ./js/src/form-templates/ui/index.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.displaySearchElements), +/* harmony export */ getModalWidget: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.getModalWidget), +/* harmony export */ initializeModal: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.initializeModal), +/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ showAllTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAllTemplates), +/* harmony export */ showAvailableTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAvailableTemplates), +/* harmony export */ showAvailableTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState), +/* harmony export */ showCreateTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showCreateTemplateModal), +/* harmony export */ showCustomTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showCustomTemplates), +/* harmony export */ showCustomTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState), +/* harmony export */ showFavoriteTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showFavoriteTemplates), +/* harmony export */ showFavoritesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState), +/* harmony export */ showHeaderCancelButton: () => (/* reexport safe */ _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__.showHeaderCancelButton), +/* harmony export */ showLockedTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showLockedTemplateModal), +/* harmony export */ showRenewAccountModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showRenewAccountModal), +/* harmony export */ showSearchEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showSearchEmptyState), +/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.showSearchState), +/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showSelectedCategory), +/* harmony export */ showUpgradeModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showUpgradeModal), +/* harmony export */ updatePageTitle: () => (/* reexport safe */ _pageTitle__WEBPACK_IMPORTED_MODULE_2__.updatePageTitle) +/* harmony export */ }); +/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/form-templates/ui/setupInitialView.js"); +/* harmony import */ var _initializeModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeModal */ "./js/src/form-templates/ui/initializeModal.js"); +/* harmony import */ var _pageTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pageTitle */ "./js/src/form-templates/ui/pageTitle.js"); +/* harmony import */ var _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showHeaderCancelButton */ "./js/src/form-templates/ui/showHeaderCancelButton.js"); +/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/form-templates/ui/showSelectedCategory.js"); +/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./searchState */ "./js/src/form-templates/ui/searchState.js"); +/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/form-templates/ui/showEmptyState.js"); +/* harmony import */ var _showModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./showModal */ "./js/src/form-templates/ui/showModal.js"); + + + + + + + + + +/***/ }), + +/***/ "./js/src/form-templates/ui/initializeModal.js": +/*!*****************************************************!*\ + !*** ./js/src/form-templates/ui/initializeModal.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getModalWidget: () => (/* binding */ getModalWidget), +/* harmony export */ initializeModal: () => (/* binding */ initializeModal) +/* harmony export */ }); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } + +var modalWidget = null; + +/** + * Initialize the modal widget. + * + * @return {void} + */ +function initializeModal() { + return _initializeModal.apply(this, arguments); +} + +/** + * Retrieve the modal widget. + * + * @return {Object|false} The modal widget or false. + */ +function _initializeModal() { + _initializeModal = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var _window$frmAdminBuild, initModal, offsetModalY; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _window$frmAdminBuild = window.frmAdminBuild, initModal = _window$frmAdminBuild.initModal, offsetModalY = _window$frmAdminBuild.offsetModalY; + modalWidget = initModal('#frm-form-templates-modal', _shared__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES.GENERAL); + + // Set the vertical offset for the modal + if (modalWidget) { + offsetModalY(modalWidget, '103px'); + } + + // Customize the confirm modal appearance: adjusting its width and vertical position + wp.hooks.addAction('frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', function (options) { + var confirmModal = options.$info; + confirmModal.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES.CREATE_TEMPLATE); + offsetModalY(confirmModal, '103px'); + }); + case 4: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _initializeModal.apply(this, arguments); +} +function getModalWidget() { + return modalWidget; +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/pageTitle.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/ui/pageTitle.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ updatePageTitle: () => (/* binding */ updatePageTitle) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Sets the page title based on a given string or the currently selected category. + * + * @param {string} [title] Optional title to display. + * @return {void} + */ +function updatePageTitle(title) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + pageTitleText = _getElements.pageTitleText; + var newTitle = title || (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState)('selectedCategoryEl').querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-text")).textContent; + pageTitleText.textContent = newTitle; +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/searchState.js": +/*!*************************************************!*\ + !*** ./js/src/form-templates/ui/searchState.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), +/* harmony export */ showSearchState: () => (/* binding */ showSearchState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/form-templates/ui/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Updates the UI to display the search state. + * + * @param {boolean} notEmptySearchText True if search input is not empty. + * @return {void} + */ +function showSearchState(notEmptySearchText) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + bodyContent = _getElements.bodyContent, + bodyContentChildren = _getElements.bodyContentChildren, + pageTitle = _getElements.pageTitle, + templatesList = _getElements.templatesList, + applicationTemplates = _getElements.applicationTemplates; + var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent); + + // Remove highlighting from the currently selected category if the search text is not empty + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); + } + + // Hide non-relevant elements in the body content + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); + + // Update the page title and display relevant elements + (0,___WEBPACK_IMPORTED_MODULE_5__.updatePageTitle)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Search Result', 'formidable')); + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([pageTitle, templatesList, applicationTemplates]); + + // Smoothly display the updated UI elements + bodyContentAnimate.fadeIn(); +} + +/** + * Displays search results based on search outcome. + * + * @param {boolean} foundSomething True if search yielded results. + * @return {void} + */ +function displaySearchElements(foundSomething) { + // Show empty state if no templates found + if (!foundSomething) { + (0,___WEBPACK_IMPORTED_MODULE_5__.showSearchEmptyState)(); + return; + } + + // Hide empty state if currently displayed + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + emptyState = _getElements2.emptyState; + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + pageTitle = _getElements3.pageTitle; + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(pageTitle); + } + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + templatesList = _getElements4.templatesList, + applicationTemplates = _getElements4.applicationTemplates, + applicationTemplatesTitle = _getElements4.applicationTemplatesTitle, + applicationTemplatesList = _getElements4.applicationTemplatesList; + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([templatesList, applicationTemplates, applicationTemplatesTitle]); + if (templatesList.offsetHeight === 0) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)([templatesList, applicationTemplatesTitle]); + } + if ((applicationTemplatesList === null || applicationTemplatesList === void 0 ? void 0 : applicationTemplatesList.offsetHeight) === 0) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(applicationTemplates); + } +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/setupInitialView.js": +/*!******************************************************!*\ + !*** ./js/src/form-templates/ui/setupInitialView.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +/** + * External dependencies + */ + + + + +/** + * Internal dependencies + */ + + + + +/** + * Sets up the initial view, performing any required + * DOM manipulations for proper element presentation. + * + * @return {void} + */ +function setupInitialView() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + sidebar = _getElements.sidebar, + searchInput = _getElements.searchInput, + bodyContent = _getElements.bodyContent, + twinFeaturedTemplateItems = _getElements.twinFeaturedTemplateItems, + availableTemplatesCategory = _getElements.availableTemplatesCategory; + var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); + searchInput.value = ''; + + // Hide the twin featured template items + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(twinFeaturedTemplateItems); + + // Set the 'Available Templates' count if it is present + if (availableTemplatesCategory) { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), + availableTemplatesCount = _getState.availableTemplatesCount; + availableTemplatesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-cat-count")).textContent = availableTemplatesCount; + } + + // Update extra templates count + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + extraTemplateCountElements = _getElements2.extraTemplateCountElements; + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), + extraTemplatesCount = _getState2.extraTemplatesCount; + extraTemplateCountElements.forEach(function (element) { + return element.textContent = extraTemplatesCount; + }); + + // Smoothly display the updated UI elements + bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + bodyContentAnimate.fadeIn(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(sidebar); + + // Show the "Cancel" button in the header if the 'return_page' query param is present + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hasQueryParam)('return_page')) { + (0,___WEBPACK_IMPORTED_MODULE_5__.showHeaderCancelButton)(); + } +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupInitialView); + +/***/ }), + +/***/ "./js/src/form-templates/ui/showEmptyState.js": +/*!****************************************************!*\ + !*** ./js/src/form-templates/ui/showEmptyState.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showAvailableTemplatesEmptyState: () => (/* binding */ showAvailableTemplatesEmptyState), +/* harmony export */ showCustomTemplatesEmptyState: () => (/* binding */ showCustomTemplatesEmptyState), +/* harmony export */ showFavoritesEmptyState: () => (/* binding */ showFavoritesEmptyState), +/* harmony export */ showSearchEmptyState: () => (/* binding */ showSearchEmptyState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Display the search-empty state. + * + * @return {void} + */ +function showSearchEmptyState() { + var _emptyState$dataset; + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + notEmptySearchText = _getState.notEmptySearchText; + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements.pageTitle, + emptyState = _getElements.emptyState, + emptyStateButton = _getElements.emptyStateButton, + applicationTemplates = _getElements.applicationTemplates; + + // Toggle visibility and remove attributes based on search status + if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH === ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { + if (notEmptySearchText) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); + } else { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(emptyState); + emptyState.removeAttribute('data-view'); + } + return; + } + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH); + + // Update text content + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements2.emptyStateTitle, + emptyStateText = _getElements2.emptyStateText; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No templates found', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any templates that match your criteria.', 'formidable'); + emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Start from Scratch', 'formidable'); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); +} + +/** + * Display the favorites-empty state. + * + * @return {void} + */ +function showFavoritesEmptyState() { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements3.pageTitle, + emptyState = _getElements3.emptyState, + emptyStateButton = _getElements3.emptyStateButton; + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES); + + // Update text content + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements4.emptyStateTitle, + emptyStateText = _getElements4.emptyStateText; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No favorites', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t added any templates to your favorites yet.', 'formidable'); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); +} + +/** + * Display the custom-empty state. + * + * @return {void} + */ +function showCustomTemplatesEmptyState() { + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements5.pageTitle, + emptyState = _getElements5.emptyState, + emptyStateButton = _getElements5.emptyStateButton; + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM); + + // Update text content + var _getElements6 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements6.emptyStateTitle, + emptyStateText = _getElements6.emptyStateText; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You currently have no templates.', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t created any form templates. Begin now to simplify your workflow and save time.', 'formidable'); + emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create Template', 'formidable'); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(pageTitle); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); +} + +/** + * Display the available-templates-empty state. + * + * @return {void} + */ +function showAvailableTemplatesEmptyState() { + var _getElements7 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements7.pageTitle, + emptyState = _getElements7.emptyState, + emptyStateButton = _getElements7.emptyStateButton; + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES); + + // Update text content + var _getElements8 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements8.emptyStateTitle, + emptyStateText = _getElements8.emptyStateText; + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + extraTemplatesCount = _getState2.extraTemplatesCount; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No Templates Available', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)( + // translators: %s is the number of extra templates available + (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable'), extraTemplatesCount); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/showHeaderCancelButton.js": +/*!************************************************************!*\ + !*** ./js/src/form-templates/ui/showHeaderCancelButton.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showHeaderCancelButton: () => (/* binding */ showHeaderCancelButton) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +/** + * Display the "Cancel" button in the header. + * + * @return {void} + */ +function showHeaderCancelButton() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + headerCancelButton = _getElements.headerCancelButton; + new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(headerCancelButton).fadeIn(); +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/showModal.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/ui/showModal.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showCreateTemplateModal: () => (/* binding */ showCreateTemplateModal), +/* harmony export */ showLockedTemplateModal: () => (/* binding */ showLockedTemplateModal), +/* harmony export */ showRenewAccountModal: () => (/* binding */ showRenewAccountModal), +/* harmony export */ showUpgradeModal: () => (/* binding */ showUpgradeModal) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Display the locked template modal. + * + * @param {HTMLElement} template The template element. + * @return {void} + */ +function showLockedTemplateModal(template) { + var plan = template.dataset.requiredPlan; + switch (plan) { + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BASIC: + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.PLUS: + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BUSINESS: + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.ELITE: + showUpgradeModal(plan, template); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.RENEW: + showRenewAccountModal(); + break; + } +} + +/** + * Base function to show a modal dialog with a customizable pre-open execution step. + * + * @param {Function} executePreOpen The function to be executed before opening the modal dialog. + * @return {Function} A higher-order function that can be invoked to display the modal dialog. + */ +var showModal = function showModal(executePreOpen) { + return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var dialogWidget, + _getElements, + modalItems, + _len, + params, + _key, + _args = arguments; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); + if (dialogWidget) { + _context.next = 3; + break; + } + return _context.abrupt("return"); + case 3: + _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), modalItems = _getElements.modalItems; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(modalItems); + dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.GENERAL); + for (_len = _args.length, params = new Array(_len), _key = 0; _key < _len; _key++) { + params[_key] = _args[_key]; + } + _context.next = 9; + return executePreOpen === null || executePreOpen === void 0 ? void 0 : executePreOpen.apply(void 0, params); + case 9: + dialogWidget.dialog('open'); + case 10: + case "end": + return _context.stop(); + } + }, _callee); + })); +}; + +// Mapping each plan to the subsequent plans it can upgrade to +var upgradablePlans = { + basic: ['basic', 'plus', 'business', 'elite'], + plus: ['plus', 'business', 'elite'], + business: ['business', 'elite'], + elite: ['elite'] +}; + +/** + * Display the modal dialog to prompt the user to upgrade their account. + * + * @param {string} plan Current plan name + * @param {HTMLElement} template The template element + * @return {void} + */ +var showUpgradeModal = showModal(function (plan, template) { + var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + upgradeModal = _getElements2.upgradeModal, + upgradeModalTemplateNames = _getElements2.upgradeModalTemplateNames, + upgradeModalPlansIcons = _getElements2.upgradeModalPlansIcons, + upgradeModalLink = _getElements2.upgradeModalLink; + + // Update template names + upgradeModalTemplateNames.forEach(function (element) { + return element.textContent = templateName; + }); + + // Update plan icons and their availability + upgradeModalPlansIcons.forEach(function (icon) { + var planType = icon.dataset.plan; + var shouldDisplayCheck = upgradablePlans[plan].includes(planType); + + // Toggle icon class based on plan availability + icon.classList.toggle('frm_green', shouldDisplayCheck); + + // Update SVG icon + var svg = icon.querySelector('svg > use'); + svg.setAttribute('xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon'); + }); + + // Append template slug to the upgrade modal link URL + var templateSlug = template.dataset.slug ? "-".concat(template.dataset.slug) : ''; + upgradeModalLink.href = _shared__WEBPACK_IMPORTED_MODULE_3__.upgradeLink + templateSlug; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(upgradeModal); +}); + +/** + * Display the modal dialog to prompt the user to renew their account. + * + * @return {void} + */ +var showRenewAccountModal = showModal(function () { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + renewAccountModal = _getElements3.renewAccountModal; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(renewAccountModal); +}); + +/** + * Displays a modal dialog prompting the user to create a new template. + * + * @return {void} + */ +var showCreateTemplateModal = showModal(function () { + var dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); + dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.CREATE_TEMPLATE); + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateModal = _getElements4.createTemplateModal; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(createTemplateModal); +}); + +/***/ }), + +/***/ "./js/src/form-templates/ui/showSelectedCategory.js": +/*!**********************************************************!*\ + !*** ./js/src/form-templates/ui/showSelectedCategory.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ showAllTemplates: () => (/* binding */ showAllTemplates), +/* harmony export */ showAvailableTemplates: () => (/* binding */ showAvailableTemplates), +/* harmony export */ showCustomTemplates: () => (/* binding */ showCustomTemplates), +/* harmony export */ showFavoriteTemplates: () => (/* binding */ showFavoriteTemplates), +/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../templates */ "./js/src/form-templates/templates/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + + +/** + * Show templates based on selected category. + * + * @param {string} selectedCategory The selected category to display templates for. + * @return {void} + */ +function showSelectedCategory(selectedCategory) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContentChildren = _getElements.bodyContentChildren, + pageTitle = _getElements.pageTitle, + showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, + templatesList = _getElements.templatesList, + templateItems = _getElements.templateItems; + if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS !== selectedCategory) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(bodyContentChildren); + } + (0,___WEBPACK_IMPORTED_MODULE_6__.updatePageTitle)(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(showCreateTemplateModalButton); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(pageTitle); + switch (selectedCategory) { + case core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS: + showAllTemplates(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES: + showAvailableTemplates(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES: + showFavoriteTemplates(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM: + showCustomTemplates(); + break; + default: + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([templatesList].concat(_toConsumableArray(_templates__WEBPACK_IMPORTED_MODULE_5__.categorizedTemplates[selectedCategory]))); + break; + } +} + +/** + * Shows all templates when 'All Templates' is the selected category. + * + * @return {void} + */ +function showAllTemplates() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContentChildren = _getElements2.bodyContentChildren, + pageTitleDivider = _getElements2.pageTitleDivider, + templateItems = _getElements2.templateItems, + twinFeaturedTemplateItems = _getElements2.twinFeaturedTemplateItems, + customTemplatesSection = _getElements2.customTemplatesSection, + emptyState = _getElements2.emptyState, + applicationTemplates = _getElements2.applicationTemplates; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([].concat(_toConsumableArray(bodyContentChildren), _toConsumableArray(templateItems))); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)([pageTitleDivider].concat(_toConsumableArray(twinFeaturedTemplateItems), [customTemplatesSection, emptyState, applicationTemplates])); +} + +/** + * Shows favorite templates. + * + * @return {void} + */ +function showFavoriteTemplates() { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + favoritesCount = _getState.favoritesCount; + if (0 === favoritesCount.total) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState)(); + return; + } + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements3.bodyContent, + templatesList = _getElements3.templatesList, + templateItems = _getElements3.templateItems, + customTemplatesSection = _getElements3.customTemplatesSection, + customTemplatesTitle = _getElements3.customTemplatesTitle, + customTemplatesList = _getElements3.customTemplatesList, + customTemplateItems = _getElements3.customTemplateItems; + + // Clear the view for new content + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); + var elementsToShow = []; + + // Get all favorite items from the DOM and add the elements to show + var favoriteItems = bodyContent.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-favorite-item")); + elementsToShow.push.apply(elementsToShow, _toConsumableArray(favoriteItems)); + + // Add default favorites if available + if (favoritesCount.default > 0) { + elementsToShow.push(templatesList); + } + + // Add custom favorites if available + if (favoritesCount.custom > 0) { + var nonFavCustomTemplates = Array.from(customTemplateItems).filter(function (template) { + return !(0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); + }); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(nonFavCustomTemplates); + elementsToShow.push(customTemplatesSection); + elementsToShow.push(customTemplatesList); + if (0 === favoritesCount.default) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); + } else { + elementsToShow.push(customTemplatesTitle); + } + } + + // Show elements that were selected to be shown + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(elementsToShow); +} + +/** + * Shows custom templates. + * + * @return {void} + */ +function showCustomTemplates() { + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + customCount = _getState2.customCount; + if (0 === customCount) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState)(); + return; + } + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + showCreateTemplateModalButton = _getElements4.showCreateTemplateModalButton, + pageTitleDivider = _getElements4.pageTitleDivider, + customTemplatesSection = _getElements4.customTemplatesSection, + customTemplatesList = _getElements4.customTemplatesList, + customTemplatesTitle = _getElements4.customTemplatesTitle, + customTemplateItems = _getElements4.customTemplateItems; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList].concat(_toConsumableArray(customTemplateItems))); +} + +/** + * Shows available templates. + * + * @return {void} + */ +function showAvailableTemplates() { + var _getState3 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + availableTemplatesCount = _getState3.availableTemplatesCount; + if (0 === availableTemplatesCount) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState)(); + return; + } + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + templatesList = _getElements5.templatesList, + templateItems = _getElements5.templateItems, + availableTemplateItems = _getElements5.availableTemplateItems; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([templatesList].concat(_toConsumableArray(availableTemplateItems))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); + +/***/ }), + +/***/ "./js/src/form-templates/utils/index.js": +/*!**********************************************!*\ + !*** ./js/src/form-templates/utils/index.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isAllTemplatesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isAllTemplatesCategory), +/* harmony export */ isCustomCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomCategory), +/* harmony export */ isCustomTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomTemplate), +/* harmony export */ isFavoriteTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoriteTemplate), +/* harmony export */ isFavoritesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoritesCategory), +/* harmony export */ isFeaturedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFeaturedTemplate), +/* harmony export */ isLockedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isLockedTemplate) +/* harmony export */ }); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validation */ "./js/src/form-templates/utils/validation.js"); + + +/***/ }), + +/***/ "./js/src/form-templates/utils/validation.js": +/*!***************************************************!*\ + !*** ./js/src/form-templates/utils/validation.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isAllTemplatesCategory: () => (/* binding */ isAllTemplatesCategory), +/* harmony export */ isCustomCategory: () => (/* binding */ isCustomCategory), +/* harmony export */ isCustomTemplate: () => (/* binding */ isCustomTemplate), +/* harmony export */ isFavoriteTemplate: () => (/* binding */ isFavoriteTemplate), +/* harmony export */ isFavoritesCategory: () => (/* binding */ isFavoritesCategory), +/* harmony export */ isFeaturedTemplate: () => (/* binding */ isFeaturedTemplate), +/* harmony export */ isLockedTemplate: () => (/* binding */ isLockedTemplate) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + +/** + * Checks if the category is "All Templates". + * + * @param {string} category The category slug. + * @return {boolean} True if the category is "All Templates", otherwise false. + */ +var isAllTemplatesCategory = function isAllTemplatesCategory(category) { + return core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === category; +}; + +/** + * Checks if the category is "Favorites". + * + * @param {string} category The category slug. + * @return {boolean} True if the category is "Favorites", otherwise false. + */ +var isFavoritesCategory = function isFavoritesCategory(category) { + return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.FAVORITES === category; +}; + +/** + * Checks if the category is "Custom". + * + * @param {string} category The category slug. + * @return {boolean} True if the category is "Custom", otherwise false. + */ +var isCustomCategory = function isCustomCategory(category) { + return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.CUSTOM === category; +}; + +/** + * Checks if a template is a favorite. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is a favorite, otherwise false. + */ +var isFavoriteTemplate = function isFavoriteTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item")) : false; +}; + +/** + * Checks if a template is custom. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is custom, otherwise false. + */ +var isCustomTemplate = function isCustomTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-custom-item")) : false; +}; + +/** + * Checks if a template is featured. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is featured, otherwise false. + */ +var isFeaturedTemplate = function isFeaturedTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? _shared__WEBPACK_IMPORTED_MODULE_2__.FEATURED_TEMPLATES_KEYS.includes(Number(template.dataset.id)) : false; +}; + +/** + * Checks if a template is locked. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is locked, otherwise false. + */ +var isLockedTemplate = function isLockedTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-locked-item")) : false; +}; + +/***/ }), + +/***/ "./node_modules/memize/index.js": +/*!**************************************!*\ + !*** ./node_modules/memize/index.js ***! + \**************************************/ +/***/ ((module) => { + +/** + * Memize options object. + * + * @typedef MemizeOptions + * + * @property {number} [maxSize] Maximum size of the cache. + */ + +/** + * Internal cache entry. + * + * @typedef MemizeCacheNode + * + * @property {?MemizeCacheNode|undefined} [prev] Previous node. + * @property {?MemizeCacheNode|undefined} [next] Next node. + * @property {Array<*>} args Function arguments for cache + * entry. + * @property {*} val Function result. + */ + +/** + * Properties of the enhanced function for controlling cache. + * + * @typedef MemizeMemoizedFunction + * + * @property {()=>void} clear Clear the cache. + */ + +/** + * Accepts a function to be memoized, and returns a new memoized function, with + * optional options. + * + * @template {Function} F + * + * @param {F} fn Function to memoize. + * @param {MemizeOptions} [options] Options object. + * + * @return {F & MemizeMemoizedFunction} Memoized function. + */ +function memize( fn, options ) { + var size = 0; + + /** @type {?MemizeCacheNode|undefined} */ + var head; + + /** @type {?MemizeCacheNode|undefined} */ + var tail; + + options = options || {}; + + function memoized( /* ...args */ ) { + var node = head, + len = arguments.length, + args, i; + + searchCache: while ( node ) { + // Perform a shallow equality test to confirm that whether the node + // under test is a candidate for the arguments passed. Two arrays + // are shallowly equal if their length matches and each entry is + // strictly equal between the two sets. Avoid abstracting to a + // function which could incur an arguments leaking deoptimization. + + // Check whether node arguments match arguments length + if ( node.args.length !== arguments.length ) { + node = node.next; + continue; + } + + // Check whether node arguments match arguments values + for ( i = 0; i < len; i++ ) { + if ( node.args[ i ] !== arguments[ i ] ) { + node = node.next; + continue searchCache; + } + } + + // At this point we can assume we've found a match + + // Surface matched node to head if not already + if ( node !== head ) { + // As tail, shift to previous. Must only shift if not also + // head, since if both head and tail, there is no previous. + if ( node === tail ) { + tail = node.prev; + } + + // Adjust siblings to point to each other. If node was tail, + // this also handles new tail's empty `next` assignment. + /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; + if ( node.next ) { + node.next.prev = node.prev; + } + + node.next = head; + node.prev = null; + /** @type {MemizeCacheNode} */ ( head ).prev = node; + head = node; + } + + // Return immediately + return node.val; + } + + // No cached value found. Continue to insertion phase: + + // Create a copy of arguments (avoid leaking deoptimization) + args = new Array( len ); + for ( i = 0; i < len; i++ ) { + args[ i ] = arguments[ i ]; + } + + node = { + args: args, + + // Generate the result from original function + val: fn.apply( null, args ), + }; + + // Don't need to check whether node is already head, since it would + // have been returned above already if it was + + // Shift existing head down list + if ( head ) { + head.prev = node; + node.next = head; + } else { + // If no head, follows that there's no tail (at initial or reset) + tail = node; + } + + // Trim tail if we're reached max size and are pending cache insertion + if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { + tail = /** @type {MemizeCacheNode} */ ( tail ).prev; + /** @type {MemizeCacheNode} */ ( tail ).next = null; + } else { + size++; + } + + head = node; + + return node.val; + } + + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + + if ( false ) {} + + // Ignore reason: There's not a clear solution to create an intersection of + // the function with additional properties, where the goal is to retain the + // function signature of the incoming argument and add control properties + // on the return value. + + // @ts-ignore + return memoized; +} + +module.exports = memize; + + +/***/ }), + +/***/ "./node_modules/sprintf-js/src/sprintf.js": +/*!************************************************!*\ + !*** ./node_modules/sprintf-js/src/sprintf.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports.sprintf = sprintf + exports.vsprintf = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line + + +/***/ }), + +/***/ "./node_modules/tannin/index.js": +/*!**************************************!*\ + !*** ./node_modules/tannin/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Tannin) +/* harmony export */ }); +/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); + + +/** + * Tannin constructor options. + * + * @typedef {Object} TanninOptions + * + * @property {string} [contextDelimiter] Joiner in string lookup with context. + * @property {Function} [onMissingKey] Callback to invoke when key missing. + */ + +/** + * Domain metadata. + * + * @typedef {Object} TanninDomainMetadata + * + * @property {string} [domain] Domain name. + * @property {string} [lang] Language code. + * @property {(string|Function)} [plural_forms] Plural forms expression or + * function evaluator. + */ + +/** + * Domain translation pair respectively representing the singular and plural + * translation. + * + * @typedef {[string,string]} TanninTranslation + */ + +/** + * Locale data domain. The key is used as reference for lookup, the value an + * array of two string entries respectively representing the singular and plural + * translation. + * + * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain + */ + +/** + * Jed-formatted locale data. + * + * @see http://messageformat.github.io/Jed/ + * + * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData + */ + +/** + * Default Tannin constructor options. + * + * @type {TanninOptions} + */ +var DEFAULT_OPTIONS = { + contextDelimiter: '\u0004', + onMissingKey: null, +}; + +/** + * Given a specific locale data's config `plural_forms` value, returns the + * expression. + * + * @example + * + * ``` + * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' + * ``` + * + * @param {string} pf Locale data plural forms. + * + * @return {string} Plural forms expression. + */ +function getPluralExpression( pf ) { + var parts, i, part; + + parts = pf.split( ';' ); + + for ( i = 0; i < parts.length; i++ ) { + part = parts[ i ].trim(); + if ( part.indexOf( 'plural=' ) === 0 ) { + return part.substr( 7 ); + } + } +} + +/** + * Tannin constructor. + * + * @class + * + * @param {TanninLocaleData} data Jed-formatted locale data. + * @param {TanninOptions} [options] Tannin options. + */ +function Tannin( data, options ) { + var key; + + /** + * Jed-formatted locale data. + * + * @name Tannin#data + * @type {TanninLocaleData} + */ + this.data = data; + + /** + * Plural forms function cache, keyed by plural forms string. + * + * @name Tannin#pluralForms + * @type {Object} + */ + this.pluralForms = {}; + + /** + * Effective options for instance, including defaults. + * + * @name Tannin#options + * @type {TanninOptions} + */ + this.options = {}; + + for ( key in DEFAULT_OPTIONS ) { + this.options[ key ] = options !== undefined && key in options + ? options[ key ] + : DEFAULT_OPTIONS[ key ]; + } +} + +/** + * Returns the plural form index for the given domain and value. + * + * @param {string} domain Domain on which to calculate plural form. + * @param {number} n Value for which plural form is to be calculated. + * + * @return {number} Plural form index. + */ +Tannin.prototype.getPluralForm = function( domain, n ) { + var getPluralForm = this.pluralForms[ domain ], + config, plural, pf; + + if ( ! getPluralForm ) { + config = this.data[ domain ][ '' ]; + + pf = ( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + if ( typeof pf !== 'function' ) { + plural = getPluralExpression( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); + } + + getPluralForm = this.pluralForms[ domain ] = pf; + } + + return getPluralForm( n ); +}; + +/** + * Translate a string. + * + * @param {string} domain Translation domain. + * @param {string|void} context Context distinguishing terms of the same name. + * @param {string} singular Primary key for translation lookup. + * @param {string=} plural Fallback value used for non-zero plural + * form index. + * @param {number=} n Value to use in calculating plural form. + * + * @return {string} Translated string. + */ +Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { + var index, key, entry; + + if ( n === undefined ) { + // Default to singular. + index = 0; + } else { + // Find index by evaluating plural form for value. + index = this.getPluralForm( domain, n ); + } + + key = singular; + + // If provided, context is prepended to key with delimiter. + if ( context ) { + key = context + this.options.contextDelimiter + singular; + } + + entry = this.data[ domain ][ key ]; + + // Verify not only that entry exists, but that the intended index is within + // range and non-empty. + if ( entry && entry[ index ] ) { + return entry[ index ]; + } + + if ( this.options.onMissingKey ) { + this.options.onMissingKey( singular, domain ); + } + + // If entry not found, fall back to singular vs. plural with zero index + // representing the singular value. + return index === 0 ? singular : plural; +}; + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) +/* harmony export */ }); +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _classCallCheck) +/* harmony export */ }); +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _iterableToArray) +/* harmony export */ }); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) +/* harmony export */ }); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _toConsumableArray) +/* harmony export */ }); +/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); +/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); + + + + +function _toConsumableArray(r) { + return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; + } +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _defineProperty) +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(e, r, t) { + return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPrimitive) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function toPrimitive(t, r) { + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPropertyKey) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function toPropertyKey(t) { + var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); + return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!****************************************!*\ + !*** ./js/src/form-templates/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeFormTemplates */ "./js/src/form-templates/initializeFormTemplates.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { + /** + * Entry point for pre-initialization adjustments to the page state. + * + * @param {Object} state Current state of the page. + */ + wp.hooks.doAction('frmFormTemplates.beforeInitialize', { + getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, + setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState + }); + + // Initialize the form templates + (0,_initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__["default"])(); + + /** + * Entry point for post-initialization custom logic or adjustments to the page state. + * + * @param {Object} state Current state of the page. + */ + wp.hooks.doAction('frmFormTemplates.afterInitialize', { + getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, + setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState + }); + + /** + * Trigger a specific action to interact with the hidden form '#frm-new-template', + * which is used for creating or using a form template. + * + * @param {HTMLElement} $form The jQuery object containing the hidden form element. + */ + wp.hooks.doAction('frm_new_form_modal_form', jQuery('#frm-new-template')); +}); +})(); + +/******/ })() +; +//# sourceMappingURL=form-templates.js.map \ No newline at end of file diff --git a/js/form-templates.js.map b/js/form-templates.js.map index df0cd1ff9c..753b768f68 100644 --- a/js/form-templates.js.map +++ b/js/form-templates.js.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"version":3,"file":"form-templates.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,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;AC5CA;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,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+DAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,+DAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,+DAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+DAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AA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AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEof,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC5b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAC,CAAC;;EAEF;EACA+T,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACClQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAC,CAAC;;EAEF;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEub,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAC,CAAC,C","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/dom-ready/build-module/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/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.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/form-templates/index.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 * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = ( propertyName ) => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = ( newState ) => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( ( category ) => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = ( event ) => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\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","// 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","export const { onClickPreventDefault } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${PLUGIN_URL}/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {HTMLElement|null} The application templates element or null if no applications are provided.\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div({\n\t\tid: `${PREFIX}-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t}),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${PREFIX}-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t})\n\t\t]\n\t});\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\tconst thumbnailURL = hasLiteThumbnail ?\n\t\t( isWebp ? `${thumbnailBaseURL}/${key}.webp` : `${thumbnailBaseURL}/${key}.png` ) :\n\t\t`${thumbnailBaseURL}/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${applicationsUrl}&triggerViewApplicationModal=1&template=${key}`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv({\n\t\t\t\tclassName: `${PREFIX}-item-icon`,\n\t\t\t\tchild: img({ src: thumbnailURL })\n\t\t\t}),\n\t\t\tdiv({\n\t\t\t\tclassName: `${PREFIX}-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan({\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t}),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t}),\n\t\t\t\t\ta({\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t})\n\t\t]\n\t});\n};\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements({\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${PREFIX}-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t});\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${PREFIX}-list` );\nconst customTemplatesSection = document.getElementById( `${PREFIX}-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${SKELETON_PREFIX}-cat[data-category=\"${VIEW_SLUGS.FAVORITES}\"]`\n);\nconst modal = document.getElementById( `${PREFIX}-modal` );\n\naddElements({\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${PREFIX}-create-form` ),\n\tpageTitle: document.getElementById( `${PREFIX}-page-title` ),\n\tpageTitleText: document.getElementById( `${PREFIX}-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${PREFIX}-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${PREFIX}-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${PREFIX}-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${PREFIX}-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${PREFIX}-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${PREFIX}-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${PREFIX}-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${PREFIX}-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${SKELETON_PREFIX}-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${SKELETON_PREFIX}-cat[data-category=\"${VIEW_SLUGS.AVAILABLE_TEMPLATES}\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${PREFIX}-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n});\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t});\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = ( event ) => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n*/\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @param {Event} event The change event object.\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[formsSelect.selectedIndex];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${__( 'Template', 'formidable' )}`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = ( shouldDisable ) => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t});\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${PREFIX}-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${FAVORITE_BUTTON_CLASS} use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = ( event ) => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${PREFIX}-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${PREFIX}-list` ) ?\n\t\t\tfeaturedTemplatesList :\n\t\t\ttemplatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${templateId}\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${PREFIX}-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default;\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default;\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise}\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t});\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult({ foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true })\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${PREFIX}-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = ( event ) => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState({\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n});\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ]) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t});\n\t});\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', ( options ) => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t});\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${SKELETON_PREFIX}-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements([ pageTitle, templatesList, applicationTemplates ]);\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n};\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements([ templatesList, applicationTemplates, applicationTemplatesTitle ]);\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements([ templatesList, applicationTemplatesTitle ]);\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${SKELETON_PREFIX}-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements([ pageTitle, applicationTemplates ]);\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements([ pageTitle, applicationTemplates ]);\n\tshowElements([ emptyState, emptyStateButton ]);\n};\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements([ pageTitle, emptyStateButton ]);\n\tshow( emptyState );\n};\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements([ emptyState, emptyStateButton ]);\n};\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements([ pageTitle, emptyStateButton ]);\n\tshow( emptyState );\n};\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[plan].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t});\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${template.dataset.slug}` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n});\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n});\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n});\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements([ templatesList, ...categorizedTemplates[ selectedCategory ] ]);\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements([ ...bodyContentChildren, ...templateItems ]);\n\thideElements([ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ]);\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${PREFIX}-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements([ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ]);\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements([ templatesList, ...availableTemplateItems ]);\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${PREFIX}-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${PREFIX}-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${PREFIX}-locked-item` ) : false;\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t});\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t});\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {jQuery} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n});\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","util","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} -======= -{"version":3,"file":"form-templates.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,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;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AAG,KAAK;AAAA;;;;;;;;;;ACrE7F;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEsf,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC9b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;EACAiU,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACCpQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEyb,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAE,CAAC,C","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/dom-ready/build-module/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/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.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/form-templates/index.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 * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = propertyName => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = newState => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( category => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = event => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${ PLUGIN_URL }/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {void}\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div( {\n\t\tid: `${ PREFIX }-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t} ),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${ PREFIX }-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\t// eslint-disable-next-line no-nested-ternary\n\tconst thumbnailURL = hasLiteThumbnail\n\t\t? ( isWebp ? `${ thumbnailBaseURL }/${ key }.webp` : `${ thumbnailBaseURL }/${ key }.png` )\n\t\t: `${ thumbnailBaseURL }/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${ applicationsUrl }&triggerViewApplicationModal=1&template=${ key }`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-icon`,\n\t\t\t\tchild: img( { src: thumbnailURL } )\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan( {\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t} ),\n\t\t\t\t\ta( {\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t} )\n\t\t\t\t]\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements( {\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${ PREFIX }-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${ PREFIX }-list` );\nconst customTemplatesSection = document.getElementById( `${ PREFIX }-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.FAVORITES }\"]`\n);\nconst modal = document.getElementById( `${ PREFIX }-modal` );\n\naddElements( {\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${ PREFIX }-create-form` ),\n\tpageTitle: document.getElementById( `${ PREFIX }-page-title` ),\n\tpageTitleText: document.getElementById( `${ PREFIX }-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${ PREFIX }-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${ PREFIX }-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${ PREFIX }-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${ PREFIX }-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${ PREFIX }-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${ PREFIX }-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${ PREFIX }-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${ PREFIX }-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.AVAILABLE_TEMPLATES }\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${ PREFIX }-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n} );\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t} );\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = event => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[ formsSelect.selectedIndex ];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${ __( 'Template', 'formidable' ) }`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = shouldDisable => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t} );\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${ PREFIX }-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${ FAVORITE_BUTTON_CLASS } use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = event => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${ PREFIX }-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${ PREFIX }-list` )\n\t\t\t? featuredTemplatesList\n\t\t\t: templatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${ templateId }\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${ PREFIX }-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise} The result of the server-side update.\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t} );\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult( { foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true } )\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${ PREFIX }-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = event => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState( {\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n} );\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ] ) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t} );\n\t} );\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', options => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t} );\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${ SKELETON_PREFIX }-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements( [ pageTitle, templatesList, applicationTemplates ] );\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n}\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements( [ templatesList, applicationTemplates, applicationTemplatesTitle ] );\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements( [ templatesList, applicationTemplatesTitle ] );\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${ SKELETON_PREFIX }-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements( [ pageTitle, applicationTemplates ] );\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements( [ pageTitle, applicationTemplates ] );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t// translators: %s is the number of extra templates available\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async ( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[ plan ].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t} );\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${ template.dataset.slug }` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n} );\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n} );\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements( [ templatesList, ...categorizedTemplates[ selectedCategory ] ] );\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements( [ ...bodyContentChildren, ...templateItems ] );\n\thideElements( [ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ] );\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${ PREFIX }-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements( [ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ] );\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements( [ templatesList, ...availableTemplateItems ] );\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-locked-item` ) : false;\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {HTMLElement} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n} );\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","_window$frmDom$util","util","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} ->>>>>>> master +{"version":3,"file":"form-templates.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,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;;ACzBwE;;AAExE,2CAA2C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,iEAAiE,GAAG,kCAAkC;;AAEvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,qFAAe,6BAA6B,KAAK,6CAA6C,6EAA6E,OAAO,iDAAiD,mFAAmF,OAAO;;AAEtgB;AACA;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;AACnC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;;;AAG5B;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA,sEAAsE,qDAAqD;AAC3H;;AAEA,4DAA4D;AAC5D;AACA,aAAa,eAAe;;;AAG5B;AACA;AACA;AACA;AACA,aAAa,iBAAiB;;;AAG9B;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,aAAa,kBAAkB;AAC/B,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;;;AAG9B;AACA;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,KAAK;;;AAGlB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,OAAO;;;AAGpB;AACA;AACA;AACA,aAAa,gBAAgB;;;AAG7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,kBAAkB,UAAU;;AAE5B,iBAAiB,GAAG;AACpB;AACA;AACA,kBAAkB,UAAU;;AAE5B,iBAAiB,GAAG;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1cA;AACA;AACA;AAC2C;AAC3C;AACA;AACA;;AAEgD;AAChD,WAAW,wDAAU,uBAAuB,0DAAY;AACxD;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;AACpB;AACA;AACA;AACA;;AAEA;AACA,aAAa,oCAAoC;AACjD,aAAa,2CAA2C;AACxD,aAAa,6CAA6C;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,YAAY;AACxB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;;AAEO;AACP;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,YAAY,qBAAqB;AACjC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;;AAEO;AACP;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;;AAEO;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJoC;AACN;AAC4H;AAC1J;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AAC6B;AACM;AACnC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,WAAW,MAAM;AACjB;;AAEA,mBAAmB,6CAAO,iBAAiB;;AAE3C;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA,2FAA2F,aAAa;AACxG;AACA;;AAEA,WAAW,yDAAiB,OAAO,mDAAS;AAC5C,IAAI;AACJ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACvCO,IAAAA,iBAAA,GAAmCC,MAAM,CAACC,SAAS;EAAtCC,UAAU,GAAAH,iBAAA,CAAfI,GAAG;EAAcC,KAAK,GAAAL,iBAAA,CAALK,KAAK;AAAsB;AACpD,IAAMC,YAAY,GAAG,YAAY;AACjC,IAAMC,cAAc,GAAG,cAAc;AACrC,IAAMC,aAAa,GAAG,aAAa;AACnC,IAAMC,aAAa,GAAG,aAAa;AACnC,IAAMC,aAAa,GAAG,aAAa;AACnC,IAAMC,qBAAqB,GAAG,qBAAqB;AAEnD,IAAMC,KAAK,GAAG;EACpBC,mBAAmB,EAAE;AACtB,CAAC;;;;;;;;;;;;;;;;;;;;;ACVD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAA,EAAyB;EAAA,IAAvBC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvD,IAAKG,OAAA,CAAOJ,eAAe,MAAK,QAAQ,IAAIA,eAAe,KAAK,IAAI,EAAG;IACtE,MAAM,IAAIK,KAAK,CACd,+DACD,CAAC;EACF;EAEA,IAAIC,QAAQ,GAAGN,eAAe;;EAE9B;AACD;AACA;AACA;AACA;EACC,SAASO,WAAWA,CAAA,EAAG;IACtB,OAAOD,QAAQ;EAChB;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACC,SAASE,WAAWA,CAAEC,WAAW,EAAG;IACnC,IAAKL,OAAA,CAAOK,WAAW,MAAK,QAAQ,IAAIA,WAAW,KAAK,IAAI,EAAG;MAC9D,MAAM,IAAIJ,KAAK,CACd,oDACD,CAAC;IACF;IAEAC,QAAQ,GAAAI,aAAA,CAAAA,aAAA,KAAQJ,QAAQ,GAAKG,WAAW,CAAE;EAC3C;EAEA,OAAO;IAAEF,WAAW,EAAXA,WAAW;IAAEC,WAAW,EAAXA;EAAY,CAAC;AACpC;;;;;;;;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,eAAeA,CAAA,EAAsB;EAAA,IAApBC,YAAY,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjD,IAAKG,OAAA,CAAOQ,YAAY,MAAK,QAAQ,IAAIA,YAAY,KAAK,IAAI,EAAG;IAChE,MAAM,IAAIP,KAAK,CACd,yDACD,CAAC;EACF;EAEA,IAAIQ,KAAK,GAAGD,YAAY;;EAExB;AACD;AACA;AACA;AACA;EACC,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAA;IAAA,OAASD,KAAK;EAAA;;EAE5B;AACD;AACA;AACA;AACA;AACA;EACC,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,YAAY,EAAI;IACtC,IAAMC,KAAK,GAAGC,OAAO,CAACC,GAAG,CAAEN,KAAK,EAAEG,YAAa,CAAC;;IAEhD;IACA;IACA,OAAOC,KAAK,KAAKd,SAAS,GAAG,IAAI,GAAGc,KAAK;EAC1C,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACC,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,QAAQ,EAAI;IAC5B,IAAKjB,OAAA,CAAOiB,QAAQ,MAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAG;MACxD,MAAM,IAAIhB,KAAK,CAAE,8CAA+C,CAAC;IAClE;IAEAQ,KAAK,GAAAH,aAAA,CAAAA,aAAA,KAAQG,KAAK,GAAKQ,QAAQ,CAAE;EAClC,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACC,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAKN,YAAY,EAAEC,KAAK,EAAM;IACjD,IAAKC,OAAO,CAACK,GAAG,CAAEV,KAAK,EAAEG,YAAa,CAAC,EAAG;MACzCE,OAAO,CAACM,GAAG,CAAEX,KAAK,EAAEG,YAAY,EAAEC,KAAM,CAAC;IAC1C;EACD,CAAC;EAED,OAAO;IAAEH,QAAQ,EAARA,QAAQ;IAAEC,cAAc,EAAdA,cAAc;IAAEK,QAAQ,EAARA,QAAQ;IAAEE,cAAc,EAAdA;EAAe,CAAC;AAC9D;;;;;;;;;;;;;;;;;;AClEqC;;;;;;;;;;;;;;;;;;ACA9B,IAAMG,MAAM,GAAG,mBAAmB;AAClC,IAAMC,kBAAkB,GAAG,eAAe;AAC1C,IAAMC,KAAK,GAAG;EACpBC,SAAS,EAAE;AACZ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACkD;;AAElD;AACA;AACA;AAC6C;AAIhB;AAE7B,IAAMG,WAAW,GAAGC,QAAQ,CAACC,cAAc,CAAE,mBAAoB,CAAC;AAClE,IAAMC,OAAO,GAAGF,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,8CAAM,aAAY,CAAC;;AAEhE;AACA,IAAMW,UAAU,GAAGP,2EAAuB,CAAC,CAAC;AAC5CE,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEM,WAAW,CAAED,UAAW,CAAC;AACtC,IAAME,kBAAkB,GAAGR,yEAAqB,CAAC,CAAC;AAE3C,IAAAS,mBAAA,GAAqCxC,gEAAkB,CAAAW,aAAA;IAC7DqB,WAAW,EAAXA,WAAW;IAEX;IACAG,OAAO,EAAPA,OAAO;IACPM,WAAW,EAAEN,OAAO,CAACO,aAAa,CAAE,mBAAoB,CAAC;IACzDC,aAAa,EAAER,OAAO,CAACS,gBAAgB,KAAAR,MAAA,CAAOV,8CAAM,SAAQ,CAAC;IAC7DmB,gBAAgB,EAAEV,OAAO,CAACO,aAAa,KAAAN,MAAA,CACjCV,8CAAM,2BAAAU,MAAA,CAAyBR,6CAAK,CAACC,SAAS,QACpD;EAAC,GAGEU,kBAAkB,CACpB,CAAC;EAbY/B,WAAW,GAAAgC,mBAAA,CAAXhC,WAAW;EAAEC,WAAW,GAAA+B,mBAAA,CAAX/B,WAAW;;;;;;;;;;;;;;;;;;;;ACtBvC;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC0D;;AAE1D;AACA;AACA;AACsC;AAEtC,IAAAsC,cAAA,GAA6B5D,MAAM,CAAC6D,MAAM;EAAlCC,GAAG,GAAAF,cAAA,CAAHE,GAAG;EAAEC,GAAG,GAAAH,cAAA,CAAHG,GAAG;EAAEC,CAAC,GAAAJ,cAAA,CAADI,CAAC;EAAEC,GAAG,GAAAL,cAAA,CAAHK,GAAG;;AAExB;AACA;AACA;AACA;AACA;AACO,SAAStB,uBAAuBA,CAAA,EAAG;EACzC,IAAMuB,MAAM,GAAGF,CAAC,CAAE;IACjBG,SAAS,EAAE;EACZ,CAAE,CAAC;EACHD,MAAM,CAACE,YAAY,CAAE,MAAM,EAAE,QAAS,CAAC;EAEvC,OAAOL,GAAG,CAAE;IACXM,EAAE,KAAApB,MAAA,CAAMV,8CAAM,iBAAe;IAC7B4B,SAAS,6CAAAlB,MAAA,CAA8C5C,wDAAY,CAAG;IACtEiE,QAAQ,EAAE,CACTL,GAAG,CAAE;MACJM,GAAG,KAAAtB,MAAA,CAAM/C,sDAAU,0CAAwC;MAC3DsE,GAAG,EAAEb,mDAAE,CAAE,aAAa,EAAE,YAAa;IACtC,CAAE,CAAC,EACHI,GAAG,CAAE;MACJI,SAAS,EAAE,WAAW;MACtBG,QAAQ,EAAE,CACTR,GAAG,CAAE,IAAI,EAAE;QACVK,SAAS,KAAAlB,MAAA,CAAMV,8CAAM;MACtB,CAAE,CAAC,EACHuB,GAAG,CAAE,GAAG,EAAE;QACTK,SAAS,KAAAlB,MAAA,CAAMV,8CAAM;MACtB,CAAE,CAAC;IAEL,CAAE,CAAC,EACH2B,MAAM;EAER,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAStB,qBAAqBA,CAAA,EAAG;EACvC,IAAMM,UAAU,GAAGJ,QAAQ,CAACS,aAAa,KAAAN,MAAA,CAAOV,8CAAM,iBAAgB,CAAC;EAEvE,OAAO;IACNW,UAAU,EAAVA,UAAU;IACVuB,eAAe,EAAEvB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,aAAa,KAAAN,MAAA,CAAOV,8CAAM,WAAU,CAAC;IAClEmC,cAAc,EAAExB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,aAAa,KAAAN,MAAA,CAAOV,8CAAM,UAAS,CAAC;IAChEoC,gBAAgB,EAAEzB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,aAAa,CAAE,SAAU;EACxD,CAAC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AElEA;AACA;AACA;AAC+C;AACgB;;AAE/D;AACA;AACA;AAC0C;AACK;AACV;;AAErC;AACA;AACA;AACA;AACA;AACO,SAASwB,iBAAiBA,CAAA,EAAG;EACnC,IAAAC,YAAA,GAA0B3D,sDAAW,CAAC,CAAC;IAA/BmC,aAAa,GAAAwB,YAAA,CAAbxB,aAAa;;EAErB;EACAA,aAAa,CAACyB,OAAO,CAAE,UAAAC,QAAQ,EAAI;IAClCN,iEAAqB,CAAEM,QAAQ,EAAEC,eAAgB,CAAC;IAClDD,QAAQ,CAACE,gBAAgB,CAAE,SAAS,EAAEC,iBAAkB,CAAC;EAC1D,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMF,eAAe,GAAG,SAAlBA,eAAeA,CAAGG,KAAK,EAAI;EAChC,IAAMC,eAAe,GAAGD,KAAK,CAACE,aAAa;EAC3C,IAAMC,mBAAmB,GAAGF,eAAe,CAACG,YAAY,CAAE,eAAgB,CAAC;EAC3E,IAAAC,SAAA,GACC/D,iDAAQ,CAAC,CAAC;IADLgE,gBAAgB,GAAAD,SAAA,CAAhBC,gBAAgB;IAAEC,kBAAkB,GAAAF,SAAA,CAAlBE,kBAAkB;IAAEC,kBAAkB,GAAAH,SAAA,CAAlBG,kBAAkB;;EAG9D;EACA,IAAKF,gBAAgB,KAAKH,mBAAmB,EAAG;IAC/C;EACD;;EAEA;AACD;AACA;AACA;AACA;EACCG,gBAAgB,GAAGG,EAAE,CAACC,KAAK,CAACC,YAAY,CACvC,0BAA0B,EAC1BR,mBACD,CAAC;;EAED;EACAI,kBAAkB,CAACK,SAAS,CAACC,MAAM,CAAE3F,yDAAc,CAAC;EACpDqF,kBAAkB,GAAGN,eAAe;EACpCM,kBAAkB,CAACK,SAAS,CAACE,GAAG,CAAE5F,yDAAc,CAAC;EACjD0B,iDAAQ,CAAE;IAAE0D,gBAAgB,EAAhBA,gBAAgB;IAAEC,kBAAkB,EAAlBA;EAAmB,CAAE,CAAC;;EAEpD;EACA,IAAKC,kBAAkB,EAAG;IACzBhB,mDAAgB,CAAC,CAAC;EACnB;;EAEA;AACD;AACA;AACA;AACA;EACCiB,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAET,gBAAiB,CAAC;;EAEhE;EACA,IAAAU,aAAA,GAAwBjF,sDAAW,CAAC,CAAC;IAA7BwB,WAAW,GAAAyD,aAAA,CAAXzD,WAAW;EACnB,IAAIgC,kDAAU,CAAEhC,WAAY,CAAC,CAAC0D,MAAM,CAAC,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,SAASlB,iBAAiBA,CAAEC,KAAK,EAAG;EACnC;EACA,IAAKA,KAAK,CAACkB,GAAG,KAAK,OAAO,IAAIlB,KAAK,CAACkB,GAAG,KAAK,GAAG,EAAG;IACjDlB,KAAK,CAACmB,cAAc,CAAC,CAAC;IACtBtB,eAAe,CAAEG,KAAM,CAAC;EACzB;AACD;;;;;;;;;;;;;;;;;;AC1FA;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACO,SAASR,gBAAgBA,CAAA,EAAG;EAClC,IAAAE,YAAA,GAAwB3D,sDAAW,CAAC,CAAC;IAA7BiC,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;EAEnBA,WAAW,CAACvB,KAAK,GAAG,EAAE;EACtBuB,WAAW,CAACoD,aAAa,CAAE,IAAIC,KAAK,CAAE,OAAO,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAE,CAAE,CAAC;AACrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf4B;AACD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEFzB;AACA;AACA;AAC+C;;AAE/C;AACA;AACA;AAC0C;AACL;AAErC,IAAA5B,YAAA,GAA6B3D,sDAAW,CAAC,CAAC;EAAlCqC,gBAAgB,GAAAsB,YAAA,CAAhBtB,gBAAgB;AAEjB,IAAAmD,gBAAA,GACNpF,6DAAe,CAAE;IAChBqE,kBAAkB,EAAE,KAAK;IACzBF,gBAAgB,EAAEnD,6CAAK,CAACC,SAAS;IACjCmD,kBAAkB,EAAEnC;EACrB,CAAE,CAAC;EALW9B,QAAQ,GAAAiF,gBAAA,CAARjF,QAAQ;EAAEC,cAAc,GAAAgF,gBAAA,CAAdhF,cAAc;EAAEK,QAAQ,GAAA2E,gBAAA,CAAR3E,QAAQ;EAAEE,cAAc,GAAAyE,gBAAA,CAAdzE,cAAc;;;;;;;;;;;;;;;;;;;;;;ACb1D,IAAMyC,UAAU;EACtB;AACD;AACA;AACA;AACA;AACA;EACC,SAAAA,WAAazD,QAAQ,EAAqB;IAAA,IAAnB0F,IAAI,GAAA/F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;IAAAgG,eAAA,OAAAlC,UAAA;IACtC,IAAI,CAACzD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC0F,IAAI,GAAGA,IAAI;IAEhB,IAAI,CAACE,eAAe,CAAC,CAAC;EACvB;;EAEA;AACD;AACA;AACA;AACA;EAJC,OAAAC,YAAA,CAAApC,UAAA;IAAA2B,GAAA;IAAAzE,KAAA,EAKA,SAAAwE,MAAMA,CAAA,EAAG;MAAA,IAAAW,KAAA;MACR,IAAI,CAACC,oBAAoB,CAAE,UAAAC,OAAO,EAAI;QACrCA,OAAO,CAAClB,SAAS,CAACE,GAAG,CAAE,eAAgB,CAAC;QAExCgB,OAAO,CAAChC,gBAAgB,CAAE,cAAc,EAAE,YAAM;UAC/C8B,KAAI,CAACG,YAAY,CAAC,CAAC;UACnBD,OAAO,CAAClB,SAAS,CAACC,MAAM,CAAE,eAAgB,CAAC;QAC5C,CAAC,EAAE;UAAEmB,IAAI,EAAE;QAAK,CAAE,CAAC;MACpB,CAAE,CAAC;IACJ;;IAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EAPC;IAAAd,GAAA;IAAAzE,KAAA,EAQA,SAAAwF,aAAaA,CAAA,EAAiB;MAAA,IAAAC,MAAA;MAAA,IAAfC,KAAK,GAAA1G,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAC1B2G,UAAU,CAAE,YAAM;QACjBF,MAAI,CAACL,oBAAoB,CAAE,UAAEC,OAAO,EAAEO,KAAK,EAAM;UAChDP,OAAO,CAAClB,SAAS,CAACC,MAAM,CAAE,aAAc,CAAC;UACzCiB,OAAO,CAACQ,KAAK,CAACC,eAAe,GAAK,CAAEF,KAAK,GAAG,CAAC,IAAKF,KAAK,GAAK,GAAG;QAChE,CAAE,CAAC;MACJ,CAAC,EAAE,GAAI,CAAC;IACT;EAAC;IAAAjB,GAAA;IAAAzE,KAAA,EAED,SAAAiF,eAAeA,CAAA,EAAG;MAAA,IAAAc,MAAA;MACjB,IAAI,CAACX,oBAAoB,CAAE,UAAAC,OAAO,EAAI;QACrC,IAAK,SAAS,KAAKU,MAAI,CAAChB,IAAI,EAAG;UAC9BM,OAAO,CAACQ,KAAK,CAACG,OAAO,GAAG,KAAK;QAC9B;QACA,IAAK,SAAS,KAAKD,MAAI,CAAChB,IAAI,EAAG;UAC9BM,OAAO,CAAClB,SAAS,CAACE,GAAG,CAAE,4BAA6B,CAAC;QACtD;QACA,IAAK,YAAY,KAAK0B,MAAI,CAAChB,IAAI,EAAG;UACjCM,OAAO,CAAClB,SAAS,CAACE,GAAG,CAAE,oBAAqB,CAAC;QAC9C;QACAgB,OAAO,CAAClB,SAAS,CAACE,GAAG,CAAE,aAAc,CAAC;MACvC,CAAE,CAAC;IACJ;EAAC;IAAAI,GAAA;IAAAzE,KAAA,EAED,SAAAsF,YAAYA,CAAA,EAAG;MACd,IAAI,CAACF,oBAAoB,CAAE,UAAAC,OAAO;QAAA,OAAIA,OAAO,CAACQ,KAAK,CAACG,OAAO,GAAG,KAAK;MAAA,CAAC,CAAC;IACtE;EAAC;IAAAvB,GAAA;IAAAzE,KAAA,EAED,SAAAoF,oBAAoBA,CAAEa,QAAQ,EAAG;MAChC,IAAK,IAAI,CAAC5G,QAAQ,YAAY6G,OAAO,EAAG;QACvCD,QAAQ,CAAE,IAAI,CAAC5G,QAAQ,EAAE,CAAE,CAAC;QAC5B;MACD;MACA,IAAK,CAAC,GAAG,IAAI,CAACA,QAAQ,CAACJ,MAAM,EAAG;QAC/B,IAAI,CAACI,QAAQ,CAAC6D,OAAO,CAAE,UAAEmC,OAAO,EAAEO,KAAK;UAAA,OAAMK,QAAQ,CAAEZ,OAAO,EAAEO,KAAM,CAAC;QAAA,CAAC,CAAC;MAC1E;IACD;EAAC;AAAA;;;;;;;;;;;;;;;AC1EF;AACA,IAAIO,WAAW,GAAGC,OAAO,CAACC,OAAO,CAAC,CAAC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,IAAI;EAAA,OAAIJ,WAAW,GAAGA,WAAW,CAACK,IAAI,CAAED,IAAK,CAAC,CAACE,KAAK,CAAEF,IAAK,CAAC;AAAA;;;;;;;;;;;;;;;;ACT7F;AACA;AACA;AAC+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,CAAKC,OAAO,EAAEC,OAAO,EAAE/B,IAAI,EAAEgC,OAAO,EAAM;EACnE,IAAMC,YAAY,GAAGjG,QAAQ,CAACS,aAAa,CAAEqF,OAAQ,CAAC;EACtD,IAAMI,YAAY,GAAGlG,QAAQ,CAACS,aAAa,CAAEsF,OAAQ,CAAC;EAEtD,IAAK,CAAEE,YAAY,IAAI,CAAEC,YAAY,EAAG;IACvCC,OAAO,CAACC,IAAI,CAAE,uDAAwD,CAAC;IACvE;EACD;;EAEA;EACA,IAAKJ,OAAO,EAAG;IACd,IAAMK,IAAI,GAAGH,YAAY,CAACzF,aAAa,qBAAAN,MAAA,CAAsB6D,IAAI,QAAM,CAAC;IACxE,IAAKqC,IAAI,EAAG;MACXA,IAAI,CAACC,WAAW,GAAGN,OAAO;IAC3B;EACD;;EAEA;EACAE,YAAY,CAAC5E,YAAY,CAAE,WAAW,EAAE0C,IAAK,CAAC;EAC9C4B,uCAAI,CAAEM,YAAa,CAAC;;EAEpB;EACAD,YAAY,CAAC3D,gBAAgB,CAAE,OAAO,EAAE,YAAM;IAC7CqD,uCAAI,CAAEO,YAAa,CAAC;EACrB,CAAC,EAAE;IAAE1B,IAAI,EAAE;EAAK,CAAE,CAAC;AACpB,CAAC;;;;;;;;;;;;;;;;ACvCM,IAAA+B,mBAAA,GAA8CrJ,MAAM,CAAC6D,MAAM,CAACyF,IAAI;EAAxD1E,qBAAqB,GAAAyE,mBAAA,CAArBzE,qBAAqB;EAAE2E,UAAU,GAAAF,mBAAA,CAAVE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AACJ;AACA;AACA;AACF;AACO;;;;;;;;;;;;;;;;;;;;;;;ACL7B;AACA;AACA;AACA,IAAMpJ,GAAG,GAAG,IAAIqJ,GAAG,CAAExJ,MAAM,CAACyJ,QAAQ,CAACC,IAAK,CAAC;AAC3C,IAAMC,SAAS,GAAGxJ,GAAG,CAACyJ,YAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,SAAS;EAAA,OAAIH,SAAS,CAAC1H,GAAG,CAAE6H,SAAU,CAAC;AAAA;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGD,SAAS,EAAI;EAC5CH,SAAS,CAACK,MAAM,CAAEF,SAAU,CAAC;EAC7B3J,GAAG,CAAC8J,MAAM,GAAGN,SAAS,CAACO,QAAQ,CAAC,CAAC;EACjC,OAAO/J,GAAG,CAAC+J,QAAQ,CAAC,CAAC;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAKL,SAAS,EAAEM,UAAU,EAAkC;EAAA,IAAhCC,YAAY,GAAAtJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,WAAW;EAC/E4I,SAAS,CAACrH,GAAG,CAAEwH,SAAS,EAAEM,UAAW,CAAC;EACtCjK,GAAG,CAAC8J,MAAM,GAAGN,SAAS,CAACO,QAAQ,CAAC,CAAC;EAEjC,IAAK,CAAE,WAAW,EAAE,cAAc,CAAE,CAACI,QAAQ,CAAED,YAAa,CAAC,EAAG;IAC/D,IAAM1I,KAAK,GAAA4I,eAAA,KAAOT,SAAS,EAAIM,UAAU,CAAE;IAC3CpK,MAAM,CAACwK,OAAO,CAAEH,YAAY,CAAE,CAAE1I,KAAK,EAAE,EAAE,EAAExB,GAAI,CAAC;EACjD;EAEA,OAAOA,GAAG,CAAC+J,QAAQ,CAAC,CAAC;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,IAAMO,aAAa,GAAG,SAAhBA,aAAaA,CAAGX,SAAS;EAAA,OAAIH,SAAS,CAACtH,GAAG,CAAEyH,SAAU,CAAC;AAAA;;;;;;;;;;;;;;;;;ACpDpE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMY,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK;EAAA,OAChC,OAAOA,KAAK,KAAK,QAAQ,GAAG,yJAAyJ,CAACC,IAAI,CAAED,KAAM,CAAC,GAAG,KAAK;AAAA;;AAE5M;AACA;AACA;AACA;AACA;AACA;AACO,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAGzD,OAAO;EAAA,OAAIA,OAAO,YAAY0D,WAAW,IAAI7B,OAAO,CAACC,IAAI,CAAE,8DAA+D,CAAC,IAAI,KAAK;AAAA;;AAEjK;AACA;AACA;AACA;AACA;AACA;AACO,IAAM6B,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,GAAG;EAAA,OAAIC,MAAM,CAACC,IAAI,CAAEF,GAAI,CAAC,CAAChK,MAAM,KAAK,CAAC,IAAIgK,GAAG,CAACG,WAAW,KAAKF,MAAM;AAAA;;;;;;;;;;;;;;;;;;;;ACvBjG;AACA;AACA;AAC8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACO,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAGhK,QAAQ;EAAA,IAAAiK,WAAA;EAAA,QAAAA,WAAA,GACnCC,KAAK,CAACC,IAAI,CAAEnK,QAAS,CAAC,cAAAiK,WAAA,uBAAtBA,WAAA,CAAwBpG,OAAO,CAAE,UAAAmC,OAAO;IAAA,OAAIsB,IAAI,CAAEtB,OAAQ,CAAC;EAAA,CAAC,CAAC;AAAA;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACO,IAAMoE,YAAY,GAAG,SAAfA,YAAYA,CAAGpK,QAAQ;EAAA,IAAAqK,YAAA;EAAA,QAAAA,YAAA,GACnCH,KAAK,CAACC,IAAI,CAAEnK,QAAS,CAAC,cAAAqK,YAAA,uBAAtBA,YAAA,CAAwBxG,OAAO,CAAE,UAAAmC,OAAO;IAAA,OAAIqB,IAAI,CAAErB,OAAQ,CAAC;EAAA,CAAC,CAAC;AAAA;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACO,IAAMsB,IAAI,GAAG,SAAPA,IAAIA,CAAGtB,OAAO;EAAA,OAAIA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAElB,SAAS,CAACC,MAAM,CAAE9F,wDAAa,CAAC;AAAA;;AAExE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMoI,IAAI,GAAG,SAAPA,IAAIA,CAAGrB,OAAO;EAAA,OAAIA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAElB,SAAS,CAACE,GAAG,CAAE/F,wDAAa,CAAC;AAAA;;AAErE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMqL,SAAS,GAAG,SAAZA,SAASA,CAAGtE,OAAO,EAAI;EACnC,IAAMuE,MAAM,GAAG3L,MAAM,CAAC4L,gBAAgB,CAAExE,OAAQ,CAAC;EACjD,OAAOuE,MAAM,CAACE,gBAAgB,CAAE,SAAU,CAAC,KAAK,MAAM;AACvD,CAAC;;;;;;;;;;;;;;;;;;;;;AChDD;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC0D;AACK;;AAE/D;AACA;AACA;AACoD;AACE;AAEtD,IAAAjI,cAAA,GAAmC5D,MAAM,CAAC6D,MAAM;EAAxCC,GAAG,GAAAF,cAAA,CAAHE,GAAG;EAAEC,GAAG,GAAAH,cAAA,CAAHG,GAAG;EAAEoF,IAAI,GAAAvF,cAAA,CAAJuF,IAAI;EAAEnF,CAAC,GAAAJ,cAAA,CAADI,CAAC;EAAEC,GAAG,GAAAL,cAAA,CAAHK,GAAG;;AAE9B;AACA,IAAI+H,oBAAoB;;AAExB;AACA,IAAMC,gBAAgB,MAAAhJ,MAAA,CAAO/C,sDAAU,oCAAkC;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACO,SAASgM,0BAA0BA,CAAEC,YAAY,EAAG;EAC1D,IAAK,CAAEA,YAAY,IAAI,CAAEA,YAAY,CAACnL,MAAM,EAAG;IAC9C;EACD;EAEA,IAAMoL,aAAa,GAAGD,YAAY,CAACE,GAAG,CAAE,UAAAC,QAAQ;IAAA,OAAIC,kBAAkB,CAAED,QAAS,CAAC;EAAA,CAAC,CAAC;EAEpFN,oBAAoB,GAAGjI,GAAG,CAAE;IAC3BM,EAAE,KAAApB,MAAA,CAAMV,2CAAM,kBAAgB;IAC9B4B,SAAS,EAAE9D,wDAAY;IACvBiE,QAAQ,EAAE,CACTR,GAAG,CAAE,IAAI,EAAE;MACV0I,IAAI,EAAE7I,mDAAE,CAAE,uBAAwB,CAAC;MACnCQ,SAAS,EAAE;IACZ,CAAE,CAAC,EACHL,GAAG,CAAE,IAAI,EAAE;MACVK,SAAS,KAAAlB,MAAA,CAAMV,2CAAM,+BAA6B;MAClD+B,QAAQ,EAAE8H;IACX,CAAE,CAAC;EAEL,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,kBAAkBA,CAAED,QAAQ,EAAG;EACvC,IAAQG,IAAI,GAAoCH,QAAQ,CAAhDG,IAAI;IAAEjG,GAAG,GAA+B8F,QAAQ,CAA1C9F,GAAG;IAAEkG,gBAAgB,GAAaJ,QAAQ,CAArCI,gBAAgB;IAAEC,MAAM,GAAKL,QAAQ,CAAnBK,MAAM;EAC3C;EACA,IAAMC,YAAY,GAAGF,gBAAgB,GAChCC,MAAM,MAAA1J,MAAA,CAAOgJ,gBAAgB,OAAAhJ,MAAA,CAAMuD,GAAG,gBAAAvD,MAAA,CAAegJ,gBAAgB,OAAAhJ,MAAA,CAAMuD,GAAG,SAAO,MAAAvD,MAAA,CACnFgJ,gBAAgB,qBAAmB;EAE1C,OAAOnI,GAAG,CAAE,IAAI,EAAE;IACjBK,SAAS,EAAE,eAAe;IAC1B0I,IAAI,EAAE;MACLnD,IAAI,KAAAzG,MAAA,CAAM8I,oDAAe,8CAAA9I,MAAA,CAA6CuD,GAAG,CAAG;MAC5E,iBAAiB,EAAEiG,IAAI,CAACK,WAAW,CAAC;IACrC,CAAC;IACDxI,QAAQ,EAAE,CACTP,GAAG,CAAE;MACJI,SAAS,KAAAlB,MAAA,CAAMV,2CAAM,eAAa;MAClCwK,KAAK,EAAE9I,GAAG,CAAE;QAAEM,GAAG,EAAEqI;MAAa,CAAE;IACnC,CAAE,CAAC,EACH7I,GAAG,CAAE;MACJI,SAAS,KAAAlB,MAAA,CAAMV,2CAAM,eAAa;MAClC+B,QAAQ,EAAE,CACT6E,IAAI,CAAE;QACLqD,IAAI,EAAE7I,mDAAE,CAAE,qBAAqB,EAAE,YAAa,CAAC;QAC/CQ,SAAS,EAAE;MACZ,CAAE,CAAC,EACHL,GAAG,CAAE,IAAI,EAAE;QACV0I,IAAI,EAAEC,IAAI;QACVtI,SAAS,EAAE;MACZ,CAAE,CAAC,EACHH,CAAC,CAAE;QACFwI,IAAI,EAAE7I,mDAAE,CAAE,sBAAsB,EAAE,YAAa,CAAC;QAChDQ,SAAS,EAAE,+BAA+B;QAC1CuF,IAAI,EAAEqC,oDAAeA;MACtB,CAAE,CAAC;IAEL,CAAE,CAAC;EAEL,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASiB,8BAA8BA,CAAA,EAAG;EAChD,IAAM5L,QAAQ,GAAGC,sDAAW,CAAC,CAAC;EAE9B,IAAKD,QAAQ,CAAC4K,oBAAoB,IAAI/K,SAAS,KAAK+K,oBAAoB,EAAG;IAC1E;EACD;EAEA5K,QAAQ,CAACyB,WAAW,CAACM,WAAW,CAAE6I,oBAAqB,CAAC;EAExD1K,sDAAW,CAAE;IACZ0K,oBAAoB,EAApBA,oBAAoB;IACpBiB,yBAAyB,EAAEjB,oBAAoB,CAACzI,aAAa,CAAE,IAAK,CAAC;IACrE2J,wBAAwB,EAAElB,oBAAoB,CAACzI,aAAa,KAAAN,MAAA,CAAOV,2CAAM,UAAS,CAAC;IACnF4K,wBAAwB,EAAEnB,oBAAoB,CAACvI,gBAAgB,CAAE,gBAAiB;EACnF,CAAE,CAAC;AACJ;;;;;;;;;;;;;;;;;;;ACzHA;AACA;AACA;AACyF;;AAEzF;AACA;AACA;AAC+C;AAE/C,IAAAuB,YAAA,GAAwB3D,+DAAW,CAAC,CAAC;EAA7BwB,WAAW,GAAAmC,YAAA,CAAXnC,WAAW;AACnB,IAAMwK,aAAa,GAAGvK,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,UAAS,CAAC;AACnE,IAAM+K,sBAAsB,GAAGxK,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,yBAAwB,CAAC;AAC3F,IAAMgL,iBAAiB,GAAGzK,QAAQ,CAACS,aAAa,KAAAN,MAAA,CAC1C6I,sDAAe,2BAAA7I,MAAA,CAAyBmK,+CAAU,CAACI,SAAS,QAClE,CAAC;AACD,IAAMC,KAAK,GAAG3K,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,WAAU,CAAC;AAE5DjB,+DAAW,CAAE;EACZ;EACAoM,kBAAkB,GAAAC,qBAAA,GAAE7K,QAAQ,CAACC,cAAc,CAAE,gBAAiB,CAAC,cAAA4K,qBAAA,uBAA3CA,qBAAA,CAA6CpK,aAAa,CAAE,GAAI,CAAC;EACrFqK,gBAAgB,EAAE9K,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,iBAAgB,CAAC;EACtEsL,SAAS,EAAE/K,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,gBAAe,CAAC;EAC9DuL,aAAa,EAAEhL,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,qBAAoB,CAAC;EACvEwL,gBAAgB,EAAEjL,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,wBAAuB,CAAC;EAC7EyL,YAAY,EAAElL,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,mBAAkB,CAAC;EACpE0L,0BAA0B,EAAEnL,QAAQ,CAACW,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,2BAA0B,CAAC;EAE7F;EACA8K,aAAa,EAAbA,aAAa;EACbjB,aAAa,EAAEiB,aAAa,CAAC5J,gBAAgB,CAAE,gBAAiB,CAAC;EACjEyK,sBAAsB,EAAEb,aAAa,CAAC5J,gBAAgB,wBAAAR,MAAA,CAA0BV,2CAAM,kBAAiB,CAAC;EACxG4L,yBAAyB,EAAEd,aAAa,CAAC5J,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,mBAAkB,CAAC;EACzF6L,qBAAqB,EAAEtL,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,mBAAkB,CAAC;EAE7E;EACA+K,sBAAsB,EAAtBA,sBAAsB;EACtBe,mBAAmB,EAAEf,sBAAsB,CAAC7J,gBAAgB,CAAE,gBAAiB,CAAC;EAChF6K,oBAAoB,EAAExL,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,uBAAsB,CAAC;EAChFgM,mBAAmB,EAAEzL,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,iBAAgB,CAAC;EAEzE;EACAgL,iBAAiB,EAAjBA,iBAAiB;EACjBiB,wBAAwB,EAAEjB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEhK,aAAa,KAAAN,MAAA,CACpD6I,sDAAe,eACrB,CAAC;EACD2C,0BAA0B,EAAE3L,QAAQ,CAACS,aAAa,KAAAN,MAAA,CAC5C6I,sDAAe,2BAAA7I,MAAA,CAAyBmK,+CAAU,CAACsB,mBAAmB,QAC5E,CAAC;EAED;EACAjB,KAAK,EAALA,KAAK;EACLkB,UAAU,EAAElB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEhK,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,gBAAe,CAAC;EAChE;EACAqM,6BAA6B,EAAE9L,QAAQ,CAACC,cAAc,CAAE,gCAAiC,CAAC;EAC1F8L,mBAAmB,EAAE/L,QAAQ,CAACC,cAAc,CAAE,2BAA4B,CAAC;EAC3E+L,2BAA2B,EAAEhM,QAAQ,CAACC,cAAc,CAAE,wCAAyC,CAAC;EAChGgM,kBAAkB,EAAEjM,QAAQ,CAACC,cAAc,CAAE,0BAA2B,CAAC;EACzEiM,yBAAyB,EAAElM,QAAQ,CAACC,cAAc,CAAE,iCAAkC,CAAC;EACvFkM,oBAAoB,EAAEnM,QAAQ,CAACC,cAAc,CAAE,4BAA6B,CAAC;EAC7E;EACAmM,iBAAiB,EAAEpM,QAAQ,CAACC,cAAc,CAAE,iBAAkB,CAAC;EAC/D;EACAoM,YAAY,EAAErM,QAAQ,CAACC,cAAc,CAAE,wBAAyB,CAAC;EACjEqM,yBAAyB,EAAE3B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEhK,gBAAgB,CAAE,kCAAmC,CAAC;EACxF4L,sBAAsB,EAAE5B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEhK,gBAAgB,CAAE,8BAA+B,CAAC;EACjF6L,gBAAgB,EAAExM,QAAQ,CAACC,cAAc,CAAE,wBAAyB,CAAC;EAErE;EACAwM,eAAe,EAAEzM,QAAQ,CAACC,cAAc,CAAE,kBAAmB,CAAC;EAC9DyM,oBAAoB,EAAE1M,QAAQ,CAACC,cAAc,CAAE,mBAAoB,CAAC;EACpE0M,2BAA2B,EAAE3M,QAAQ,CAACC,cAAc,CAAE,mBAAoB,CAAC;EAC3E2M,oBAAoB,EAAE5M,QAAQ,CAACC,cAAc,CAAE,UAAW,CAAC;EAC3D4M,sBAAsB,EAAE7M,QAAQ,CAACC,cAAc,CAAE,iBAAkB,CAAC;EAEpE;EACA6M,mBAAmB,EAAE/M,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEyB;AACnC,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;AC7EwB;;;;;;;;;;;;;;;;;ACA3B;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACO,SAASuL,4BAA4BA,CAAA,EAAG;EAC9C,IAAA7K,YAAA,GAAqC3D,sDAAW,CAAC,CAAC;IAA1C8L,wBAAwB,GAAAnI,YAAA,CAAxBmI,wBAAwB;EAEhC,IAAKlM,SAAS,KAAKkM,wBAAwB,EAAG;IAC7C;EACD;;EAEA;EACAA,wBAAwB,CAAClI,OAAO,CAAE,UAAAqH,QAAQ,EAAI;IAC7CA,QAAQ,CAAClH,gBAAgB,CAAE,OAAO,EAAE0K,0BAA2B,CAAC;EACjE,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGxK,KAAK,EAAI;EAC3C;EACA,IAAKA,KAAK,CAACyK,MAAM,CAACC,OAAO,CAAE,GAAI,CAAC,EAAG;IAClC;EACD;EAEA,IAAMC,mBAAmB,GAAG3K,KAAK,CAACE,aAAa;EAC/CxF,MAAM,CAACyJ,QAAQ,CAACC,IAAI,GAAGuG,mBAAmB,CAACC,OAAO,CAACxG,IAAI;AACxD,CAAC;;;;;;;;;;;;;;;;;;ACtCD;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACmD;;AAEnD;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACA,SAASyG,yBAAyBA,CAAA,EAAG;EACpC,IAAAnL,YAAA,GAA6B3D,sDAAW,CAAC,CAAC;IAAlCuM,gBAAgB,GAAA5I,YAAA,CAAhB4I,gBAAgB;;EAExB;EACAhJ,iEAAqB,CAAEgJ,gBAAgB,EAAEwC,uBAAwB,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EACrC,IAAA9J,aAAA,GAA4FjF,sDAAW,CAAC,CAAC;IAAjGuM,gBAAgB,GAAAtH,aAAA,CAAhBsH,gBAAgB;IAAE2B,eAAe,GAAAjJ,aAAA,CAAfiJ,eAAe;IAAEC,oBAAoB,GAAAlJ,aAAA,CAApBkJ,oBAAoB;IAAEG,sBAAsB,GAAArJ,aAAA,CAAtBqJ,sBAAsB;EACvF,IAAQU,cAAc,GAAKrQ,MAAM,CAACsQ,aAAa,CAAvCD,cAAc;EAEtBb,oBAAoB,CAACzN,KAAK,GAAG,EAAE;EAC/B4N,sBAAsB,CAAC5N,KAAK,GAAG,kBAAkB;EACjDsO,cAAc,CAAEd,eAAe,EAAE,kBAAkB,EAAE3B,gBAAiB,CAAC;AACxE,CAAC;AAED,iEAAeuC,yBAAyB;;;;;;;;;;;;;;;;;;;;;AC1CxC;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACmD;;AAEnD;AACA;AACA;AAC0C;AACL;AACW;AACJ;;AAE5C;AACA;AACA;AACA;AACA;AACA,SAASM,uBAAuBA,CAAA,EAAG;EAClC,IAAAzL,YAAA,GAKI3D,sDAAW,CAAC,CAAC;IAJhByN,2BAA2B,GAAA9J,YAAA,CAA3B8J,2BAA2B;IAC3BG,oBAAoB,GAAAjK,YAAA,CAApBiK,oBAAoB;IACpBL,6BAA6B,GAAA5J,YAAA,CAA7B4J,6BAA6B;IAC7BjK,gBAAgB,GAAAK,YAAA,CAAhBL,gBAAgB;;EAGjB;EACAC,iEAAqB,CAAEgK,6BAA6B,EAAE8B,oCAAqC,CAAC;EAC5F9L,iEAAqB,CAAED,gBAAgB,EAAE+L,oCAAqC,CAAC;;EAE/E;EACA5B,2BAA2B,CAAC1J,gBAAgB,CAAE,QAAQ,EAAEuL,mBAAoB,CAAC;;EAE7E;EACA/L,iEAAqB,CAAEqK,oBAAoB,EAAE2B,2BAA4B,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMF,oCAAoC,GAAG,SAAvCA,oCAAoCA,CAAA,EAAS;EAClD,IAAA/K,SAAA,GAA6B/D,iDAAQ,CAAC,CAAC;IAA/BgE,gBAAgB,GAAAD,SAAA,CAAhBC,gBAAgB;EACxB,IAAK,CAAE4K,wDAAgB,CAAE5K,gBAAiB,CAAC,EAAG;IAC7C;EACD;EAEA2K,4DAAuB,CAAC,CAAC;AAC1B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;EACjC,IAAArK,aAAA,GAAqDjF,sDAAW,CAAC,CAAC;IAA7BwP,WAAW,GAAAvK,aAAA,CAAxCwI,2BAA2B;EACnC,IAAMgC,MAAM,GAAGD,WAAW,CAAC9O,KAAK;EAEhC,IAAK,CAAE+O,MAAM,IAAIA,MAAM,KAAK,UAAU,EAAG;IACxCC,0BAA0B,CAAE,IAAK,CAAC;IAClC;EACD;EAEAA,0BAA0B,CAAE,KAAM,CAAC;EAEnC,IAAMC,cAAc,GAAGH,WAAW,CAACI,OAAO,CAAEJ,WAAW,CAACK,aAAa,CAAE;EACvE,IAAMC,eAAe,GAAGH,cAAc,CAACd,OAAO,CAACkB,WAAW,CAACC,IAAI,CAAC,CAAC;EAEjE,IAAIC,QAAQ,GAAGN,cAAc,CAACd,OAAO,CAACzD,IAAI,CAAC4E,IAAI,CAAC,CAAC;EACjD,IAAME,cAAc,OAAAtO,MAAA,CAAQU,mDAAE,CAAE,UAAU,EAAE,YAAa,CAAC,CAAG;EAC7D,IAAK,CAAE2N,QAAQ,CAACE,QAAQ,CAAED,cAAe,CAAC,EAAG;IAC5CD,QAAQ,IAAIC,cAAc;EAC3B;EAEA,IAAAE,aAAA,GAA0DpQ,sDAAW,CAAC,CAAC;IAA/D0N,kBAAkB,GAAA0C,aAAA,CAAlB1C,kBAAkB;IAAEC,yBAAyB,GAAAyC,aAAA,CAAzBzC,yBAAyB;EACrDD,kBAAkB,CAAChN,KAAK,GAAGuP,QAAQ;EACnCtC,yBAAyB,CAACjN,KAAK,GAAGoP,eAAe;AAClD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMJ,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGW,aAAa,EAAI;EACnD,IAAAC,aAAA,GAAgFtQ,sDAAW,CAAC,CAAC;IAArF0N,kBAAkB,GAAA4C,aAAA,CAAlB5C,kBAAkB;IAAEC,yBAAyB,GAAA2C,aAAA,CAAzB3C,yBAAyB;IAAEC,oBAAoB,GAAA0C,aAAA,CAApB1C,oBAAoB;;EAE3E;EACA,CAAEF,kBAAkB,EAAEC,yBAAyB,CAAE,CAAC/J,OAAO,CAAE,UAAAmC,OAAO,EAAI;IACrEA,OAAO,CAACwK,QAAQ,GAAGF,aAAa;IAChC,IAAKA,aAAa,EAAG;MACpBtK,OAAO,CAACrF,KAAK,GAAG,EAAE,CAAC,CAAC;IACrB;EACD,CAAE,CAAC;;EAEH;EACAkN,oBAAoB,CAAC/I,SAAS,CAAC2L,MAAM,CAAE,UAAU,EAAEH,aAAc,CAAC;AACnE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMd,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;EACzC,IAAQP,cAAc,GAAKrQ,MAAM,CAACsQ,aAAa,CAAvCD,cAAc;EACtB,IAAMyB,UAAU,GAAG,qBAAqB;EACxC,IAAAC,aAAA,GAUI1Q,sDAAW,CAAC,CAAC;IAThBkO,eAAe,GAAAwC,aAAA,CAAfxC,eAAe;IACfI,sBAAsB,GAAAoC,aAAA,CAAtBpC,sBAAsB;IACtBH,oBAAoB,GAAAuC,aAAA,CAApBvC,oBAAoB;IACpBC,2BAA2B,GAAAsC,aAAA,CAA3BtC,2BAA2B;IAC3BC,oBAAoB,GAAAqC,aAAA,CAApBrC,oBAAoB;IACpBX,kBAAkB,GAAAgD,aAAA,CAAlBhD,kBAAkB;IAClBC,yBAAyB,GAAA+C,aAAA,CAAzB/C,yBAAyB;IACzBF,2BAA2B,GAAAiD,aAAA,CAA3BjD,2BAA2B;IAC3BG,oBAAoB,GAAA8C,aAAA,CAApB9C,oBAAoB;EAGrBU,sBAAsB,CAAC5N,KAAK,GAAG+P,UAAU;EACzCtC,oBAAoB,CAACzN,KAAK,GAAGgN,kBAAkB,CAAChN,KAAK,CAACsP,IAAI,CAAC,CAAC;EAC5D5B,2BAA2B,CAAC1N,KAAK,GAAGiN,yBAAyB,CAACjN,KAAK,CAACsP,IAAI,CAAC,CAAC;EAC1E3B,oBAAoB,CAAC3N,KAAK,GAAG+M,2BAA2B,CAAC/M,KAAK;;EAE9D;EACAsO,cAAc,CAAEd,eAAe,EAAEuC,UAAU,EAAE7C,oBAAqB,CAAC;AACpE,CAAC;AAED,iEAAewB,uBAAuB;;;;;;;;;;;;;;;;;;;;AC5ItC;AACA;AACA;AAC4E;;AAE5E;AACA;AACA;AAC0C;AACmB;AACb;AACyD;AAEzG,IAAM4B,qBAAqB,OAAApP,MAAA,CAAQV,2CAAM,0BAAwB;AACjE,IAAM+P,mBAAmB,MAAArP,MAAA,CAAOoP,qBAAqB,SAAO;AAC5D,IAAME,iBAAiB,GAAG,uBAAuB;AACjD,IAAMC,iBAAiB,GAAG,iBAAiB;AAC3C,IAAMC,SAAS,GAAG;EACjBC,GAAG,EAAE,KAAK;EACVC,MAAM,EAAE;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuBA,CAAA,EAAG;EAClC,IAAMC,eAAe,GAAG/P,QAAQ,CAACW,gBAAgB,CAAE4O,qBAAsB,CAAC;;EAE1E;EACAQ,eAAe,CAAC5N,OAAO,CAAE,UAAA6N,cAAc;IAAA,OACtClO,iEAAqB,CAAEkO,cAAc,EAAEC,qBAAsB,CAAC;EAAA,CAC/D,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGzN,KAAK,EAAI;EAAA,IAAA0N,qBAAA;EACtC,IAAMF,cAAc,GAAGxN,KAAK,CAACE,aAAa;EAC1C,IAAAR,YAAA,GAAiG3D,sDAAW,CAAC,CAAC;IAAtGgM,aAAa,GAAArI,YAAA,CAAbqI,aAAa;IAAEe,qBAAqB,GAAApJ,YAAA,CAArBoJ,qBAAqB;IAAEI,wBAAwB,GAAAxJ,YAAA,CAAxBwJ,wBAAwB;IAAEF,oBAAoB,GAAAtJ,YAAA,CAApBsJ,oBAAoB;;EAE5F;AACD;AACA;EACC,IAAMhC,QAAQ,GAAGwG,cAAc,CAAC9C,OAAO,CAAE,gBAAiB,CAAC;EAC3D,IAAMiD,UAAU,GAAG3G,QAAQ,CAAC4D,OAAO,CAAC7L,EAAE;EACtC,IAAM6O,WAAW,GAAGjB,0DAAkB,CAAE3F,QAAS,CAAC;EAClD,IAAM6G,gBAAgB,GAAGjB,wDAAgB,CAAE5F,QAAS,CAAC;EACrD,IAAM8G,kBAAkB,GAAGjB,0DAAkB,CAAE7F,QAAS,CAAC;;EAEzD;AACD;AACA;AACA;EACC,IAAI+G,oBAAoB,GAAG,IAAI;EAE/B/G,QAAQ,CAACpG,SAAS,CAAC2L,MAAM,IAAA5O,MAAA,CAAMV,2CAAM,qBAAmB,CAAE2Q,WAAY,CAAC;EACvE,IAAKE,kBAAkB,EAAG;IACzB,IAAME,YAAY,GAAGhH,QAAQ,CAAC0D,OAAO,KAAA/M,MAAA,CAAOV,2CAAM,UAAS,CAAC,GACzD6L,qBAAqB,GACrBf,aAAa;IAEhB,IAAKiG,YAAY,EAAG;MACnBD,oBAAoB,GAAGC,YAAY,CAAC/P,aAAa,6BAAAN,MAAA,CACpBgQ,UAAU,QACvC,CAAC;MACD;MACAI,oBAAoB,CAACnN,SAAS,CAAC2L,MAAM,IAAA5O,MAAA,CAChCV,2CAAM,qBACV,CAAE2Q,WACH,CAAC;IACF;EACD;;EAEA;AACD;AACA;EACC,IAAAvN,SAAA,GAA6C/D,iDAAQ,CAAC,CAAC;IAA/CgE,gBAAgB,GAAAD,SAAA,CAAhBC,gBAAgB;IAAE2N,cAAc,GAAA5N,SAAA,CAAd4N,cAAc;EACxC,IAAMC,gBAAgB,GAAGN,WAAW,GAAGT,SAAS,CAACE,MAAM,GAAGF,SAAS,CAACC,GAAG;EACvE,IAAMe,SAAS,GAAGnH,QAAQ,CAAC/I,aAAa,CAAE+O,mBAAoB,CAAC;EAC/D,IAAMoB,qBAAqB,IAAAV,qBAAA,GAC1BK,oBAAoB,cAAAL,qBAAA,uBAApBA,qBAAA,CAAsBzP,aAAa,CAAE+O,mBAAoB,CAAC;EAE3D,IAAKG,SAAS,CAACC,GAAG,KAAKc,gBAAgB,EAAG;IACzC;IACA,EAAED,cAAc,CAACI,KAAK;IACtBR,gBAAgB,GAAG,EAAEI,cAAc,CAACK,MAAM,GAAG,EAAEL,cAAc,CAACM,OAAO,CAAC,CAAC;IACvE;IACAJ,SAAS,CAACrP,YAAY,CAAE,YAAY,EAAEmO,iBAAkB,CAAC;IACzDmB,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAEtP,YAAY,CAAE,YAAY,EAAEmO,iBAAkB,CAAC;EACvE,CAAC,MAAM;IACN;IACA,EAAEgB,cAAc,CAACI,KAAK;IACtBR,gBAAgB,GAAG,EAAEI,cAAc,CAACK,MAAM,GAAG,EAAEL,cAAc,CAACM,OAAO,CAAC,CAAC;IACvE;IACAJ,SAAS,CAACrP,YAAY,CAAE,YAAY,EAAEoO,iBAAkB,CAAC;IACzDkB,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAEtP,YAAY,CAAE,YAAY,EAAEoO,iBAAkB,CAAC;EACvE;;EAEA;EACAhE,wBAAwB,CAACpF,WAAW,GAAGmK,cAAc,CAACI,KAAK;EAC3DvR,uDAAc,CAAE,gBAAgB,EAAEmR,cAAe,CAAC;;EAElD;AACD;AACA;EACC,IAAKnB,2DAAmB,CAAExM,gBAAiB,CAAC,EAAG;IAC9C,IAAK,CAAC,KAAK2N,cAAc,CAACI,KAAK,EAAG;MACjC3B,4DAAuB,CAAC,CAAC;IAC1B;IAEAvJ,gDAAI,CAAE6D,QAAS,CAAC;IAEhB,IAAK,CAAC,KAAKiH,cAAc,CAACM,OAAO,EAAG;MACnCpL,gDAAI,CAAE4E,aAAc,CAAC;IACtB;IAEA,IAAK,CAAC,KAAKkG,cAAc,CAACK,MAAM,IAAI,CAAC,KAAKL,cAAc,CAACM,OAAO,EAAG;MAClEpL,gDAAI,CAAE6F,oBAAqB,CAAC;IAC7B;EACD;;EAEA;EACAjG,6DAAiB,CAAE;IAAA,OAAMyL,sBAAsB,CAAEb,UAAU,EAAEO,gBAAgB,EAAEL,gBAAiB,CAAC;EAAA,CAAC,CAAC;AACpG,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,sBAAsBA,CAAEzP,EAAE,EAAE0P,SAAS,EAAEC,QAAQ,EAAG;EAC1D,IAAMC,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;EAC/B,IAAQC,UAAU,GAAKtQ,MAAM,CAACuQ,IAAI,CAA1BD,UAAU;EAElBF,QAAQ,CAACI,MAAM,CAAE,aAAa,EAAEhQ,EAAG,CAAC;EACpC4P,QAAQ,CAACI,MAAM,CAAE,WAAW,EAAEN,SAAU,CAAC;EACzCE,QAAQ,CAACI,MAAM,CAAE,oBAAoB,EAAEL,QAAS,CAAC;EAEjD,OAAOG,UAAU,CAAE,iCAAiC,EAAEF,QAAS,CAAC;AACjE;AAEA,iEAAerB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;ACvJtC;AACA;AACA;AACuD;;AAEvD;AACA;AACA;AACmE;AACJ;AACM;AACtB;AACiB;AACnB;;AAE7C;AACA;AACA;AACA;AACA;AACO,SAAS6B,iBAAiBA,CAAA,EAAG;EACnC1P,qEAAiB,CAAC,CAAC;EACnBgB,EAAE,CAACC,KAAK,CAAC0O,SAAS,CAAE,yBAAyB,EAAE,kBAAkB,EAAE,UAAA9O,gBAAgB,EAAI;IACtF;IACA4O,yDAAoB,CAAE5O,gBAAiB,CAAC;EACzC,CAAE,CAAC;EAEHuK,qEAAyB,CAAC,CAAC;EAC3ByC,mEAAuB,CAAC,CAAC;EACzB0B,sEAA0B,CAAC,CAAC;EAC5BC,2DAAe,CAAC,CAAC;EACjB9D,oEAAuB,CAAC,CAAC;AAC1B;;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACmD;AACG;;AAEtD;AACA;AACA;AAC0C;AACuB;AACF;AAE/D,IAAcoE,UAAU,GAAK7U,MAAM,CAAC6D,MAAM,CAACoG,MAAM,CAAzC6K,IAAI;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,SAASP,eAAeA,CAAA,EAAG;EAC1B,IAAAvP,YAAA,GAA0C3D,sDAAW,CAAC,CAAC;IAA/CiC,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;IAAEqB,gBAAgB,GAAAK,YAAA,CAAhBL,gBAAgB;EAErCkQ,UAAU,CAAEvR,WAAW,EAAE,eAAe,EAAE;IAAEyR,kBAAkB,EAAlBA;EAAmB,CAAE,CAAC;EAClEnQ,iEAAqB,CAAED,gBAAgB,EAAEqQ,uBAAwB,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,kBAAkBA,CAAAE,IAAA,EAA0C3P,KAAK,EAAG;EAAA,IAA9C4P,cAAc,GAAAD,IAAA,CAAdC,cAAc;IAAEpP,kBAAkB,GAAAmP,IAAA,CAAlBnP,kBAAkB;EAChE;EACA;EACA,IAAKR,KAAK,IAAIA,KAAK,CAACwB,IAAI,KAAK,QAAQ,IAAIxB,KAAK,CAACyK,MAAM,CAAChO,KAAK,KAAK,EAAE,EAAG;IACpE;EACD;EAEA,IAAMJ,KAAK,GAAGC,iDAAQ,CAAC,CAAC;EACxB,IAAA0E,aAAA,GAA6BjF,sDAAW,CAAC,CAAC;IAAlCqC,gBAAgB,GAAA4C,aAAA,CAAhB5C,gBAAgB;EAExBtB,uDAAc,CAAE,oBAAoB,EAAE0D,kBAAmB,CAAC;;EAE1D;EACA,IAAK,CAAEnE,KAAK,CAACmE,kBAAkB,IAAI,CAAEnE,KAAK,CAACiE,gBAAgB,EAAG;IAC7DlC,gBAAgB,CAACgD,aAAa,CAC7B,IAAIC,KAAK,CAAE,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAK,CAAE,CACvC,CAAC;IAED;EACD;;EAEA;EACA,IAAKjF,KAAK,CAACiE,gBAAgB,EAAG;IAC7B+O,oDAAe,CAAE7O,kBAAmB,CAAC;;IAErC;IACA,IAAKA,kBAAkB,EAAG;MACzB1D,uDAAc,CAAE,kBAAkB,EAAE,EAAG,CAAC;IACzC;EACD;EAEAwS,0DAAqB,CAAEM,cAAc,EAAEpP,kBAAmB,CAAC;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMkP,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EAAA,IAAAG,mBAAA;EACrC,IAAA1D,aAAA,GAAuBpQ,sDAAW,CAAC,CAAC;IAA5B6B,UAAU,GAAAuO,aAAA,CAAVvO,UAAU;EAClB,IAAKkK,+CAAU,CAACgI,MAAM,OAAAD,mBAAA,GAAKjS,UAAU,CAACgN,OAAO,cAAAiF,mBAAA,uBAAlBA,mBAAA,CAAoBE,IAAI,GAAG;IACrD;EACD;;EAEA;EACA;EACAjT,uDAAc,CAAE,kBAAkB,EAAE,EAAG,CAAC;EACxC0C,oEAAgB,CAAC,CAAC;EAElB,IAAA6M,aAAA,GAAwBtQ,sDAAW,CAAC,CAAC;IAA7BiC,WAAW,GAAAqO,aAAA,CAAXrO,WAAW;EACnBA,WAAW,CAACgS,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,iEAAef,eAAe;;;;;;;;;;;;;;;;;;;AC7F9B;AACA;AACA;AAC0C;AACS;AACF;AACa;;AAE9D;AACA;AACA;AACA;AACA;AACA,SAASD,0BAA0BA,CAAA,EAAG;EACrC,IAAMmB,kBAAkB,GAAG3S,QAAQ,CAACW,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,yBAAwB,CAAC;;EAE1F;EACAkT,kBAAkB,CAACxQ,OAAO,CAAE,UAAAyQ,iBAAiB;IAAA,OAC5CA,iBAAiB,CAACtQ,gBAAgB,CAAE,OAAO,EAAEuQ,wBAAyB,CAAC;EAAA,CACxE,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGrQ,KAAK,EAAI;EACzC,IAAMoQ,iBAAiB,GAAGpQ,KAAK,CAACE,aAAa;EAE7C,IAAM8G,QAAQ,GAAGoJ,iBAAiB,CAAC1F,OAAO,CAAE,gBAAiB,CAAC;EAC9D,IAAM4F,QAAQ,GAAGJ,wDAAgB,CAAElJ,QAAS,CAAC;EAC7C,IAAM6G,gBAAgB,GAAGjB,wDAAgB,CAAE5F,QAAS,CAAC;;EAErD;EACA,IAAK,CAAEsJ,QAAQ,IAAIzC,gBAAgB,EAAG;IACrC;EACD;;EAEA;EACA7N,KAAK,CAACmB,cAAc,CAAC,CAAC;;EAEtB;EACArE,uDAAc,CAAE,kBAAkB,EAAEkK,QAAS,CAAC;;EAE9C;EACA,IAAKsJ,QAAQ,EAAG;IACfL,6DAAuB,CAAEjJ,QAAS,CAAC;IACnC;EACD;;EAEA;EACA,IAAAtH,YAAA,GAA6H3D,sDAAW,CAAC,CAAC;IAAlIkO,eAAe,GAAAvK,YAAA,CAAfuK,eAAe;IAAEC,oBAAoB,GAAAxK,YAAA,CAApBwK,oBAAoB;IAAEC,2BAA2B,GAAAzK,YAAA,CAA3ByK,2BAA2B;IAAEC,oBAAoB,GAAA1K,YAAA,CAApB0K,oBAAoB;IAAEC,sBAAsB,GAAA3K,YAAA,CAAtB2K,sBAAsB;EACxH,IAAQU,cAAc,GAAKrQ,MAAM,CAACsQ,aAAa,CAAvCD,cAAc;EACtB,IAAMwF,YAAY,GAAGvJ,QAAQ,CAAC/I,aAAa,CAAE,yBAA0B,CAAC,CAAC6F,WAAW,CAACiI,IAAI,CAAC,CAAC;EAC3F,IAAMyE,mBAAmB,GAAGxJ,QAAQ,CAAC/I,aAAa,CAAE,sCAAuC,CAAC,CAAC6F,WAAW,CAACiI,IAAI,CAAC,CAAC;EAC/G,IAAMS,UAAU,GAAG,sBAAsB;EAEzCtC,oBAAoB,CAACzN,KAAK,GAAG8T,YAAY;EACzCpG,2BAA2B,CAAC1N,KAAK,GAAG+T,mBAAmB;EACvDnG,sBAAsB,CAAC5N,KAAK,GAAG+P,UAAU;EACzCpC,oBAAoB,CAAC3N,KAAK,GAAG2T,iBAAiB,CAAChM,IAAI;;EAEnD;EACA2G,cAAc,CAAEd,eAAe,EAAEuC,UAAU,EAAE4D,iBAAkB,CAAC;AACjE,CAAC;AAED,iEAAepB,0BAA0B;;;;;;;;;;;;;;;;;;ACrEzC;AACA;AACA;AACyD;AAC6B;AACzC;;AAE7C;AACA;AACA;AACA;AACA;AACA,SAAS6B,uBAAuBA,CAAA,EAAG;EAClCD,wEAA4B,CAAC,CAAC;EAC9BF,oDAAe,CAAC,CAAC;EACjBC,qEAAyB,CAAC,CAAC;EAC3BF,qDAAgB,CAAC,CAAC;EAClBtB,0DAAiB,CAAC,CAAC;AACpB;AAEA,iEAAe0B,uBAAuB;;;;;;;;;;;;;;;;;;;;;;ACpB/B,IAAApW,iBAAA,GAA2DC,MAAM,CAACC,SAAS;EAAnEmW,6BAA6B,GAAArW,iBAAA,CAA7BqW,6BAA6B;EAAErK,eAAe,GAAAhM,iBAAA,CAAfgM,eAAe;AAAsB;AAC5E,IAAAsK,qBAAA,GAAiDrW,MAAM,CAACsW,oBAAoB;EAApEC,uBAAuB,GAAAF,qBAAA,CAAvBE,uBAAuB;EAAEC,WAAW,GAAAH,qBAAA,CAAXG,WAAW;AAAiC;AAE7E,IAAMjU,MAAM,GAAG,oBAAoB;AAEnC,IAAM6K,UAAU,GAAG;EACzBsB,mBAAmB,EAAE,qBAAqB;EAC1ClB,SAAS,EAAE,WAAW;EACtBiJ,MAAM,EAAE,QAAQ;EAChBrB,MAAM,EAAE;AACT,CAAC;AAEM,IAAMsB,KAAK,GAAG;EACpBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACP,CAAC;AAEM,IAAMC,WAAW,GAAG;EAC1BC,OAAO,EAAE,OAAO;EAChBC,eAAe,EAAE;AAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB2B;;;;;;;;;;;;;;;;;;;;;ACA5B;AACA;AACA;AACwF;;AAExF;AACA;AACA;AAC0C;AAE1C,IAAAd,qBAAA,GAAwDrW,MAAM,CAACsW,oBAAoB;EAA3Ec,cAAc,GAAAf,qBAAA,CAAde,cAAc;EAAE7D,cAAc,GAAA8C,qBAAA,CAAd9C,cAAc;EAAE8D,WAAW,GAAAhB,qBAAA,CAAXgB,WAAW;AACnD,IAAArS,YAAA,GAAmC3D,sDAAW,CAAC,CAAC;EAAxC6M,sBAAsB,GAAAlJ,YAAA,CAAtBkJ,sBAAsB;AAC9B,IAAMoJ,uBAAuB,GAAGpJ,sBAAsB,CAAClN,MAAM;AAE7DkB,4DAAQ,CAAE;EACToV,uBAAuB,EAAvBA,uBAAuB;EACvBD,WAAW,EAAEE,MAAM,CAAEF,WAAY,CAAC;EAClCG,mBAAmB,EAAEJ,cAAc,GAAGE,uBAAuB;EAC7D/D,cAAc,EAAdA,cAAc;EACdkE,gBAAgB,EAAE;AACnB,CAAE,CAAC;;;;;;;;;;;;;;;;;;;ACpBH;AACA;AACA;AACyF;AAChC;AACC;;AAE1D;AACA;AACA;AACA;AACA;AACO,SAASvB,4BAA4BA,CAAA,EAAG;EAC9C;EACA,IAAK,CAAEE,kEAA6B,EAAG;IACtC;EACD;EAEA,IAAQsB,WAAW,GAAK7T,MAAM,CAACuQ,IAAI,CAA3BsD,WAAW;EAEnBA,WAAW,CAAE,sCAAuC,CAAC,CAACnP,IAAI,CAAEoP,yBAA0B,CAAC;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,yBAAyBA,CAAE9K,IAAI,EAAG;EAC1C;EACAX,qEAA0B,CAAEW,IAAI,CAAC+K,SAAU,CAAC;;EAE5C;EACA5K,yEAA8B,CAAC,CAAC;;EAEhC;EACA6C,qEAA4B,CAAC,CAAC;AAC/B;;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AAC0C;AAEnC,IAAMgI,oBAAoB,GAAG,CAAC,CAAC;;AAEtC;AACA;AACA;AACA;AACA;AACO,SAAS5B,yBAAyBA,CAAA,EAAG;EAC3C,IAAAjR,YAAA,GAA0B3D,sDAAW,CAAC,CAAC;IAA/B+K,aAAa,GAAApH,YAAA,CAAboH,aAAa;EAErBA,aAAa,CAACnH,OAAO,CAAE,UAAAqH,QAAQ,EAAI;IAClC;IACA,IAAMwL,UAAU,GAAGxL,QAAQ,CAAC5G,YAAY,CAAE,iBAAkB,CAAC,CAACqS,KAAK,CAAE,GAAI,CAAC;IAE1ED,UAAU,CAAC7S,OAAO,CAAE,UAAAC,QAAQ,EAAI;MAC/B;MACA,IAAK,CAAE2S,oBAAoB,CAAE3S,QAAQ,CAAE,EAAG;QACzC2S,oBAAoB,CAAE3S,QAAQ,CAAE,GAAG,EAAE;MACtC;;MAEA;MACA2S,oBAAoB,CAAE3S,QAAQ,CAAE,CAAC8S,IAAI,CAAE1L,QAAS,CAAC;IAClD,CAAE,CAAC;EACJ,CAAE,CAAC;AACJ;;;;;;;;;;;;;;;;;;;AC7BsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA2B;AAC/B;AACN;AACa;AACF;AACT;AACG;;;;;;;;;;;;;;;;;;;+CCLjC,qJAAA2L,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAnN,MAAA,CAAAoN,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAAvN,MAAA,CAAAwN,cAAA,cAAAN,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAArW,KAAA,KAAA2W,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA3U,CAAA,GAAA0U,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,aAAA,uBAAAC,CAAA,GAAAL,CAAA,CAAAM,WAAA,8BAAAC,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAnN,MAAA,CAAAwN,cAAA,CAAAN,CAAA,EAAAD,CAAA,IAAAnW,KAAA,EAAAqW,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAjB,CAAA,CAAAD,CAAA,WAAAe,MAAA,mBAAAd,CAAA,IAAAc,MAAA,YAAAA,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAiB,KAAAlB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAI,CAAA,GAAAR,CAAA,IAAAA,CAAA,CAAAG,SAAA,YAAAiB,SAAA,GAAApB,CAAA,GAAAoB,SAAA,EAAAtV,CAAA,GAAAiH,MAAA,CAAAsO,MAAA,CAAAb,CAAA,CAAAL,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAxU,CAAA,eAAAjC,KAAA,EAAA0X,gBAAA,CAAAtB,CAAA,EAAAC,CAAA,EAAAS,CAAA,MAAA7U,CAAA,aAAA0V,SAAAvB,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAAtR,IAAA,YAAA6S,GAAA,EAAAxB,CAAA,CAAAyB,IAAA,CAAA1B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAArR,IAAA,WAAA6S,GAAA,EAAAxB,CAAA,QAAAD,CAAA,CAAAmB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAApW,CAAA,qCAAAqW,CAAA,GAAApP,MAAA,CAAAqP,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAW,CAAA,EAAAvW,CAAA,MAAAoW,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAApN,MAAA,CAAAsO,MAAA,CAAAa,CAAA,YAAAM,sBAAAvC,CAAA,gCAAAlT,OAAA,WAAAiT,CAAA,IAAAe,MAAA,CAAAd,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAAwC,OAAA,CAAAzC,CAAA,EAAAC,CAAA,sBAAAyC,cAAAzC,CAAA,EAAAD,CAAA,aAAA2C,OAAAzC,CAAA,EAAAI,CAAA,EAAAE,CAAA,EAAA1U,CAAA,QAAA6U,CAAA,GAAAa,QAAA,CAAAvB,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAK,CAAA,mBAAAK,CAAA,CAAA/R,IAAA,QAAAiS,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAAhX,KAAA,SAAA8X,CAAA,gBAAA3Y,OAAA,CAAA2Y,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA3B,CAAA,CAAA9P,OAAA,CAAAyR,CAAA,CAAAiB,OAAA,EAAAvS,IAAA,WAAA4P,CAAA,IAAA0C,MAAA,SAAA1C,CAAA,EAAAO,CAAA,EAAA1U,CAAA,gBAAAmU,CAAA,IAAA0C,MAAA,UAAA1C,CAAA,EAAAO,CAAA,EAAA1U,CAAA,QAAAkU,CAAA,CAAA9P,OAAA,CAAAyR,CAAA,EAAAtR,IAAA,WAAA4P,CAAA,IAAAY,CAAA,CAAAhX,KAAA,GAAAoW,CAAA,EAAAO,CAAA,CAAAK,CAAA,gBAAAZ,CAAA,WAAA0C,MAAA,UAAA1C,CAAA,EAAAO,CAAA,EAAA1U,CAAA,SAAAA,CAAA,CAAA6U,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAAzW,KAAA,WAAAA,MAAAoW,CAAA,EAAAG,CAAA,aAAAyC,2BAAA,eAAA7C,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAAyC,MAAA,CAAA1C,CAAA,EAAAG,CAAA,EAAAJ,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA7P,IAAA,CAAAwS,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAtB,iBAAAvB,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAnB,CAAA,EAAA1U,CAAA,QAAAwU,CAAA,KAAAuB,CAAA,QAAA5Y,KAAA,sCAAAqX,CAAA,KAAAwB,CAAA,oBAAAtB,CAAA,QAAA1U,CAAA,WAAAjC,KAAA,EAAAoW,CAAA,EAAA6C,IAAA,eAAA1C,CAAA,CAAA2C,MAAA,GAAAvC,CAAA,EAAAJ,CAAA,CAAAqB,GAAA,GAAA3V,CAAA,UAAA6U,CAAA,GAAAP,CAAA,CAAA4C,QAAA,MAAArC,CAAA,QAAAE,CAAA,GAAAoC,mBAAA,CAAAtC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA2C,MAAA,EAAA3C,CAAA,CAAA8C,IAAA,GAAA9C,CAAA,CAAA+C,KAAA,GAAA/C,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA2C,MAAA,QAAAzC,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAgD,iBAAA,CAAAhD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA2C,MAAA,IAAA3C,CAAA,CAAAiD,MAAA,WAAAjD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAxB,CAAA,EAAAE,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAAtT,IAAA,QAAA0R,CAAA,GAAAF,CAAA,CAAA0C,IAAA,GAAAhB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAAlY,KAAA,EAAAqY,CAAA,CAAAT,GAAA,EAAAqB,IAAA,EAAA1C,CAAA,CAAA0C,IAAA,kBAAAZ,CAAA,CAAAtT,IAAA,KAAA0R,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA2C,MAAA,YAAA3C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAAwB,oBAAAjD,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAA6C,MAAA,EAAAzC,CAAA,GAAAN,CAAA,CAAAU,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAAL,CAAA,SAAAC,CAAA,CAAA8C,QAAA,qBAAA5C,CAAA,IAAAJ,CAAA,CAAAU,QAAA,CAAA4C,MAAA,KAAApD,CAAA,CAAA6C,MAAA,aAAA7C,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,EAAAgD,mBAAA,CAAAjD,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAA6C,MAAA,kBAAA3C,CAAA,KAAAF,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,uCAAAnD,CAAA,iBAAA2B,CAAA,MAAAvB,CAAA,GAAAgB,QAAA,CAAAlB,CAAA,EAAAN,CAAA,CAAAU,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAjB,CAAA,CAAA5R,IAAA,SAAAsR,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,GAAAjB,CAAA,CAAAiB,GAAA,EAAAvB,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,MAAAjW,CAAA,GAAA0U,CAAA,CAAAiB,GAAA,SAAA3V,CAAA,GAAAA,CAAA,CAAAgX,IAAA,IAAA5C,CAAA,CAAAF,CAAA,CAAAwD,UAAA,IAAA1X,CAAA,CAAAjC,KAAA,EAAAqW,CAAA,CAAAuD,IAAA,GAAAzD,CAAA,CAAA0D,OAAA,eAAAxD,CAAA,CAAA6C,MAAA,KAAA7C,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,GAAAC,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,IAAAjW,CAAA,IAAAoU,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,sCAAArD,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,cAAA4B,aAAA1D,CAAA,QAAAD,CAAA,KAAA4D,MAAA,EAAA3D,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAA6D,QAAA,GAAA5D,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAA8D,UAAA,GAAA7D,CAAA,KAAAD,CAAA,CAAA+D,QAAA,GAAA9D,CAAA,WAAA+D,UAAA,CAAAlE,IAAA,CAAAE,CAAA,cAAAiE,cAAAhE,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAiE,UAAA,QAAAlE,CAAA,CAAApR,IAAA,oBAAAoR,CAAA,CAAAyB,GAAA,EAAAxB,CAAA,CAAAiE,UAAA,GAAAlE,CAAA,aAAAsB,QAAArB,CAAA,SAAA+D,UAAA,MAAAJ,MAAA,aAAA3D,CAAA,CAAAlT,OAAA,CAAA4W,YAAA,cAAAQ,KAAA,iBAAA7B,OAAAtC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAlU,CAAA,OAAAoU,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAA1B,CAAA,4BAAAA,CAAA,CAAAyD,IAAA,SAAAzD,CAAA,OAAAoE,KAAA,CAAApE,CAAA,CAAAlX,MAAA,SAAAwX,CAAA,OAAAE,CAAA,YAAAiD,KAAA,aAAAnD,CAAA,GAAAN,CAAA,CAAAlX,MAAA,OAAAsX,CAAA,CAAAsB,IAAA,CAAA1B,CAAA,EAAAM,CAAA,UAAAmD,IAAA,CAAA5Z,KAAA,GAAAmW,CAAA,CAAAM,CAAA,GAAAmD,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAA5Z,KAAA,GAAAoW,CAAA,EAAAwD,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAjD,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,gBAAA+C,SAAA,CAAAva,OAAA,CAAAgX,CAAA,kCAAAgC,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAiC,CAAA,mBAAA1Y,KAAA,EAAAoY,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAApY,KAAA,EAAAmY,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAqC,WAAA,GAAAtD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAb,CAAA,CAAAsE,mBAAA,aAAArE,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAhN,WAAA,WAAA+M,CAAA,KAAAA,CAAA,KAAAgC,iBAAA,6BAAAhC,CAAA,CAAAqE,WAAA,IAAArE,CAAA,CAAAzL,IAAA,OAAAyL,CAAA,CAAAuE,IAAA,aAAAtE,CAAA,WAAAlN,MAAA,CAAAyR,cAAA,GAAAzR,MAAA,CAAAyR,cAAA,CAAAvE,CAAA,EAAAgC,0BAAA,KAAAhC,CAAA,CAAAwE,SAAA,GAAAxC,0BAAA,EAAAlB,MAAA,CAAAd,CAAA,EAAAY,CAAA,yBAAAZ,CAAA,CAAAE,SAAA,GAAApN,MAAA,CAAAsO,MAAA,CAAAkB,CAAA,GAAAtC,CAAA,KAAAD,CAAA,CAAA0E,KAAA,aAAAzE,CAAA,aAAA2C,OAAA,EAAA3C,CAAA,OAAAuC,qBAAA,CAAAE,aAAA,CAAAvC,SAAA,GAAAY,MAAA,CAAA2B,aAAA,CAAAvC,SAAA,EAAAQ,CAAA,iCAAAX,CAAA,CAAA0C,aAAA,GAAAA,aAAA,EAAA1C,CAAA,CAAA2E,KAAA,aAAA1E,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAvQ,OAAA,OAAAnE,CAAA,OAAA4W,aAAA,CAAAvB,IAAA,CAAAlB,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAAE,CAAA,UAAAR,CAAA,CAAAsE,mBAAA,CAAApE,CAAA,IAAApU,CAAA,GAAAA,CAAA,CAAA2X,IAAA,GAAApT,IAAA,WAAA4P,CAAA,WAAAA,CAAA,CAAA6C,IAAA,GAAA7C,CAAA,CAAApW,KAAA,GAAAiC,CAAA,CAAA2X,IAAA,WAAAjB,qBAAA,CAAAD,CAAA,GAAAxB,MAAA,CAAAwB,CAAA,EAAA1B,CAAA,gBAAAE,MAAA,CAAAwB,CAAA,EAAAzW,CAAA,iCAAAiV,MAAA,CAAAwB,CAAA,6DAAAvC,CAAA,CAAAhN,IAAA,aAAAiN,CAAA,QAAAD,CAAA,GAAAjN,MAAA,CAAAkN,CAAA,GAAAC,CAAA,gBAAAE,CAAA,IAAAJ,CAAA,EAAAE,CAAA,CAAAJ,IAAA,CAAAM,CAAA,UAAAF,CAAA,CAAA0E,OAAA,aAAAnB,KAAA,WAAAvD,CAAA,CAAApX,MAAA,SAAAmX,CAAA,GAAAC,CAAA,CAAA2E,GAAA,QAAA5E,CAAA,IAAAD,CAAA,SAAAyD,IAAA,CAAA5Z,KAAA,GAAAoW,CAAA,EAAAwD,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAzD,CAAA,CAAAsC,MAAA,GAAAA,MAAA,EAAAhB,OAAA,CAAAnB,SAAA,KAAAlN,WAAA,EAAAqO,OAAA,EAAA6C,KAAA,WAAAA,MAAAnE,CAAA,aAAA8E,IAAA,WAAArB,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAAlD,CAAA,OAAA6C,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAtB,GAAA,GAAAxB,CAAA,OAAA+D,UAAA,CAAAjX,OAAA,CAAAkX,aAAA,IAAAjE,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA6E,MAAA,OAAA3E,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAkE,KAAA,EAAAlE,CAAA,CAAA8E,KAAA,cAAA9E,CAAA,IAAAD,CAAA,MAAAgF,IAAA,WAAAA,KAAA,SAAAnC,IAAA,WAAA7C,CAAA,QAAA+D,UAAA,IAAAE,UAAA,kBAAAjE,CAAA,CAAArR,IAAA,QAAAqR,CAAA,CAAAwB,GAAA,cAAAyD,IAAA,KAAA9B,iBAAA,WAAAA,kBAAApD,CAAA,aAAA8C,IAAA,QAAA9C,CAAA,MAAAE,CAAA,kBAAAiF,OAAA/E,CAAA,EAAAE,CAAA,WAAAxU,CAAA,CAAA8C,IAAA,YAAA9C,CAAA,CAAA2V,GAAA,GAAAzB,CAAA,EAAAE,CAAA,CAAAuD,IAAA,GAAArD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,KAAAK,CAAA,aAAAA,CAAA,QAAA0D,UAAA,CAAAlb,MAAA,MAAAwX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAwD,UAAA,CAAA1D,CAAA,GAAAxU,CAAA,GAAA0U,CAAA,CAAA0D,UAAA,iBAAA1D,CAAA,CAAAoD,MAAA,SAAAuB,MAAA,aAAA3E,CAAA,CAAAoD,MAAA,SAAAkB,IAAA,QAAAnE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,eAAAK,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,qBAAAG,CAAA,IAAAE,CAAA,aAAAiE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,gBAAAiB,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,cAAAnD,CAAA,aAAAmE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,qBAAAhD,CAAA,QAAA5X,KAAA,qDAAA6b,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,YAAAT,MAAA,WAAAA,OAAApD,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAA8D,UAAA,CAAAlb,MAAA,MAAAoX,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA0D,UAAA,CAAA9D,CAAA,OAAAI,CAAA,CAAAsD,MAAA,SAAAkB,IAAA,IAAA1E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAAwE,IAAA,GAAAxE,CAAA,CAAAwD,UAAA,QAAAtD,CAAA,GAAAF,CAAA,aAAAE,CAAA,iBAAAP,CAAA,mBAAAA,CAAA,KAAAO,CAAA,CAAAoD,MAAA,IAAA5D,CAAA,IAAAA,CAAA,IAAAQ,CAAA,CAAAsD,UAAA,KAAAtD,CAAA,cAAA1U,CAAA,GAAA0U,CAAA,GAAAA,CAAA,CAAA0D,UAAA,cAAApY,CAAA,CAAA8C,IAAA,GAAAqR,CAAA,EAAAnU,CAAA,CAAA2V,GAAA,GAAAzB,CAAA,EAAAQ,CAAA,SAAAuC,MAAA,gBAAAU,IAAA,GAAAjD,CAAA,CAAAsD,UAAA,EAAA/B,CAAA,SAAAqD,QAAA,CAAAtZ,CAAA,MAAAsZ,QAAA,WAAAA,SAAAnF,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAArR,IAAA,QAAAqR,CAAA,CAAAwB,GAAA,qBAAAxB,CAAA,CAAArR,IAAA,mBAAAqR,CAAA,CAAArR,IAAA,QAAA6U,IAAA,GAAAxD,CAAA,CAAAwB,GAAA,gBAAAxB,CAAA,CAAArR,IAAA,SAAAsW,IAAA,QAAAzD,GAAA,GAAAxB,CAAA,CAAAwB,GAAA,OAAAsB,MAAA,kBAAAU,IAAA,yBAAAxD,CAAA,CAAArR,IAAA,IAAAoR,CAAA,UAAAyD,IAAA,GAAAzD,CAAA,GAAA+B,CAAA,KAAAsD,MAAA,WAAAA,OAAApF,CAAA,aAAAD,CAAA,QAAAgE,UAAA,CAAAlb,MAAA,MAAAkX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAA8D,UAAA,CAAAhE,CAAA,OAAAE,CAAA,CAAA4D,UAAA,KAAA7D,CAAA,cAAAmF,QAAA,CAAAlF,CAAA,CAAAgE,UAAA,EAAAhE,CAAA,CAAA6D,QAAA,GAAAE,aAAA,CAAA/D,CAAA,GAAA6B,CAAA,OAAAzR,KAAA,WAAAgV,OAAArF,CAAA,aAAAD,CAAA,QAAAgE,UAAA,CAAAlb,MAAA,MAAAkX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAA8D,UAAA,CAAAhE,CAAA,OAAAE,CAAA,CAAA0D,MAAA,KAAA3D,CAAA,QAAAG,CAAA,GAAAF,CAAA,CAAAgE,UAAA,kBAAA9D,CAAA,CAAAxR,IAAA,QAAA0R,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAAwC,aAAA,CAAA/D,CAAA,YAAAI,CAAA,YAAArX,KAAA,8BAAAsc,aAAA,WAAAA,cAAAvF,CAAA,EAAAE,CAAA,EAAAE,CAAA,gBAAA4C,QAAA,KAAAtC,QAAA,EAAA4B,MAAA,CAAAtC,CAAA,GAAAwD,UAAA,EAAAtD,CAAA,EAAAwD,OAAA,EAAAtD,CAAA,oBAAA2C,MAAA,UAAAtB,GAAA,GAAAxB,CAAA,GAAA8B,CAAA,OAAA/B,CAAA;AAAA,SAAAwF,mBAAApF,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAI,CAAA,EAAAxU,CAAA,EAAA6U,CAAA,cAAAH,CAAA,GAAAJ,CAAA,CAAAtU,CAAA,EAAA6U,CAAA,GAAAE,CAAA,GAAAL,CAAA,CAAA3W,KAAA,WAAAuW,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAAI,CAAA,CAAAsC,IAAA,GAAA7C,CAAA,CAAAY,CAAA,IAAA5Q,OAAA,CAAAC,OAAA,CAAA2Q,CAAA,EAAAxQ,IAAA,CAAA6P,CAAA,EAAAI,CAAA;AAAA,SAAAmF,kBAAArF,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAnX,SAAA,aAAAoH,OAAA,WAAAiQ,CAAA,EAAAI,CAAA,QAAAxU,CAAA,GAAAsU,CAAA,CAAAsF,KAAA,CAAAzF,CAAA,EAAAD,CAAA,YAAA2F,MAAAvF,CAAA,IAAAoF,kBAAA,CAAA1Z,CAAA,EAAAoU,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,UAAAxF,CAAA,cAAAwF,OAAAxF,CAAA,IAAAoF,kBAAA,CAAA1Z,CAAA,EAAAoU,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,WAAAxF,CAAA,KAAAuF,KAAA;AADwC;AAExC,IAAIE,WAAW,GAAG,IAAI;;AAEtB;AACA;AACA;AACA;AACA;AACO,SAAe/H,eAAeA,CAAA;EAAA,OAAAgI,gBAAA,CAAAJ,KAAA,OAAA7c,SAAA;AAAA;;AAmBrC;AACA;AACA;AACA;AACA;AAJA,SAAAid,iBAAA;EAAAA,gBAAA,GAAAL,iBAAA,cAAA1F,mBAAA,GAAAwE,IAAA,CAnBO,SAAAwB,QAAA;IAAA,IAAAC,qBAAA,EAAAC,SAAA,EAAAC,YAAA;IAAA,OAAAnG,mBAAA,GAAAoB,IAAA,UAAAgF,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAtB,IAAA,GAAAsB,QAAA,CAAA3C,IAAA;QAAA;UAAAuC,qBAAA,GAC8Ble,MAAM,CAACsQ,aAAa,EAAhD6N,SAAS,GAAAD,qBAAA,CAATC,SAAS,EAAEC,YAAY,GAAAF,qBAAA,CAAZE,YAAY;UAE/BL,WAAW,GAAGI,SAAS,CAAE,2BAA2B,EAAElH,gDAAW,CAACC,OAAQ,CAAC;;UAE3E;UACA,IAAK6G,WAAW,EAAG;YAClBK,YAAY,CAAEL,WAAW,EAAE,OAAQ,CAAC;UACrC;;UAEA;UACAhY,EAAE,CAACC,KAAK,CAAC0O,SAAS,CAAE,iCAAiC,EAAE,kBAAkB,EAAE,UAAAzD,OAAO,EAAI;YACrF,IAAesN,YAAY,GAAKtN,OAAO,CAA/BuN,KAAK;YAEbD,YAAY,CAACE,MAAM,CAAE,QAAQ,EAAE,OAAO,EAAExH,gDAAW,CAACE,eAAgB,CAAC;YACrEiH,YAAY,CAAEG,YAAY,EAAE,OAAQ,CAAC;UACtC,CAAE,CAAC;QAAC;QAAA;UAAA,OAAAD,QAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAc,OAAA;EAAA,CACJ;EAAA,OAAAD,gBAAA,CAAAJ,KAAA,OAAA7c,SAAA;AAAA;AAOM,SAAS2d,cAAcA,CAAA,EAAG;EAChC,OAAOX,WAAW;AACnB;;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AAC+D;;AAE/D;AACA;AACA;AAC0C;AACC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,eAAeA,CAAEC,KAAK,EAAG;EACxC,IAAA5Z,YAAA,GAA0B3D,sDAAW,CAAC,CAAC;IAA/ByM,aAAa,GAAA9I,YAAA,CAAb8I,aAAa;EAErB,IAAM+Q,QAAQ,GACbD,KAAK,IACL/c,uDAAc,CAAE,oBAAqB,CAAC,CAAC0B,aAAa,KAAAN,MAAA,CAAO6I,sDAAe,cAAa,CAAC,CAAC1C,WAAW;EAErG0E,aAAa,CAAC1E,WAAW,GAAGyV,QAAQ;AACrC;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC+C;AAC4C;;AAE3F;AACA;AACA;AAC0C;AACC;AACe;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACO,SAASlK,eAAeA,CAAE7O,kBAAkB,EAAG;EACrD,IAAAd,YAAA,GAA6F3D,sDAAW,CAAC,CAAC;IAAlGwB,WAAW,GAAAmC,YAAA,CAAXnC,WAAW;IAAE+M,mBAAmB,GAAA5K,YAAA,CAAnB4K,mBAAmB;IAAE/B,SAAS,GAAA7I,YAAA,CAAT6I,SAAS;IAAER,aAAa,GAAArI,YAAA,CAAbqI,aAAa;IAAErB,oBAAoB,GAAAhH,YAAA,CAApBgH,oBAAoB;EACxF,IAAM+S,kBAAkB,GAAG,IAAIla,kDAAU,CAAEhC,WAAY,CAAC;;EAExD;EACA,IAAKiD,kBAAkB,EAAG;IACzBjE,uDAAc,CAAE,oBAAqB,CAAC,CAACqE,SAAS,CAACC,MAAM,CAAE3F,yDAAc,CAAC;EACzE;;EAEA;EACAgL,wDAAY,CAAEoE,mBAAoB,CAAC;;EAEnC;EACA+O,kDAAe,CAAEhb,mDAAE,CAAE,eAAe,EAAE,YAAa,CAAE,CAAC;EACtDyH,wDAAY,CAAE,CAAEyC,SAAS,EAAER,aAAa,EAAErB,oBAAoB,CAAG,CAAC;;EAElE;EACA+S,kBAAkB,CAACxY,MAAM,CAAC,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASqO,qBAAqBA,CAAEM,cAAc,EAAG;EACvD;EACA,IAAK,CAAEA,cAAc,EAAG;IACvB4J,uDAAoB,CAAC,CAAC;IACtB;EACD;;EAEA;EACA,IAAAxY,aAAA,GAAuBjF,sDAAW,CAAC,CAAC;IAA5B6B,UAAU,GAAAoD,aAAA,CAAVpD,UAAU;EAClB,IAAKwI,qDAAS,CAAExI,UAAW,CAAC,EAAG;IAC9B,IAAAuO,aAAA,GAAsBpQ,sDAAW,CAAC,CAAC;MAA3BwM,SAAS,GAAA4D,aAAA,CAAT5D,SAAS;IACjBpF,gDAAI,CAAEvF,UAAW,CAAC;IAClBwF,gDAAI,CAAEmF,SAAU,CAAC;EAClB;EAEA,IAAA8D,aAAA,GAAqGtQ,sDAAW,CAAC,CAAC;IAA1GgM,aAAa,GAAAsE,aAAA,CAAbtE,aAAa;IAAErB,oBAAoB,GAAA2F,aAAA,CAApB3F,oBAAoB;IAAEiB,yBAAyB,GAAA0E,aAAA,CAAzB1E,yBAAyB;IAAEC,wBAAwB,GAAAyE,aAAA,CAAxBzE,wBAAwB;EAEhG9B,wDAAY,CAAE,CAAEiC,aAAa,EAAErB,oBAAoB,EAAEiB,yBAAyB,CAAG,CAAC;EAElF,IAAKI,aAAa,CAAC2R,YAAY,KAAK,CAAC,EAAG;IACvCxT,wDAAY,CAAE,CAAE6B,aAAa,EAAEJ,yBAAyB,CAAG,CAAC;EAC7D;EAEA,IAAK,CAAAC,wBAAwB,aAAxBA,wBAAwB,uBAAxBA,wBAAwB,CAAE8R,YAAY,MAAK,CAAC,EAAG;IACnDvW,gDAAI,CAAEuD,oBAAqB,CAAC;EAC7B;AACD;;;;;;;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AAC+C;AACkC;AAClB;;AAE/D;AACA;AACA;AAC0C;AACL;AACO;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+J,gBAAgBA,CAAA,EAAG;EAC3B,IAAA/Q,YAAA,GAMI3D,sDAAW,CAAC,CAAC;IALhB2B,OAAO,GAAAgC,YAAA,CAAPhC,OAAO;IACPM,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;IACXT,WAAW,GAAAmC,YAAA,CAAXnC,WAAW;IACXsL,yBAAyB,GAAAnJ,YAAA,CAAzBmJ,yBAAyB;IACzBM,0BAA0B,GAAAzJ,YAAA,CAA1ByJ,0BAA0B;EAG3B,IAAMsQ,kBAAkB,GAAG,IAAIla,kDAAU,CAAEhC,WAAY,CAAC;EAExDS,WAAW,CAACvB,KAAK,GAAG,EAAE;;EAEtB;EACAyJ,wDAAY,CAAE2C,yBAA0B,CAAC;;EAEzC;EACA,IAAKM,0BAA0B,EAAG;IACjC,IAAA9I,SAAA,GAAoC/D,iDAAQ,CAAC,CAAC;MAAtC0V,uBAAuB,GAAA3R,SAAA,CAAvB2R,uBAAuB;IAC/B7I,0BAA0B,CAAClL,aAAa,KAAAN,MAAA,CAAO6I,sDAAe,eAAc,CAAC,CAAC1C,WAAW,GAAGkO,uBAAuB;EACpH;;EAEA;EACA,IAAAhR,aAAA,GAAuCjF,sDAAW,CAAC,CAAC;IAA5C4M,0BAA0B,GAAA3H,aAAA,CAA1B2H,0BAA0B;EAClC,IAAAiR,UAAA,GAAgCtd,iDAAQ,CAAC,CAAC;IAAlC4V,mBAAmB,GAAA0H,UAAA,CAAnB1H,mBAAmB;EAC3BvJ,0BAA0B,CAAChJ,OAAO,CAAE,UAAAmC,OAAO;IAAA,OAAIA,OAAO,CAACgC,WAAW,GAAGoO,mBAAmB;EAAA,CAAC,CAAC;;EAE1F;EACA3U,WAAW,CAACqD,SAAS,CAACC,MAAM,CAAE5F,yDAAc,CAAC;EAC7CyC,OAAO,CAACkD,SAAS,CAACC,MAAM,CAAE5F,yDAAc,CAAC;EACzCwe,kBAAkB,CAACxY,MAAM,CAAC,CAAC;EAC3BmC,gDAAI,CAAE1F,OAAQ,CAAC;;EAEf;EACA,IAAKyH,yDAAa,CAAE,aAAc,CAAC,EAAG;IACrCwU,yDAAsB,CAAC,CAAC;EACzB;AACD;AAEA,iEAAelJ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;AC3D/B;AACA;AACA;AAC8C;;AAE9C;AACA;AACA;AACoE;;AAEpE;AACA;AACA;AAC0C;AACO;;AAEjD;AACA;AACA;AACA;AACA;AACO,SAAS+I,oBAAoBA,CAAA,EAAG;EAAA,IAAA3J,mBAAA;EACtC,IAAAxP,SAAA,GAA+B/D,iDAAQ,CAAC,CAAC;IAAjCkE,kBAAkB,GAAAH,SAAA,CAAlBG,kBAAkB;EAC1B,IAAAd,YAAA,GAA0E3D,sDAAW,CAAC,CAAC;IAA/EwM,SAAS,GAAA7I,YAAA,CAAT6I,SAAS;IAAE3K,UAAU,GAAA8B,YAAA,CAAV9B,UAAU;IAAEyB,gBAAgB,GAAAK,YAAA,CAAhBL,gBAAgB;IAAEqH,oBAAoB,GAAAhH,YAAA,CAApBgH,oBAAoB;;EAErE;EACA,IAAKoB,+CAAU,CAACgI,MAAM,OAAAD,mBAAA,GAAKjS,UAAU,CAACgN,OAAO,cAAAiF,mBAAA,uBAAlBA,mBAAA,CAAoBE,IAAI,GAAG;IACrD,IAAKvP,kBAAkB,EAAG;MACzB4C,gDAAI,CAAExF,UAAW,CAAC;MAClBsI,wDAAY,CAAE,CAAEqC,SAAS,EAAE7B,oBAAoB,CAAG,CAAC;IACpD,CAAC,MAAM;MACNvD,gDAAI,CAAEvF,UAAW,CAAC;MAClBA,UAAU,CAACkc,eAAe,CAAE,WAAY,CAAC;IAC1C;IAEA;EACD;;EAEA;EACAlc,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEgJ,+CAAU,CAACgI,MAAO,CAAC;;EAEzD;EACA,IAAA9O,aAAA,GAA4CjF,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAA6B,aAAA,CAAf7B,eAAe;IAAEC,cAAc,GAAA4B,aAAA,CAAd5B,cAAc;EACvCD,eAAe,CAAC2E,WAAW,GAAGzF,mDAAE,CAAE,oBAAoB,EAAE,YAAa,CAAC;EACtEe,cAAc,CAAC0E,WAAW,GAAGzF,mDAAE,CAC9B,gEAAgE,EAChE,YACD,CAAC;EACDgB,gBAAgB,CAACyE,WAAW,GAAGzF,mDAAE,CAAE,oBAAoB,EAAE,YAAa,CAAC;;EAEvE;EACA6H,wDAAY,CAAE,CAAEqC,SAAS,EAAE7B,oBAAoB,CAAG,CAAC;EACnDZ,wDAAY,CAAE,CAAElI,UAAU,EAAEyB,gBAAgB,CAAG,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASqN,uBAAuBA,CAAA,EAAG;EACzC,IAAAP,aAAA,GAAoDpQ,sDAAW,CAAC,CAAC;IAAzDwM,SAAS,GAAA4D,aAAA,CAAT5D,SAAS;IAAE3K,UAAU,GAAAuO,aAAA,CAAVvO,UAAU;IAAEyB,gBAAgB,GAAA8M,aAAA,CAAhB9M,gBAAgB;;EAE/C;EACAzB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEgJ,+CAAU,CAACI,SAAU,CAAC;;EAE5D;EACA,IAAAmE,aAAA,GAA4CtQ,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAAkN,aAAA,CAAflN,eAAe;IAAEC,cAAc,GAAAiN,aAAA,CAAdjN,cAAc;EACvCD,eAAe,CAAC2E,WAAW,GAAGzF,mDAAE,CAAE,cAAc,EAAE,YAAa,CAAC;EAChEe,cAAc,CAAC0E,WAAW,GAAGzF,mDAAE,CAC9B,yDAAyD,EACzD,YACD,CAAC;;EAED;EACA6H,wDAAY,CAAE,CAAEqC,SAAS,EAAElJ,gBAAgB,CAAG,CAAC;EAC/C+D,gDAAI,CAAExF,UAAW,CAAC;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASmc,6BAA6BA,CAAA,EAAG;EAC/C,IAAAtN,aAAA,GAAoD1Q,sDAAW,CAAC,CAAC;IAAzDwM,SAAS,GAAAkE,aAAA,CAATlE,SAAS;IAAE3K,UAAU,GAAA6O,aAAA,CAAV7O,UAAU;IAAEyB,gBAAgB,GAAAoN,aAAA,CAAhBpN,gBAAgB;;EAE/C;EACAzB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEgJ,+CAAU,CAACqJ,MAAO,CAAC;;EAEzD;EACA,IAAA6I,aAAA,GAA4Cje,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAA6a,aAAA,CAAf7a,eAAe;IAAEC,cAAc,GAAA4a,aAAA,CAAd5a,cAAc;EACvCD,eAAe,CAAC2E,WAAW,GAAGzF,mDAAE,CAAE,kCAAkC,EAAE,YAAa,CAAC;EACpFe,cAAc,CAAC0E,WAAW,GAAGzF,mDAAE,CAC9B,6FAA6F,EAC7F,YACD,CAAC;EACDgB,gBAAgB,CAACyE,WAAW,GAAGzF,mDAAE,CAAE,iBAAiB,EAAE,YAAa,CAAC;;EAEpE;EACA8E,gDAAI,CAAEoF,SAAU,CAAC;EACjBzC,wDAAY,CAAE,CAAElI,UAAU,EAAEyB,gBAAgB,CAAG,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS4a,gCAAgCA,CAAA,EAAG;EAClD,IAAAC,aAAA,GAAoDne,sDAAW,CAAC,CAAC;IAAzDwM,SAAS,GAAA2R,aAAA,CAAT3R,SAAS;IAAE3K,UAAU,GAAAsc,aAAA,CAAVtc,UAAU;IAAEyB,gBAAgB,GAAA6a,aAAA,CAAhB7a,gBAAgB;;EAE/C;EACAzB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEgJ,+CAAU,CAACsB,mBAAoB,CAAC;;EAEtE;EACA,IAAA+Q,aAAA,GAA4Cpe,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAAgb,aAAA,CAAfhb,eAAe;IAAEC,cAAc,GAAA+a,aAAA,CAAd/a,cAAc;EACvC,IAAAwa,UAAA,GAAgCtd,iDAAQ,CAAC,CAAC;IAAlC4V,mBAAmB,GAAA0H,UAAA,CAAnB1H,mBAAmB;EAC3B/S,eAAe,CAAC2E,WAAW,GAAGzF,mDAAE,CAAE,wBAAwB,EAAE,YAAa,CAAC;EAC1Ee,cAAc,CAAC0E,WAAW,GAAG+V,wDAAO;EACnC;EACAxb,mDAAE,CAAE,2DAA2D,EAAE,YAAa,CAAC,EAC/E6T,mBACD,CAAC;;EAED;EACAhM,wDAAY,CAAE,CAAEqC,SAAS,EAAElJ,gBAAgB,CAAG,CAAC;EAC/C+D,gDAAI,CAAExF,UAAW,CAAC;AACnB;;;;;;;;;;;;;;;;;AChIA;AACA;AACA;AACwC;;AAExC;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACO,SAAS+b,sBAAsBA,CAAA,EAAG;EACxC,IAAAja,YAAA,GAA+B3D,sDAAW,CAAC,CAAC;IAApCqM,kBAAkB,GAAA1I,YAAA,CAAlB0I,kBAAkB;EAC1B,IAAI7I,kDAAU,CAAE6I,kBAAmB,CAAC,CAACnH,MAAM,CAAC,CAAC;AAC9C;;;;;;;;;;;;;;;;;;;;;;;;+CCjBA,qJAAA0R,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAnN,MAAA,CAAAoN,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAAvN,MAAA,CAAAwN,cAAA,cAAAN,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAArW,KAAA,KAAA2W,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA3U,CAAA,GAAA0U,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,aAAA,uBAAAC,CAAA,GAAAL,CAAA,CAAAM,WAAA,8BAAAC,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAnN,MAAA,CAAAwN,cAAA,CAAAN,CAAA,EAAAD,CAAA,IAAAnW,KAAA,EAAAqW,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAjB,CAAA,CAAAD,CAAA,WAAAe,MAAA,mBAAAd,CAAA,IAAAc,MAAA,YAAAA,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAiB,KAAAlB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAI,CAAA,GAAAR,CAAA,IAAAA,CAAA,CAAAG,SAAA,YAAAiB,SAAA,GAAApB,CAAA,GAAAoB,SAAA,EAAAtV,CAAA,GAAAiH,MAAA,CAAAsO,MAAA,CAAAb,CAAA,CAAAL,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAxU,CAAA,eAAAjC,KAAA,EAAA0X,gBAAA,CAAAtB,CAAA,EAAAC,CAAA,EAAAS,CAAA,MAAA7U,CAAA,aAAA0V,SAAAvB,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAAtR,IAAA,YAAA6S,GAAA,EAAAxB,CAAA,CAAAyB,IAAA,CAAA1B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAArR,IAAA,WAAA6S,GAAA,EAAAxB,CAAA,QAAAD,CAAA,CAAAmB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAApW,CAAA,qCAAAqW,CAAA,GAAApP,MAAA,CAAAqP,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAW,CAAA,EAAAvW,CAAA,MAAAoW,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAApN,MAAA,CAAAsO,MAAA,CAAAa,CAAA,YAAAM,sBAAAvC,CAAA,gCAAAlT,OAAA,WAAAiT,CAAA,IAAAe,MAAA,CAAAd,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAAwC,OAAA,CAAAzC,CAAA,EAAAC,CAAA,sBAAAyC,cAAAzC,CAAA,EAAAD,CAAA,aAAA2C,OAAAzC,CAAA,EAAAI,CAAA,EAAAE,CAAA,EAAA1U,CAAA,QAAA6U,CAAA,GAAAa,QAAA,CAAAvB,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAK,CAAA,mBAAAK,CAAA,CAAA/R,IAAA,QAAAiS,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAAhX,KAAA,SAAA8X,CAAA,gBAAA3Y,OAAA,CAAA2Y,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA3B,CAAA,CAAA9P,OAAA,CAAAyR,CAAA,CAAAiB,OAAA,EAAAvS,IAAA,WAAA4P,CAAA,IAAA0C,MAAA,SAAA1C,CAAA,EAAAO,CAAA,EAAA1U,CAAA,gBAAAmU,CAAA,IAAA0C,MAAA,UAAA1C,CAAA,EAAAO,CAAA,EAAA1U,CAAA,QAAAkU,CAAA,CAAA9P,OAAA,CAAAyR,CAAA,EAAAtR,IAAA,WAAA4P,CAAA,IAAAY,CAAA,CAAAhX,KAAA,GAAAoW,CAAA,EAAAO,CAAA,CAAAK,CAAA,gBAAAZ,CAAA,WAAA0C,MAAA,UAAA1C,CAAA,EAAAO,CAAA,EAAA1U,CAAA,SAAAA,CAAA,CAAA6U,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAAzW,KAAA,WAAAA,MAAAoW,CAAA,EAAAG,CAAA,aAAAyC,2BAAA,eAAA7C,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAAyC,MAAA,CAAA1C,CAAA,EAAAG,CAAA,EAAAJ,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA7P,IAAA,CAAAwS,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAtB,iBAAAvB,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAnB,CAAA,EAAA1U,CAAA,QAAAwU,CAAA,KAAAuB,CAAA,QAAA5Y,KAAA,sCAAAqX,CAAA,KAAAwB,CAAA,oBAAAtB,CAAA,QAAA1U,CAAA,WAAAjC,KAAA,EAAAoW,CAAA,EAAA6C,IAAA,eAAA1C,CAAA,CAAA2C,MAAA,GAAAvC,CAAA,EAAAJ,CAAA,CAAAqB,GAAA,GAAA3V,CAAA,UAAA6U,CAAA,GAAAP,CAAA,CAAA4C,QAAA,MAAArC,CAAA,QAAAE,CAAA,GAAAoC,mBAAA,CAAAtC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA2C,MAAA,EAAA3C,CAAA,CAAA8C,IAAA,GAAA9C,CAAA,CAAA+C,KAAA,GAAA/C,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA2C,MAAA,QAAAzC,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAgD,iBAAA,CAAAhD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA2C,MAAA,IAAA3C,CAAA,CAAAiD,MAAA,WAAAjD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAxB,CAAA,EAAAE,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAAtT,IAAA,QAAA0R,CAAA,GAAAF,CAAA,CAAA0C,IAAA,GAAAhB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAAlY,KAAA,EAAAqY,CAAA,CAAAT,GAAA,EAAAqB,IAAA,EAAA1C,CAAA,CAAA0C,IAAA,kBAAAZ,CAAA,CAAAtT,IAAA,KAAA0R,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA2C,MAAA,YAAA3C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAAwB,oBAAAjD,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAA6C,MAAA,EAAAzC,CAAA,GAAAN,CAAA,CAAAU,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAAL,CAAA,SAAAC,CAAA,CAAA8C,QAAA,qBAAA5C,CAAA,IAAAJ,CAAA,CAAAU,QAAA,CAAA4C,MAAA,KAAApD,CAAA,CAAA6C,MAAA,aAAA7C,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,EAAAgD,mBAAA,CAAAjD,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAA6C,MAAA,kBAAA3C,CAAA,KAAAF,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,uCAAAnD,CAAA,iBAAA2B,CAAA,MAAAvB,CAAA,GAAAgB,QAAA,CAAAlB,CAAA,EAAAN,CAAA,CAAAU,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAjB,CAAA,CAAA5R,IAAA,SAAAsR,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,GAAAjB,CAAA,CAAAiB,GAAA,EAAAvB,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,MAAAjW,CAAA,GAAA0U,CAAA,CAAAiB,GAAA,SAAA3V,CAAA,GAAAA,CAAA,CAAAgX,IAAA,IAAA5C,CAAA,CAAAF,CAAA,CAAAwD,UAAA,IAAA1X,CAAA,CAAAjC,KAAA,EAAAqW,CAAA,CAAAuD,IAAA,GAAAzD,CAAA,CAAA0D,OAAA,eAAAxD,CAAA,CAAA6C,MAAA,KAAA7C,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,GAAAC,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,IAAAjW,CAAA,IAAAoU,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,sCAAArD,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,cAAA4B,aAAA1D,CAAA,QAAAD,CAAA,KAAA4D,MAAA,EAAA3D,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAA6D,QAAA,GAAA5D,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAA8D,UAAA,GAAA7D,CAAA,KAAAD,CAAA,CAAA+D,QAAA,GAAA9D,CAAA,WAAA+D,UAAA,CAAAlE,IAAA,CAAAE,CAAA,cAAAiE,cAAAhE,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAiE,UAAA,QAAAlE,CAAA,CAAApR,IAAA,oBAAAoR,CAAA,CAAAyB,GAAA,EAAAxB,CAAA,CAAAiE,UAAA,GAAAlE,CAAA,aAAAsB,QAAArB,CAAA,SAAA+D,UAAA,MAAAJ,MAAA,aAAA3D,CAAA,CAAAlT,OAAA,CAAA4W,YAAA,cAAAQ,KAAA,iBAAA7B,OAAAtC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAlU,CAAA,OAAAoU,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAA1B,CAAA,4BAAAA,CAAA,CAAAyD,IAAA,SAAAzD,CAAA,OAAAoE,KAAA,CAAApE,CAAA,CAAAlX,MAAA,SAAAwX,CAAA,OAAAE,CAAA,YAAAiD,KAAA,aAAAnD,CAAA,GAAAN,CAAA,CAAAlX,MAAA,OAAAsX,CAAA,CAAAsB,IAAA,CAAA1B,CAAA,EAAAM,CAAA,UAAAmD,IAAA,CAAA5Z,KAAA,GAAAmW,CAAA,CAAAM,CAAA,GAAAmD,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAA5Z,KAAA,GAAAoW,CAAA,EAAAwD,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAjD,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,gBAAA+C,SAAA,CAAAva,OAAA,CAAAgX,CAAA,kCAAAgC,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAiC,CAAA,mBAAA1Y,KAAA,EAAAoY,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAApY,KAAA,EAAAmY,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAqC,WAAA,GAAAtD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAb,CAAA,CAAAsE,mBAAA,aAAArE,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAhN,WAAA,WAAA+M,CAAA,KAAAA,CAAA,KAAAgC,iBAAA,6BAAAhC,CAAA,CAAAqE,WAAA,IAAArE,CAAA,CAAAzL,IAAA,OAAAyL,CAAA,CAAAuE,IAAA,aAAAtE,CAAA,WAAAlN,MAAA,CAAAyR,cAAA,GAAAzR,MAAA,CAAAyR,cAAA,CAAAvE,CAAA,EAAAgC,0BAAA,KAAAhC,CAAA,CAAAwE,SAAA,GAAAxC,0BAAA,EAAAlB,MAAA,CAAAd,CAAA,EAAAY,CAAA,yBAAAZ,CAAA,CAAAE,SAAA,GAAApN,MAAA,CAAAsO,MAAA,CAAAkB,CAAA,GAAAtC,CAAA,KAAAD,CAAA,CAAA0E,KAAA,aAAAzE,CAAA,aAAA2C,OAAA,EAAA3C,CAAA,OAAAuC,qBAAA,CAAAE,aAAA,CAAAvC,SAAA,GAAAY,MAAA,CAAA2B,aAAA,CAAAvC,SAAA,EAAAQ,CAAA,iCAAAX,CAAA,CAAA0C,aAAA,GAAAA,aAAA,EAAA1C,CAAA,CAAA2E,KAAA,aAAA1E,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAvQ,OAAA,OAAAnE,CAAA,OAAA4W,aAAA,CAAAvB,IAAA,CAAAlB,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAAE,CAAA,UAAAR,CAAA,CAAAsE,mBAAA,CAAApE,CAAA,IAAApU,CAAA,GAAAA,CAAA,CAAA2X,IAAA,GAAApT,IAAA,WAAA4P,CAAA,WAAAA,CAAA,CAAA6C,IAAA,GAAA7C,CAAA,CAAApW,KAAA,GAAAiC,CAAA,CAAA2X,IAAA,WAAAjB,qBAAA,CAAAD,CAAA,GAAAxB,MAAA,CAAAwB,CAAA,EAAA1B,CAAA,gBAAAE,MAAA,CAAAwB,CAAA,EAAAzW,CAAA,iCAAAiV,MAAA,CAAAwB,CAAA,6DAAAvC,CAAA,CAAAhN,IAAA,aAAAiN,CAAA,QAAAD,CAAA,GAAAjN,MAAA,CAAAkN,CAAA,GAAAC,CAAA,gBAAAE,CAAA,IAAAJ,CAAA,EAAAE,CAAA,CAAAJ,IAAA,CAAAM,CAAA,UAAAF,CAAA,CAAA0E,OAAA,aAAAnB,KAAA,WAAAvD,CAAA,CAAApX,MAAA,SAAAmX,CAAA,GAAAC,CAAA,CAAA2E,GAAA,QAAA5E,CAAA,IAAAD,CAAA,SAAAyD,IAAA,CAAA5Z,KAAA,GAAAoW,CAAA,EAAAwD,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAzD,CAAA,CAAAsC,MAAA,GAAAA,MAAA,EAAAhB,OAAA,CAAAnB,SAAA,KAAAlN,WAAA,EAAAqO,OAAA,EAAA6C,KAAA,WAAAA,MAAAnE,CAAA,aAAA8E,IAAA,WAAArB,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAAlD,CAAA,OAAA6C,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAtB,GAAA,GAAAxB,CAAA,OAAA+D,UAAA,CAAAjX,OAAA,CAAAkX,aAAA,IAAAjE,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA6E,MAAA,OAAA3E,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAkE,KAAA,EAAAlE,CAAA,CAAA8E,KAAA,cAAA9E,CAAA,IAAAD,CAAA,MAAAgF,IAAA,WAAAA,KAAA,SAAAnC,IAAA,WAAA7C,CAAA,QAAA+D,UAAA,IAAAE,UAAA,kBAAAjE,CAAA,CAAArR,IAAA,QAAAqR,CAAA,CAAAwB,GAAA,cAAAyD,IAAA,KAAA9B,iBAAA,WAAAA,kBAAApD,CAAA,aAAA8C,IAAA,QAAA9C,CAAA,MAAAE,CAAA,kBAAAiF,OAAA/E,CAAA,EAAAE,CAAA,WAAAxU,CAAA,CAAA8C,IAAA,YAAA9C,CAAA,CAAA2V,GAAA,GAAAzB,CAAA,EAAAE,CAAA,CAAAuD,IAAA,GAAArD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,KAAAK,CAAA,aAAAA,CAAA,QAAA0D,UAAA,CAAAlb,MAAA,MAAAwX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAwD,UAAA,CAAA1D,CAAA,GAAAxU,CAAA,GAAA0U,CAAA,CAAA0D,UAAA,iBAAA1D,CAAA,CAAAoD,MAAA,SAAAuB,MAAA,aAAA3E,CAAA,CAAAoD,MAAA,SAAAkB,IAAA,QAAAnE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,eAAAK,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,qBAAAG,CAAA,IAAAE,CAAA,aAAAiE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,gBAAAiB,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,cAAAnD,CAAA,aAAAmE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,qBAAAhD,CAAA,QAAA5X,KAAA,qDAAA6b,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,YAAAT,MAAA,WAAAA,OAAApD,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAA8D,UAAA,CAAAlb,MAAA,MAAAoX,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA0D,UAAA,CAAA9D,CAAA,OAAAI,CAAA,CAAAsD,MAAA,SAAAkB,IAAA,IAAA1E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAAwE,IAAA,GAAAxE,CAAA,CAAAwD,UAAA,QAAAtD,CAAA,GAAAF,CAAA,aAAAE,CAAA,iBAAAP,CAAA,mBAAAA,CAAA,KAAAO,CAAA,CAAAoD,MAAA,IAAA5D,CAAA,IAAAA,CAAA,IAAAQ,CAAA,CAAAsD,UAAA,KAAAtD,CAAA,cAAA1U,CAAA,GAAA0U,CAAA,GAAAA,CAAA,CAAA0D,UAAA,cAAApY,CAAA,CAAA8C,IAAA,GAAAqR,CAAA,EAAAnU,CAAA,CAAA2V,GAAA,GAAAzB,CAAA,EAAAQ,CAAA,SAAAuC,MAAA,gBAAAU,IAAA,GAAAjD,CAAA,CAAAsD,UAAA,EAAA/B,CAAA,SAAAqD,QAAA,CAAAtZ,CAAA,MAAAsZ,QAAA,WAAAA,SAAAnF,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAArR,IAAA,QAAAqR,CAAA,CAAAwB,GAAA,qBAAAxB,CAAA,CAAArR,IAAA,mBAAAqR,CAAA,CAAArR,IAAA,QAAA6U,IAAA,GAAAxD,CAAA,CAAAwB,GAAA,gBAAAxB,CAAA,CAAArR,IAAA,SAAAsW,IAAA,QAAAzD,GAAA,GAAAxB,CAAA,CAAAwB,GAAA,OAAAsB,MAAA,kBAAAU,IAAA,yBAAAxD,CAAA,CAAArR,IAAA,IAAAoR,CAAA,UAAAyD,IAAA,GAAAzD,CAAA,GAAA+B,CAAA,KAAAsD,MAAA,WAAAA,OAAApF,CAAA,aAAAD,CAAA,QAAAgE,UAAA,CAAAlb,MAAA,MAAAkX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAA8D,UAAA,CAAAhE,CAAA,OAAAE,CAAA,CAAA4D,UAAA,KAAA7D,CAAA,cAAAmF,QAAA,CAAAlF,CAAA,CAAAgE,UAAA,EAAAhE,CAAA,CAAA6D,QAAA,GAAAE,aAAA,CAAA/D,CAAA,GAAA6B,CAAA,OAAAzR,KAAA,WAAAgV,OAAArF,CAAA,aAAAD,CAAA,QAAAgE,UAAA,CAAAlb,MAAA,MAAAkX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAA8D,UAAA,CAAAhE,CAAA,OAAAE,CAAA,CAAA0D,MAAA,KAAA3D,CAAA,QAAAG,CAAA,GAAAF,CAAA,CAAAgE,UAAA,kBAAA9D,CAAA,CAAAxR,IAAA,QAAA0R,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAAwC,aAAA,CAAA/D,CAAA,YAAAI,CAAA,YAAArX,KAAA,8BAAAsc,aAAA,WAAAA,cAAAvF,CAAA,EAAAE,CAAA,EAAAE,CAAA,gBAAA4C,QAAA,KAAAtC,QAAA,EAAA4B,MAAA,CAAAtC,CAAA,GAAAwD,UAAA,EAAAtD,CAAA,EAAAwD,OAAA,EAAAtD,CAAA,oBAAA2C,MAAA,UAAAtB,GAAA,GAAAxB,CAAA,GAAA8B,CAAA,OAAA/B,CAAA;AAAA,SAAAwF,mBAAApF,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAI,CAAA,EAAAxU,CAAA,EAAA6U,CAAA,cAAAH,CAAA,GAAAJ,CAAA,CAAAtU,CAAA,EAAA6U,CAAA,GAAAE,CAAA,GAAAL,CAAA,CAAA3W,KAAA,WAAAuW,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAAI,CAAA,CAAAsC,IAAA,GAAA7C,CAAA,CAAAY,CAAA,IAAA5Q,OAAA,CAAAC,OAAA,CAAA2Q,CAAA,EAAAxQ,IAAA,CAAA6P,CAAA,EAAAI,CAAA;AAAA,SAAAmF,kBAAArF,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAnX,SAAA,aAAAoH,OAAA,WAAAiQ,CAAA,EAAAI,CAAA,QAAAxU,CAAA,GAAAsU,CAAA,CAAAsF,KAAA,CAAAzF,CAAA,EAAAD,CAAA,YAAA2F,MAAAvF,CAAA,IAAAoF,kBAAA,CAAA1Z,CAAA,EAAAoU,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,UAAAxF,CAAA,cAAAwF,OAAAxF,CAAA,IAAAoF,kBAAA,CAAA1Z,CAAA,EAAAoU,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,WAAAxF,CAAA,KAAAuF,KAAA;AADA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACgD;;AAEhD;AACA;AACA;AAC0C;AACkB;AACxB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACO,SAAStI,uBAAuBA,CAAEjJ,QAAQ,EAAG;EACnD,IAAMoT,IAAI,GAAGpT,QAAQ,CAAC4D,OAAO,CAACyP,YAAY;EAE1C,QAASD,IAAI;IACZ,KAAKhJ,0CAAK,CAACC,KAAK;IAChB,KAAKD,0CAAK,CAACE,IAAI;IACf,KAAKF,0CAAK,CAACG,QAAQ;IACnB,KAAKH,0CAAK,CAACI,KAAK;MACf8I,gBAAgB,CAAEF,IAAI,EAAEpT,QAAS,CAAC;MAClC;IACD,KAAKoK,0CAAK,CAACK,KAAK;MACf8I,qBAAqB,CAAC,CAAC;MACvB;EACF;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAGC,cAAc;EAAA,oBAAApC,iBAAA,cAAA1F,mBAAA,GAAAwE,IAAA,CAAI,SAAAwB,QAAA;IAAA,IAAA+B,YAAA;MAAAhb,YAAA;MAAA2J,UAAA;MAAAsR,IAAA;MAAAC,MAAA;MAAAC,IAAA;MAAAC,KAAA,GAAArf,SAAA;IAAA,OAAAkX,mBAAA,GAAAoB,IAAA,UAAAgF,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAtB,IAAA,GAAAsB,QAAA,CAAA3C,IAAA;QAAA;UAC7BqE,YAAY,GAAGtB,iDAAc,CAAC,CAAC;UAAA,IAC9BsB,YAAY;YAAA1B,QAAA,CAAA3C,IAAA;YAAA;UAAA;UAAA,OAAA2C,QAAA,CAAA/C,MAAA;QAAA;UAAAvW,YAAA,GAII3D,sDAAW,CAAC,CAAC,EAA5BsN,UAAU,GAAA3J,YAAA,CAAV2J,UAAU;UAClBnD,wDAAY,CAAEmD,UAAW,CAAC;UAE1BqR,YAAY,CAACvB,MAAM,CAAE,QAAQ,EAAE,OAAO,EAAExH,gDAAW,CAACC,OAAQ,CAAC;UAAC,KAAA+I,IAAA,GAAAG,KAAA,CAAApf,MAAA,EAThBkf,MAAM,OAAA5U,KAAA,CAAA2U,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;YAAND,MAAM,CAAAC,IAAA,IAAAC,KAAA,CAAAD,IAAA;UAAA;UAAA7B,QAAA,CAAA3C,IAAA;UAAA,OAU9CoE,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAAnC,KAAA,SAAOsC,MAAO,CAAC;QAAA;UACnCF,YAAY,CAACvB,MAAM,CAAE,MAAO,CAAC;QAAC;QAAA;UAAA,OAAAH,QAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAc,OAAA;EAAA,CAC9B;AAAA;;AAED;AACA,IAAMoC,eAAe,GAAG;EACvBC,KAAK,EAAE,CAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAE;EAC/CC,IAAI,EAAE,CAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAE;EACrCC,QAAQ,EAAE,CAAE,UAAU,EAAE,OAAO,CAAE;EACjCC,KAAK,EAAE,CAAE,OAAO;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMb,gBAAgB,GAAGE,SAAS,CAAE,UAAEJ,IAAI,EAAEpT,QAAQ,EAAM;EAChE,IAAMuJ,YAAY,GAAGvJ,QAAQ,CAAC/I,aAAa,CAAE,yBAA0B,CAAC,CAAC6F,WAAW,CAACiI,IAAI,CAAC,CAAC;EAC3F,IAAA/K,aAAA,GAA8FjF,sDAAW,CAAC,CAAC;IAAnG8N,YAAY,GAAA7I,aAAA,CAAZ6I,YAAY;IAAEC,yBAAyB,GAAA9I,aAAA,CAAzB8I,yBAAyB;IAAEC,sBAAsB,GAAA/I,aAAA,CAAtB+I,sBAAsB;IAAEC,gBAAgB,GAAAhJ,aAAA,CAAhBgJ,gBAAgB;;EAEzF;EACAF,yBAAyB,CAACnK,OAAO,CAAE,UAAAmC,OAAO;IAAA,OAAIA,OAAO,CAACgC,WAAW,GAAGyM,YAAY;EAAA,CAAC,CAAC;;EAElF;EACAxG,sBAAsB,CAACpK,OAAO,CAAE,UAAAyb,IAAI,EAAI;IACvC,IAAMC,QAAQ,GAAGD,IAAI,CAACxQ,OAAO,CAACwP,IAAI;IAClC,IAAMkB,kBAAkB,GAAGP,eAAe,CAAEX,IAAI,CAAE,CAACpV,QAAQ,CAAEqW,QAAS,CAAC;;IAEvE;IACAD,IAAI,CAACxa,SAAS,CAAC2L,MAAM,CAAE,WAAW,EAAE+O,kBAAmB,CAAC;;IAExD;IACA,IAAMC,GAAG,GAAGH,IAAI,CAACnd,aAAa,CAAE,WAAY,CAAC;IAC7Csd,GAAG,CAACzc,YAAY,CAAE,YAAY,EAAEwc,kBAAkB,GAAG,qBAAqB,GAAG,iBAAkB,CAAC;EACjG,CAAE,CAAC;;EAEH;EACA,IAAME,YAAY,GAAGxU,QAAQ,CAAC4D,OAAO,CAAC6Q,IAAI,OAAA9d,MAAA,CAAQqJ,QAAQ,CAAC4D,OAAO,CAAC6Q,IAAI,IAAM,EAAE;EAC/EzR,gBAAgB,CAAC5F,IAAI,GAAG8M,gDAAW,GAAGsK,YAAY;EAElDpY,gDAAI,CAAEyG,YAAa,CAAC;AACrB,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,IAAM0Q,qBAAqB,GAAGC,SAAS,CAAE,YAAM;EACrD,IAAArO,aAAA,GAA8BpQ,sDAAW,CAAC,CAAC;IAAnC6N,iBAAiB,GAAAuC,aAAA,CAAjBvC,iBAAiB;EACzBxG,gDAAI,CAAEwG,iBAAkB,CAAC;AAC1B,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,IAAMqB,uBAAuB,GAAGuP,SAAS,CAAE,YAAM;EACvD,IAAME,YAAY,GAAGtB,iDAAc,CAAC,CAAC;EACrCsB,YAAY,CAACvB,MAAM,CAAE,QAAQ,EAAE,OAAO,EAAExH,gDAAW,CAACE,eAAgB,CAAC;EAErE,IAAAxF,aAAA,GAAgCtQ,sDAAW,CAAC,CAAC;IAArCwN,mBAAmB,GAAA8C,aAAA,CAAnB9C,mBAAmB;EAC3BnG,gDAAI,CAAEmG,mBAAoB,CAAC;AAC5B,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1HH;AACA;AACA;AACoE;AACP;;AAE7D;AACA;AACA;AAC0C;AACe;AACX;AACM;AAC2E;;AAE/H;AACA;AACA;AACA;AACA;AACA;AACO,SAAS2F,oBAAoBA,CAAE5O,gBAAgB,EAAG;EACxD,IAAAZ,YAAA,GAAwG3D,sDAAW,CAAC,CAAC;IAA7GuO,mBAAmB,GAAA5K,YAAA,CAAnB4K,mBAAmB;IAAE/B,SAAS,GAAA7I,YAAA,CAAT6I,SAAS;IAAEe,6BAA6B,GAAA5J,YAAA,CAA7B4J,6BAA6B;IAAEvB,aAAa,GAAArI,YAAA,CAAbqI,aAAa;IAAEjB,aAAa,GAAApH,YAAA,CAAboH,aAAa;EAEnG,IAAK4U,qDAAc,CAACte,SAAS,KAAKkD,gBAAgB,EAAG;IACpD4F,wDAAY,CAAEoE,mBAAoB,CAAC;EACpC;EAEA+O,kDAAe,CAAC,CAAC;EACjBlW,gDAAI,CAAEmG,6BAA8B,CAAC;EACrClG,gDAAI,CAAEmF,SAAU,CAAC;EAEjB,QAASjI,gBAAgB;IACxB,KAAKob,qDAAc,CAACte,SAAS;MAC5Bue,gBAAgB,CAAC,CAAC;MAClB;IACD,KAAK7T,+CAAU,CAACsB,mBAAmB;MAClCwS,sBAAsB,CAAC,CAAC;MACxB;IACD,KAAK9T,+CAAU,CAACI,SAAS;MACxB2T,qBAAqB,CAAC,CAAC;MACvB;IACD,KAAK/T,+CAAU,CAACqJ,MAAM;MACrB2K,mBAAmB,CAAC,CAAC;MACrB;IACD;MACC5V,wDAAY,CAAEY,aAAc,CAAC,CAAC,CAAC;MAC/BhB,wDAAY,EAAIiC,aAAa,EAAApK,MAAA,CAAAoe,kBAAA,CAAKxJ,4DAAoB,CAAEjS,gBAAgB,CAAE,EAAG,CAAC;MAC9E;EACF;AACD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASqb,gBAAgBA,CAAA,EAAG;EAClC,IAAA3a,aAAA,GAQIjF,sDAAW,CAAC,CAAC;IAPhBuO,mBAAmB,GAAAtJ,aAAA,CAAnBsJ,mBAAmB;IACnB7B,gBAAgB,GAAAzH,aAAA,CAAhByH,gBAAgB;IAChB3B,aAAa,GAAA9F,aAAA,CAAb8F,aAAa;IACb+B,yBAAyB,GAAA7H,aAAA,CAAzB6H,yBAAyB;IACzBb,sBAAsB,GAAAhH,aAAA,CAAtBgH,sBAAsB;IACtBpK,UAAU,GAAAoD,aAAA,CAAVpD,UAAU;IACV8I,oBAAoB,GAAA1F,aAAA,CAApB0F,oBAAoB;EAGrBZ,wDAAY,IAAAnI,MAAA,CAAAoe,kBAAA,CAAOzR,mBAAmB,GAAAyR,kBAAA,CAAKjV,aAAa,EAAG,CAAC;EAC5DZ,wDAAY,EAAIuC,gBAAgB,EAAA9K,MAAA,CAAAoe,kBAAA,CAAKlT,yBAAyB,IAAEb,sBAAsB,EAAEpK,UAAU,EAAE8I,oBAAoB,EAAG,CAAC;AAC7H;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASmV,qBAAqBA,CAAA,EAAG;EACvC,IAAAxb,SAAA,GAA2B/D,iDAAQ,CAAC,CAAC;IAA7B2R,cAAc,GAAA5N,SAAA,CAAd4N,cAAc;EAEtB,IAAK,CAAC,KAAKA,cAAc,CAACI,KAAK,EAAG;IACjC3B,0DAAuB,CAAC,CAAC;IACzB;EACD;EAEA,IAAAP,aAAA,GAQIpQ,sDAAW,CAAC,CAAC;IAPhBwB,WAAW,GAAA4O,aAAA,CAAX5O,WAAW;IACXwK,aAAa,GAAAoE,aAAA,CAAbpE,aAAa;IACbjB,aAAa,GAAAqF,aAAA,CAAbrF,aAAa;IACbkB,sBAAsB,GAAAmE,aAAA,CAAtBnE,sBAAsB;IACtBgB,oBAAoB,GAAAmD,aAAA,CAApBnD,oBAAoB;IACpBC,mBAAmB,GAAAkD,aAAA,CAAnBlD,mBAAmB;IACnBF,mBAAmB,GAAAoD,aAAA,CAAnBpD,mBAAmB;;EAGpB;EACA7C,wDAAY,CAAEY,aAAc,CAAC;EAE7B,IAAMkV,cAAc,GAAG,EAAE;;EAEzB;EACA,IAAMC,aAAa,GAAG1e,WAAW,CAACY,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,mBAAkB,CAAC;EAClF+e,cAAc,CAACtJ,IAAI,CAAA4F,KAAA,CAAnB0D,cAAc,EAAAD,kBAAA,CAAUE,aAAa,CAAC,CAAC;;EAEvC;EACA,IAAKhO,cAAc,CAACM,OAAO,GAAG,CAAC,EAAG;IACjCyN,cAAc,CAACtJ,IAAI,CAAE3K,aAAc,CAAC;EACrC;;EAEA;EACA,IAAKkG,cAAc,CAACK,MAAM,GAAG,CAAC,EAAG;IAChC,IAAM4N,qBAAqB,GAAGlW,KAAK,CAACC,IAAI,CAAE8C,mBAAoB,CAAC,CAACoT,MAAM,CACrE,UAAAnV,QAAQ;MAAA,OAAI,CAAE2F,0DAAkB,CAAE3F,QAAS,CAAC;IAAA,CAC7C,CAAC;IAEDd,wDAAY,CAAEgW,qBAAsB,CAAC;IACrCF,cAAc,CAACtJ,IAAI,CAAE1K,sBAAuB,CAAC;IAC7CgU,cAAc,CAACtJ,IAAI,CAAEzJ,mBAAoB,CAAC;IAE1C,IAAK,CAAC,KAAKgF,cAAc,CAACM,OAAO,EAAG;MACnCpL,gDAAI,CAAE6F,oBAAqB,CAAC;IAC7B,CAAC,MAAM;MACNgT,cAAc,CAACtJ,IAAI,CAAE1J,oBAAqB,CAAC;IAC5C;EACD;;EAEA;EACAlD,wDAAY,CAAEkW,cAAe,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASF,mBAAmBA,CAAA,EAAG;EACrC,IAAAlC,UAAA,GAAwBtd,iDAAQ,CAAC,CAAC;IAA1ByV,WAAW,GAAA6H,UAAA,CAAX7H,WAAW;EAEnB,IAAK,CAAC,KAAKA,WAAW,EAAG;IACxBgI,gEAA6B,CAAC,CAAC;IAC/B;EACD;EAEA,IAAA1N,aAAA,GAOItQ,sDAAW,CAAC,CAAC;IANhBuN,6BAA6B,GAAA+C,aAAA,CAA7B/C,6BAA6B;IAC7Bb,gBAAgB,GAAA4D,aAAA,CAAhB5D,gBAAgB;IAChBT,sBAAsB,GAAAqE,aAAA,CAAtBrE,sBAAsB;IACtBiB,mBAAmB,GAAAoD,aAAA,CAAnBpD,mBAAmB;IACnBD,oBAAoB,GAAAqD,aAAA,CAApBrD,oBAAoB;IACpBD,mBAAmB,GAAAsD,aAAA,CAAnBtD,mBAAmB;EAGpB5F,gDAAI,CAAE6F,oBAAqB,CAAC;EAC5BlD,wDAAY,EAAIwD,6BAA6B,EAAEb,gBAAgB,EAAET,sBAAsB,EAAEiB,mBAAmB,EAAAtL,MAAA,CAAAoe,kBAAA,CAAKhT,mBAAmB,EAAG,CAAC;AACzI;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS6S,sBAAsBA,CAAA,EAAG;EACxC,IAAAQ,UAAA,GAAoC9f,iDAAQ,CAAC,CAAC;IAAtC0V,uBAAuB,GAAAoK,UAAA,CAAvBpK,uBAAuB;EAE/B,IAAK,CAAC,KAAKA,uBAAuB,EAAG;IACpCiI,mEAAgC,CAAC,CAAC;IAClC;EACD;EAEA,IAAAxN,aAAA,GAAiE1Q,sDAAW,CAAC,CAAC;IAAtEgM,aAAa,GAAA0E,aAAA,CAAb1E,aAAa;IAAEjB,aAAa,GAAA2F,aAAA,CAAb3F,aAAa;IAAE8B,sBAAsB,GAAA6D,aAAA,CAAtB7D,sBAAsB;EAE5D1C,wDAAY,CAAEY,aAAc,CAAC,CAAC,CAAC;EAC/BhB,wDAAY,EAAIiC,aAAa,EAAApK,MAAA,CAAAoe,kBAAA,CAAKnT,sBAAsB,EAAG,CAAC;AAC7D;AAEA,iEAAesG,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE/KnC;AACA;AACA;AAC2C;AACkB;;AAE7D;AACA;AACA;AACwE;;AAExE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMmN,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGzc,QAAQ;EAAA,OAAI8b,qDAAc,CAACte,SAAS,KAAKwC,QAAQ;AAAA;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACO,IAAMkN,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGlN,QAAQ;EAAA,OAAIkI,+CAAU,CAACI,SAAS,KAAKtI,QAAQ;AAAA;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACO,IAAMsL,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGtL,QAAQ;EAAA,OAAIkI,+CAAU,CAACqJ,MAAM,KAAKvR,QAAQ;AAAA;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACO,IAAM+M,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG3F,QAAQ;EAAA,OACzCzB,yDAAa,CAAEyB,QAAS,CAAC,GAAGA,QAAQ,CAACpG,SAAS,CAAC0b,QAAQ,IAAA3e,MAAA,CAAMV,2CAAM,mBAAkB,CAAC,GAAG,KAAK;AAAA;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACO,IAAM2P,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG5F,QAAQ;EAAA,OACvCzB,yDAAa,CAAEyB,QAAS,CAAC,GAAGA,QAAQ,CAACpG,SAAS,CAAC0b,QAAQ,IAAA3e,MAAA,CAAMV,2CAAM,iBAAgB,CAAC,GAAG,KAAK;AAAA;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACO,IAAM4P,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG7F,QAAQ;EAAA,OACzCzB,yDAAa,CAAEyB,QAAS,CAAC,GAAGiK,4DAAuB,CAACjM,QAAQ,CAAEiN,MAAM,CAAEjL,QAAQ,CAAC4D,OAAO,CAAC7L,EAAG,CAAE,CAAC,GAAG,KAAK;AAAA;;AAEtG;AACA;AACA;AACA;AACA;AACA;AACO,IAAMmR,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGlJ,QAAQ;EAAA,OACvCzB,yDAAa,CAAEyB,QAAS,CAAC,GAAGA,QAAQ,CAACpG,SAAS,CAAC0b,QAAQ,IAAA3e,MAAA,CAAMV,2CAAM,iBAAgB,CAAC,GAAG,KAAK;AAAA;;;;;;;;;;ACrE7F;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEsf,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC9b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;EACAiU,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACCpQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEyb,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAE,CAAC,C","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/dom-ready/build-module/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/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.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/form-templates/index.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 * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = propertyName => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = newState => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( category => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = event => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${ PLUGIN_URL }/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {void}\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div( {\n\t\tid: `${ PREFIX }-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t} ),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${ PREFIX }-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\t// eslint-disable-next-line no-nested-ternary\n\tconst thumbnailURL = hasLiteThumbnail\n\t\t? ( isWebp ? `${ thumbnailBaseURL }/${ key }.webp` : `${ thumbnailBaseURL }/${ key }.png` )\n\t\t: `${ thumbnailBaseURL }/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${ applicationsUrl }&triggerViewApplicationModal=1&template=${ key }`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-icon`,\n\t\t\t\tchild: img( { src: thumbnailURL } )\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan( {\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t} ),\n\t\t\t\t\ta( {\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t} )\n\t\t\t\t]\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements( {\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${ PREFIX }-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${ PREFIX }-list` );\nconst customTemplatesSection = document.getElementById( `${ PREFIX }-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.FAVORITES }\"]`\n);\nconst modal = document.getElementById( `${ PREFIX }-modal` );\n\naddElements( {\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${ PREFIX }-create-form` ),\n\tpageTitle: document.getElementById( `${ PREFIX }-page-title` ),\n\tpageTitleText: document.getElementById( `${ PREFIX }-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${ PREFIX }-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${ PREFIX }-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${ PREFIX }-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${ PREFIX }-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${ PREFIX }-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${ PREFIX }-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${ PREFIX }-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${ PREFIX }-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.AVAILABLE_TEMPLATES }\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${ PREFIX }-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n} );\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t} );\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = event => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[ formsSelect.selectedIndex ];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${ __( 'Template', 'formidable' ) }`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = shouldDisable => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t} );\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${ PREFIX }-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${ FAVORITE_BUTTON_CLASS } use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = event => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${ PREFIX }-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${ PREFIX }-list` )\n\t\t\t? featuredTemplatesList\n\t\t\t: templatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${ templateId }\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${ PREFIX }-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise} The result of the server-side update.\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t} );\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult( { foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true } )\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${ PREFIX }-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = event => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState( {\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n} );\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ] ) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t} );\n\t} );\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', options => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t} );\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${ SKELETON_PREFIX }-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements( [ pageTitle, templatesList, applicationTemplates ] );\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n}\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements( [ templatesList, applicationTemplates, applicationTemplatesTitle ] );\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements( [ templatesList, applicationTemplatesTitle ] );\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${ SKELETON_PREFIX }-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements( [ pageTitle, applicationTemplates ] );\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements( [ pageTitle, applicationTemplates ] );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t// translators: %s is the number of extra templates available\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async ( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[ plan ].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t} );\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${ template.dataset.slug }` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n} );\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n} );\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements( [ templatesList, ...categorizedTemplates[ selectedCategory ] ] );\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements( [ ...bodyContentChildren, ...templateItems ] );\n\thideElements( [ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ] );\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${ PREFIX }-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements( [ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ] );\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements( [ templatesList, ...availableTemplateItems ] );\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-locked-item` ) : false;\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {HTMLElement} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n} );\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","_window$frmDom$util","util","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable-settings-components.js b/js/formidable-settings-components.js index b7f5c4c3ff..71777700cc 100644 --- a/js/formidable-settings-components.js +++ b/js/formidable-settings-components.js @@ -1 +1,2741 @@ -(()=>{"use strict";var e=window.frmGlobal,t=(e.url,e.nonce,"frm_hidden"),n="frm_disabled",i=(Promise.resolve(),window.frmDom.util),r=(i.onClickPreventDefault,i.documentOn),a=(new URL(window.location.href).searchParams,function(e){return null==e?void 0:e.classList.remove(t)});function o(e){return o="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},o(e)}function l(e,t){for(var n=0;n=r)){var a=i.querySelector("select").value,o=this.calculateValue(r,n,this.getMaxValue(a,t));i.querySelector('.frm-slider-value input[type="text"]').value=o,i.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=o,i.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(i,n,t,o+a),this.options[t].translateX=n,this.options[t].value=o+a,this.options[t].fullValue=this.updateValue(i,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 i=Math.ceil(this.sliderBulletWidth*(t/e)),r=Math.ceil((t+i)/e*n);return Math.min(r,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-base-font-size")){var i=document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]');null!==i&&(i.value="true")}if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),a=r.value.split(" "),o=e.dataset.type;switch(a[2]||(a[2]="0px"),a[3]||(a[3]="0px"),o){case"vertical":a[0]=t,a[2]=t;break;case"horizontal":a[1]=t,a[3]=t;break;case"top":a[0]=t;break;case"bottom":a[2]=t;break;case"left":a[3]=t;break;case"right":a[1]=t}var l=a.join(" ");return r.value=l,this.getSliderGroupItems(e).forEach((function(e){var i=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=i})),l}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),c=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,c[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)}))||""}}])&&h(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function g(e){return g="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},g(e)}function b(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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,a=n.querySelector("a");a&&"frm_insert_fields_tab"===a.id&&!a.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{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.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&b(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function E(e){return E="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},E(e)}function w(e,t){for(var n=0;n0))return e.style.paddingLeft="",e.style.paddingTop="",void(e.style.height="");var i=t.offsetHeight;if(Math.max(1,Math.ceil(i/36))>1){var r=function(e){if(!e.length)return 0;var t=0;return e.forEach((function(e){t+=e.offsetWidth})),(t+=4*(e.length-1))+4}(function(e){if(!e.length)return[];var t=Array.from(e),n=-1;t.forEach((function(e){var t=e.getBoundingClientRect().bottom;t>n&&(n=t)}));return t.filter((function(e){var t=e.getBoundingClientRect();return Math.abs(t.bottom-n)<=2}))}(n));e.style.height="".concat(i,"px"),e.style.paddingTop="".concat(i-36+4,"px"),e.style.paddingLeft=r?"".concat(r+8,"px"):""}else e.style.height="",e.style.paddingTop="",e.style.paddingLeft="".concat(t.offsetWidth-4,"px")}}function R(e,t,n){e&&n&&t&&(n.innerHTML="",B(e).forEach((function(e){return function(e,t){var n=V({className:A,children:[V({text:e,className:T}),V({className:O,child:W({href:"#frm_close_icon"})})]});t.appendChild(n)}(e,n)})),D(t,n),t.focus())}function M(e,t,n){if(!e||!t||!n)return!1;var i=B(t.value);return i.includes(e)?(N(n),!1):(i.push(e),X(t,i),N(n),!0)}function F(e,t,n){if(e&&t&&n){var i=e.querySelector(".".concat(T)).textContent;X(t,B(t.value).filter((function(e){return e!==i}))),e.remove(),n.focus()}}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(e=e.trim())?e.split(/\s+/).filter(Boolean):[]}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&(e.value=t.join(" "),jQuery(e).trigger("change"))}function N(e){e&&(e.value="",e.focus())}function U(e){var n=(e?document.getElementById("frm-single-settings-".concat(e)):document.body).querySelectorAll(".".concat("frm-token-input-field"));if(n.length){var i=new Set;n.forEach((function(e){i.has(e.id)||(function(e){var n=function(e){var n=e.closest(".".concat("frm-with-right-icon"));if(n.querySelector(".".concat(C)))return null;n.classList.add(x);var i=V({className:C});n.insertBefore(i,n.firstChild);var r=j("input",{className:_,id:"".concat(e.id,"-proxy-input")});return r.type="text",e.parentNode.insertBefore(r,e.nextSibling),e.classList.add(t),n}(e);if(n){var i=n.querySelector(".".concat(_)),r=n.querySelector(".".concat(C));R(e.value,i,r),function(e,t,n){jQuery(e).on("change",(function(){return R(e.value,t,n)})),t.addEventListener("keydown",(function(i){return function(e,t,n,i){var r=e.key,a=n.value.trim();switch(r){case"Backspace":a||(e.preventDefault(),F(i.querySelector(".".concat(A,":last-child")),t,n));break;case" ":case",":case"Enter":e.preventDefault(),M(a,t,n)}D(n,i)}(i,e,t,n)})),t.addEventListener("blur",(function(){return M(t.value.trim(),e,t)})),n.addEventListener("click",(function(n){return function(e,t,n){var i=e.target.closest(".".concat(O));if(i){var r=i.closest(".".concat(A));if(r){var a=r.parentElement;F(r,t,n),D(n,a)}}}(n,e,t)}))}(e,i,r)}}(e),i.add(e.id))}))}}var z,G="frm-toggle-group",H="frm_toggle_block",J="data-group-name";function Q(e){var t=e.target,n=t.closest(".".concat(G));n&&K(t,n)}function K(e,i){var r,a=(null===(r=i.closest(".".concat("frm-single-settings")))||void 0===r?void 0:r.dataset.fid)||i.dataset.fid,o=e.checked,l=e.getAttribute("data-show");l&&document.querySelectorAll(Y(l,a)).forEach((function(e){return e.classList.toggle(t,!o)}));var s=e.getAttribute("data-disable");s&&document.querySelectorAll(Y(s,a)).forEach((function(e){e.classList.toggle(n,o),e.querySelectorAll("input, select, textarea").forEach((function(e){return e.disabled=o})),e.querySelectorAll(".frm-show-inline-modal[tabindex]").forEach((function(e){return e.tabIndex=o?-1:0}))}));var c=e.getAttribute("data-enable");c&&document.querySelectorAll(Y(c,a)).forEach((function(e){return e.classList.toggle(n,!o)}));var u=e.closest(".".concat(H));Array.from(i.querySelectorAll(".".concat(H))).filter((function(e){return e!==u})).forEach((function(e){e.classList.toggle(n,o);var t=e.querySelector(".frm_toggle");t.tabIndex=o?-1:0,t.setAttribute("aria-disabled",o)}))}function Y(e,t){return e.replace(/{id}/g,t)}function Z(e){var t=e.target.closest(".frm-unit-input"),n=t.querySelector(".frm-unit-input-control"),i=t.querySelector("select").value;e.target.matches("select")&&(n.type=""===i?"text":"number");var r=n.value.trim();t.querySelector('input[type="hidden"]').value=""!==r?r+i:""}z=function(){var e,t;new c,new y,new q,null===(t=document.getElementById("frm-form-add-field"))||void 0===t||t.addEventListener("click",(function(e){var t;e.preventDefault(),null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click()})),U(),document.addEventListener("frm_added_field",(function(e){return U(e.frmField.dataset.fid)})),document.addEventListener("frm_ajax_loaded_field",(function(e){return e.frmFields.forEach((function(e){return U(e.id)}))})),wp.hooks.addAction("frmShowedFieldSettings","formidable-token-input",I),(e=document.querySelectorAll(".".concat(G))).length&&e.forEach((function(e){var t=e.querySelector("[".concat(J,"]:checked"));t&&K(t,e)})),r("change",".".concat(G," [").concat(J,"]"),Q),r("change",".frm-unit-input .frm-unit-input-control",Z),r("change",".frm-unit-input select",Z)},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",z):z())})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./js/src/admin/components/dependent-updater-component.js": +/*!****************************************************************!*\ + !*** ./js/src/admin/components/dependent-updater-component.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. + * The names of the elements that will be updated are specified using the "will-change" attribute. + * It is primarily used in components from Style/Quick Settings. + * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. + */ +var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { + /** + * Creates an instance of frmStyleDependentUpdaterComponent. + * @param {HTMLElement} component - The component element. + */ + function frmStyleDependentUpdaterComponent(component) { + _classCallCheck(this, frmStyleDependentUpdaterComponent); + this.component = component; + try { + var willChangeData = JSON.parse(this.component.dataset.willChange); + this.data = { + propagateInputs: this.initPropagationList(willChangeData), + changeEvent: new Event('change', { + bubbles: true + }) + }; + } catch (error) { + console.error('Error parsing JSON data from "will-change" attribute.', error); + } + } + + /** + * Initializes the list of inputs to propagate changes to. + * The selection is made by provided input's names list in "will-change" attribute. + * @param {string[]} inputNames - The names of the inputs to propagate changes to. + * @return {HTMLElement[]} - The list of inputs to propagate changes to. + */ + return _createClass(frmStyleDependentUpdaterComponent, [{ + key: "initPropagationList", + value: function initPropagationList(inputNames) { + var list = []; + inputNames.forEach(function (name) { + var input = document.querySelector("input[name=\"".concat(name, "\"]")); + if (null !== input) { + list.push(input); + } + }); + return list; + } + + /** + * Updates all dependent elements with the given value. + * @param {string} value - The value to update the dependent elements with. + */ + }, { + key: "updateAllDependentElements", + value: function updateAllDependentElements(value) { + this.data.propagateInputs.forEach(function (input) { + input.value = value; + }); + this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/components/class-tabs-navigator.js": +/*!***************************************************!*\ + !*** ./js/src/components/class-tabs-navigator.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmTabsNavigator = /*#__PURE__*/function () { + function frmTabsNavigator(wrapper) { + _classCallCheck(this, frmTabsNavigator); + if ('undefined' === typeof wrapper) { + return; + } + this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); + if (null === this.wrapper) { + return; + } + this.flexboxSlidesGap = '16px'; + this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; + this.resizeObserver = null; + this.init(); + } + return _createClass(frmTabsNavigator, [{ + key: "init", + value: function init() { + var _this = this; + if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { + return; + } + this.initDefaultSlideTrackerWidth(); + this.navs.forEach(function (nav, index) { + nav.addEventListener('click', function (event) { + return _this.onNavClick(event, index); + }); + }); + this.setupScrollbarObserver(); + // Cleanup observers when page unloads to prevent memory leaks + window.addEventListener('beforeunload', this.cleanupObservers); + } + }, { + key: "onNavClick", + value: function onNavClick(event, index) { + var navItem = event.currentTarget; + event.preventDefault(); + this.removeActiveClassnameFromNavs(); + navItem.classList.add('frm-active'); + this.initSlideTrackUnderline(navItem, index); + this.changeSlide(index); + + // Handle special case for frm_insert_fields_tab + var navLink = navItem.querySelector('a'); + if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { + var _window$frmAdminBuild, _window$frmAdminBuild2; + (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); + } + } + }, { + key: "initDefaultSlideTrackerWidth", + value: function initDefaultSlideTrackerWidth() { + if (!this.slideTrackLine.dataset.initialWidth) { + return; + } + this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); + } + }, { + key: "initSlideTrackUnderline", + value: function initSlideTrackUnderline(nav, index) { + this.slideTrackLine.classList.remove('frm-first', 'frm-last'); + var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { + return nav.classList.contains('frm-active'); + }); + this.positionUnderlineIndicator(activeNav); + } + + /** + * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. + * Automatically repositions the underline indicator when layout changes occur. + */ + }, { + key: "setupScrollbarObserver", + value: function setupScrollbarObserver() { + var _this2 = this; + var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); + if (!scrollbarWrapper || !('ResizeObserver' in window)) { + return; + } + this.resizeObserver = new ResizeObserver(function () { + var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); + if (activeNav) { + _this2.positionUnderlineIndicator(activeNav); + } + }); + this.resizeObserver.observe(scrollbarWrapper); + } + + /** + * Cleans up observers to prevent memory leaks. + */ + }, { + key: "cleanupObservers", + value: function cleanupObservers() { + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + } + } + + /** + * Positions the underline indicator based on the active navigation element. + * + * @param {HTMLElement} activeNav The active navigation element to position the underline under + */ + }, { + key: "positionUnderlineIndicator", + value: function positionUnderlineIndicator(activeNav) { + var _this3 = this; + requestAnimationFrame(function () { + var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; + _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); + _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; + }); + } + }, { + key: "changeSlide", + value: function changeSlide(index) { + this.removeActiveClassnameFromSlides(); + var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); + if ('0px' !== translate) { + this.slideTrack.style.transform = "translateX(".concat(translate, ")"); + } else { + this.slideTrack.style.removeProperty('transform'); + } + if (index in this.slides) { + this.slides[index].classList.add('frm-active'); + } + } + }, { + key: "removeActiveClassnameFromSlides", + value: function removeActiveClassnameFromSlides() { + this.slides.forEach(function (slide) { + return slide.classList.remove('frm-active'); + }); + } + }, { + key: "removeActiveClassnameFromNavs", + value: function removeActiveClassnameFromNavs() { + this.navs.forEach(function (nav) { + return nav.classList.remove('frm-active'); + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./js/src/settings-components/components/index.js": +/*!********************************************************!*\ + !*** ./js/src/settings-components/components/index.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmRadioComponent: () => (/* reexport safe */ _radio_component__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ frmSliderComponent: () => (/* reexport safe */ _slider_component__WEBPACK_IMPORTED_MODULE_1__["default"]), +/* harmony export */ frmTabsComponent: () => (/* reexport safe */ _tabs_component__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group__WEBPACK_IMPORTED_MODULE_4__.initToggleGroupComponents), +/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_3__.initTokenInputFields), +/* harmony export */ setupUnitInputHandlers: () => (/* reexport safe */ _unit_input__WEBPACK_IMPORTED_MODULE_5__.setupUnitInputHandlers) +/* harmony export */ }); +/* harmony import */ var _radio_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-component */ "./js/src/settings-components/components/radio-component.js"); +/* harmony import */ var _slider_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slider-component */ "./js/src/settings-components/components/slider-component.js"); +/* harmony import */ var _tabs_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabs-component */ "./js/src/settings-components/components/tabs-component.js"); +/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/index.js"); +/* harmony import */ var _toggle_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toggle-group */ "./js/src/settings-components/components/toggle-group/index.js"); +/* harmony import */ var _unit_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./unit-input */ "./js/src/settings-components/components/unit-input.js"); + + + + + + + +/***/ }), + +/***/ "./js/src/settings-components/components/radio-component.js": +/*!******************************************************************!*\ + !*** ./js/src/settings-components/components/radio-component.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmRadioComponent) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Internal dependencies + */ + + + +/** + * Represents a radio component. + * @class + */ +var frmRadioComponent = /*#__PURE__*/function () { + function frmRadioComponent() { + var _this = this; + _classCallCheck(this, frmRadioComponent); + this.radioElements = document.querySelectorAll('.frm-style-component.frm-radio-component'); + this.observers = new Map(); + if (0 < this.radioElements.length) { + this.init(); + } + + /** + * Handles the addition of new fields. + * + * @param {Event} event The frm_added_field event. + * @param {HTMLElement} event.frmField The added field object being destructured from the event. + */ + document.addEventListener('frm_added_field', function (_ref) { + var frmField = _ref.frmField; + return _this.discoverAndInitFieldRadios(frmField.dataset.fid); + }); + + /** + * Handles the addition of new fields via AJAX. + * + * @param {Event} event The frm_ajax_loaded_field event. + * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. + */ + document.addEventListener('frm_ajax_loaded_field', function (_ref2) { + var frmFields = _ref2.frmFields; + return frmFields.forEach(function (field) { + return _this.discoverAndInitFieldRadios(field.id); + }); + }); + + // Cleanup observers when page unloads to prevent memory leaks + window.addEventListener('beforeunload', function () { + return _this.cleanupObservers(); + }); + } + + /** + * Initializes the radio component. + */ + return _createClass(frmRadioComponent, [{ + key: "init", + value: function init() { + this.initRadio(); + this.initTrackerOnAccordionClick(); + } + + /** + * Discovers and initializes radio components for a specific field. + * + * @param {string|number} fieldId The unique identifier of the field whose radio components should be discovered and initialized + * @throws {Error} Throws an error if the field container is not found in the DOM + */ + }, { + key: "discoverAndInitFieldRadios", + value: function discoverAndInitFieldRadios(fieldId) { + var fieldContainer = document.getElementById("frm-single-settings-".concat(fieldId)); + if (!fieldContainer) { + throw new Error("Field container not found for field ID: ".concat(fieldId)); + } + this.radioElements = fieldContainer.querySelectorAll('.frm-style-component.frm-radio-component'); + this.initRadio(); + } + + /** + * Initializes the radio component. + */ + }, { + key: "initRadio", + value: function initRadio() { + var _this2 = this; + this.radioElements.forEach(function (element) { + _this2.initOnRadioChange(element); + _this2.initVisibilityObserver(element); + }); + } + }, { + key: "initTrackerOnAccordionClick", + value: function initTrackerOnAccordionClick() { + var _this3 = this; + var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); + accordionitems.forEach(function (accordionitem) { + accordionitem.addEventListener('click', function (event) { + var wrapper = event.target.closest('.accordion-section'); + var radioButtons = wrapper.querySelectorAll('.frm-style-component.frm-radio-component input[type="radio"]:checked'); + radioButtons.forEach(function (radio) { + setTimeout(function () { + return _this3.onRadioChange(radio); + }, 200); + }); + }); + }); + } + + /** + * Initializes the onRadioChange event for the given wrapper. + * @param {HTMLElement} radioElement - The radio element. + */ + }, { + key: "initOnRadioChange", + value: function initOnRadioChange(radioElement) { + var _this4 = this; + radioElement.querySelectorAll('input[type="radio"]').forEach(function (radio) { + if (radio.checked) { + _this4.onRadioChange(radio); + } + radio.addEventListener('change', function (event) { + _this4.onRadioChange(event.target); + }); + }); + } + + /** + * Handles the onRadioChange event for the given wrapper. + * @param {HTMLElement} target - The active radio button. + */ + }, { + key: "onRadioChange", + value: function onRadioChange(target) { + var wrapper = target.closest('.frm-style-component.frm-radio-component'); + var activeItem = wrapper.querySelector('input[type="radio"]:checked + label'); + if (null === activeItem) { + return; + } + this.moveTracker(activeItem, wrapper); + this.hideExtraElements(target); + this.maybeShowExtraElements(target); + } + + /** + * Display additional elements related to the selected radio option. + * @param {HTMLElement} radio - The radio button element. + */ + }, { + key: "maybeShowExtraElements", + value: function maybeShowExtraElements(radio) { + var elementAttr = radio.getAttribute('data-frm-show-element'); + if (null === elementAttr) { + return; + } + var elements = document.querySelectorAll("div[data-frm-element=\"".concat(elementAttr, "\"]")); + if (0 === elements.length) { + return; + } + elements.forEach(function (element) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(element); + element.classList.add('frm-element-is-visible'); + }); + } + + /** + * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown. + * + * @param {HTMLElement} element The radio component element + * @return {void} + */ + }, { + key: "initVisibilityObserver", + value: function initVisibilityObserver(element) { + var _this5 = this; + if (this.observers.has(element)) { + this.observers.get(element).disconnect(); + } + var observer = new MutationObserver(function () { + // Check if element is now visible + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.isVisible)(element)) { + var radio = element.querySelector('input[type="radio"]:checked'); + if (radio) { + _this5.onRadioChange(radio); + } + } + }); + this.observers.set(element, observer); + + // Observe for attribute changes on the component and its ancestors + observer.observe(element, { + attributes: true, + attributeFilter: ['class', 'style'] + }); + + // Also observe parent elements up to a reasonable depth + var parent = element.parentElement; + for (var i = 0; i < 7 && parent; i++) { + observer.observe(parent, { + attributes: true, + attributeFilter: ['class', 'style'] + }); + parent = parent.parentElement; + } + } + + /** + * Cleanup all observers to prevent memory leaks. + */ + }, { + key: "cleanupObservers", + value: function cleanupObservers() { + this.observers.forEach(function (observer) { + observer.disconnect(); + }); + this.observers.clear(); + } + + /** + * Hide the possible opepend extra elements. + */ + }, { + key: "hideExtraElements", + value: function hideExtraElements() { + var elements = document.querySelectorAll('.frm-element-is-visible'); + if (0 === elements.length) { + return; + } + elements.forEach(function (element) { + element.classList.remove('frm-element-is-visible'); + element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(element); + }); + } + + /** + * Moves the tracker to the active item. + * @param {HTMLElement} activeItem - The active item element. + * @param {HTMLElement} wrapper - The wrapper element. + */ + }, { + key: "moveTracker", + value: function moveTracker(activeItem, wrapper) { + var offset = activeItem.offsetLeft; + var width = activeItem.offsetWidth; + var tracker = wrapper.querySelector('.frm-radio-active-tracker'); + tracker.style.left = 0; + tracker.style.width = "".concat(width, "px"); + tracker.style.transform = "translateX(".concat(offset, "px)"); + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/settings-components/components/slider-component.js": +/*!*******************************************************************!*\ + !*** ./js/src/settings-components/components/slider-component.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmSliderComponent) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../admin/components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Internal dependencies + */ + + + +/** + * Represents a slider component. + * @class frmSliderComponent + */ +var frmSliderComponent = /*#__PURE__*/function () { + function frmSliderComponent() { + var _this = this; + _classCallCheck(this, frmSliderComponent); + this.sliderElements = document.querySelectorAll('.frm-slider-component'); + if (0 === this.sliderElements.length) { + return; + } + + // The slider bullet point width in pixels. Used in value calculation on drag event. + this.sliderBulletWidth = 16; + this.sliderMarginRight = 5; + this.eventsChange = []; + var debounce = frmDom.util.debounce; + this.valueChangeDebouncer = debounce(function (index) { + return _this.triggerValueChange(index); + }, 25); + this.initOptions(); + this.init(); + } + + /** + * Initializes the options for the slider component. + */ + return _createClass(frmSliderComponent, [{ + key: "initOptions", + value: function initOptions() { + var _this2 = this; + this.options = []; + this.sliderElements.forEach(function (element, index) { + var parentWrapper = element.classList.contains('frm-has-multiple-values') ? element.closest('.frm-style-component') : element; + _this2.options.push({ + dragging: false, + startX: 0, + translateX: 0, + maxValue: parseInt(element.dataset.maxValue, 10), + element: element, + index: index, + value: 0, + dependentUpdater: parentWrapper.classList.contains('frm-style-dependent-updater-component') ? new _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](parentWrapper) : null + }); + }); + } + + /** + * Initializes the slider component. + */ + }, { + key: "init", + value: function init() { + this.initSlidersPosition(); + this.initDraggable(); + } + + /** + * Initializes the draggable functionality for the slider component. + */ + }, { + key: "initDraggable", + value: function initDraggable() { + var _this3 = this; + this.sliderElements.forEach(function (element, index) { + _this3.eventsChange[index] = new Event('change', { + bubbles: true, + cancelable: true + }); + var draggableBullet = element.querySelector('.frm-slider-bullet'); + var valueInput = element.querySelector('.frm-slider-value input[type="text"]'); + valueInput.addEventListener('change', function (event) { + var unit = element.querySelector('select').value; + if (_this3.getMaxValue(unit, index) < parseInt(event.target.value, 10)) { + return; + } + _this3.initSliderWidth(element); + _this3.options[index].fullValue = _this3.updateValue(element, valueInput.value + unit); + _this3.triggerValueChange(index); + }); + _this3.expandSliderGroup(element); + _this3.updateOnUnitChange(element, valueInput, index); + _this3.changeSliderPositionOnClick(element, valueInput, index); + draggableBullet.addEventListener('mousedown', function (event) { + event.preventDefault(); + event.stopPropagation(); + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.enableDragging(event, index); + }); + draggableBullet.addEventListener('mousemove', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.moveTracker(event, index); + }); + draggableBullet.addEventListener('mouseup', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.disableDragging(index, event); + }); + draggableBullet.addEventListener('mouseleave', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.disableDragging(index, event); + }); + }); + } + }, { + key: "expandSliderGroup", + value: function expandSliderGroup(element) { + var svgIcon = element.querySelector('.frmsvg'); + if ('undefined' === typeof element.dataset.displaySliders || null === svgIcon) { + return; + } + var sliderGroupItems = this.getSliderGroupItems(element); + svgIcon.addEventListener('click', function () { + sliderGroupItems.forEach(function (item) { + item.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); + }); + }); + } + }, { + key: "updateOnUnitChange", + value: function updateOnUnitChange(element, valueInput, index) { + var _this4 = this; + element.querySelector('select').addEventListener('change', function (event) { + var unit = event.target.value.toLowerCase(); + if ('' === unit) { + element.classList.add('frm-disabled', 'frm-empty'); + return; + } + if ('auto' === unit) { + element.classList.add('frm-disabled'); + _this4.updateValue(element, 'auto'); + _this4.triggerValueChange(index); + return; + } + element.classList.remove('frm-disabled', 'frm-empty'); + _this4.options[index].fullValue = valueInput.value + unit; + _this4.updateValue(element, _this4.options[index].fullValue); + _this4.triggerValueChange(index); + }); + } + }, { + key: "changeSliderPositionOnClick", + value: function changeSliderPositionOnClick(element, valueInput, index) { + var _this5 = this; + var frmSlider = element.querySelector('.frm-slider'); + var customEvent = new Event('change', { + bubbles: true, + cancelable: true + }); + frmSlider.addEventListener('click', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + event.preventDefault(); + event.stopPropagation(); + if (!event.target.classList.contains('frm-slider') && !event.target.classList.contains('frm-slider-active-track')) { + return; + } + var sliderWidth = frmSlider.offsetWidth - _this5.sliderBulletWidth; + var sliderRect = frmSlider.getBoundingClientRect(); + var deltaX = event.clientX - sliderRect.left - _this5.sliderBulletWidth; + var unit = element.querySelector('select').value; + var value = _this5.calculateValue(sliderWidth, deltaX, _this5.getMaxValue(unit, index)); + if (value < 0) { + return; + } + _this5.options[index].fullValue = _this5.updateValue(element, value + unit); + _this5.initChildSlidersWidth(element, deltaX, index, value + unit); + valueInput.value = value; + valueInput.dispatchEvent(customEvent); + }); + } + + /** + * Retrieves an array of slider group items based on the provided element. + * + * @param {HTMLElement} element - The element to retrieve slider group items from. + * @return {NodeList} - An array-like object containing the slider group items. + */ + }, { + key: "getSliderGroupItems", + value: function getSliderGroupItems(element) { + if ('undefined' === typeof element.dataset.displaySliders) { + return []; + } + var slidersGroup = element.dataset.displaySliders.split(','); + var query = slidersGroup.map(function (item) { + return ".frm-slider-component[data-type=\"".concat(item, "\"]"); + }).join(', '); + return element.closest('.frm-style-component').querySelectorAll(query); + } + + /** + * Initializes the position of sliders when a accordion section is opened. + */ + }, { + key: "initSlidersPosition", + value: function initSlidersPosition() { + var _this6 = this; + var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); + var quickSettings = document.querySelector('.frm-quick-settings'); + var 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', function (event) { + var imageBackgroundOpacitySlider = event.closest('.accordion-section-content').querySelector('#frm-bg-image-opacity-slider'); + _this6.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(function (item) { + item.addEventListener('click', function (event) { + _this6.initSlidersWidth(event.target.closest('.accordion-section')); + }); + }); + this.initSliderPositionOnFieldShapeChange(); + } + + /** + * Initializes the width of "Corner Radius" slider that is dynamically is displayed on "Field Shape" option change from "Quick Settings". + * + * @return {void} + */ + }, { + key: "initSliderPositionOnFieldShapeChange", + value: function initSliderPositionOnFieldShapeChange() { + var _this7 = this; + var fieldShapeType = document.querySelector('.frm-style-component.frm-field-shape'); + if (null === fieldShapeType) { + return; + } + var radioButtons = fieldShapeType.querySelectorAll('input[type="radio"]'); + radioButtons.forEach(function (radio) { + radio.addEventListener('change', function (event) { + if (event.target.checked && 'rounded-corner' === event.target.value) { + var slider = document.querySelector('div[data-frm-element="field-shape-corner-radius"] .frm-slider-component'); + _this7.initSliderWidth(slider); + } + }); + }); + } + + /** + * Initializes the width of sliders within a given section. + * + * @param {HTMLElement} section - The section containing the sliders. + * @return {void} + */ + }, { + key: "initSlidersWidth", + value: function initSlidersWidth(section) { + var _this8 = this; + var sliders = section.querySelectorAll('.frm-slider-component'); + sliders.forEach(function (slider) { + setTimeout(function () { + _this8.initSliderWidth(slider); + }, 100); + }); + } + + /** + * Initializes the width of a slider. + * + * @param {HTMLElement} slider - The slider element. + * @return {void} + */ + }, { + key: "initSliderWidth", + value: function initSliderWidth(slider) { + if (slider.classList.contains('frm-disabled')) { + return; + } + var index = this.getSliderIndex(slider); + var sliderWidth = slider.querySelector('.frm-slider').offsetWidth - this.sliderBulletWidth; + var value = parseInt(slider.querySelector('.frm-slider-value input[type="text"]').value, 10); + var unit = slider.querySelector('select').value; + var deltaX = '%' === unit ? Math.round(sliderWidth * value / 100) : Math.ceil(value / this.options[index].maxValue * sliderWidth); + slider.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); + this.options[index].translateX = deltaX; + this.options[index].value = value + unit; + } + + /** + * Initializes the width of child sliders. + * + * @param {HTMLElement} slider - The parent slider element. + * @param {number} width - The width to set for the child sliders. + * @param {number} index - The starting index for the child sliders. + * @param {number} value - The value to set for the child sliders. + */ + }, { + key: "initChildSlidersWidth", + value: function initChildSlidersWidth(slider, width, index, value) { + var _this9 = this; + if (!slider.classList.contains('frm-has-independent-fields') && !slider.classList.contains('frm-has-multiple-values')) { + return; + } + var childSliders = slider.classList.contains('frm-has-independent-fields') ? slider.querySelectorAll('.frm-independent-slider-field') : this.getSliderGroupItems(slider); + childSliders.forEach(function (item, childIndex) { + item.querySelector('.frm-slider-active-track').style.width = "".concat(width, "px"); + _this9.options[index + childIndex + 1].translateX = width; + _this9.options[index + childIndex + 1].value = value; + }); + } + + /** + * Returns the index of the specified slider element. + * + * @param {HTMLElement} slider - The slider element. + * @return {number} The index of the slider element. + */ + }, { + key: "getSliderIndex", + value: function getSliderIndex(slider) { + return this.options.filter(function (option) { + return option.element === slider; + })[0].index; + } + + /** + * Handles the movement of the slider tracker. + * + * @param {Event} event - The event object representing the mouse movement. + * @param {number} index - The index of the slider element. + * @return {void} + */ + }, { + key: "moveTracker", + value: function moveTracker(event, index) { + if (!this.options[index].dragging) { + return; + } + var deltaX = event.clientX - this.options[index].startX; + var element = this.sliderElements[index]; + var sliderWidth = element.querySelector('.frm-slider').offsetWidth; + + // Ensure deltaX does not go below 0 + deltaX = Math.max(deltaX, 0); + if (deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth) { + return; + } + var unit = element.querySelector('select').value; + var value = this.calculateValue(sliderWidth, deltaX, this.getMaxValue(unit, index)); + element.querySelector('.frm-slider-value input[type="text"]').value = value; + element.querySelector('.frm-slider-bullet .frm-slider-value-label').innerText = value; + element.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); + this.initChildSlidersWidth(element, deltaX, index, value + unit); + this.options[index].translateX = deltaX; + this.options[index].value = value + unit; + this.options[index].fullValue = this.updateValue(element, this.options[index].value); + this.valueChangeDebouncer(index); + } + + /** + * Get the maximum value based on the unit and index. + * + * @param {string} unit - The unit of measurement. + * @param {number} index - The index of the option. + * @return {number} The maximum value. + */ + }, { + key: "getMaxValue", + value: function getMaxValue(unit, index) { + return '%' === unit ? 100 : this.options[index].maxValue; + } + + /** + * Enables dragging for the slider component. + * + * @param {Event} event - The event object. + * @param {number} index - The index of the option being dragged. + */ + }, { + key: "enableDragging", + value: function enableDragging(event, index) { + event.target.classList.add('frm-dragging'); + this.options[index].dragging = true; + this.options[index].startX = event.clientX - this.options[index].translateX; + } + + /** + * Disables dragging for a specific index. + * + * @param {number} index - The index of the option to disable dragging for. + * @param {Event} event - The event object triggered by the dragging action. + */ + }, { + key: "disableDragging", + value: function disableDragging(index, event) { + if (false === this.options[index].dragging) { + return; + } + event.target.classList.remove('frm-dragging'); + this.options[index].dragging = false; + this.triggerValueChange(index); + } + + /** + * Triggers a value change for the specified index. + * + * @param {number} index - The index of the value to be changed. + */ + }, { + key: "triggerValueChange", + value: function triggerValueChange(index) { + var _this10 = this; + if (null !== this.options[index].dependentUpdater) { + this.options[index].dependentUpdater.updateAllDependentElements(this.options[index].fullValue); + return; + } + var 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"]'); + if (input instanceof NodeList) { + input.forEach(function (item) { + item.dispatchEvent(_this10.eventsChange[index]); + }); + return; + } + input.dispatchEvent(this.eventsChange[index]); + } + + /** + * Calculates the value based on the width, deltaX, and maxValue. + * + * @param {number} width - The width of the slider. + * @param {number} deltaX - The change in x-coordinate. + * @param {number} maxValue - The maximum value. + * @return {number} - The calculated value. + */ + }, { + key: "calculateValue", + value: function calculateValue(width, deltaX, maxValue) { + // Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet. + // 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. + var delta = Math.ceil(this.sliderBulletWidth * (deltaX / width)); + var value = Math.ceil((deltaX + delta) / width * maxValue); + return Math.min(value, maxValue); + } + + /** + * Updates the value of a slider component. + * + * @param {HTMLElement} element - The slider component element. + * @param {string} value - The new value to be set. + * @return {string} - The updated value. + */ + }, { + key: "updateValue", + value: function updateValue(element, value) { + var _this11 = this; + // When the slider component is used for "Base Font Size", we need to update a hidden input field when change happens to indicate that the "Base Font Size" has been adjusted. + // Used to avoid conflicts with other possible font sizes adjustemnts in "Advanced Settings" when moving from "Quick Settings" when "Base Font Size" is not changed. + if (element.classList.contains('frm-base-font-size')) { + var userBaseFontSizeInput = document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]'); + if (null !== userBaseFontSizeInput) { + userBaseFontSizeInput.value = 'true'; + } + } + if (element.classList.contains('frm-has-multiple-values')) { + var input = element.closest('.frm-style-component').querySelector('input[type="hidden"]'); + var inputValue = input.value.split(' '); + var type = element.dataset.type; + if (!inputValue[2]) { + inputValue[2] = '0px'; + } + if (!inputValue[3]) { + inputValue[3] = '0px'; + } + switch (type) { + case 'vertical': + inputValue[0] = value; + inputValue[2] = value; + break; + case 'horizontal': + inputValue[1] = value; + inputValue[3] = value; + break; + case 'top': + inputValue[0] = value; + break; + case 'bottom': + inputValue[2] = value; + break; + case 'left': + inputValue[3] = value; + break; + case 'right': + inputValue[1] = value; + break; + } + var newValue = inputValue.join(' '); + input.value = newValue; + var childSlidersGroup = this.getSliderGroupItems(element); + childSlidersGroup.forEach(function (slider) { + var unitMeasure = _this11.getUnitMeasureFromValue(value); + slider.querySelector('.frm-slider-value input[type="text"]').value = parseInt(value, 10); + slider.querySelector('select').value = unitMeasure; + }); + return newValue; + } + if (element.classList.contains('frm-has-independent-fields')) { + var inputValues = element.querySelectorAll('.frm-slider-value input[type="hidden"]'); + var visibleValues = element.querySelectorAll('.frm-slider-value input[type="text"]'); + inputValues.forEach(function (input, index) { + input.value = value; + visibleValues[index + 1].value = parseInt(value, 10); + }); + return value; + } + element.querySelector('.frm-slider-value input[type="hidden"]').value = value; + return value; + } + + /** + * Returns the unit of measurement used in the given value. + * + * @param {string} value - The value to check for the unit of measurement. + * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found. + */ + }, { + key: "getUnitMeasureFromValue", + value: function getUnitMeasureFromValue(value) { + return ['%', 'px', 'em'].find(function (unit) { + return value.includes(unit); + }) || ''; + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/settings-components/components/tabs-component.js": +/*!*****************************************************************!*\ + !*** ./js/src/settings-components/components/tabs-component.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmTabsComponent) +/* harmony export */ }); +/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + +/** + * Represents a Tabs Component. + * @class + */ +var frmTabsComponent = /*#__PURE__*/function () { + function frmTabsComponent() { + _classCallCheck(this, frmTabsComponent); + this.elements = document.querySelectorAll('.frm-style-tabs-wrapper'); + if (0 < this.elements.length) { + this.init(); + } + } + + /** + * Initializes the Tabs Component. + */ + return _createClass(frmTabsComponent, [{ + key: "init", + value: function init() { + this.elements.forEach(function (element) { + new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__.frmTabsNavigator(element); + }); + } + + /** + * Initializes the component on tab click. + * @param {Element} wrapper - The wrapper element. + */ + }, { + key: "initOnTabClick", + value: function initOnTabClick(wrapper) { + var _this = this; + this.initActiveBackgroundWidth(wrapper); + wrapper.querySelectorAll('.frm-tab-item').forEach(function (tab) { + tab.addEventListener('click', function (event) { + _this.onTabClick(event.target.closest('.frm-tabs-wrapper')); + }); + }); + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/settings-components/components/toggle-group/index.js": +/*!*********************************************************************!*\ + !*** ./js/src/settings-components/components/toggle-group/index.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__.initToggleGroupComponents) +/* harmony export */ }); +/* harmony import */ var _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toggle-group.js */ "./js/src/settings-components/components/toggle-group/toggle-group.js"); + + +/***/ }), + +/***/ "./js/src/settings-components/components/toggle-group/toggle-group.js": +/*!****************************************************************************!*\ + !*** ./js/src/settings-components/components/toggle-group/toggle-group.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initToggleGroupComponents: () => (/* binding */ initToggleGroupComponents) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Group Toggle Component + * + * Handles toggling visibility and enabled state of related form elements + */ + +/** + * Internal dependencies + */ + + + +/** + * Class names for group toggle component + * + * @private + */ +var CLASS_NAMES = { + GROUP_TOGGLE: 'frm-toggle-group', + TOGGLE_BLOCK: 'frm_toggle_block' +}; + +/** + * Data attributes for group toggle component + * + * @private + */ +var DATA_ATTRIBUTES = { + GROUP_NAME: 'data-group-name', + SHOW: 'data-show', + DISABLE: 'data-disable', + ENABLE: 'data-enable' +}; + +/** + * Initialize all group toggle components on the page + * + * @return {void} + */ +function initToggleGroupComponents() { + applyInitialState(); + addEventListeners(); +} + +/** + * Apply the initial state for all toggle buttons on the page + * + * @private + * @return {void} + */ +function applyInitialState() { + var toggleGroups = document.querySelectorAll(".".concat(CLASS_NAMES.GROUP_TOGGLE)); + if (!toggleGroups.length) { + return; + } + toggleGroups.forEach(function (toggleGroup) { + var toggleButton = toggleGroup.querySelector("[".concat(DATA_ATTRIBUTES.GROUP_NAME, "]:checked")); + if (!toggleButton) { + return; + } + applyToggleState(toggleButton, toggleGroup); + }); +} + +/** + * Add event listeners to toggle buttons in a group toggle component + * + * @private + * @return {void} + */ +function addEventListeners() { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', ".".concat(CLASS_NAMES.GROUP_TOGGLE, " [").concat(DATA_ATTRIBUTES.GROUP_NAME, "]"), handleToggleClick); +} + +/** + * Handle click events on toggle buttons + * + * @private + * @param {Event} event The click event + * @return {void} + */ +function handleToggleClick(event) { + var toggleButton = event.target; + var toggleGroup = toggleButton.closest(".".concat(CLASS_NAMES.GROUP_TOGGLE)); + if (!toggleGroup) { + return; + } + applyToggleState(toggleButton, toggleGroup); +} + +/** + * Apply toggle state based on toggle button settings + * Shared functionality used by both click handler and initial state + * + * @private + * @param {HTMLElement} toggleButton The toggle button element + * @param {HTMLElement} toggleGroup The toggle group container element + * @return {void} + */ +function applyToggleState(toggleButton, toggleGroup) { + var _toggleGroup$closest; + var fieldId = ((_toggleGroup$closest = toggleGroup.closest(".".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.SINGLE_SETTINGS_CLASS))) === null || _toggleGroup$closest === void 0 ? void 0 : _toggleGroup$closest.dataset.fid) || toggleGroup.dataset.fid; + var isChecked = toggleButton.checked; + + // Handle show/hide elements + var showSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.SHOW); + if (showSelectors) { + document.querySelectorAll(normalizeSelector(showSelectors, fieldId)).forEach(function (element) { + return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, !isChecked); + }); + } + + // Handle disable elements + var disableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.DISABLE); + if (disableSelectors) { + document.querySelectorAll(normalizeSelector(disableSelectors, fieldId)).forEach(function (element) { + element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); + element.querySelectorAll('input, select, textarea').forEach(function (formElement) { + return formElement.disabled = isChecked; + }); + element.querySelectorAll('.frm-show-inline-modal[tabindex]').forEach(function (inlineModal) { + return inlineModal.tabIndex = isChecked ? -1 : 0; + }); + }); + } + + // Handle enable elements + var enableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.ENABLE); + if (enableSelectors) { + document.querySelectorAll(normalizeSelector(enableSelectors, fieldId)).forEach(function (element) { + return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, !isChecked); + }); + } + + // Toggle disabled state for all other toggle blocks within the group + var currentToggleBlock = toggleButton.closest(".".concat(CLASS_NAMES.TOGGLE_BLOCK)); + Array.from(toggleGroup.querySelectorAll(".".concat(CLASS_NAMES.TOGGLE_BLOCK))).filter(function (toggleBlock) { + return toggleBlock !== currentToggleBlock; + }).forEach(function (toggleBlock) { + toggleBlock.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); + + // Disable toggle switch + var toggle = toggleBlock.querySelector('.frm_toggle'); + toggle.tabIndex = isChecked ? -1 : 0; + toggle.setAttribute('aria-disabled', isChecked); + }); +} + +/** + * Normalize a selector by replacing {id} placeholders with the actual field ID + * + * @private + * @param {string} selector The selector string with potential {id} placeholders + * @param {string} fieldId The field ID to replace placeholders with + * @return {string} The normalized selector + */ +function normalizeSelector(selector, fieldId) { + return selector.replace(/{id}/g, fieldId); +} + + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/constants.js": +/*!************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/constants.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CLASS_NAMES: () => (/* binding */ CLASS_NAMES), +/* harmony export */ KEYS: () => (/* binding */ KEYS), +/* harmony export */ PROXY_INPUT_HEIGHT: () => (/* binding */ PROXY_INPUT_HEIGHT), +/* harmony export */ TOKEN_GAP: () => (/* binding */ TOKEN_GAP) +/* harmony export */ }); +/** + * Constants for token input component + * + * Reusable constants for class names and other static values + */ + +var CLASS_NAMES = { + CONTAINER: 'frm-token-container', + TOKENS_WRAPPER: 'frm-tokens', + TOKEN: 'frm-token', + TOKEN_VALUE: 'frm-token-value', + TOKEN_REMOVE: 'frm-token-remove', + TOKEN_INPUT_FIELD: 'frm-token-input-field', + TOKEN_PROXY_INPUT: 'frm-token-proxy-input', + WITH_RIGHT_ICON: 'frm-with-right-icon' +}; +var KEYS = { + SPACE: ' ', + ENTER: 'Enter', + COMMA: ',', + TAB: 'Tab', + BACKSPACE: 'Backspace' +}; +var PROXY_INPUT_HEIGHT = 36; +var TOKEN_GAP = 4; + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/event-handlers.js": +/*!*****************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/event-handlers.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); +/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); +/** + * Event handlers + * + * Functions for handling token input events + */ + +/** + * Internal dependencies + */ + + + + +/** + * Add event listeners to token input components + * + * @param {HTMLElement} field The original hidden input field + * @param {HTMLElement} proxyInput The proxy input field for interaction + * @param {HTMLElement} tokensWrapper The wrapper for token display + * @return {void} + */ +function addEventListeners(field, proxyInput, tokensWrapper) { + // The jQuery change event is required to catch programmatic updates, as "Add Layout Classes" modifies the field value via jQuery + jQuery(field).on('change', function () { + return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); + }); + proxyInput.addEventListener('keydown', function (event) { + return onProxyInputKeydown(event, field, proxyInput, tokensWrapper); + }); + proxyInput.addEventListener('blur', function () { + return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(proxyInput.value.trim(), field, proxyInput); + }); + tokensWrapper.addEventListener('click', function (event) { + return handleTokenRemoval(event, field, proxyInput); + }); +} + +/** + * Handle keydown events on the proxy input field + * + * @private + * + * @param {Event} event Keydown event + * @param {HTMLElement} field The original hidden input field + * @param {HTMLElement} proxyInput The proxy input field for interaction + * @param {HTMLElement} tokensWrapper The wrapper for token display + * @return {void} + */ +function onProxyInputKeydown(event, field, proxyInput, tokensWrapper) { + var key = event.key; + var value = proxyInput.value.trim(); + switch (key) { + // Remove the last token when backspace is pressed and input field is empty (no text being typed) + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.BACKSPACE: + if (!value) { + event.preventDefault(); + var lastToken = tokensWrapper.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN, ":last-child")); + (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(lastToken, field, proxyInput); + } + break; + + // Create a token from current input when delimiter keys are pressed + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.SPACE: + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.COMMA: + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.ENTER: + event.preventDefault(); + (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(value, field, proxyInput); + break; + } + (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); +} + +/** + * Handle token removal when clicking the remove button + * + * @private + * + * @param {Event} event Click event + * @param {HTMLElement} field The original hidden input field + * @param {HTMLElement} proxyInput The proxy input field for interaction + * @return {void} + */ +function handleTokenRemoval(event, field, proxyInput) { + var removeButton = event.target.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_REMOVE)); + if (!removeButton) { + return; + } + var token = removeButton.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); + if (!token) { + return; + } + var tokensWrapper = token.parentElement; + (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(token, field, proxyInput); + (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/index.js": +/*!********************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/index.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_0__.initTokenInputFields) +/* harmony export */ }); +/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/token-input.js"); + + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/proxy-input-style.js": +/*!********************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/proxy-input-style.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ adjustAllProxyInputStyles: () => (/* binding */ adjustAllProxyInputStyles), +/* harmony export */ adjustProxyInputStyle: () => (/* binding */ adjustProxyInputStyle) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/** + * Proxy input style + * + * Functions for adjusting proxy input styling + */ + + + +/** + * Adjust styling for all proxy inputs on the current settings + * + * @return {void} + */ +function adjustAllProxyInputStyles() { + document.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.CONTAINER)).forEach(function (container) { + return adjustProxyInputStyle(container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_PROXY_INPUT)), container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKENS_WRAPPER))); + }); +} + +/** + * Adjust the styling of the proxy input based on tokens wrapper dimensions + * + * @param {HTMLElement} proxyInput The proxy input field + * @param {HTMLElement} tokensWrapper The wrapper for token display + * @return {void} + */ +function adjustProxyInputStyle(proxyInput, tokensWrapper) { + if (!proxyInput || !tokensWrapper) { + return; + } + var tokens = tokensWrapper.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); + var hasTokens = tokens.length > 0; + + // Reset all styles if no tokens + if (!hasTokens) { + proxyInput.style.paddingLeft = ''; + proxyInput.style.paddingTop = ''; + proxyInput.style.height = ''; + return; + } + var tokensWrapperHeight = tokensWrapper.offsetHeight; + + // Calculate number of rows based on wrapper height + var numRows = Math.max(1, Math.ceil(tokensWrapperHeight / _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT)); + if (numRows > 1) { + // For multiple rows, calculate the width of tokens in the last row + var lastRowWidth = calculateLastRowWidth(getLastRowTokens(tokens)); + proxyInput.style.height = "".concat(tokensWrapperHeight, "px"); + proxyInput.style.paddingTop = "".concat(tokensWrapperHeight - _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); + proxyInput.style.paddingLeft = lastRowWidth ? "".concat(lastRowWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP * 2, "px") : ''; + } else { + // For single row, use the full width of tokens + proxyInput.style.height = ''; + proxyInput.style.paddingTop = ''; + proxyInput.style.paddingLeft = "".concat(tokensWrapper.offsetWidth - _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); + } +} + +/** + * Identify tokens in the last row of a multi-row token layout + * + * @param {NodeList} tokens All token elements + * @return {Array} Array of tokens in the last row + */ +function getLastRowTokens(tokens) { + if (!tokens.length) { + return []; + } + var tokensArray = Array.from(tokens); + var lastRowY = -1; + tokensArray.forEach(function (token) { + var tokenRect = token.getBoundingClientRect(); + var tokenBottom = tokenRect.bottom; + if (tokenBottom > lastRowY) { + lastRowY = tokenBottom; + } + }); + var threshold = _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP / 2; + return tokensArray.filter(function (token) { + var tokenRect = token.getBoundingClientRect(); + return Math.abs(tokenRect.bottom - lastRowY) <= threshold; + }); +} + +/** + * Calculate the total width of tokens in the last row + * + * @param {Array} lastRowTokens Array of token elements in the last row + * @return {number} Total width of tokens in the last row + */ +function calculateLastRowWidth(lastRowTokens) { + if (!lastRowTokens.length) { + return 0; + } + var totalWidth = 0; + lastRowTokens.forEach(function (token) { + totalWidth += token.offsetWidth; + }); + totalWidth += (lastRowTokens.length - 1) * _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; + return totalWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/token-actions.js": +/*!****************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/token-actions.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToken: () => (/* binding */ addToken), +/* harmony export */ clearProxyInput: () => (/* binding */ clearProxyInput), +/* harmony export */ parseTokens: () => (/* binding */ parseTokens), +/* harmony export */ removeToken: () => (/* binding */ removeToken), +/* harmony export */ synchronizeTokensDisplay: () => (/* binding */ synchronizeTokensDisplay), +/* harmony export */ updateFieldValue: () => (/* binding */ updateFieldValue) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); +/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); +/** + * Token actions + * + * Core functions for token operations and management + */ + +/** + * Internal dependencies + */ + + + + +/** + * Synchronize token display with the field value + * + * @param {string} value The field value + * @param {HTMLElement} proxyInput The proxy input field + * @param {HTMLElement} tokensWrapper Wrapper element for tokens + * @return {void} + */ +function synchronizeTokensDisplay(value, proxyInput, tokensWrapper) { + if (!value || !tokensWrapper || !proxyInput) { + return; + } + + // Clear existing tokens display and render new tokens + tokensWrapper.innerHTML = ''; + parseTokens(value).forEach(function (token) { + return (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenElement)(token, tokensWrapper); + }); + (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_1__.adjustProxyInputStyle)(proxyInput, tokensWrapper); + proxyInput.focus(); +} + +/** + * Add a new token to the field + * + * @param {string} tokenValue The token value to add + * @param {HTMLElement} field The original field + * @param {HTMLElement} proxyInput The proxy input + * @return {boolean} Whether a token was added + */ +function addToken(tokenValue, field, proxyInput) { + if (!tokenValue || !field || !proxyInput) { + return false; + } + + // Get current tokens from field value + var tokens = parseTokens(field.value); + + // Skip duplicate tokens + if (tokens.includes(tokenValue)) { + clearProxyInput(proxyInput); + return false; + } + + // Add new token + tokens.push(tokenValue); + updateFieldValue(field, tokens); + clearProxyInput(proxyInput); + return true; +} + +/** + * Remove a specific token from the field + * + * @param {HTMLElement} token The token element to remove + * @param {HTMLElement} field The original field + * @param {HTMLElement} proxyInput The proxy input + * @return {void} + */ +function removeToken(token, field, proxyInput) { + if (!token || !field || !proxyInput) { + return; + } + var value = token.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_VALUE)).textContent; + + // Filter out the token to remove + var tokens = parseTokens(field.value).filter(function (tokenValue) { + return tokenValue !== value; + }); + updateFieldValue(field, tokens); + + // Remove the token element from DOM + token.remove(); + proxyInput.focus(); +} + +/** + * Parse string input into an array of tokens + * + * @param {string} value Space-separated string + * @return {string[]} Array of tokens + */ +function parseTokens() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + value = value.trim(); + if (!value) { + return []; + } + return value.split(/\s+/).filter(Boolean); +} + +/** + * Update field value with tokens and trigger change event + * + * @param {HTMLElement} field The field to update + * @param {string[]} tokens Array of token values + * @return {void} + */ +function updateFieldValue(field) { + var tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + if (!field) { + return; + } + field.value = tokens.join(' '); + jQuery(field).trigger('change'); +} + +/** + * Clear proxy input and maintain focus + * + * @param {HTMLElement} proxyInput The proxy input field + * @return {void} + */ +function clearProxyInput(proxyInput) { + if (!proxyInput) { + return; + } + proxyInput.value = ''; + proxyInput.focus(); +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/token-elements.js": +/*!*****************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/token-elements.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createTokenContainerElement: () => (/* binding */ createTokenContainerElement), +/* harmony export */ createTokenElement: () => (/* binding */ createTokenElement) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/** + * Token elements + * + * Functions for creating token DOM elements + */ + +/** + * Internal dependencies + */ + + +var _window$frmDom = window.frmDom, + span = _window$frmDom.span, + svg = _window$frmDom.svg, + tag = _window$frmDom.tag; + +/** + * Create token container and input elements + * + * @param {HTMLElement} field Input field for tokenization + * @return {HTMLElement|null} The container element or null if already initialized + */ +function createTokenContainerElement(field) { + // Get the main container (.frm-with-right-icon) to work with Formidable's modal system + var container = field.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.WITH_RIGHT_ICON)); + if (container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER))) { + return null; + } + container.classList.add(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.CONTAINER); + var tokensWrapper = span({ + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER + }); + container.insertBefore(tokensWrapper, container.firstChild); + var proxyInput = tag('input', { + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT, + id: "".concat(field.id, "-proxy-input") + }); + proxyInput.type = 'text'; + + // Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system + field.parentNode.insertBefore(proxyInput, field.nextSibling); + field.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); + return container; +} + +/** + * Create a single token element + * + * @param {string} value Token value + * @param {HTMLElement} tokensWrapper Wrapper element for tokens + * @return {void} + */ +function createTokenElement(value, tokensWrapper) { + var tokenElement = span({ + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN, + children: [span({ + text: value, + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_VALUE + }), span({ + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_REMOVE, + child: svg({ + href: '#frm_close_icon' + }) + })] + }); + tokensWrapper.appendChild(tokenElement); +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/token-input.js": +/*!**************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/token-input.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initTokenInputFields: () => (/* binding */ initTokenInputFields) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); +/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); +/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); +/* harmony import */ var _event_handlers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event-handlers */ "./js/src/settings-components/components/token-input/event-handlers.js"); +/** + * Token Input Component + * + * Transforms space-separated values in a text input into selectable tokens + */ + +/** + * Internal dependencies + */ + + + + + + + +/** + * Initialize all token input fields on the page + * + * @return {void} + */ +function initTokenInputFields() { + findAndInitializeTokenFields(); + + /** + * Initialize for newly added fields + * + * @param {Event} event The frm_added_field event. + * @param {HTMLElement} event.frmField The added field object being destructured from the event. + */ + document.addEventListener('frm_added_field', function (_ref) { + var frmField = _ref.frmField; + return findAndInitializeTokenFields(frmField.dataset.fid); + }); + + /** + * Initialize for newly added fields via AJAX + * + * @param {Event} event The frm_ajax_loaded_field event. + * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. + */ + document.addEventListener('frm_ajax_loaded_field', function (_ref2) { + var frmFields = _ref2.frmFields; + return frmFields.forEach(function (field) { + return findAndInitializeTokenFields(field.id); + }); + }); + + // Adjust styling for all token inputs when field settings are shown + wp.hooks.addAction(core_constants__WEBPACK_IMPORTED_MODULE_0__.HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__.adjustAllProxyInputStyles); +} + +/** + * Find all token input fields and initialize them + * + * @private + * @param {string|number} fieldId The ID of the field to initialize + * @return {void} + */ +function findAndInitializeTokenFields(fieldId) { + var container = fieldId ? document.getElementById("frm-single-settings-".concat(fieldId)) : document.body; + var tokenInputFields = container.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_INPUT_FIELD)); + if (!tokenInputFields.length) { + return; + } + + // Track processed fields to prevent duplicate initialization + var processedFields = new Set(); + tokenInputFields.forEach(function (field) { + if (!processedFields.has(field.id)) { + setupTokenInput(field); + processedFields.add(field.id); + } + }); +} + +/** + * Set up a token input field with token container + * + * @private + * + * @param {HTMLElement} field Input field for tokenization + */ +function setupTokenInput(field) { + var container = (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenContainerElement)(field); + if (!container) { + return; + } + var proxyInput = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT)); + var tokensWrapper = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER)); + (0,_token_actions__WEBPACK_IMPORTED_MODULE_3__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); + (0,_event_handlers__WEBPACK_IMPORTED_MODULE_5__.addEventListeners)(field, proxyInput, tokensWrapper); +} + + +/***/ }), + +/***/ "./js/src/settings-components/components/unit-input.js": +/*!*************************************************************!*\ + !*** ./js/src/settings-components/components/unit-input.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupUnitInputHandlers: () => (/* binding */ setupUnitInputHandlers) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Setup unit input handlers + * + * @return {void} + */ +function setupUnitInputHandlers() { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input select', onUnitInputChange); +} + +/** + * Handle the change event for the unit input + * + * @private + * @param {Event} event The event object. + * @return {void} + */ +function onUnitInputChange(event) { + var unitInput = event.target.closest('.frm-unit-input'); + var control = unitInput.querySelector('.frm-unit-input-control'); + var unit = unitInput.querySelector('select').value; + + // Update input type when unit changes + if (event.target.matches('select')) { + control.type = '' === unit ? 'text' : 'number'; + } + + // Update the actual field value + var inputValue = control.value.trim(); + unitInput.querySelector('input[type="hidden"]').value = '' !== inputValue ? inputValue + unit : ''; +} + +/***/ }), + +/***/ "./js/src/settings-components/events/add-fields-button-handler.js": +/*!************************************************************************!*\ + !*** ./js/src/settings-components/events/add-fields-button-handler.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Redirects to "Add Fields" tab when the "Add Fields" button is clicked. + * + * When users view the Field Options tab with no fields, they see an "Add Fields" button. + * Clicking this button should take them to the "Add Fields" tab for field selection. + */ + +/** + * Initializes the Add Fields button click handler. + */ +var initAddFieldsButtonHandler = function initAddFieldsButtonHandler() { + var _document$getElementB; + (_document$getElementB = document.getElementById('frm-form-add-field')) === null || _document$getElementB === void 0 || _document$getElementB.addEventListener('click', function (event) { + var _document$querySelect; + event.preventDefault(); + (_document$querySelect = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect === void 0 || _document$querySelect.click(); + }); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initAddFieldsButtonHandler); + +/***/ }), + +/***/ "./js/src/settings-components/events/index.js": +/*!****************************************************!*\ + !*** ./js/src/settings-components/events/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initAddFieldsButtonHandler: () => (/* reexport safe */ _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__["default"]) +/* harmony export */ }); +/* harmony import */ var _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-fields-button-handler */ "./js/src/settings-components/events/add-fields-button-handler.js"); + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!*********************************************!*\ + !*** ./js/src/settings-components/index.js ***! + \*********************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events */ "./js/src/settings-components/events/index.js"); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components */ "./js/src/settings-components/components/index.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { + new _components__WEBPACK_IMPORTED_MODULE_1__.frmRadioComponent(); + new _components__WEBPACK_IMPORTED_MODULE_1__.frmSliderComponent(); + new _components__WEBPACK_IMPORTED_MODULE_1__.frmTabsComponent(); + (0,_events__WEBPACK_IMPORTED_MODULE_0__.initAddFieldsButtonHandler)(); + (0,_components__WEBPACK_IMPORTED_MODULE_1__.initTokenInputFields)(); + (0,_components__WEBPACK_IMPORTED_MODULE_1__.initToggleGroupComponents)(); + (0,_components__WEBPACK_IMPORTED_MODULE_1__.setupUnitInputHandlers)(); +}); +/******/ })() +; +//# sourceMappingURL=formidable-settings-components.js.map \ No newline at end of file diff --git a/js/formidable-settings-components.js.map b/js/formidable-settings-components.js.map index d13305a82f..84630b3b5f 100644 --- a/js/formidable-settings-components.js.map +++ b/js/formidable-settings-components.js.map @@ -1 +1 @@ -{"version":3,"file":"formidable-settings-components.js","mappings":"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","sources":["webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./js/src/admin/components/dependent-updater-component.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/settings-components/components/index.js","webpack://formidable/./js/src/settings-components/components/radio-component.js","webpack://formidable/./js/src/settings-components/components/slider-component.js","webpack://formidable/./js/src/settings-components/components/tabs-component.js","webpack://formidable/./js/src/settings-components/components/toggle-group/toggle-group.js","webpack://formidable/./js/src/settings-components/components/token-input/constants.js","webpack://formidable/./js/src/settings-components/components/token-input/event-handlers.js","webpack://formidable/./js/src/settings-components/components/token-input/proxy-input-style.js","webpack://formidable/./js/src/settings-components/components/token-input/token-actions.js","webpack://formidable/./js/src/settings-components/components/token-input/token-elements.js","webpack://formidable/./js/src/settings-components/components/token-input/token-input.js","webpack://formidable/./js/src/settings-components/components/unit-input.js","webpack://formidable/./js/src/settings-components/events/add-fields-button-handler.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/settings-components/index.js"],"sourcesContent":["/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.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\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}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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 { default as frmRadioComponent } from './radio-component';\nexport { default as frmSliderComponent } from './slider-component';\nexport { default as frmTabsComponent } from './tabs-component';\nexport * from './token-input';\nexport * from './toggle-group';\nexport * from './unit-input';\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { show, hide, isVisible } from 'core/utils';\n\n/**\n * Represents a radio component.\n * @class\n */\nexport default class frmRadioComponent {\n\tconstructor() {\n\t\tthis.radioElements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tthis.observers = new Map();\n\t\tif ( 0 < this.radioElements.length ) {\n\t\t\tthis.init();\n\t\t}\n\n\t\t/**\n\t\t * Handles the addition of new fields.\n\t\t *\n\t\t * @param {Event} event The frm_added_field event.\n\t\t * @param {HTMLElement} event.frmField The added field object being destructured from the event.\n\t\t */\n\t\tdocument.addEventListener( 'frm_added_field', ( { frmField } ) => {\n\t\t\tthis.radioElements = document.getElementById( `frm-single-settings-${ frmField.dataset.fid }` )\n\t\t\t\t.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\n\t\t\tthis.initRadio();\n\t\t} );\n\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinit() {\n\t\tthis.initRadio();\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinitRadio() {\n\t\tthis.radioElements.forEach( element => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t\tthis.initVisibilityObserver( element );\n\t\t} );\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 * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown.\n\t *\n\t * @param {HTMLElement} element The radio component element\n\t * @return {void}\n\t */\n\tinitVisibilityObserver( element ) {\n\t\tif ( this.observers.has( element ) ) {\n\t\t\tthis.observers.get( element ).disconnect();\n\t\t}\n\n\t\tconst observer = new MutationObserver( () => {\n\t\t\t// Check if element is now visible\n\t\t\tif ( isVisible( element ) ) {\n\t\t\t\tconst radio = element.querySelector( 'input[type=\"radio\"]:checked' );\n\t\t\t\tif ( radio ) {\n\t\t\t\t\tthis.onRadioChange( radio );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.observers.set( element, observer );\n\n\t\t// Observe for attribute changes on the component and its ancestors\n\t\tobserver.observe( element, {\n\t\t\tattributes: true,\n\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t} );\n\n\t\t// Also observe parent elements up to a reasonable depth\n\t\tlet parent = element.parentElement;\n\t\tfor ( let i = 0; i < 7 && parent; i++ ) {\n\t\t\tobserver.observe( parent, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t\t} );\n\t\t\tparent = parent.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Cleanup all observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tthis.observers.forEach( observer => {\n\t\t\tobserver.disconnect();\n\t\t} );\n\n\t\tthis.observers.clear();\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( HIDDEN_CLASS );\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}\n","\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport frmDependentUpdaterComponent from '../../admin/components/dependent-updater-component';\n\n/**\n * Represents a slider component.\n * @class frmSliderComponent\n */\nexport default class frmSliderComponent {\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 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 frmDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the slider 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 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.options[ index ].fullValue = this.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( HIDDEN_CLASS );\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 ( '' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled', 'frm-empty' );\n\t\t\t\treturn;\n\t\t\t}\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\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled', 'frm-empty' );\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\tbubbles: true,\n\t\t\tcancelable: 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\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 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\tif ( slider.classList.contains( 'frm-disabled' ) ) {\n\t\t\treturn;\n\t\t}\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 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\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\t// When the slider component is used for \"Base Font Size\", we need to update a hidden input field when change happens to indicate that the \"Base Font Size\" has been adjusted.\n\t\t// Used to avoid conflicts with other possible font sizes adjustemnts in \"Advanced Settings\" when moving from \"Quick Settings\" when \"Base Font Size\" is not changed.\n\t\tif ( element.classList.contains( 'frm-base-font-size' ) ) {\n\t\t\tconst userBaseFontSizeInput = document.querySelector( 'input[name=\"frm_style_setting[post_content][use_base_font_size]\"]' );\n\t\t\tif ( null !== userBaseFontSizeInput ) {\n\t\t\t\tuserBaseFontSizeInput.value = 'true';\n\t\t\t}\n\t\t}\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}\n","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Component.\n * @class\n */\nexport default class frmTabsComponent {\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 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}\n","/**\n * Group Toggle Component\n *\n * Handles toggling visibility and enabled state of related form elements\n */\n\n/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\nimport { HIDDEN_CLASS, DISABLED_CLASS, SINGLE_SETTINGS_CLASS } from 'core/constants';\n\n/**\n * Class names for group toggle component\n *\n * @private\n */\nconst CLASS_NAMES = {\n\tGROUP_TOGGLE: 'frm-toggle-group',\n\tTOGGLE_BLOCK: 'frm_toggle_block',\n};\n\n/**\n * Data attributes for group toggle component\n *\n * @private\n */\nconst DATA_ATTRIBUTES = {\n\tGROUP_NAME: 'data-group-name',\n\tSHOW: 'data-show',\n\tDISABLE: 'data-disable',\n\tENABLE: 'data-enable',\n};\n\n/**\n * Initialize all group toggle components on the page\n *\n * @return {void}\n */\nfunction initToggleGroupComponents() {\n\tapplyInitialState();\n\taddEventListeners();\n}\n\n/**\n * Apply the initial state for all toggle buttons on the page\n *\n * @private\n * @return {void}\n */\nfunction applyInitialState() {\n\tconst toggleGroups = document.querySelectorAll( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroups.length ) {\n\t\treturn;\n\t}\n\n\ttoggleGroups.forEach( toggleGroup => {\n\t\tconst toggleButton = toggleGroup.querySelector( `[${ DATA_ATTRIBUTES.GROUP_NAME }]:checked` );\n\t\tif ( ! toggleButton ) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyToggleState( toggleButton, toggleGroup );\n\t} );\n}\n\n/**\n * Add event listeners to toggle buttons in a group toggle component\n *\n * @private\n * @return {void}\n */\nfunction addEventListeners() {\n\tdocumentOn( 'change', `.${ CLASS_NAMES.GROUP_TOGGLE } [${ DATA_ATTRIBUTES.GROUP_NAME }]`, handleToggleClick );\n}\n\n/**\n * Handle click events on toggle buttons\n *\n * @private\n * @param {Event} event The click event\n * @return {void}\n */\nfunction handleToggleClick( event ) {\n\tconst toggleButton = event.target;\n\tconst toggleGroup = toggleButton.closest( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroup ) {\n\t\treturn;\n\t}\n\n\tapplyToggleState( toggleButton, toggleGroup );\n}\n\n/**\n * Apply toggle state based on toggle button settings\n * Shared functionality used by both click handler and initial state\n *\n * @private\n * @param {HTMLElement} toggleButton The toggle button element\n * @param {HTMLElement} toggleGroup The toggle group container element\n * @return {void}\n */\nfunction applyToggleState( toggleButton, toggleGroup ) {\n\tconst fieldId = toggleGroup.closest( `.${ SINGLE_SETTINGS_CLASS }` )?.dataset.fid ||\n\t\ttoggleGroup.dataset.fid;\n\n\tconst isChecked = toggleButton.checked;\n\n\t// Handle show/hide elements\n\tconst showSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.SHOW );\n\tif ( showSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( showSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( HIDDEN_CLASS, ! isChecked ) );\n\t}\n\n\t// Handle disable elements\n\tconst disableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.DISABLE );\n\tif ( disableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( disableSelectors, fieldId ) )\n\t\t\t.forEach( element => {\n\t\t\t\telement.classList.toggle( DISABLED_CLASS, isChecked );\n\t\t\t\telement.querySelectorAll( 'input, select, textarea' ).forEach(\n\t\t\t\t\tformElement => formElement.disabled = isChecked\n\t\t\t\t);\n\t\t\t} );\n\t}\n\n\t// Handle enable elements\n\tconst enableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.ENABLE );\n\tif ( enableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( enableSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( DISABLED_CLASS, ! isChecked ) );\n\t}\n\n\t// Toggle disabled state for all other toggle blocks within the group\n\tconst currentToggleBlock = toggleButton.closest( `.${ CLASS_NAMES.TOGGLE_BLOCK }` );\n\tArray.from( toggleGroup.querySelectorAll( `.${ CLASS_NAMES.TOGGLE_BLOCK }` ) )\n\t\t.filter( toggleBlock => toggleBlock !== currentToggleBlock )\n\t\t.forEach( toggleBlock => {\n\t\t\ttoggleBlock.classList.toggle( DISABLED_CLASS, isChecked );\n\n\t\t\t// Disable toggle switch\n\t\t\tconst toggle = toggleBlock.querySelector( '.frm_toggle' );\n\t\t\ttoggle.tabIndex = isChecked ? -1 : 0;\n\t\t\ttoggle.setAttribute( 'aria-disabled', isChecked );\n\t\t} );\n}\n\n/**\n * Normalize a selector by replacing {id} placeholders with the actual field ID\n *\n * @private\n * @param {string} selector The selector string with potential {id} placeholders\n * @param {string} fieldId The field ID to replace placeholders with\n * @return {string} The normalized selector\n */\nfunction normalizeSelector( selector, fieldId ) {\n\treturn selector.replace( /{id}/g, fieldId );\n}\n\nexport { initToggleGroupComponents };\n","/**\n * Constants for token input component\n *\n * Reusable constants for class names and other static values\n */\n\nexport const CLASS_NAMES = {\n\tCONTAINER: 'frm-token-container',\n\tTOKENS_WRAPPER: 'frm-tokens',\n\tTOKEN: 'frm-token',\n\tTOKEN_VALUE: 'frm-token-value',\n\tTOKEN_REMOVE: 'frm-token-remove',\n\tTOKEN_INPUT_FIELD: 'frm-token-input-field',\n\tTOKEN_PROXY_INPUT: 'frm-token-proxy-input',\n\tWITH_RIGHT_ICON: 'frm-with-right-icon'\n};\n\nexport const KEYS = {\n\tSPACE: ' ',\n\tENTER: 'Enter',\n\tCOMMA: ',',\n\tTAB: 'Tab',\n\tBACKSPACE: 'Backspace'\n};\n\nexport const PROXY_INPUT_HEIGHT = 36;\nexport const TOKEN_GAP = 4;\n","/**\n * Event handlers\n *\n * Functions for handling token input events\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES, KEYS } from './constants';\nimport { addToken, removeToken, synchronizeTokensDisplay } from './token-actions';\nimport { adjustProxyInputStyle } from './proxy-input-style';\n\n/**\n * Add event listeners to token input components\n *\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function addEventListeners( field, proxyInput, tokensWrapper ) {\n\t// The jQuery change event is required to catch programmatic updates, as \"Add Layout Classes\" modifies the field value via jQuery\n\tjQuery( field ).on( 'change', () => synchronizeTokensDisplay( field.value, proxyInput, tokensWrapper ) );\n\n\tproxyInput.addEventListener( 'keydown', event => onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) );\n\tproxyInput.addEventListener( 'blur', () => addToken( proxyInput.value.trim(), field, proxyInput ) );\n\n\ttokensWrapper.addEventListener( 'click', event => handleTokenRemoval( event, field, proxyInput ) );\n}\n\n/**\n * Handle keydown events on the proxy input field\n *\n * @private\n *\n * @param {Event} event Keydown event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nfunction onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) {\n\tconst { key } = event;\n\tconst value = proxyInput.value.trim();\n\n\tswitch ( key ) {\n\t\t// Remove the last token when backspace is pressed and input field is empty (no text being typed)\n\t\tcase KEYS.BACKSPACE:\n\t\t\tif ( ! value ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst lastToken = tokensWrapper.querySelector( `.${ CLASS_NAMES.TOKEN }:last-child` );\n\t\t\t\tremoveToken( lastToken, field, proxyInput );\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Create a token from current input when delimiter keys are pressed\n\t\tcase KEYS.SPACE:\n\t\tcase KEYS.COMMA:\n\t\tcase KEYS.ENTER:\n\t\t\tevent.preventDefault();\n\t\t\taddToken( value, field, proxyInput );\n\t\t\tbreak;\n\t}\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n\n/**\n * Handle token removal when clicking the remove button\n *\n * @private\n *\n * @param {Event} event Click event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @return {void}\n */\nfunction handleTokenRemoval( event, field, proxyInput ) {\n\tconst removeButton = event.target.closest( `.${ CLASS_NAMES.TOKEN_REMOVE }` );\n\tif ( ! removeButton ) {\n\t\treturn;\n\t}\n\n\tconst token = removeButton.closest( `.${ CLASS_NAMES.TOKEN }` );\n\tif ( ! token ) {\n\t\treturn;\n\t}\n\n\tconst tokensWrapper = token.parentElement;\n\n\tremoveToken( token, field, proxyInput );\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n","/**\n * Proxy input style\n *\n * Functions for adjusting proxy input styling\n */\n\nimport { CLASS_NAMES, PROXY_INPUT_HEIGHT, TOKEN_GAP } from './constants';\n\n/**\n * Adjust styling for all proxy inputs on the current settings\n *\n * @return {void}\n */\nexport function adjustAllProxyInputStyles() {\n\tdocument.querySelectorAll( `.${ CLASS_NAMES.CONTAINER }` ).forEach( container =>\n\t\tadjustProxyInputStyle(\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` ),\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` )\n\t\t)\n\t);\n}\n\n/**\n * Adjust the styling of the proxy input based on tokens wrapper dimensions\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function adjustProxyInputStyle( proxyInput, tokensWrapper ) {\n\tif ( ! proxyInput || ! tokensWrapper ) {\n\t\treturn;\n\t}\n\n\tconst tokens = tokensWrapper.querySelectorAll( `.${ CLASS_NAMES.TOKEN }` );\n\tconst hasTokens = tokens.length > 0;\n\n\t// Reset all styles if no tokens\n\tif ( ! hasTokens ) {\n\t\tproxyInput.style.paddingLeft = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.height = '';\n\t\treturn;\n\t}\n\n\tconst tokensWrapperHeight = tokensWrapper.offsetHeight;\n\n\t// Calculate number of rows based on wrapper height\n\tconst numRows = Math.max( 1, Math.ceil( tokensWrapperHeight / PROXY_INPUT_HEIGHT ) );\n\n\tif ( numRows > 1 ) {\n\t\t// For multiple rows, calculate the width of tokens in the last row\n\t\tconst lastRowWidth = calculateLastRowWidth( getLastRowTokens( tokens ) );\n\n\t\tproxyInput.style.height = `${ tokensWrapperHeight }px`;\n\t\tproxyInput.style.paddingTop = `${ tokensWrapperHeight - PROXY_INPUT_HEIGHT + TOKEN_GAP }px`;\n\t\tproxyInput.style.paddingLeft = lastRowWidth ? `${ lastRowWidth + ( TOKEN_GAP * 2 ) }px` : '';\n\t} else {\n\t\t// For single row, use the full width of tokens\n\t\tproxyInput.style.height = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.paddingLeft = `${ tokensWrapper.offsetWidth - TOKEN_GAP }px`;\n\t}\n}\n\n/**\n * Identify tokens in the last row of a multi-row token layout\n *\n * @param {NodeList} tokens All token elements\n * @return {Array} Array of tokens in the last row\n */\nfunction getLastRowTokens( tokens ) {\n\tif ( ! tokens.length ) {\n\t\treturn [];\n\t}\n\n\tconst tokensArray = Array.from( tokens );\n\tlet lastRowY = -1;\n\n\ttokensArray.forEach( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenBottom = tokenRect.bottom;\n\n\t\tif ( tokenBottom > lastRowY ) {\n\t\t\tlastRowY = tokenBottom;\n\t\t}\n\t} );\n\n\tconst threshold = TOKEN_GAP / 2;\n\treturn tokensArray.filter( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\treturn Math.abs( tokenRect.bottom - lastRowY ) <= threshold;\n\t} );\n}\n\n/**\n * Calculate the total width of tokens in the last row\n *\n * @param {Array} lastRowTokens Array of token elements in the last row\n * @return {number} Total width of tokens in the last row\n */\nfunction calculateLastRowWidth( lastRowTokens ) {\n\tif ( ! lastRowTokens.length ) {\n\t\treturn 0;\n\t}\n\n\tlet totalWidth = 0;\n\n\tlastRowTokens.forEach( token => {\n\t\ttotalWidth += token.offsetWidth;\n\t} );\n\n\ttotalWidth += ( lastRowTokens.length - 1 ) * TOKEN_GAP;\n\n\treturn totalWidth + TOKEN_GAP;\n}\n","/**\n * Token actions\n *\n * Core functions for token operations and management\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES } from './constants';\nimport { adjustProxyInputStyle } from './proxy-input-style';\nimport { createTokenElement } from './token-elements';\n\n/**\n * Synchronize token display with the field value\n *\n * @param {string} value The field value\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function synchronizeTokensDisplay( value, proxyInput, tokensWrapper ) {\n\tif ( ! value || ! tokensWrapper || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\t// Clear existing tokens display and render new tokens\n\ttokensWrapper.innerHTML = '';\n\tparseTokens( value ).forEach( token => createTokenElement( token, tokensWrapper ) );\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n\n\tproxyInput.focus();\n}\n\n/**\n * Add a new token to the field\n *\n * @param {string} tokenValue The token value to add\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {boolean} Whether a token was added\n */\nexport function addToken( tokenValue, field, proxyInput ) {\n\tif ( ! tokenValue || ! field || ! proxyInput ) {\n\t\treturn false;\n\t}\n\n\t// Get current tokens from field value\n\tconst tokens = parseTokens( field.value );\n\n\t// Skip duplicate tokens\n\tif ( tokens.includes( tokenValue ) ) {\n\t\tclearProxyInput( proxyInput );\n\t\treturn false;\n\t}\n\n\t// Add new token\n\ttokens.push( tokenValue );\n\tupdateFieldValue( field, tokens );\n\tclearProxyInput( proxyInput );\n\treturn true;\n}\n\n/**\n * Remove a specific token from the field\n *\n * @param {HTMLElement} token The token element to remove\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {void}\n */\nexport function removeToken( token, field, proxyInput ) {\n\tif ( ! token || ! field || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tconst value = token.querySelector( `.${ CLASS_NAMES.TOKEN_VALUE }` ).textContent;\n\n\t// Filter out the token to remove\n\tconst tokens = parseTokens( field.value ).filter( tokenValue => tokenValue !== value );\n\tupdateFieldValue( field, tokens );\n\n\t// Remove the token element from DOM\n\ttoken.remove();\n\n\tproxyInput.focus();\n}\n\n/**\n * Parse string input into an array of tokens\n *\n * @param {string} value Space-separated string\n * @return {string[]} Array of tokens\n */\nexport function parseTokens( value = '' ) {\n\tvalue = value.trim();\n\n\tif ( ! value ) {\n\t\treturn [];\n\t}\n\n\treturn value.split( /\\s+/ ).filter( Boolean );\n}\n\n/**\n * Update field value with tokens and trigger change event\n *\n * @param {HTMLElement} field The field to update\n * @param {string[]} tokens Array of token values\n * @return {void}\n */\nexport function updateFieldValue( field, tokens = [] ) {\n\tif ( ! field ) {\n\t\treturn;\n\t}\n\n\tfield.value = tokens.join( ' ' );\n\tjQuery( field ).trigger( 'change' );\n}\n\n/**\n * Clear proxy input and maintain focus\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @return {void}\n */\nexport function clearProxyInput( proxyInput ) {\n\tif ( ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tproxyInput.value = '';\n\tproxyInput.focus();\n}\n","/**\n * Token elements\n *\n * Functions for creating token DOM elements\n */\n\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\n\nconst { span, svg, tag } = window.frmDom;\n\n/**\n * Create token container and input elements\n *\n * @param {HTMLElement} field Input field for tokenization\n * @return {HTMLElement|null} The container element or null if already initialized\n */\nexport function createTokenContainerElement( field ) {\n\t// Get the main container (.frm-with-right-icon) to work with Formidable's modal system\n\tconst container = field.closest( `.${ CLASS_NAMES.WITH_RIGHT_ICON }` );\n\n\tif ( container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` ) ) {\n\t\treturn null;\n\t}\n\n\tcontainer.classList.add( CLASS_NAMES.CONTAINER );\n\n\tconst tokensWrapper = span( {\n\t\tclassName: CLASS_NAMES.TOKENS_WRAPPER\n\t} );\n\n\tcontainer.insertBefore( tokensWrapper, container.firstChild );\n\n\tconst proxyInput = tag( 'input', {\n\t\tclassName: CLASS_NAMES.TOKEN_PROXY_INPUT,\n\t\tid: `${ field.id }-proxy-input`\n\t} );\n\n\tproxyInput.type = 'text';\n\n\t// Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system\n\tfield.parentNode.insertBefore( proxyInput, field.nextSibling );\n\tfield.classList.add( HIDDEN_CLASS );\n\n\treturn container;\n}\n\n/**\n * Create a single token element\n *\n * @param {string} value Token value\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function createTokenElement( value, tokensWrapper ) {\n\tconst tokenElement = span( {\n\t\tclassName: CLASS_NAMES.TOKEN,\n\t\tchildren: [\n\t\t\tspan( {\n\t\t\t\ttext: value,\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_VALUE\n\t\t\t} ),\n\t\t\tspan( {\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_REMOVE,\n\t\t\t\tchild: svg( { href: '#frm_close_icon' } )\n\t\t\t} )\n\t\t]\n\t} );\n\n\ttokensWrapper.appendChild( tokenElement );\n}\n","/**\n * Token Input Component\n *\n * Transforms space-separated values in a text input into selectable tokens\n */\n\n/**\n * Internal dependencies\n */\nimport { HOOKS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\nimport { createTokenContainerElement } from './token-elements';\nimport { synchronizeTokensDisplay } from './token-actions';\nimport { adjustAllProxyInputStyles } from './proxy-input-style';\nimport { addEventListeners } from './event-handlers';\n\n/**\n * Initialize all token input fields on the page\n *\n * @return {void}\n */\nfunction initTokenInputFields() {\n\t// Initialize for existing fields\n\tfindAndInitializeTokenFields();\n\t// Initialize for newly added fields\n\tdocument.addEventListener( 'frm_added_field', findAndInitializeTokenFields );\n\n\t// Adjust styling for all token inputs when field settings are shown\n\twp.hooks.addAction( HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', adjustAllProxyInputStyles );\n}\n\n/**\n * Find all token input fields and initialize them\n *\n * @private\n *\n * @return {void}\n */\nfunction findAndInitializeTokenFields() {\n\tconst tokenInputFields = document.querySelectorAll( `.${ CLASS_NAMES.TOKEN_INPUT_FIELD }` );\n\tif ( ! tokenInputFields.length ) {\n\t\treturn;\n\t}\n\n\t// Track processed fields to prevent duplicate initialization\n\tconst processedFields = new Set();\n\ttokenInputFields.forEach( field => {\n\t\tif ( ! processedFields.has( field.id ) ) {\n\t\t\tsetupTokenInput( field );\n\t\t\tprocessedFields.add( field.id );\n\t\t}\n\t} );\n}\n\n/**\n * Set up a token input field with token container\n *\n * @private\n *\n * @param {HTMLElement} field Input field for tokenization\n */\nfunction setupTokenInput( field ) {\n\tconst container = createTokenContainerElement( field );\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst proxyInput = container.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` );\n\tconst tokensWrapper = container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` );\n\n\tsynchronizeTokensDisplay( field.value, proxyInput, tokensWrapper );\n\taddEventListeners( field, proxyInput, tokensWrapper );\n}\n\nexport { initTokenInputFields };\n","/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\n\n/**\n * Setup unit input handlers\n *\n * @return {void}\n */\nexport function setupUnitInputHandlers() {\n\tdocumentOn( 'change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange );\n\tdocumentOn( 'change', '.frm-unit-input select', onUnitInputChange );\n}\n\n/**\n * Handle the change event for the unit input\n *\n * @private\n * @param {Event} event The event object.\n * @return {void}\n */\nfunction onUnitInputChange( event ) {\n\tconst unitInput = event.target.closest( '.frm-unit-input' );\n\tconst control = unitInput.querySelector( '.frm-unit-input-control' );\n\tconst unit = unitInput.querySelector( 'select' ).value;\n\n\t// Update input type when unit changes\n\tif ( event.target.matches( 'select' ) ) {\n\t\tcontrol.type = '' === unit ? 'text' : 'number';\n\t}\n\n\t// Update the actual field value\n\tconst inputValue = control.value.trim();\n\tunitInput.querySelector( 'input[type=\"hidden\"]' ).value = '' !== inputValue ? inputValue + unit : '';\n}\n\n","/**\n * Redirects to \"Add Fields\" tab when the \"Add Fields\" button is clicked.\n *\n * When users view the Field Options tab with no fields, they see an \"Add Fields\" button.\n * Clicking this button should take them to the \"Add Fields\" tab for field selection.\n */\n\n/**\n * Initializes the Add Fields button click handler.\n */\nconst initAddFieldsButtonHandler = () => {\n\tdocument.getElementById( 'frm-form-add-field' )?.addEventListener( 'click', event => {\n\t\tevent.preventDefault();\n\t\tdocument.querySelector( '.frm-settings-panel .frm-tabs-navs ul > li:first-child' )?.click();\n\t} );\n};\n\nexport default initAddFieldsButtonHandler;\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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { initAddFieldsButtonHandler } from './events';\nimport {\n\tfrmRadioComponent,\n\tfrmSliderComponent,\n\tfrmTabsComponent,\n\tinitTokenInputFields,\n\tinitToggleGroupComponents,\n\tsetupUnitInputHandlers\n} from './components';\n\ndomReady( () => {\n\tnew frmRadioComponent();\n\tnew frmSliderComponent();\n\tnew frmTabsComponent();\n\tinitAddFieldsButtonHandler();\n\tinitTokenInputFields();\n\tinitToggleGroupComponents();\n\tsetupUnitInputHandlers();\n} );\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","frmTabsNavigator","wrapper","Element","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","parseInt","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","type","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","delay","setTimeout","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","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","frmRadioComponent","frmSliderComponent","frmTabsComponent","radioElements","observers","Map","_ref","frmField","getElementById","fid","initRadio","initTrackerOnAccordionClick","initOnRadioChange","initVisibilityObserver","accordionitems","accordionitem","target","radioButtons","radio","onRadioChange","radioElement","_this4","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","_this5","observer","MutationObserver","attributes","attributeFilter","parent","i","clear","offset","tracker","left","frmDependentUpdaterComponent","sliderElements","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","valueChangeDebouncer","triggerValueChange","initOptions","options","parentWrapper","dragging","startX","translateX","maxValue","dependentUpdater","initSlidersPosition","initDraggable","cancelable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","fullValue","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","toLowerCase","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","option","max","innerText","_this10","NodeList","delta","min","_this11","userBaseFontSizeInput","inputValue","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","CLASS_NAMES","GROUP_TOGGLE","TOGGLE_BLOCK","DATA_ATTRIBUTES","GROUP_NAME","SHOW","DISABLE","ENABLE","initToggleGroupComponents","applyInitialState","addEventListeners","toggleGroups","toggleGroup","toggleButton","applyToggleState","handleToggleClick","_toggleGroup$closest","fieldId","isChecked","showSelectors","normalizeSelector","disableSelectors","formElement","disabled","enableSelectors","currentToggleBlock","toggleBlock","tabIndex","selector","replace","CONTAINER","TOKENS_WRAPPER","TOKEN","TOKEN_VALUE","TOKEN_REMOVE","TOKEN_INPUT_FIELD","TOKEN_PROXY_INPUT","WITH_RIGHT_ICON","KEYS","SPACE","ENTER","COMMA","TAB","BACKSPACE","PROXY_INPUT_HEIGHT","TOKEN_GAP","addToken","removeToken","synchronizeTokensDisplay","adjustProxyInputStyle","field","proxyInput","tokensWrapper","jQuery","on","onProxyInputKeydown","trim","handleTokenRemoval","lastToken","removeButton","token","adjustAllProxyInputStyles","container","tokens","hasTokens","paddingLeft","paddingTop","height","tokensWrapperHeight","offsetHeight","numRows","lastRowWidth","calculateLastRowWidth","getLastRowTokens","tokensArray","lastRowY","tokenRect","tokenBottom","bottom","threshold","abs","lastRowTokens","totalWidth","createTokenElement","innerHTML","parseTokens","focus","tokenValue","clearProxyInput","updateFieldValue","Boolean","trigger","_window$frmDom","svg","tag","createTokenContainerElement","className","insertBefore","firstChild","parentNode","nextSibling","tokenElement","children","text","child","appendChild","initTokenInputFields","findAndInitializeTokenFields","tokenInputFields","processedFields","Set","setupTokenInput","setupUnitInputHandlers","onUnitInputChange","unitInput","control","matches","initAddFieldsButtonHandler","_document$getElementB","_document$querySelect","click","domReady"],"sourceRoot":""} +{"version":3,"file":"formidable-settings-components.js","mappings":"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","sources":["webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./js/src/admin/components/dependent-updater-component.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/settings-components/components/index.js","webpack://formidable/./js/src/settings-components/components/radio-component.js","webpack://formidable/./js/src/settings-components/components/slider-component.js","webpack://formidable/./js/src/settings-components/components/tabs-component.js","webpack://formidable/./js/src/settings-components/components/toggle-group/index.js","webpack://formidable/./js/src/settings-components/components/toggle-group/toggle-group.js","webpack://formidable/./js/src/settings-components/components/token-input/constants.js","webpack://formidable/./js/src/settings-components/components/token-input/event-handlers.js","webpack://formidable/./js/src/settings-components/components/token-input/index.js","webpack://formidable/./js/src/settings-components/components/token-input/proxy-input-style.js","webpack://formidable/./js/src/settings-components/components/token-input/token-actions.js","webpack://formidable/./js/src/settings-components/components/token-input/token-elements.js","webpack://formidable/./js/src/settings-components/components/token-input/token-input.js","webpack://formidable/./js/src/settings-components/components/unit-input.js","webpack://formidable/./js/src/settings-components/events/add-fields-button-handler.js","webpack://formidable/./js/src/settings-components/events/index.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/settings-components/index.js"],"sourcesContent":["/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.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\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}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', this.cleanupObservers );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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 { default as frmRadioComponent } from './radio-component';\nexport { default as frmSliderComponent } from './slider-component';\nexport { default as frmTabsComponent } from './tabs-component';\nexport * from './token-input';\nexport * from './toggle-group';\nexport * from './unit-input';\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { show, hide, isVisible } from 'core/utils';\n\n/**\n * Represents a radio component.\n * @class\n */\nexport default class frmRadioComponent {\n\tconstructor() {\n\t\tthis.radioElements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tthis.observers = new Map();\n\t\tif ( 0 < this.radioElements.length ) {\n\t\t\tthis.init();\n\t\t}\n\n\t\t/**\n\t\t * Handles the addition of new fields.\n\t\t *\n\t\t * @param {Event} event The frm_added_field event.\n\t\t * @param {HTMLElement} event.frmField The added field object being destructured from the event.\n\t\t */\n\t\tdocument.addEventListener( 'frm_added_field', ( { frmField } ) =>\n\t\t\tthis.discoverAndInitFieldRadios( frmField.dataset.fid )\n\t\t);\n\n\t\t/**\n\t\t * Handles the addition of new fields via AJAX.\n\t\t *\n\t\t * @param {Event} event The frm_ajax_loaded_field event.\n\t\t * @param {HTMLElement} event.frmFields The added field objects being destructured from the event.\n\t\t */\n\t\tdocument.addEventListener( 'frm_ajax_loaded_field', ( { frmFields } ) =>\n\t\t\tfrmFields.forEach( field => this.discoverAndInitFieldRadios( field.id ) )\n\t\t);\n\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinit() {\n\t\tthis.initRadio();\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\t/**\n\t * Discovers and initializes radio components for a specific field.\n\t *\n\t * @param {string|number} fieldId The unique identifier of the field whose radio components should be discovered and initialized\n\t * @throws {Error} Throws an error if the field container is not found in the DOM\n\t */\n\tdiscoverAndInitFieldRadios( fieldId ) {\n\t\tconst fieldContainer = document.getElementById( `frm-single-settings-${ fieldId }` );\n\n\t\tif ( ! fieldContainer ) {\n\t\t\tthrow new Error( `Field container not found for field ID: ${ fieldId }` );\n\t\t}\n\n\t\tthis.radioElements = fieldContainer.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tthis.initRadio();\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinitRadio() {\n\t\tthis.radioElements.forEach( element => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t\tthis.initVisibilityObserver( element );\n\t\t} );\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 * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown.\n\t *\n\t * @param {HTMLElement} element The radio component element\n\t * @return {void}\n\t */\n\tinitVisibilityObserver( element ) {\n\t\tif ( this.observers.has( element ) ) {\n\t\t\tthis.observers.get( element ).disconnect();\n\t\t}\n\n\t\tconst observer = new MutationObserver( () => {\n\t\t\t// Check if element is now visible\n\t\t\tif ( isVisible( element ) ) {\n\t\t\t\tconst radio = element.querySelector( 'input[type=\"radio\"]:checked' );\n\t\t\t\tif ( radio ) {\n\t\t\t\t\tthis.onRadioChange( radio );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.observers.set( element, observer );\n\n\t\t// Observe for attribute changes on the component and its ancestors\n\t\tobserver.observe( element, {\n\t\t\tattributes: true,\n\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t} );\n\n\t\t// Also observe parent elements up to a reasonable depth\n\t\tlet parent = element.parentElement;\n\t\tfor ( let i = 0; i < 7 && parent; i++ ) {\n\t\t\tobserver.observe( parent, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t\t} );\n\t\t\tparent = parent.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Cleanup all observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tthis.observers.forEach( observer => {\n\t\t\tobserver.disconnect();\n\t\t} );\n\n\t\tthis.observers.clear();\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( HIDDEN_CLASS );\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}\n","\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport frmDependentUpdaterComponent from '../../admin/components/dependent-updater-component';\n\n/**\n * Represents a slider component.\n * @class frmSliderComponent\n */\nexport default class frmSliderComponent {\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 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 frmDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the slider 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 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.options[ index ].fullValue = this.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( HIDDEN_CLASS );\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 ( '' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled', 'frm-empty' );\n\t\t\t\treturn;\n\t\t\t}\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\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled', 'frm-empty' );\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\tbubbles: true,\n\t\t\tcancelable: 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\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 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\tif ( slider.classList.contains( 'frm-disabled' ) ) {\n\t\t\treturn;\n\t\t}\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 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\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\t// When the slider component is used for \"Base Font Size\", we need to update a hidden input field when change happens to indicate that the \"Base Font Size\" has been adjusted.\n\t\t// Used to avoid conflicts with other possible font sizes adjustemnts in \"Advanced Settings\" when moving from \"Quick Settings\" when \"Base Font Size\" is not changed.\n\t\tif ( element.classList.contains( 'frm-base-font-size' ) ) {\n\t\t\tconst userBaseFontSizeInput = document.querySelector( 'input[name=\"frm_style_setting[post_content][use_base_font_size]\"]' );\n\t\t\tif ( null !== userBaseFontSizeInput ) {\n\t\t\t\tuserBaseFontSizeInput.value = 'true';\n\t\t\t}\n\t\t}\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}\n","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Component.\n * @class\n */\nexport default class frmTabsComponent {\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 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}\n","export * from './toggle-group.js';\n","/**\n * Group Toggle Component\n *\n * Handles toggling visibility and enabled state of related form elements\n */\n\n/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\nimport { HIDDEN_CLASS, DISABLED_CLASS, SINGLE_SETTINGS_CLASS } from 'core/constants';\n\n/**\n * Class names for group toggle component\n *\n * @private\n */\nconst CLASS_NAMES = {\n\tGROUP_TOGGLE: 'frm-toggle-group',\n\tTOGGLE_BLOCK: 'frm_toggle_block',\n};\n\n/**\n * Data attributes for group toggle component\n *\n * @private\n */\nconst DATA_ATTRIBUTES = {\n\tGROUP_NAME: 'data-group-name',\n\tSHOW: 'data-show',\n\tDISABLE: 'data-disable',\n\tENABLE: 'data-enable',\n};\n\n/**\n * Initialize all group toggle components on the page\n *\n * @return {void}\n */\nfunction initToggleGroupComponents() {\n\tapplyInitialState();\n\taddEventListeners();\n}\n\n/**\n * Apply the initial state for all toggle buttons on the page\n *\n * @private\n * @return {void}\n */\nfunction applyInitialState() {\n\tconst toggleGroups = document.querySelectorAll( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroups.length ) {\n\t\treturn;\n\t}\n\n\ttoggleGroups.forEach( toggleGroup => {\n\t\tconst toggleButton = toggleGroup.querySelector( `[${ DATA_ATTRIBUTES.GROUP_NAME }]:checked` );\n\t\tif ( ! toggleButton ) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyToggleState( toggleButton, toggleGroup );\n\t} );\n}\n\n/**\n * Add event listeners to toggle buttons in a group toggle component\n *\n * @private\n * @return {void}\n */\nfunction addEventListeners() {\n\tdocumentOn( 'change', `.${ CLASS_NAMES.GROUP_TOGGLE } [${ DATA_ATTRIBUTES.GROUP_NAME }]`, handleToggleClick );\n}\n\n/**\n * Handle click events on toggle buttons\n *\n * @private\n * @param {Event} event The click event\n * @return {void}\n */\nfunction handleToggleClick( event ) {\n\tconst toggleButton = event.target;\n\tconst toggleGroup = toggleButton.closest( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroup ) {\n\t\treturn;\n\t}\n\n\tapplyToggleState( toggleButton, toggleGroup );\n}\n\n/**\n * Apply toggle state based on toggle button settings\n * Shared functionality used by both click handler and initial state\n *\n * @private\n * @param {HTMLElement} toggleButton The toggle button element\n * @param {HTMLElement} toggleGroup The toggle group container element\n * @return {void}\n */\nfunction applyToggleState( toggleButton, toggleGroup ) {\n\tconst fieldId = toggleGroup.closest( `.${ SINGLE_SETTINGS_CLASS }` )?.dataset.fid ||\n\t\ttoggleGroup.dataset.fid;\n\n\tconst isChecked = toggleButton.checked;\n\n\t// Handle show/hide elements\n\tconst showSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.SHOW );\n\tif ( showSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( showSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( HIDDEN_CLASS, ! isChecked ) );\n\t}\n\n\t// Handle disable elements\n\tconst disableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.DISABLE );\n\tif ( disableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( disableSelectors, fieldId ) )\n\t\t\t.forEach( element => {\n\t\t\t\telement.classList.toggle( DISABLED_CLASS, isChecked );\n\t\t\t\telement.querySelectorAll( 'input, select, textarea' ).forEach(\n\t\t\t\t\tformElement => formElement.disabled = isChecked\n\t\t\t\t);\n\t\t\t\telement.querySelectorAll( '.frm-show-inline-modal[tabindex]' ).forEach(\n\t\t\t\t\tinlineModal => inlineModal.tabIndex = isChecked ? -1 : 0\n\t\t\t\t);\n\t\t\t} );\n\t}\n\n\t// Handle enable elements\n\tconst enableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.ENABLE );\n\tif ( enableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( enableSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( DISABLED_CLASS, ! isChecked ) );\n\t}\n\n\t// Toggle disabled state for all other toggle blocks within the group\n\tconst currentToggleBlock = toggleButton.closest( `.${ CLASS_NAMES.TOGGLE_BLOCK }` );\n\tArray.from( toggleGroup.querySelectorAll( `.${ CLASS_NAMES.TOGGLE_BLOCK }` ) )\n\t\t.filter( toggleBlock => toggleBlock !== currentToggleBlock )\n\t\t.forEach( toggleBlock => {\n\t\t\ttoggleBlock.classList.toggle( DISABLED_CLASS, isChecked );\n\n\t\t\t// Disable toggle switch\n\t\t\tconst toggle = toggleBlock.querySelector( '.frm_toggle' );\n\t\t\ttoggle.tabIndex = isChecked ? -1 : 0;\n\t\t\ttoggle.setAttribute( 'aria-disabled', isChecked );\n\t\t} );\n}\n\n/**\n * Normalize a selector by replacing {id} placeholders with the actual field ID\n *\n * @private\n * @param {string} selector The selector string with potential {id} placeholders\n * @param {string} fieldId The field ID to replace placeholders with\n * @return {string} The normalized selector\n */\nfunction normalizeSelector( selector, fieldId ) {\n\treturn selector.replace( /{id}/g, fieldId );\n}\n\nexport { initToggleGroupComponents };\n","/**\n * Constants for token input component\n *\n * Reusable constants for class names and other static values\n */\n\nexport const CLASS_NAMES = {\n\tCONTAINER: 'frm-token-container',\n\tTOKENS_WRAPPER: 'frm-tokens',\n\tTOKEN: 'frm-token',\n\tTOKEN_VALUE: 'frm-token-value',\n\tTOKEN_REMOVE: 'frm-token-remove',\n\tTOKEN_INPUT_FIELD: 'frm-token-input-field',\n\tTOKEN_PROXY_INPUT: 'frm-token-proxy-input',\n\tWITH_RIGHT_ICON: 'frm-with-right-icon'\n};\n\nexport const KEYS = {\n\tSPACE: ' ',\n\tENTER: 'Enter',\n\tCOMMA: ',',\n\tTAB: 'Tab',\n\tBACKSPACE: 'Backspace'\n};\n\nexport const PROXY_INPUT_HEIGHT = 36;\nexport const TOKEN_GAP = 4;\n","/**\n * Event handlers\n *\n * Functions for handling token input events\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES, KEYS } from './constants';\nimport { addToken, removeToken, synchronizeTokensDisplay } from './token-actions';\nimport { adjustProxyInputStyle } from './proxy-input-style';\n\n/**\n * Add event listeners to token input components\n *\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function addEventListeners( field, proxyInput, tokensWrapper ) {\n\t// The jQuery change event is required to catch programmatic updates, as \"Add Layout Classes\" modifies the field value via jQuery\n\tjQuery( field ).on( 'change', () => synchronizeTokensDisplay( field.value, proxyInput, tokensWrapper ) );\n\n\tproxyInput.addEventListener( 'keydown', event => onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) );\n\tproxyInput.addEventListener( 'blur', () => addToken( proxyInput.value.trim(), field, proxyInput ) );\n\n\ttokensWrapper.addEventListener( 'click', event => handleTokenRemoval( event, field, proxyInput ) );\n}\n\n/**\n * Handle keydown events on the proxy input field\n *\n * @private\n *\n * @param {Event} event Keydown event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nfunction onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) {\n\tconst { key } = event;\n\tconst value = proxyInput.value.trim();\n\n\tswitch ( key ) {\n\t\t// Remove the last token when backspace is pressed and input field is empty (no text being typed)\n\t\tcase KEYS.BACKSPACE:\n\t\t\tif ( ! value ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst lastToken = tokensWrapper.querySelector( `.${ CLASS_NAMES.TOKEN }:last-child` );\n\t\t\t\tremoveToken( lastToken, field, proxyInput );\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Create a token from current input when delimiter keys are pressed\n\t\tcase KEYS.SPACE:\n\t\tcase KEYS.COMMA:\n\t\tcase KEYS.ENTER:\n\t\t\tevent.preventDefault();\n\t\t\taddToken( value, field, proxyInput );\n\t\t\tbreak;\n\t}\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n\n/**\n * Handle token removal when clicking the remove button\n *\n * @private\n *\n * @param {Event} event Click event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @return {void}\n */\nfunction handleTokenRemoval( event, field, proxyInput ) {\n\tconst removeButton = event.target.closest( `.${ CLASS_NAMES.TOKEN_REMOVE }` );\n\tif ( ! removeButton ) {\n\t\treturn;\n\t}\n\n\tconst token = removeButton.closest( `.${ CLASS_NAMES.TOKEN }` );\n\tif ( ! token ) {\n\t\treturn;\n\t}\n\n\tconst tokensWrapper = token.parentElement;\n\n\tremoveToken( token, field, proxyInput );\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n","export * from './token-input';\n","/**\n * Proxy input style\n *\n * Functions for adjusting proxy input styling\n */\n\nimport { CLASS_NAMES, PROXY_INPUT_HEIGHT, TOKEN_GAP } from './constants';\n\n/**\n * Adjust styling for all proxy inputs on the current settings\n *\n * @return {void}\n */\nexport function adjustAllProxyInputStyles() {\n\tdocument.querySelectorAll( `.${ CLASS_NAMES.CONTAINER }` ).forEach( container =>\n\t\tadjustProxyInputStyle(\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` ),\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` )\n\t\t)\n\t);\n}\n\n/**\n * Adjust the styling of the proxy input based on tokens wrapper dimensions\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function adjustProxyInputStyle( proxyInput, tokensWrapper ) {\n\tif ( ! proxyInput || ! tokensWrapper ) {\n\t\treturn;\n\t}\n\n\tconst tokens = tokensWrapper.querySelectorAll( `.${ CLASS_NAMES.TOKEN }` );\n\tconst hasTokens = tokens.length > 0;\n\n\t// Reset all styles if no tokens\n\tif ( ! hasTokens ) {\n\t\tproxyInput.style.paddingLeft = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.height = '';\n\t\treturn;\n\t}\n\n\tconst tokensWrapperHeight = tokensWrapper.offsetHeight;\n\n\t// Calculate number of rows based on wrapper height\n\tconst numRows = Math.max( 1, Math.ceil( tokensWrapperHeight / PROXY_INPUT_HEIGHT ) );\n\n\tif ( numRows > 1 ) {\n\t\t// For multiple rows, calculate the width of tokens in the last row\n\t\tconst lastRowWidth = calculateLastRowWidth( getLastRowTokens( tokens ) );\n\n\t\tproxyInput.style.height = `${ tokensWrapperHeight }px`;\n\t\tproxyInput.style.paddingTop = `${ tokensWrapperHeight - PROXY_INPUT_HEIGHT + TOKEN_GAP }px`;\n\t\tproxyInput.style.paddingLeft = lastRowWidth ? `${ lastRowWidth + ( TOKEN_GAP * 2 ) }px` : '';\n\t} else {\n\t\t// For single row, use the full width of tokens\n\t\tproxyInput.style.height = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.paddingLeft = `${ tokensWrapper.offsetWidth - TOKEN_GAP }px`;\n\t}\n}\n\n/**\n * Identify tokens in the last row of a multi-row token layout\n *\n * @param {NodeList} tokens All token elements\n * @return {Array} Array of tokens in the last row\n */\nfunction getLastRowTokens( tokens ) {\n\tif ( ! tokens.length ) {\n\t\treturn [];\n\t}\n\n\tconst tokensArray = Array.from( tokens );\n\tlet lastRowY = -1;\n\n\ttokensArray.forEach( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenBottom = tokenRect.bottom;\n\n\t\tif ( tokenBottom > lastRowY ) {\n\t\t\tlastRowY = tokenBottom;\n\t\t}\n\t} );\n\n\tconst threshold = TOKEN_GAP / 2;\n\treturn tokensArray.filter( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\treturn Math.abs( tokenRect.bottom - lastRowY ) <= threshold;\n\t} );\n}\n\n/**\n * Calculate the total width of tokens in the last row\n *\n * @param {Array} lastRowTokens Array of token elements in the last row\n * @return {number} Total width of tokens in the last row\n */\nfunction calculateLastRowWidth( lastRowTokens ) {\n\tif ( ! lastRowTokens.length ) {\n\t\treturn 0;\n\t}\n\n\tlet totalWidth = 0;\n\n\tlastRowTokens.forEach( token => {\n\t\ttotalWidth += token.offsetWidth;\n\t} );\n\n\ttotalWidth += ( lastRowTokens.length - 1 ) * TOKEN_GAP;\n\n\treturn totalWidth + TOKEN_GAP;\n}\n","/**\n * Token actions\n *\n * Core functions for token operations and management\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES } from './constants';\nimport { adjustProxyInputStyle } from './proxy-input-style';\nimport { createTokenElement } from './token-elements';\n\n/**\n * Synchronize token display with the field value\n *\n * @param {string} value The field value\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function synchronizeTokensDisplay( value, proxyInput, tokensWrapper ) {\n\tif ( ! value || ! tokensWrapper || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\t// Clear existing tokens display and render new tokens\n\ttokensWrapper.innerHTML = '';\n\tparseTokens( value ).forEach( token => createTokenElement( token, tokensWrapper ) );\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n\n\tproxyInput.focus();\n}\n\n/**\n * Add a new token to the field\n *\n * @param {string} tokenValue The token value to add\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {boolean} Whether a token was added\n */\nexport function addToken( tokenValue, field, proxyInput ) {\n\tif ( ! tokenValue || ! field || ! proxyInput ) {\n\t\treturn false;\n\t}\n\n\t// Get current tokens from field value\n\tconst tokens = parseTokens( field.value );\n\n\t// Skip duplicate tokens\n\tif ( tokens.includes( tokenValue ) ) {\n\t\tclearProxyInput( proxyInput );\n\t\treturn false;\n\t}\n\n\t// Add new token\n\ttokens.push( tokenValue );\n\tupdateFieldValue( field, tokens );\n\tclearProxyInput( proxyInput );\n\treturn true;\n}\n\n/**\n * Remove a specific token from the field\n *\n * @param {HTMLElement} token The token element to remove\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {void}\n */\nexport function removeToken( token, field, proxyInput ) {\n\tif ( ! token || ! field || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tconst value = token.querySelector( `.${ CLASS_NAMES.TOKEN_VALUE }` ).textContent;\n\n\t// Filter out the token to remove\n\tconst tokens = parseTokens( field.value ).filter( tokenValue => tokenValue !== value );\n\tupdateFieldValue( field, tokens );\n\n\t// Remove the token element from DOM\n\ttoken.remove();\n\n\tproxyInput.focus();\n}\n\n/**\n * Parse string input into an array of tokens\n *\n * @param {string} value Space-separated string\n * @return {string[]} Array of tokens\n */\nexport function parseTokens( value = '' ) {\n\tvalue = value.trim();\n\n\tif ( ! value ) {\n\t\treturn [];\n\t}\n\n\treturn value.split( /\\s+/ ).filter( Boolean );\n}\n\n/**\n * Update field value with tokens and trigger change event\n *\n * @param {HTMLElement} field The field to update\n * @param {string[]} tokens Array of token values\n * @return {void}\n */\nexport function updateFieldValue( field, tokens = [] ) {\n\tif ( ! field ) {\n\t\treturn;\n\t}\n\n\tfield.value = tokens.join( ' ' );\n\tjQuery( field ).trigger( 'change' );\n}\n\n/**\n * Clear proxy input and maintain focus\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @return {void}\n */\nexport function clearProxyInput( proxyInput ) {\n\tif ( ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tproxyInput.value = '';\n\tproxyInput.focus();\n}\n","/**\n * Token elements\n *\n * Functions for creating token DOM elements\n */\n\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\n\nconst { span, svg, tag } = window.frmDom;\n\n/**\n * Create token container and input elements\n *\n * @param {HTMLElement} field Input field for tokenization\n * @return {HTMLElement|null} The container element or null if already initialized\n */\nexport function createTokenContainerElement( field ) {\n\t// Get the main container (.frm-with-right-icon) to work with Formidable's modal system\n\tconst container = field.closest( `.${ CLASS_NAMES.WITH_RIGHT_ICON }` );\n\n\tif ( container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` ) ) {\n\t\treturn null;\n\t}\n\n\tcontainer.classList.add( CLASS_NAMES.CONTAINER );\n\n\tconst tokensWrapper = span( {\n\t\tclassName: CLASS_NAMES.TOKENS_WRAPPER\n\t} );\n\n\tcontainer.insertBefore( tokensWrapper, container.firstChild );\n\n\tconst proxyInput = tag( 'input', {\n\t\tclassName: CLASS_NAMES.TOKEN_PROXY_INPUT,\n\t\tid: `${ field.id }-proxy-input`\n\t} );\n\n\tproxyInput.type = 'text';\n\n\t// Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system\n\tfield.parentNode.insertBefore( proxyInput, field.nextSibling );\n\tfield.classList.add( HIDDEN_CLASS );\n\n\treturn container;\n}\n\n/**\n * Create a single token element\n *\n * @param {string} value Token value\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function createTokenElement( value, tokensWrapper ) {\n\tconst tokenElement = span( {\n\t\tclassName: CLASS_NAMES.TOKEN,\n\t\tchildren: [\n\t\t\tspan( {\n\t\t\t\ttext: value,\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_VALUE\n\t\t\t} ),\n\t\t\tspan( {\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_REMOVE,\n\t\t\t\tchild: svg( { href: '#frm_close_icon' } )\n\t\t\t} )\n\t\t]\n\t} );\n\n\ttokensWrapper.appendChild( tokenElement );\n}\n","/**\n * Token Input Component\n *\n * Transforms space-separated values in a text input into selectable tokens\n */\n\n/**\n * Internal dependencies\n */\nimport { HOOKS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\nimport { createTokenContainerElement } from './token-elements';\nimport { synchronizeTokensDisplay } from './token-actions';\nimport { adjustAllProxyInputStyles } from './proxy-input-style';\nimport { addEventListeners } from './event-handlers';\n\n/**\n * Initialize all token input fields on the page\n *\n * @return {void}\n */\nfunction initTokenInputFields() {\n\tfindAndInitializeTokenFields();\n\n\t/**\n\t * Initialize for newly added fields\n\t *\n\t * @param {Event} event The frm_added_field event.\n\t * @param {HTMLElement} event.frmField The added field object being destructured from the event.\n\t */\n\tdocument.addEventListener( 'frm_added_field', ( { frmField } ) =>\n\t\tfindAndInitializeTokenFields( frmField.dataset.fid )\n\t);\n\n\t/**\n\t * Initialize for newly added fields via AJAX\n\t *\n\t * @param {Event} event The frm_ajax_loaded_field event.\n\t * @param {HTMLElement} event.frmFields The added field objects being destructured from the event.\n\t */\n\tdocument.addEventListener( 'frm_ajax_loaded_field', ( { frmFields } ) =>\n\t\tfrmFields.forEach( field => findAndInitializeTokenFields( field.id ) )\n\t);\n\n\t// Adjust styling for all token inputs when field settings are shown\n\twp.hooks.addAction( HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', adjustAllProxyInputStyles );\n}\n\n/**\n * Find all token input fields and initialize them\n *\n * @private\n * @param {string|number} fieldId The ID of the field to initialize\n * @return {void}\n */\nfunction findAndInitializeTokenFields( fieldId ) {\n\tconst container = fieldId ? document.getElementById( `frm-single-settings-${ fieldId }` ) : document.body;\n\tconst tokenInputFields = container.querySelectorAll( `.${ CLASS_NAMES.TOKEN_INPUT_FIELD }` );\n\tif ( ! tokenInputFields.length ) {\n\t\treturn;\n\t}\n\n\t// Track processed fields to prevent duplicate initialization\n\tconst processedFields = new Set();\n\ttokenInputFields.forEach( field => {\n\t\tif ( ! processedFields.has( field.id ) ) {\n\t\t\tsetupTokenInput( field );\n\t\t\tprocessedFields.add( field.id );\n\t\t}\n\t} );\n}\n\n/**\n * Set up a token input field with token container\n *\n * @private\n *\n * @param {HTMLElement} field Input field for tokenization\n */\nfunction setupTokenInput( field ) {\n\tconst container = createTokenContainerElement( field );\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst proxyInput = container.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` );\n\tconst tokensWrapper = container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` );\n\n\tsynchronizeTokensDisplay( field.value, proxyInput, tokensWrapper );\n\taddEventListeners( field, proxyInput, tokensWrapper );\n}\n\nexport { initTokenInputFields };\n","/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\n\n/**\n * Setup unit input handlers\n *\n * @return {void}\n */\nexport function setupUnitInputHandlers() {\n\tdocumentOn( 'change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange );\n\tdocumentOn( 'change', '.frm-unit-input select', onUnitInputChange );\n}\n\n/**\n * Handle the change event for the unit input\n *\n * @private\n * @param {Event} event The event object.\n * @return {void}\n */\nfunction onUnitInputChange( event ) {\n\tconst unitInput = event.target.closest( '.frm-unit-input' );\n\tconst control = unitInput.querySelector( '.frm-unit-input-control' );\n\tconst unit = unitInput.querySelector( 'select' ).value;\n\n\t// Update input type when unit changes\n\tif ( event.target.matches( 'select' ) ) {\n\t\tcontrol.type = '' === unit ? 'text' : 'number';\n\t}\n\n\t// Update the actual field value\n\tconst inputValue = control.value.trim();\n\tunitInput.querySelector( 'input[type=\"hidden\"]' ).value = '' !== inputValue ? inputValue + unit : '';\n}\n\n","/**\n * Redirects to \"Add Fields\" tab when the \"Add Fields\" button is clicked.\n *\n * When users view the Field Options tab with no fields, they see an \"Add Fields\" button.\n * Clicking this button should take them to the \"Add Fields\" tab for field selection.\n */\n\n/**\n * Initializes the Add Fields button click handler.\n */\nconst initAddFieldsButtonHandler = () => {\n\tdocument.getElementById( 'frm-form-add-field' )?.addEventListener( 'click', event => {\n\t\tevent.preventDefault();\n\t\tdocument.querySelector( '.frm-settings-panel .frm-tabs-navs ul > li:first-child' )?.click();\n\t} );\n};\n\nexport default initAddFieldsButtonHandler;\n","export { default as initAddFieldsButtonHandler } from './add-fields-button-handler';\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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { initAddFieldsButtonHandler } from './events';\nimport {\n\tfrmRadioComponent,\n\tfrmSliderComponent,\n\tfrmTabsComponent,\n\tinitTokenInputFields,\n\tinitToggleGroupComponents,\n\tsetupUnitInputHandlers\n} from './components';\n\ndomReady( () => {\n\tnew frmRadioComponent();\n\tnew frmSliderComponent();\n\tnew frmTabsComponent();\n\tinitAddFieldsButtonHandler();\n\tinitTokenInputFields();\n\tinitToggleGroupComponents();\n\tsetupUnitInputHandlers();\n} );\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","frmTabsNavigator","wrapper","Element","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","parseInt","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","type","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","delay","setTimeout","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","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","frmRadioComponent","frmSliderComponent","frmTabsComponent","radioElements","observers","Map","_ref","frmField","discoverAndInitFieldRadios","fid","_ref2","frmFields","field","initRadio","initTrackerOnAccordionClick","fieldId","fieldContainer","getElementById","Error","initOnRadioChange","initVisibilityObserver","accordionitems","accordionitem","target","radioButtons","radio","onRadioChange","radioElement","_this4","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","_this5","observer","MutationObserver","attributes","attributeFilter","parent","i","clear","offset","tracker","left","frmDependentUpdaterComponent","sliderElements","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","valueChangeDebouncer","triggerValueChange","initOptions","options","parentWrapper","dragging","startX","translateX","maxValue","dependentUpdater","initSlidersPosition","initDraggable","cancelable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","fullValue","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","toLowerCase","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","option","max","innerText","_this10","NodeList","delta","min","_this11","userBaseFontSizeInput","inputValue","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","CLASS_NAMES","GROUP_TOGGLE","TOGGLE_BLOCK","DATA_ATTRIBUTES","GROUP_NAME","SHOW","DISABLE","ENABLE","initToggleGroupComponents","applyInitialState","addEventListeners","toggleGroups","toggleGroup","toggleButton","applyToggleState","handleToggleClick","_toggleGroup$closest","isChecked","showSelectors","normalizeSelector","disableSelectors","formElement","disabled","inlineModal","tabIndex","enableSelectors","currentToggleBlock","toggleBlock","selector","replace","CONTAINER","TOKENS_WRAPPER","TOKEN","TOKEN_VALUE","TOKEN_REMOVE","TOKEN_INPUT_FIELD","TOKEN_PROXY_INPUT","WITH_RIGHT_ICON","KEYS","SPACE","ENTER","COMMA","TAB","BACKSPACE","PROXY_INPUT_HEIGHT","TOKEN_GAP","addToken","removeToken","synchronizeTokensDisplay","adjustProxyInputStyle","proxyInput","tokensWrapper","jQuery","on","onProxyInputKeydown","trim","handleTokenRemoval","lastToken","removeButton","token","adjustAllProxyInputStyles","container","tokens","hasTokens","paddingLeft","paddingTop","height","tokensWrapperHeight","offsetHeight","numRows","lastRowWidth","calculateLastRowWidth","getLastRowTokens","tokensArray","lastRowY","tokenRect","tokenBottom","bottom","threshold","abs","lastRowTokens","totalWidth","createTokenElement","innerHTML","parseTokens","focus","tokenValue","clearProxyInput","updateFieldValue","Boolean","trigger","_window$frmDom","svg","tag","createTokenContainerElement","className","insertBefore","firstChild","parentNode","nextSibling","tokenElement","children","text","child","appendChild","initTokenInputFields","findAndInitializeTokenFields","tokenInputFields","processedFields","Set","setupTokenInput","setupUnitInputHandlers","onUnitInputChange","unitInput","control","matches","initAddFieldsButtonHandler","_document$getElementB","_document$querySelect","click","domReady"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable_admin.js b/js/formidable_admin.js index 1bde1a2559..5519df4253 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -1 +1,10161 @@ -(()=>{function e(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||t(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&(e="",t=""):0===i.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().length&&(""!==e&&(e+=","),e+="#"+jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().attr("id")+" .frm_toggle_cf_opts"));var o=document.getElementById(i),a=jQuery(o);return a.fadeOut(300,(function(){var r;a.remove(),Di(),""!==t&&jQuery(t).hide(),""!==e&&jQuery(e+" a,"+e).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){li(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()})),void 0!==r&&(r=jQuery(r)).fadeOut(400,(function(){r.remove()})),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",i,o),!1}}function $(e,t){void 0===t&&(t=this),Ze(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var i=n.parentElement.className;if("string"==typeof i&&(i.indexOf("frm_email_icons")>-1||i.indexOf("frm_toggle")>-1))return void e.stopPropagation()}var o=r.children(".widget-inside");if(r.length&&o.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(o.html(''),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){o.html(e),ao(),Kn("#"+r.attr("id")),bo(o),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",o)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&-1!==t.className.indexOf("widget-action")||jQuery(t).closest(".start_divider").length<1||((o=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?o.slideDown("fast"):o.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Je(),!1}function V(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,i,o=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(o).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(i=jQuery(".frm_"+n+"_ajax")).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){i.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(o).show(),$i(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id="+jQuery('.frm_form_settings input[name="id"]').val()+"&t="+r.replace("#","")):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t="+r.replace("#","")))}}function U(e){var t,r;document.querySelectorAll(e).forEach((function(e){J(e),Array.from(e.children).forEach((function(e){return X(e,".frm-move")}));var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&J(t)})),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return x=t.clone().insertAfter(t),t.clone()},stop:function(e,t){x&&x.remove(),rn(t.item.attr("id").replace("frm_delete_field_","").replace("-"+t.item.data("optkey")+"_container","")),Di()}},jQuery(t).sortable(r)}function J(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:Y,tolerance:"pointer"})}function K(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!Qe(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach((function(e){return e.classList.remove("frm-over-droppable")})),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function Y(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var r={helper:Z,revert:"invalid",delay:10,start:ee,stop:te,drag:re,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function Z(e){var t,r=e.delegateTarget;if(Ee(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=B("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var i=r.getAttribute("data-ftype");if((t=(t=document.getElementById("frm-insert-fields").querySelector(".frm_t"+i)).cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t)return t.cloneNode(!0)}return d({className:"frmbutton"})}function ee(e,t){q.dragging=!0;var r,n=h;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),gr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach((function(e){[].slice.call(e.children).forEach((function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()}))})),Me(),Te(),R()}function te(){h.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function re(e,t){!function(e){v.scrollTop((function(t,r){var n=e.clientY,i=h.offsetHeight,o=e.clientY-h.offsetTop,a=o-i/2;return o>i-50&&n>5?r+.1*a:o<70&&n<130?r-Math.abs(.1*a):r}))}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),i=document.getElementById("frm_drag_placeholder");if(Qe(r,n,e)){i||(i=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var o,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY("+(o=t.helper,h.scrollTop-o.initialOffset+"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return i.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,i=jQuery(e.droppable);if($children=i.children().not(".edit_field_type_end_divider"),0===$children.length)i.prepend(n),t=0;else{var o=ie(i,r);if(o===$children.length){var a=jQuery($children.get(o-1));t=a.offset().top+a.outerHeight(),i.append(n);var l=i.children(".edit_field_type_end_divider");l.length&&i.append(l)}else t=jQuery($children.get(o)).offset().top,jQuery($children.get(o)).before(n)}t-=i.offset().top,n.style.top=t+"px"}({droppable:n,y:e.clientY,placeholder:i});i.style.top="",function(e){var t,r=e.x,n=e.placeholder,i=jQuery(e.droppable),o=ae(i);if(o.length){var a=function(e,t){var r,n,i,o,a=ae(e);for(o=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().left)){o=r,t>i+jQuery(n).outerWidth()/2&&(o=r+1);break}return o}(i,r);if(a===o.length){var l=jQuery(o.get(a-1));t=l.offset().left+l.outerWidth(),i.append(n)}else t=jQuery(o.get(a)).offset().left,jQuery(o.get(a)).before(n),t-=0===a?4:8;t-=i.offset().left,n.style.left=t+"px"}}({droppable:n,x:e.clientX,placeholder:i})}else i&&i.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void y();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var i=t.helper.parent(),o=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(ge(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r=e.replace("|","-")+"_"+we(),n=s("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),i=jQuery(n),o=fe(jQuery(t)),a=ue(o),l=me(o);t.parentNode.insertBefore(n,t),t.remove(),le(i);var d=0;"summary"===e&&(d=jQuery(".frmbutton_loadingnow#"+r).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:pe(e,l,a,d),success:function(t){ye(t,i);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:je})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(n.parentElement));var l=o?parseInt(o.closest(".edit_field_type_divider").getAttribute("data-fid")):0,d=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var c=i.length?ae(i):[];!function(e,t){var r;e.length&&(t.length?le(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(i,c),function(e,t){0===t.length&&1===ae(jQuery(e.parentNode)).length||le(jQuery(e))}(r,c),l!==d&&_e(jQuery(r),o),y()}}function ie(e,t){var r,n,i,o,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(o=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().top)){o=r,t>i+jQuery(n).outerHeight()/2&&(o=r+1);break}return o}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach((function(e){e.childNodes.forEach((function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))}))})),xn(),document.querySelectorAll(".edit_field_type_end_divider").forEach((function(e){return e.parentNode.appendChild(e)})),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach((function(e){return!e.children.length&&e.remove()})),Qn();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ae(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach((function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}})),t):t}function le(e,t){var r,n,i,o;void 0===t&&(t="even"),r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),n=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"],"even"===t&&5!==n?r.each(ce(i,Vt(n))):"clear"===t?r.each(ce(i,"")):(o=-1!==["left","right","middle","even"].indexOf(t)?function(e){return Wt(n,t,e)}:function(e){return ar(t[e])},r.each(ce(i,o))),se(e.parent(),r.length)}function se(e,t){var r,n;if(void 0!==e.offset()){if(r=t>=2,null===(n=document.getElementById("frm_field_group_controls"))){if(!r)return;(n=d()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t,r;(t=document.createElement("span")).innerHTML='';var n=B("Set Row Layout","formidable");de(t,n),zt(t,n),(r=document.createElement("span")).innerHTML='',r.classList.add("frm-move");var i=B("Move Field Group","formidable");de(r,i),zt(r,i),e.innerHTML="",e.appendChild(t),e.appendChild(r),e.appendChild(function(){var e=c({className:"dropdown"}),t=f({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[c({child:u({href:"#frm_thick_more_vert_icon"})}),c({className:"screen-reader-text",text:B("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:B("More Options","formidable"),"data-toggle":"dropdown","data-container":"body"}),zt(t,B("More Options","formidable")),e.appendChild(t);var r=d({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.appendChild(r),e}())}(n),D.appendChild(n)}e.append(n),n.style.display=r?"block":"none"}}function de(e,t){e.setAttribute("data-toggle","tooltip"),e.setAttribute("data-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",(function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()}))}function ce(e,t){return function(r){var n,i,o,a,l,s,d;for(n="function"==typeof t?t(r):t,i=e.length,l=!1,o=0;ot.childElementCount-1:s<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(a)return!(t.classList.contains("start_divider")||!xe(t.parentElement)&&(!xe(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));if(t.classList.contains("start_divider")&&(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)&&t.closest(".repeat_section"))return!1;if(!t.classList.contains("start_divider")){if(n=ae(jQuery(t)),i=jQuery(e),!(n.length<6)&&(n.length>6||(o=i.attr("data-fid"),1!==jQuery(n).filter('[data-fid="'+o+'"]').length)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),i=r.contains("frm_thidden"),o=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||i||o||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!o):!(ke(t)||i||n||l)}(e,t):function(e,t){if(Ee(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(ke(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!r&&!n}(e,t)}(e,t)}function xe(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Ee(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function ke(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Le(e){var t=document.getElementById(e),r=jQuery(t),n=[],i=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)},o=t;i(o);for(var a=Se(o);a&&n.length<15;)i(a),o=a,a=Se(a);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:k,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,i;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))jQuery("#frm_field_id_"+n).replaceWith(e[n]),U("#frm_field_id_"+n+".edit_field_type_divider ul.frm_sorting"),X(document.getElementById("frm_field_id_"+n));((i=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(i=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Le(i.attr("id")),ao(),Tr(),Be();var o=new Event("frm_ajax_loaded_field",{bubbles:!1});o.frmFields=r.map((function(e){return JSON.parse(e)})),document.dispatchEvent(o)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Se(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton").attr("id");if(!ge(t)){var r=0;"summary"===t&&(r=j.children('li[data-type="break"]').length>0?1:0);var n=k;return jQuery.ajax({type:"POST",url:ajaxurl,data:pe(t,0,n,r),success:function(e){Ie(e);var r=he(e);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:r,fieldType:t,form_id:n})},error:je}),!1}}function Ie(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=$e(e),r=j[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):j.append(t),Ve(e,!0),t.each((function(){J(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")}))}function Be(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");j.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r',i.appendChild(document.createTextNode(" ")),i.appendChild(o),n.appendChild(i),e.appendChild(n)}))}(t,!0===e),(r=jQuery(t)).offset().left>jQuery(window).width()-r.outerWidth()&&(t.style.left=-r.outerWidth()+"px");var n=t.firstElementChild.querySelector("a");n&&n.focus()}}),0)}function Pe(){He(!0)}function ze(e){var t=e.target.closest(".frm-section-collapsed");t&&("show"===e.type?t.style.zIndex=3:t.style.zIndex=1)}function Re(e){var t={class:"frm_delete",icon:"frm_delete_icon"};return t.label=B(e?"Delete Group":"Delete","formidable"),t}function Ge(e){var t={class:"frm_clone",icon:"frm_clone_icon"};return t.label=B(e?"Duplicate Group":"Duplicate","formidable"),t}function $e(e){var t=d();"string"==typeof e?t.innerHTML=e:t.appendChild(e);var r=jQuery();return Array.from(t.children).forEach((function(e){r=r.add(jQuery("
  • ").addClass("frm_field_box").html(jQuery("
      ").addClass("frm_grid_container frm_sorting").append(e)))})),r}function We(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),r=s("li",{className:"frm_field_box",child:t});e.replaceWith(r),t.appendChild(e),J(t),X(r,".frm-move")}function Ve(e,t){var r,n,i=/id="(\S+)"/.exec(e),o=document.getElementById(i[1]),a="#"+i[1]+".edit_field_type_divider ul.frm_sorting.start_divider",l=jQuery(a),s=o.getAttribute("data-type");r=e,(n=d()).innerHTML=r,n.querySelectorAll(".form-field").forEach(Ue);var c,f,u=!1;if(Di(),U(a),"quantity"===s&&function(e){var t=e.getAttribute("data-fid"),r=document.getElementById("field_options[product_field_"+t+"]");null!==r&&(rt(r),ni(document.getElementById("frm-single-settings-"+t)))}(o),"product"!==s&&"quantity"!==s||Be(),l.length)l.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var m=jQuery(o).closest("ul.frm_sorting.start_divider");m.length&&(En(m),u=!0)}if(-1!==e.indexOf("frm-collapse-page")&&Tr(),f="frm-newly-added",(c=o).classList?c.classList.add(f):c.className+=" "+f,setTimeout((function(){o.classList.remove("frm-newly-added")}),1e3),t){var _=o.getBoundingClientRect(),p=document.getElementById("post-body-content");_.top>=0&&_.left>=0&&_.right<=(window.innerWidth||document.documentElement.clientWidth)&&_.bottom<=(window.innerHeight||document.documentElement.clientHeight)||p.scroll({top:p.scrollHeight,left:0,behavior:"smooth"}),!1===u&&En(l)}Ke(),ao(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable");var g=new Event("frm_added_field",{bubbles:!1});g.frmField=o,g.frmSection=a,g.frmType=s,g.frmToggles=u,document.dispatchEvent(g)}function Ue(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=","+e.dataset.fid))}}function Je(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||gr()}function Ye(){var e=this.value,t=function(e){var t,r=[],n=e.split(""),i=n.length,o=["{","[","("],l={"}":"{",")":"(","]":"["},s=[];for(t=0;t0||s.length>0?a.unmatched_parens+"\n\n":""}(e);t+=function(e,t){var r=function(e,t){var r="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(r=a.text_shortcodes+"\n\n"),r}(e,t);return r+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+=a.view_shortcodes+"\n\n"),t}(e)}(e,this),""!==t&&H(e+"\n\n"+t)}function Xe(e,t){for(var r,n,i,o=!1,a=0;a"+l[t].fieldName+"")):(r=r?" checked":"",i.push('"));e.innerHTML=i.join("")}function nt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(n.innerHTML=mn(r),"TEXTAREA"===n.nodeName&&n.classList.contains("wp-editor-area")&&jQuery(n).trigger("change"),n.classList.contains("frm_primary_label")&&"break"===n.nextElementSibling.getAttribute("data-ftype")&&(n.nextElementSibling.querySelector(".frm_button_submit").textContent=r)))}function at(e){var t=parseFloat(e.getAttribute("max")),r=parseFloat(e.getAttribute("min"));return(t-r)/2+r}function lt(){var e,t=this.getAttribute("data-fid"),r="";["field_options_max_","frm_format_"].forEach((function(e){var n=document.getElementById(e+t);n&&(r+=n.value)})),"text"===(e=document.getElementsByName("field_options[type_"+t+"]")[0]).options[e.selectedIndex].value&&dt(""!==r,".frm_invalid_msg"+t)}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,r=jQuery("#field_label_"+e+" .frm_required");if(dt(t,".frm_required_details"+e),t){var n=jQuery('input[name="field_options[required_indicator_'+e+']"]');""===n.val()&&n.val("*"),r.removeClass("frm_hidden")}else r.addClass("frm_hidden")}function dt(e,t){if($msg=jQuery(t),e)$msg.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=$msg.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not("+t+"):visible").length;r.css("display",""),0===n&&$msg.closest(".frm_validation_msg").fadeOut("fast")}}function ct(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details"+e);if(this.checked)t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast"),$unqDetail=jQuery(".frm_unique_details"+e+" input"),""===$unqDetail.val()&&$unqDetail.val(a.default_unique);else{var r=t.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not(.frm_unique_details"+e+"):visible").length;r.css("display",""),0===n&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ft(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),r=jQuery(document.getElementById("frm_field_id_"+e));if(dt(""!==t,".frm_conf_details"+e),""!==t){var n=jQuery(".frm_validation_box .frm_conf_details"+e+" input");""===n.val()&&n.val(a.default_conf),function(e){var t=document.getElementsByName("field_options[type_"+e+"]")[0].value;ut(document.getElementById("field_description_"+e),"field_options[description_"+e+"]",a["enter_"+t]),ut(document.getElementById("conf_field_description_"+e),"field_options[conf_desc_"+e+"]",a["confirm_"+t])}(e),"inline"===t?r.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&r.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-"+e).removeClass("frm_hidden")}else jQuery(".frm-conf-box-"+e).addClass("frm_hidden"),setTimeout((function(){r.removeClass("frm_conf_inline frm_conf_below")}),200)}function ut(e,t,r){e.innerHTML===a.desc&&(e.innerHTML=r,document.getElementsByName(t)[0].value=r)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t=jQuery(this).closest(".frm-single-settings").data("fid"),r=jQuery("#frm_field_"+t+"_opts .frm_option_template").prop("outerHTML"),n=jQuery(this).data("opttype"),i=0,o=function(e){for(var t=0,r=0,n=jQuery("#frm_field_"+e+"_opts li"),i=0;ti||"000"===i)&&(i=r)}return i}(t);if("000"!==o&&(i=o+1),"other"===n){document.getElementById("other_input_"+t).value=1;var a=jQuery(this).data("ftype");"radio"!==a&&"select"!==a||jQuery(this).fadeOut("slow");var l={action:"frm_add_field_option",field_id:t,opt_key:i,opt_type:n,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,l,(function(e){jQuery(document.getElementById("frm_field_"+t+"_opts")).append(e),rn(t)}))}else r=(r=(r=(r=(r=r.replace(new RegExp('optkey="000"',"g"),'optkey="'+i+'"')).replace(new RegExp("-000_","g"),"-"+i+"_")).replace(new RegExp('-000"',"g"),"-"+i+'"')).replace(new RegExp("\\[000\\]","g"),"["+i+"]")).replace("frm_hidden frm_option_template",""),Po(t,r={newOption:r}),this.closest(".frm_single_option").after(r.newOption),rn(t);null===(e=this.closest(".frm_sortable_field_opts"))||void 0===e||null===(e=e.querySelectorAll(".frm_remove_tag.frm_disabled"))||void 0===e||e.forEach((function(e){return e.classList.remove("frm_disabled")})),Di()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var r=jQuery(".frm_multiple_cont_"+e);"select"===t?r.fadeIn("fast"):r.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");To(jQuery(".field_"+e+"_option_key")),jQuery(".field_"+e+"_option").toggleClass("frm_with_key")}function ht(){var e,t,r=jQuery(this).closest(".frm-single-settings"),n=r.data("fid"),i=document.getElementById("frm_field_id_"+n);wt(jQuery(this)),To(jQuery(".field_"+n+"_image_id")),To(jQuery(".frm_toggle_image_options_"+n)),To(jQuery(".frm_image_size_"+n)),To(jQuery(".frm_alignment_"+n)),To(jQuery(".frm-add-other#frm_add_field_"+n)),(e=gn(n))?(bt(n,"inline"),vt(i),t=tn(n),i.classList.add("frm_image_options"),i.classList.add("frm_image_size_"+t),r.find(".frm-bulk-edit-link").hide()):(i.classList.remove("frm_image_options"),vt(i),bt(n,"block"),r.find(".frm-bulk-edit-link").show()),wp.hooks.doAction("frm_image_options_toggled",r[0],e)}function vt(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_"+e).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);Qt(),gn(e)&&(vt(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_"+tn(e)))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_"+t+"_option").trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t=e.target.closest(".frm_image_preview_wrapper");e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",(function(){var e=r.state().get("selection").first().toJSON(),n=t.querySelector("img");n.setAttribute("src",e.url),n.classList.remove("frm_hidden"),n.removeAttribute("srcset"),t.querySelector(".frm_image_preview_frame").style.display="block",t.querySelector(".frm_image_preview_title").textContent=e.filename,t.querySelector(".frm_choose_image_box").style.display="none";var i=jQuery(t);i.siblings('input[name*="[label]"]').data("frmimgurl",e.url),i.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0})),r.open()}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function Lt(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout((function(){e.focus()}),100)}function St(e){var t=e.target,r=t.closest(".frm_warning_style");jQuery(r).fadeOut(400,(function(){return r.remove()}));var n=t.dataset.action,i=new FormData;g(n,i)}function At(e){e.preventDefault()}function It(){var e,t=this.parentNode,r=t.parentNode,n=r.querySelectorAll("li:not(.frm_hidden)");2===n.length&&(null===(e=Array.from(n).find((function(e){return e!==t})).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i,o=this.getAttribute("data-fid");jQuery(t).fadeOut("fast",(function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(t).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(i=document.getElementById("other_input_"+o))&&(i.value=0),jQuery("#other_button_"+o).fadeIn("fast"))})),Di()}function Bt(){var e,t,r,n;(e=jQuery(this)).is(":checked")&&(t=function(){setTimeout((function(){e.prop("checked",!1)}),0)},r=function(){e.off("mouseup",n)},n=function(){t(),r()},e.on("mouseup",n),e.one("mouseout",r))}function Ct(){this.value===a.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function qt(e){return C(B("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=a.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,r=t.parentNode,n=jQuery(this).closest("li.form-field"),i=n.data("fid");if("divider"===n.data("ftype")){var o=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;o.forEach((function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)})),l&&(e=qt(++l))}return r.classList.contains("frm-section-collapsed")||r.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=a.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",i),Te(),F(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e,t;null!==(e=document.querySelector(".frm-field-group-hover-target"))&&(e.classList.add("frm-selected-field-group"),(t=document.createElement("div")).classList.add("frm-delete-field-groups","frm_hidden"),document.body.appendChild(t),t.click())}function Dt(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_"+we(),r=document.createTextNode("");We(r);var n=jQuery(r).closest("li").get(0);n.classList.add("frm_hidden");var i=n.querySelector("ul");i.id=t,jQuery(e.closest("li.frm_field_box")).after(n);var o=ae(jQuery(e)),a=[],l=[],s=o.length,d={},c=0;jQuery(n).on("frm_added_duplicated_field_to_row",(function(e,t){if(d[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++c)){var r=jQuery(i),o=ae(r);l.forEach((function(e){e.remove()}));for(var f=0;f0&&ir(Vt(t)))&&l>=12&&(l=Math.floor(12/t)),s=0;s',""),t);e.prepend(r),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",(function(){mr(document.getElementById("frm-field-group-message"))}))}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var r=e.ctrlKey||e.metaKey,n=e.shiftKey,i=t.classList.contains("frm-selected-field-group"),o=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=_r();if(t){var r=t.closest("ul");if(r&&1===ae(jQuery(r)).length)return r.classList.add("frm-selected-field-group"),jQuery(r)}return jQuery()}(),a=o.length;if(r||n){var l=_r();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),r){if(i)return--a,t.classList.remove("frm-selected-field-group"),void pr(a);++a}else if(n&&!i){++a;var s=o.first();(s.parent().index()=2||1===e&&ae(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e,t,r,n,i;if(null!==(e=document.getElementById("frm_field_multiselect_popup")))return e.classList.toggle("frm-unmergable",!hr()),e;(e=d()).id="frm_field_multiselect_popup",hr()||e.classList.add("frm-unmergable"),(t=d()).classList.add("frm-merge-fields-into-row"),t.textContent=B("Merge into row","formidable"),(r=document.createElement("a")).style.marginLeft="5px",r.classList.add("frm_icon_font","frm_arrowdown6_icon"),r.setAttribute("href","#"),t.appendChild(r),e.appendChild(t),(n=d()).classList.add("frm-multiselect-popup-separator"),e.appendChild(n),(i=d()).classList.add("frm-delete-field-groups"),i.appendChild(Rt("frm_trash_svg")),e.appendChild(i),document.getElementById("post-body-content").appendChild(e),jQuery(e).hide().fadeIn()}():yr(),Me()}function gr(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",gr),yr()}function yr(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function hr(){var e,t,r,n,i;if(1===(r=(e=document.querySelectorAll(".frm-selected-field-group")).length))return!1;for(t=0,n=0;n6)return!1}return!0}function vr(e){var t;null===e.originalEvent.target.closest("#frm_field_group_popup")&&(e.originalEvent.target.classList.contains("frm-custom-field-group-layout")||(t=Pt(br(),document.querySelector(".frm-selected-field-group").firstChild),this.appendChild(t)))}function br(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each((function(){e+=ae(jQuery(this)).length})),e}function jr(){var e,t,r,n;n=[],jQuery(".frm-selected-field-group > li.form-field").each((function(){n.push(this.dataset.fid)})),t=function(e){return function(t){t.preventDefault(),function(e){e.forEach((function(e){Qr(e)}))}(e)}}(e=n),null!==(r=document.getElementById("frm_field_multiselect_popup"))&&r.remove(),this.setAttribute("data-frmverify",qt(e.length)),F(this);var i=document.getElementById("frm-confirmed-click");null==i||i.removeAttribute("data-deletefield"),jQuery(i).on("click",t),jQuery("#frm_confirm_modal").one("dialogclose",(function(){jQuery(i).off("click",t)}))}function wr(){Qr(this.getAttribute("data-deletefield"))}function Qr(e){var t=jQuery("#frm_field_id_"+e);xr(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each((function(){xr(this.getAttribute("data-fid"))})),xn()}function xr(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,r=jQuery(document.getElementById("frm_field_id_"+e)),n=jQuery("#frm-single-settings-"+e);n.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach((function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").appendChild(e)}))}(n),n.remove(),r.fadeOut("slow",(function(){var e,t=r.closest(".start_divider"),n=r.data("type"),i=r.siblings("li.form-field");if(i.length||(r.is(".edit_field_type_end_divider")?i.length=r.closest("li.form-field").siblings():e=r.closest("ul.frm_sorting").parent()),r.remove(),"break"===n?Tr():"product"===n&&(Be(),nt()),i.length?le(i.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(j.get(0).childElementCount>1)return!1;var e=j.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var o=document.getElementById("frm_form_editor_container");o.classList.remove("frm-has-fields"),o.classList.add("frm-empty-fields")}else t.length&&En(t);R()})),r.length&&wp.hooks.doAction("frm_after_delete_field",r[0])}})}function Er(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_logic_row_"+e).querySelectorAll(".frm_logic_row");return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_logic_row",form_id:t,field_id:e,nonce:frmGlobal.nonce,meta_name:kr(r,"frm_logic_"+e+"_"),fields:tt()},success:function(t){jQuery(document.getElementById("logic_"+e)).fadeOut("fast",(function(){var r=document.getElementById("frm_logic_row_"+e);r.insertAdjacentHTML("beforeend",t);var n=r.querySelector(".frm_logic_row:last-child .frm-logic-rule-text");n&&(n.textContent=r.dataset.ruleText);var i=r.closest(".frm_logic_rows");i.style.height="auto",jQuery(i).fadeIn("fast")}))}}),!1}function kr(e,t,r){return e.length?parseInt(e[e.length-1].id.replace(t,""),10)+1:void 0!==r?r:0}function Lr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_watch_lookup_block_"+e).children;return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_watch_lookup_row",form_id:t,field_id:e,row_key:kr(r,"frm_watch_lookup_"+e+"_"),nonce:frmGlobal.nonce},success:function(t){var r,n=jQuery(document.getElementById("frm_watch_lookup_block_"+e));n.append(t),n.fadeIn("slow"),null===(r=document.getElementById("frm_watch_lookup_label_".concat(e)))||void 0===r||r.classList.remove("frm-force-hidden")}}),!1}function Sr(e){var t,r,n=jQuery(e).closest(".frm-single-settings").attr("data-fid"),i=jQuery(e).closest("ul").get(0).querySelectorAll(".field_"+n+"_option");for(t in i)if((r=i[t]).id!==e.id&&r.value===e.value&&"true"!==r.getAttribute("data-duplicate"))return!0;return!1}function Ar(){var e,t;null===this.getAttribute("data-value-on-load")&&(this.setAttribute("data-value-on-load",this.value),t=jQuery(this).closest(".frm-single-settings").attr("data-fid"),(e=document.createElement("input")).value=this.value,e.setAttribute("type","hidden"),e.setAttribute("name","optionmap["+t+"]["+this.value+"]"),this.parentNode.appendChild(e),void 0===S[t]&&(S[t]={}),S[t][this.value]=e),"true"===this.getAttribute("data-duplicate")&&(this.removeAttribute("data-duplicate"),Sr(this))?this.setAttribute("data-value-on-focus",this.getAttribute("data-value-on-load")):""===this.value&&a.new_option===this.getAttribute("data-value-on-focus")||this.setAttribute("data-value-on-focus",this.value)}function Ir(e){var t,r=e.closest(".frm_single_option");return e.parentElement.classList.contains("frm_single_option")?{newValue:r.querySelector('.frm_option_key input[type="text"]').value,newLabel:t=e.value}:(t=r.querySelector('input[type="text"]').value,{newValue:e.value,newLabel:t})}function Br(){var e,t,r,n,i,o,a,l,s,d,c,f,u=function(e){var t=function(e){var t,r,n=null!==(t=null===(r=e.closest(".frm-single-settings").querySelector(".frm_toggle_sep_values"))||void 0===r?void 0:r.checked)&&void 0!==t&&t,i=e.closest(".frm_single_option");return n&&e.parentElement.classList.contains("frm_single_option")?{oldValue:i.querySelector('.frm_option_key input[type="text"]').getAttribute("data-value-on-focus"),oldLabel:e.getAttribute("data-value-on-focus")}:{oldValue:e.getAttribute("data-value-on-focus"),oldLabel:i.querySelector('input[type="text"]').getAttribute("data-value-on-focus")}}(e),r=t.oldValue,n=t.oldLabel,i=Ir(e);return{oldValue:r,oldLabel:n,newValue:i.newValue,newLabel:i.newLabel}}(this),m=u.oldValue,_=u.oldLabel,p=u.newValue,g=u.newLabel;if(m!==p||_!==g){var y=this.closest(".frm-single-settings");if(t=y.getAttribute("data-fid"),e=this.getAttribute("data-value-on-load"),Sr(this))return this.setAttribute("data-duplicate","true"),void(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=e));for(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=p),s=[],rows=D.querySelectorAll(".frm_logic_row"),o=rows.length,a=0;a1)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(H(a.repeat_limit_min),this.value="")}function Kr(){var e=this.value;""!==e&&(e<1||e>200)&&(H(a.checkbox_limit),this.value="")}function Yr(e,t){jQuery(e).closest(".frm_field_box").find(".frm_"+t+"_form_row .frm_repeat_label").text(e.value)}function Xr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,r=document.getElementById("frm_show_selected_fields_"+e),n=document.getElementById("frm_show_selected_forms_"+e);jQuery(n).find("select").val(""),"form"===t?(n.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.removeChild(e.firstChild)}(r)):(r.style.display="none",n.style.display="none",wn(t,e))}function Zr(){var e,t;(e=en(this))&&(t=jQuery(this).closest(".frm_single_option"),function(e,t,r){var n,i,o,a,l,s,c=r.data("optkey"),f=pn(e),u=jQuery('label[for="field_'+t+"-"+c+'"]'),m="field_options[options_"+e+"]["+c+"]",_=jQuery('input[name="'+m+'[label]"]');if(u.length<1)return rn(e),void((o=r.find('input[name^="default_value_"]')).is(":checked")&&_.length>0&&jQuery('select[name^="item_meta['+e+']"]').val(_.val()));if(a=u.children("input"),n=_.length<1?(_=jQuery('input[name="'+m+'"]')).val():f?jQuery('input[name="'+m+'[value]"]').val():_.val(),!(_.length<1)){if(i=u[0].childNodes,gn(e))l=function(e,t,r){var n,i,o;return(n=e.find("img"))&&(i=n.attr("src")),o=yn(t),fn(t),_n(r.val(),o,i)}(r,e,_),(s=u.find(".frm_image_option_container")).length>0?s.replaceWith(l):(i[i.length-1].nodeValue="",u.append(l));else{var p=!1;i.forEach((function(t,r){if(!1===p)"INPUT"===t.tagName&&(p=r);else if(r===p+1){var n="";!function(e){var t=document.getElementsByName("field_options[image_options_"+e+"]"),r=Array.from(t).find((function(e){return e.checked&&"buttons"===e.value}));return void 0!==r}(e)?t.nodeValue=" "+_.val():(n=d({className:"frm_label_button_container",text:" "+_.val()}),u[0].replaceChild(n,t))}else u[0].removeChild(t)}))}a.val(n),o=r.find('input[name^="default_value_"]'),a.prop("checked",!!o.is(":checked"))}}(e.fieldId,e.fieldKey,t))}function en(e){var t;return!!(t=jQuery(e).closest(".frm_sortable_field_opts")).length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function tn(e){var t,r=document.getElementById("field_options_image_size_"+e),n="";return null!==r&&""!==(t=r.value)&&(n=t),n}function rn(e){var t,r,n,i,o,a=jQuery('[name^="item_meta['+e+']"]');if(!(a.length<1)){if(a.is("select"))null!==(i=document.getElementById("frm_placeholder_"+e))&&""===i.value?sn(a[0],{sourceID:e}):sn(a[0],{sourceID:e,placeholder:i.value});else{r=cn(e),jQuery("#field_"+e+"_inner_container > .frm_form_fields").html(""),o=en(jQuery("#frm_delete_field_"+e+"-000_container"));var l=jQuery("#field_"+e+"_inner_container > .frm_form_fields"),s=gn(e),d=s?tn(e):"",c=s?"frm_image_option frm_image_"+d+" ":"",f=Fo(e);for(n="hidden"===a.attr("type")?a.data("field-type"):a.attr("type"),t=0;t=0;a--){var u;l=d[a];var m=null===(u=document.getElementById("frm_field_"+e+"_opts").querySelector('.frm_option_key input[type="text"]'))||void 0===u?void 0:u.value;m||(m=l),s=i.querySelector('option[value="'+m+'"]');var _=nn(e,l),p=_.newValue,g=_.newLabel,y=document.querySelectorAll("#frm_field_"+e+"_opts input[data-value-on-focus]"),h=Array.from(y).find((function(e){return e.value===l}));if(h){var v=h.dataset.valueOnFocus;if(v&&i.querySelector('option[value="'+v+'"]'))continue}an(i,s,p,g)}null!==(s=i.querySelector('option[value=""]'))&&i.prepend(s)}}function an(e,t,r,n){null!==t||e.querySelector('option[value="'+r+'"]')||((t=frmDom.tag("option",{text:n})).value=r),e.prepend(t)}function ln(e,t,r,n,i,o){var a,l="",s=-1!==t.key.indexOf("other"),d="field_"+n+"-"+t.key,c="scale"===e?"radio":e;return a='',this.getSingle=function(){return""!==(l=wp.hooks.applyFilters("frm_admin.build_single_option_template",l,{opt:t,type:e,fieldId:r,classes:o,id:d}))?l:'
      "+(s?a:"")+"
      "},this.getSingle()}function sn(e,t){if(null!==e){var r=t.sourceID,n=t.placeholder,i=Fo(r),o=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=cn(r),l=void 0!==n,s=0;s0||d[t].name.indexOf("[value]")>0||d[t].name.indexOf("[image]")>0||d[t].name.indexOf("[price]")>0||(i=r=d[t].value,o=d[t].name.replace("field_options[options_"+e+"][","").replace("[label]","").replace("]",""),m&&(n=d[t].name.replace("[label]","[value]"),r=jQuery('input[name="'+n+'"]').val()),u&&(i=_n(i,f,un(d[t]),fn(e))),a={saved:r,label:i=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",i,e,d[t],u),checked:(l=d[t].id,field=jQuery("#"+l),0!==field.length&&(checkbox=field.siblings("input[type=checkbox]"),checkbox.length&&checkbox.prop("checked"))),key:o},c&&(n=d[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'+n+'"]').val()),s.push(a));return s}function fn(e){var t=document.getElementById("frm-single-settings-"+e);return null===t?"radio":t.classList.contains("frm-type-checkbox")?"checkbox":"radio"}function un(e){var t,r=jQuery(e).siblings(".frm_image_preview_wrapper");return r.length&&(t=r.find("img")).length?t.attr("src"):""}function mn(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce((function(e,t){var r=frmDom.cleanNode(t);return"#text"===r.nodeName?e+r.textContent:e+r.outerHTML}),"");return t!==e?mn(t):t}function _n(e,t,r,n){var i,o,l,c=e;return c=mn(c),r?o=m({src:r,alt:c}):(o=d({className:"frm_empty_url"})).innerHTML=a.image_placeholder_icon,i=t?" frm_label_with_image":"",(l=s("span",{className:"frm_text_label_for_image_inner"})).innerHTML=c,s("span",{className:"frm_image_option_container"+i,children:[o,s("span",{className:"frm_text_label_for_image",child:l})]})}function pn(e){return hn("separate_value_"+e)}function gn(e){for(var t=!1,r=document.getElementsByName("field_options[image_options_"+e+"]"),n=0;n=0&&(r.splice(t,1),e.val(r),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function An(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function In(){jQuery(".frm-hide-empty").each((function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()}))}function Bn(e){e.preventDefault(),function(e,t,r){var n=document.getElementById(e.getAttribute("data-open")),i=jQuery(e).closest("p,ul"),o=void 0!==t;if(i.hasClass("frm-open"))i.removeClass("frm-open"),n.classList.add("frm_hidden");else{if(o||(t=Ri(e)),null!==t){if(!o){var a=r.key;"Enter"!==a&&" "!==a&&t.focus()}i.after(n),n.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===n.id.indexOf("frm-calc-box")&&Ze(n,!0)}i.addClass("frm-open"),n.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",n,e)}}(this,void 0,e)}function Cn(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'+this.parentNode.id+'"]').closest(".frm-open").removeClass("frm-open")}function qn(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")}))}function Nn(){var e,t,r,n,i,o,a,l=this.getAttribute("data-frmchange").split(",");for(e=0;e',r)),o.innerHTML=c,e.dataset.upsellImage&&o.appendChild(m({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),a.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,a),s.style.display="none",i.style.display=_,l.style.display="block"===_?"inline-block":_,o.style.display=u,a.style.display="block"===f?"inline-block":f}function Kn(e){void 0===e&&(e=""),function(e){var t,r=jQuery(e+" :not(.frm_has_shortcodes) .frm_not_email_message, "+e+" :not(.frm_has_shortcodes) .frm_not_email_to, "+e+" :not(.frm_has_shortcodes) .frm_not_email_subject");for(t=0;t').before('')}function Yn(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery("."+e+"_action_box").hide(),"redirect"===t?jQuery("."+e+"_action_redirect_box."+e+"_action_box").fadeIn("slow"):"page"===t?jQuery("."+e+"_action_page_box."+e+"_action_box").fadeIn("slow"):jQuery("."+e+"_action_message_box."+e+"_action_box").fadeIn("slow")}function Xn(e){if(m=e.target,p=jQuery(m),g=p.closest(".frm_form_action_settings"),(y=g.find(".widget-inside")).find("p, div, table").length||((_=g.find(".widget-top")).on("frm-action-loaded",(function(){p.trigger("click"),g.removeClass("open"),y.hide()})),_.trigger("click"),0)){var t=e.target.closest(".frm_form_action_settings"),r=t.querySelectorAll(".wp-editor-area");r.length&&r.forEach((function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)}));var n=jQuery(t).clone(),i=n.attr("id").replace("frm_form_action_",""),o=Zn(i);n.find(".frm_action_id, .frm-btn-group").remove(),n.find('input[name$="['+i+'][ID]"]').val(""),n.find(".widget-inside").hide(),n.find("input[type=text], textarea, input[type=number]").prop("defaultValue",(function(){return this.value})),n.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",(function(){return this.checked}));var a=new RegExp("\\["+i+"\\]","g"),l=new RegExp("_"+i+'"',"g"),s=new RegExp("-"+i+'"',"g"),c=new RegExp('"'+i+'"',"g"),f=n.html().replace(a,"["+o+"]").replace(l,"_"+o+'"');f=f.replace(s,"-"+o+'"').replace(c,'"'+o+'"');var u=d({id:"frm_form_action_"+o,className:n.get(0).className});u.setAttribute("data-actionkey",o),u.innerHTML=f,u.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach((function(e){"string"==typeof e.className&&(e.className=e.className.replace(i,o)),e.id=e.id.replace(i,o)})),u.classList.remove("open"),document.getElementById("frm_notification_settings").appendChild(u),r.length&&(r.forEach((function(e){frmDom.wysiwyg.init(e)})),u.querySelectorAll(".wp-editor-area").forEach((function(e){frmDom.wysiwyg.init(e)}))),u.classList.contains("frm_single_on_submit_settings")&&u.querySelector("input.frm-page-search")&&bo(u),ao(),wp.hooks.doAction("frm_after_duplicate_action",u)}var m,_,p,g,y}function Zn(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_"+t)&&(t=Zn(++t)),t}function ei(){var e,t=jQuery(this).data("actiontype");if(!si(t)){var r=(e=kr(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_"+e)&&(e+=100),A>=e&&(e=A+1),A=e,e),n=k,i=document.createElement("div");i.classList.add("frm_single_"+t+"_settings");var o=document.getElementById("frm_notification_settings");o.appendChild(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:r,form_id:n,nonce:frmGlobal.nonce},success:function(e){Di(),i.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach((function(e){return e.classList.remove("open")}));var n=d();n.innerHTML=e;var a=n.querySelector(".widget-top");Array.from(n.children).forEach((function(e){return o.appendChild(e)})),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_"+r);l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),li(t),Kn("#frm_form_action_"+r),ao(),bo(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function ti(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",Ao(t,"input")}function ri(e){e.on("Change",(function(){!function(e){var t,r;(t=document.querySelector(".frm-single-settings:not(.frm_hidden)"))&&null!==(r=t.querySelector(".wp-editor-wrap"))&&r.classList.contains("tmce-active")&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)}))}function ni(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===ni.prototype.endMarker&&(ni.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var r=null!==e?e.parentElement.classList:"";null!==e&&(r.contains("frm_field_box")||r.contains("divider_section_only"))&&t.fragment.appendChild(e)},this.moveFields=function(){w.insertBefore(t.fragment,ni.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function ii(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_"+e+" .frm_"+t+"_row").fadeIn("slow"),jQuery(this).fadeOut("slow")}function oi(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),r=".frm_"+t+"_row",n=".frm_"+t+"_button";jQuery(e).find(n).fadeIn("slow"),jQuery(e).find(r).fadeOut("slow",(function(){jQuery(e).find(r+" input").val("")}))}function ai(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function li(e){var t,r,n=document.querySelectorAll(".frm_"+e+"_action");si(e)?(t=n,r=di(e)>0,t.forEach((function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),r&&e.classList.add("frm_already_used")}))):n.forEach((function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))}))}function si(e){var t=function(e){return jQuery(".frm_single_"+e+"_settings").length}(e)>=di(e),r={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,r)}function di(e){return parseInt(jQuery(".frm_"+e+"_action").data("limit"),10)}function ci(){var e=a.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" "+a.edit_action_text),H(e)}function fi(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),r=document.getElementById("form_id").value,n=document.getElementById("frm_logic_row_"+e),i=kr(n.querySelectorAll(".frm_logic_row"),"frm_logic_"+e+"_"),o=d({id:"frm_logic_"+e+"_"+i,className:"frm_logic_row frm_hidden"});return n.appendChild(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:r,meta_name:i,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_"+e)).fadeOut("slow",(function(){o.insertAdjacentHTML("beforebegin",t),o.remove(),jQuery(n).parent(".frm_logic_rows").fadeIn("slow")}))}}),!1}function ui(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,r=jQuery(t).val();if(""===r||"checkbox"===r)return!1;e.each((function(){if(jQuery(this).val()===r&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),H(a.field_already_used),!1}))}function mi(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function _i(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function pi(){var e,t,r=document.getElementById("frm_posttax_rows").childNodes,n=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),a=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:a,nonce:frmGlobal.nonce},success:function(n){for(i=0;i');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),i=jQuery(document.getElementById(r+"_show_exclude")).is(":checked")?1:0,o=jQuery('select[name$="[post_category]['+r+'][field_id]"]').val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:o,show_exclude:i,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_"+r)).replaceWith(e)}})}}function ji(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function wi(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery("."+r).hide():(jQuery("."+r).show(),jQuery(".hide_"+r+"_"+t).hide())}function Qi(){zn()||($n(this),Fn(document.querySelector(".frm_form_settings")))}function xi(e){return e.preventDefault(),Ei(jQuery(this),this.getAttribute("data-code")),!1}function Ei(e,t){var r=!1,i=e;if("object"===n(e)){if(e.hasClass("frm_noallow"))return;void 0===(i=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(i=e.closest("div").attr("class"))&&(i=i.split(" ")[1])}if(void 0===i){var o=document.activeElement;"search"===o.type?null===(i=o.id.replace("-search-input","")).match(/\d/gi)&&(i=(o=jQuery(".frm-single-settings:visible ."+i)).attr("id")):i=o.id}i&&(r=jQuery("#wp-"+i+"-wrap.wp-editor-wrap").length>0);var a=jQuery(document.getElementById(i));if(void 0===e.attr("data-shortcode")&&(!a.length||void 0===a.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="["+t+"]")}if(r&&(wpActiveEditor=i),!a.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:i,success:function(e){if(r){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else ki(a,e)}})}else t=function(e,t,r){return"object"===n(t)&&t instanceof jQuery&&0===r[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,a),r?send_to_editor(t):ki(a,t);return!1}function ki(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{obj=e[0];var r=obj.selectionEnd;t=function(e,t,r,n){var i=e.data("sep");if(void 0===i)return t;var o=e.val();if(!o.trim().length)return t;var a=new RegExp(i+"\\s*$"),l=new RegExp("^\\s*"+i);return o.substr(0,r).trim().length&&!1===a.test(o.substr(0,r))&&(t=i+t),o.substr(n,o.length).trim().length&&!1===l.test(o.substr(n,o.length))&&(t+=i),t}(e,t,obj.selectionStart,r),obj.value=obj.value.substr(0,obj.selectionStart)+t+obj.value.substr(obj.selectionEnd,obj.value.length);var n=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Li(t)){var r=e.value.split(" ").filter(Li);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter((function(e){return(e=e.trim()).length&&!t.includes(e)}));return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(obj,t),obj.focus(),obj.setSelectionRange(n,n)}Hn(e)}function Li(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Si(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),Ao(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),Ao(e,"change"))}function Ai(){var e,t,r=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",n=document.getElementById("frm-is-condition").value,i=document.getElementById("frm-text-condition").value,o=document.getElementById("frm-insert-condition");t="if "+(e=(r=document.getElementById(r)).options[r.selectedIndex].value)+" "+n+'="'+i+'"]',o.setAttribute("data-code",t+a.conditional_text+"[/if "+e),o.innerHTML="["+t+"[/if "+e+"]"}function Ii(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($i(),"use"===(t=Gi(e)).tagName?-1===(t=t.firstElementChild).getAttributeNS("http://www.w3.org/1999/xlink","href").indexOf("frm_close_icon")&&Ti(t,"nofocus"):t.classList.contains("frm_close_icon")||Ti(t,"nofocus"))}function Bi(e){e.preventDefault(),e.stopPropagation(),Ti(this)}function Ci(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||qi()}}(e.target)}function qi(e){var t;void 0===e&&(e=B("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:B("Save and Reload?","formidable"),content:(t=d(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:B("Save and Reload","formidable"),buttonType:"primary"});_(e,(function(){Hi()}));var t=frmDom.modal.footerButton({text:B("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Ni(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find((function(e){return"#frm_close_icon"===e.getAttribute("href")}));if(void 0===n)return;t=n.parentElement}else t=e;var i=t.getBoundingClientRect(),o=document.getElementById("frm_adv_info"),a=o.parentElement.getBoundingClientRect();o.style.top=i.top-a.top+32+"px",o.style.left=i.left-a.left-280+"px"}function Ti(e,r){var n=Ri(e),i=document.getElementById("frm_adv_info"),o=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&null===(o=e.getAttributeNS("http://www.w3.org/1999/xlink","href"))&&(o=e.getAttribute("href")),-1!==o.indexOf("frm_close_icon"))$i(i);else{if(Ni(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),i.setAttribute("data-fills",n.id),i.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=o.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==r&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach((function(r){!function(e,r){var n,i;n=a.contextualShortcodes[r+"Selector"],i=a.contextualShortcodes[r];var o,l=e.matches(n),s=function(e){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=t(e))){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw o}}}}(i);try{for(s.s();!(o=s.n()).done;){var d,c=o.value,f=null===(d=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'+c+'"]'))||void 0===d?void 0:d.closest("li");null==f||f.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,r)}))}(n)}}function Oi(e){return 0===a.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return a.contextualShortcodes.address.includes(r)||a.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),i=a.contextualShortcodes;return i.address.includes(t)?n.matches(i.addressSelector):n.matches(i.bodySelector)}(e)}function Di(){E||(E=1,window.addEventListener("beforeunload",Pi))}function Mi(){E=0}function Fi(){E=0}function Hi(){var e=document.getElementById("frm_submit_side_top");e.classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()}function Pi(e){E&&(e.preventDefault(),e.returnValue="")}function zi(e,t){var r={my:"top",at:"top+"+t,of:window};e.dialog("option","position",r)}function Ri(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;null!==r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Ri(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Gi(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Gi(r);return r}function $i(e){var t,r,n,i;if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){for(e.style.display="none",n=document.querySelectorAll(".frm-show-box.frm_close_icon"),t=0;t"+r.data.name+": "+r.data.msg+"

      ":'

      Imported '+r.data.name+"

      ",e.find(".status").prepend(n),e.find(".status").show(),N.importQueue=jQuery.grep(N.importQueue,(function(e){return e!=t})),N.imported++,0===N.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(N.imported),e.find(".process-completed").show()):(e.find(".form-current").text(N.imported+1),Yi(e)))}))}function Xi(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function Zi(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function eo(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function to(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ro(e){var t,r,n=e.target.value;io(n),no.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function no(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each((function(){this.checked=!1,r.indexOf(this.value)>=0?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0})),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var i=t.data("count"),o=jQuery('input[name="frm_export_forms[]"]');"single"===i?(o.prop("multiple",!1),o.prop("checked",!1)):(o.prop("multiple",!0),o.prop("disabled",!1)),e.trigger("change")}function io(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach((function(e){e.classList.remove("frm_hidden")})):t.forEach((function(e){e.classList.add("frm_hidden")})),ko.call(document.querySelector(".frm-auto-search")))}}function oo(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ao(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function lo(e){e.preventDefault(),fo(this,"frm_multiple_addons")}function so(e){e.preventDefault(),fo(this,"frm_activate_addon")}function co(e){e.preventDefault(),fo(this,"frm_install_addon")}function fo(e,t){var r,n,i,o;jQuery(".frm-addon-error").remove(),n=(r=jQuery(e)).attr("rel"),i=r.parent(),o=i.parent().find(".addon-status-label"),r.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:t,nonce:frmGlobal.nonce,plugin:n},success:function(e){var n,a,l;"string"!=typeof(e=null!==(n=null===(a=e)||void 0===a?void 0:a.data)&&void 0!==n?n:e)&&"string"==typeof e.message&&(void 0!==e.saveAndReload&&(l=e.saveAndReload),e=e.message);var s=po(e);s?go(s,i,r):(mo(e,r,o,i,l,t),wp.hooks.doAction("frm_update_addon_state",e))},error:function(){r.removeClass("frm_loading_button")}})}function uo(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:a.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,i,o=po(e=null!==(n=null===(i=e)||void 0===i?void 0:i.data)&&void 0!==n?n:e);o?go(o,r,t):mo(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}function mo(e,t,r,n,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",l=document.querySelectorAll(".frm-addon-status");l.forEach((function(t){t.textContent=e,t.style.display="block"})),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach((function(e){e.style.display="none"})),jQuery("#frm_upgrade_modal h2").hide(),jQuery("#frm_upgrade_modal .frm_lock_icon").addClass("frm_lock_open_icon"),jQuery("#frm_upgrade_modal .frm_lock_icon use").attr("xlink:href","#frm_lock_open_icon");var s={frm_activate_addon:{class:"frm-addon-active",message:a.active},frm_deactivate_addon:{class:"frm-addon-installed",message:a.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:a.not_installed}};s.frm_install_addon=s.frm_activate_addon;var c=r[0];c&&(c.textContent=s[o].message);var f=n[0].parentElement;f.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),f.classList.add(s[o].class),t[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(i)&&l.forEach((function(e){var t=null!==e.closest("#frm_upgrade_modal");e.appendChild(function(e,t){var r=[_o(e)];return t&&r.push(function(){var e=document.createElement("a");return e.setAttribute("href","#"),e.classList.add("button","button-secondary","frm-button-secondary","dismiss"),e.textContent=B("Close","formidable"),e}()),d({className:"frm-save-and-reload-options",children:r})}(i,t))}))}function _o(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=B("Save and Reload","formidable"),t.addEventListener("click",(function(){var t,r;"form_builder"===e?Hi():"settings"===e&&null!==(t=document.getElementById("form_settings_page"))&&null!==(r=t.querySelector("form.frm_form_settings"))&&(E=0,r.submit())})),t}function po(e){return"string"!=typeof e&&(void 0===e.success||!e.success)&&(e.form&&jQuery(e.form).is("#message")?{message:jQuery(e.form).find("p").html()}:e)}function go(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",uo)):(t.append('

      '+e.message+"

      "),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function yo(){vo()}function ho(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",(function(){n.addClass("frm_hidden")}))}(0,0,e)}function vo(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function bo(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function jo(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),Qo(t,r,this)}function wo(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),Qo(this,t,r)}function Qo(e,t,r){var n=function(e){var t,r,n={},i=e.elements;for(r=0;r=0||Lo(l,n)?(s&&Oi(o[e])&&o[e].classList.remove("frm_hidden"),o[e].classList.add("frm-search-result")):(o[e].classList.add("frm_hidden"),o[e].classList.remove("frm-search-result"))}(t=document.querySelector("#frm-insert-fields"))&&t.querySelectorAll(":scope > .frm-with-line").forEach((function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every((function(e){return e.classList.contains("frm_hidden")}));e.classList.toggle("frm_hidden",n)}})),jQuery(this).trigger("frmAfterSearch")}function Lo(e,t){return"s"!==t&&"s"!==e[e.length-1]&&(e+"s").indexOf(t)>=0}function So(e){e.stopPropagation()}function Ao(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Io(e,t){var r,n=new XMLHttpRequest,i="string"==typeof e?e:Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(i),n}function Bo(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Co(e){jQuery(e).css("visibility","hidden")}function qo(e){jQuery(e).css("visibility","visible")}function No(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="550px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function To(e,t){if("#"===t){var r=document.getElementById(e),n=r.style.display;r.style.display="none"===n?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Oo(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Do(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Mo(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def"))}function Fo(e){var t=document.getElementById("frm_field_id_"+e);return null!==t&&"product"===t.getAttribute("data-type")}function Ho(){var t=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},r=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},n=[1,2,3,4,5,6,7,8,9,10,11,12].map((function(e){return"frm"+e})),i=["first","middle","last"];document.addEventListener("change",(function(o){o.target.matches(".frm_name_layout_dropdown")&&function(o){var a,l=o.target.value.split("_"),s=o.target.dataset.fieldId,d=document.querySelector("#field_"+s+"_inner_container .frm_combo_inputs_container"),c=(a=l.length,"frm"+parseInt(12/a));i.forEach((function(t){var i,o=d.querySelector('[data-sub-field-name="'+t+'"]');o&&(o.classList.add("frm_hidden"),(i=o.classList).remove.apply(i,e(n)),r(s,t,o))})),l.forEach((function(e){var r=t(s,e);r&&(r.classList.remove("frm_hidden"),r.classList.add(c),d.append(r))})),i.forEach((function(e){var t=document.querySelector(".frm_sub_field_options-"+e+'[data-field-id="'+s+'"]');t&&(t.classList.add("frm_hidden"),r(s,e+"_options",t))})),l.forEach((function(e){var r=t(s,e+"_options");r&&r.classList.remove("frm_hidden")}))}(o)}),!1)}function Po(e,t){var r,n,i,o=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach((function(e,t){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(i=n.getAttributeNS("http://www.w3.org/1999/xlink","href")||n.getAttribute("href"))&&(o=!0),"#frm_save_icon"===i&&(a=!0))})),o||r.prepend(b.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(b.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function zo(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\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(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var i=c({className:"frm-wait frm_spinner"});i.style.visibility="visible",i.style.float="none",i.style.width="unset",n.parentElement.insertBefore(i,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:t.serialize()+"&action=frm_forms_preview"}).done((function(e){if(-1!==jQuery(e).find(".frm_message").text().trim().indexOf("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(c(B("Thank you for signing up!","formidable")))}else ho("invalid")}))}}else ho("invalid");else ho("empty")}function Ro(e){if(D||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||e.target.parentElement&&e.target.parentElement.classList.contains("frm-show-box"))){var t=document.getElementById("frm_adv_info");t&&(t.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===t.style.display||$i(t))}}return{init:function(){var t,r,n,i,o,a,l;!function(){jQuery(document).on("click","#frm-add-my-email-address",(function(e){e.preventDefault(),zo()}));var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",(function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}}))}}(),r=document.querySelector(".frm-admin-footer-links"),n=null!==(t=document.querySelector(".frm_page_container"))&&void 0!==t?t:document.getElementById("wpbody-content"),r&&n&&(n.appendChild(r),r.classList.remove("frm_hidden")),N={},jQuery(".wp-admin").on("click",(function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")})),jQuery("#frm_bs_dropdown:not(.open) a").on("click",Lt),void 0===k&&(k=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach((function(e){_(e,St)})),frmAdminBuild.inboxBannerInit(),j.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=d({className:"frm_warning_style",text:B("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),i=function(){n.reduce((function(e,t){return t.checked?e+1:e}),0)>=10?(t.classList.remove("frm_hidden"),n.forEach((function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)}))):t.classList.add("frm_hidden")};i(),n.forEach((function(e){e.addEventListener("change",(function(e){e.target.checked?i():(t.classList.add("frm_hidden"),n.forEach((function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1})))}))}))}}}(),bo(),jQuery("[data-frmprint]").on("click",(function(){return window.print(),!1}))),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",wi),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach((function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)}))}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",(function(t){return e(t.target)}))}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),o=document.getElementById("frm_confirm_modal"),a=!1,l=!1,jQuery(o).on("click","[data-deletefield]",wr),jQuery(o).on("click","[data-removeid]",G),jQuery(o).on("click","[data-trashtemplate]",Eo),i.on("click",".frm_remove_tag, .frm_remove_form_action",G),i.on("click","a[data-frmverify]",M),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",z),i.on("change","input[data-frmhide], input[data-frmshow]",z),i.on("click",".widget-top,a.widget-action",$),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",(function(){jQuery(this).off("mouseenter.frm"),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(this).tooltip("show")})),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(document).on("click","#doaction, #doaction2",(function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-"+t),n=document.getElementById("confirm-bulk-delete-"+t);if(null!==r&&null!==n){if(a=this,!l&&"bulk_delete"===r.value)return e.preventDefault(),F(n),!1}else a=!1})),jQuery(document).on("click","#frm-confirmed-click",(function(e){if(!1!==a&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),l=!0,a.click(),!1):void 0})),function(){var e=No("#frm_upgrade_modal");function t(t){var r,n,i;if((r=t.target).classList){var o=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var a=r.options[r.selectedIndex];a&&a.dataset.upgrade&&(r=a)}if(!r.dataset.upgrade){var l=r.closest("[data-upgrade]");if(!l){if(!(l=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=l}if(o)wp.hooks.doAction("frm_show_expired_modal",r);else{var s=r.dataset.upgrade;if(s&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),c=d.querySelector(".frm_lock_icon");c&&(c.style.display="block",c.classList.remove("frm_lock_open_icon"),c.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",u=document.getElementById(f);u&&u.remove(),r.dataset.image&&(c&&(c.style.display="none"),c.parentNode.insertBefore(m({id:f,src:frmGlobal.url+"/images/"+r.dataset.image}),c));var _=d.querySelector(".license-level");_&&(_.textContent=Vn(r)),Jn(r,"modal",s),d.querySelector(".frm_are_not_installed").style.display=r.dataset.image?"none":"inline-block",d.querySelector(".frm_feature_label").textContent=s,d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");n=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1"+r.getAttribute("data-medium")),null===(i=r.getAttribute("data-content"))&&(i=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1"+i),p.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}(),frmDom.util.documentOn("click","[data-modal-title]",Wn);var s=jQuery(document.getElementById("frm_shortcodediv"));s.length>0&&(jQuery("a.edit-frm_shortcode").on("click",(function(){return s.is(":hidden")&&(s.slideDown("fast"),this.style.display="none"),!1})),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",(function(){return s.slideUp("fast"),s.siblings("a.edit-frm_shortcode").show(),!1}))),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",(function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Un(this),V(this),!1})),V(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",(function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Fn(document.getElementById("posts-filter")),!1})),jQuery(".frm_select_box").on("click focus",(function(){this.select()})),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",ko),jQuery(document).on("focusin click",".frm-auto-search",So);var c=jQuery(".frm-auto-search");""!==c.val()&&c.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",co),jQuery(document).on("click",".frm-activate-addon",so),jQuery(document).on("click",".frm-solution-multiple",lo),jQuery("button, input[type=submit]").on("click",Oo),document.addEventListener("click",(function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout((function(){return n.click()}),0)}}}})),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",(function(e,t){var r,n,i=t.element;if("form"!==t.type)return e;var o=i.closest("tr");if(o)r=parseInt(o.querySelector(".column-id").textContent),n=o.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]})),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach((function(t,r){t.addEventListener("click",(function(){var t,r,n;r=(null===(t=this.querySelector("li"))||void 0===t?void 0:t.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(r,"-]"))).length<2||e(n).slice(1).forEach((function(e,t){e.classList.contains("frm_other_option")||Po(r,e)}))}))}));var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,(function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),g("small_screen_proceed",new FormData)}));var u=document.getElementById("frm_sale_banner"),p=null==u?void 0:u.querySelector(".dismiss");u&&(_(u,(function(e){e.target.closest(".dismiss")||(window.location.href=u.getAttribute("data-url"))})),p&&_(p,(function(){u.remove();var e=new FormData;g("sale_banner_dismiss",e)})))},buildInit:function(){var e,t,r;jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Ro),y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),h=document.getElementById("post-body-content"),v=jQuery(h),jQuery(".frm_field_loading").length&&Le(jQuery(".frm_field_loading").first().attr("id")),U("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",Mn),jQuery(".frm_submit_no_ajax").on("click",Pn),Rn(),jQuery("a.edit-form-status").on("click",kn),jQuery(".cancel-form-status").on("click",Ln),jQuery(".save-form-status").on("click",(function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1})),jQuery(".frm_form_builder form").first().on("submit",(function(){jQuery(".inplace_field").trigger("blur")})),ao(),Tr(),e=jQuery(w),t=document.getElementById("frm_form_editor_container"),e.on("click",".frm_add_logic_row",Er),e.on("click",".frm_add_watch_lookup_row",Lr),e.on("change",".frm_get_values_form",qr),e.on("change",".frm_logic_field_opts",bn),e.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Sn),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),j.on("click",".frm_clone_field",Ce),e.on("blur",'input[id^="frm_calc"]',Ye),e.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),e.on("change click","[data-changeme]",ot),e.on("click","input.frm_req_field",st),e.on("click",".frm_mark_unique",ct),e.on("change",".frm_repeat_format",Ur),e.on("change",".frm_repeat_limit",Jr),e.on("change",".frm_js_checkbox_limit",Kr),e.on("input",'input[name^="field_options[add_label_"]',(function(){Yr(this,"add")})),e.on("input",'input[name^="field_options[remove_label_"]',(function(){Yr(this,"remove")})),e.on("change",'select[name^="field_options[data_type_"]',Nr),jQuery(t).on("click",".frm-collapse-page",Or),jQuery(t).on("click",".frm-collapse-section",Fr),e.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Hr),e.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",(function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Hr.call(this,e))})),jQuery(t).on("show.bs.dropdown hide.bs.dropdown",ze),e.on("click",".frm_toggle_sep_values",yt),e.on("click",".frm_toggle_image_options",ht),e.on("click",".frm_remove_image_option",Et),e.on("click",".frm_choose_image_box",xt),e.on("change",".frm_hide_image_text",Qt),e.on("change",".frm_field_options_image_size",jt),e.on("click",".frm_multiselect_opt",kt),j.on("mousedown","input, textarea, select",At),j.on("click","input[type=radio], input[type=checkbox]",At),j.on("click",".frm_delete_field",Nt),j.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Dt),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Mt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Xt),jQuery(document).on("click",".frm-custom-field-group-layout",er),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rr),jQuery(document).on("click",".frm-break-field-group",lr),j.on("click","#frm_field_group_popup .frm_grid_container input",sr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",dr),jQuery(document).on("click",".frm-save-custom-field-group-layout",fr),j.on("click","ul.frm_sorting",ur),jQuery(document).on("click",".frm-merge-fields-into-row",vr),jQuery(document).on("click",".frm-delete-field-groups",jr),j.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',(function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Oe)})),j.on("mousemove","ul.frm_sorting",De),j.on("show.bs.dropdown",".frm-field-action-icons",He),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),e.on("click",".frm_single_option a[data-removeid]",It),e.on("mousedown",".frm_single_option input[type=radio]",Bt),e.on("focusin",".frm_single_option input[type=text]",Ct),e.on("click",".frm_add_opt",_t),e.on("change",".frm_single_option input",Zr),e.on("change",".frm_image_id",Zr),e.on("change",".frm_toggle_mult_sel",pt),j.on("click",".frm_primary_label",zr),j.on("click",".frm_description",Rr),j.on("click","li.ui-state-default:not(.frm_noallow)",$r),j.on("dblclick","li.ui-state-default",Vr),e.on("change",".frm_tax_form_select",Xr),e.on("change","select.conf_field",ft),e.on("change",".frm_get_field_selection",jn),e.on("click",".frm-show-inline-modal",Bn),e.on("keydown",".frm-show-inline-modal",(function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Bn.call(this,e))})),e.on("click",".frm-inline-modal .dismiss",Cn),jQuery(document).on("change","[data-frmchange]",Nn),document.addEventListener("click",qn),e.on("change",".frm_include_extras_field",et),e.on("change",'select[name^="field_options[form_select_"]',Do),jQuery(document).on("submit","#frm_js_build_form",Mi),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Di),nt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Mo),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Ar),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),frmDom.util.documentOn("click",".frm-show-field-settings",$r),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Wr),e.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',(function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var i=r.slice(n+1).find((function(e){return null!==e.offsetParent}));if(i){i.focus();var o=i.value.length;i.setSelectionRange(o,o)}}}(e.currentTarget)})),!1!==(r=No("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(w).on("click","a.frm-bulk-edit-link",(function(e){e.preventDefault();var t,n,i,o,a,l="",s=jQuery(this).closest("[data-fid]").data("fid"),d=pn(s),c=Fo(s);if(o=document.getElementById("frm_field_"+s+"_opts")){for(a=o.getElementsByTagName("li"),document.getElementById("bulk-field-id").value=s,t=0;t=a.length-1&&(document.getElementById("frm_bulk_options").value=l);return r.dialog("open"),!1}})),jQuery("#frm-update-bulk-opts").on("click",(function(){var e=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(e,document.getElementById("frm_bulk_options").value,r),Di())}))),In(),document.addEventListener("frm_added_field",In),Be(),Ho(),xn(),frmDom.util.documentOn("change",".frm_show_password_setting_input",(function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_"+t);r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)})),document.addEventListener("scroll",Ni,!0),document.addEventListener("change",Ci),document.querySelector(".frm_form_builder").addEventListener("mousedown",(function(e){e.shiftKey&&e.preventDefault()})),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",(function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Pr)}),9999)},settingsInit:function(){var e,t,r,n,i=jQuery(document.getElementById("frm_notification_settings"));i.on("click",".frm_email_buttons",ii),i.on("click",".frm_remove_field",oi),i.on("change",".frm_to_row, .frm_from_row",ai),i.on("change",".frm_tax_selector",bi),i.on("change","select.frm_single_post_field",ui),i.on("change","select.frm_toggle_post_content",mi),i.on("change","select.frm_dyncontent_opt",_i),i.on("change",".frm_post_type",pi),i.on("click",".frm_add_postmeta_row",hi),i.on("click",".frm_add_posttax_row",yi),i.on("click",".frm_toggle_cf_opts",ji),i.on("click",".frm_duplicate_form_action",Xn),jQuery(".frm_actions_list").on("click",".frm_active_action",ei),jQuery("#frm-show-groups, #frm-hide-groups").on("click",ti),ao(),jQuery("ul.frm_actions_list li").each((function(){li(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")})),jQuery(".frm_submit_settings_btn").on("click",Qi),Rn(),(e=jQuery(".frm_form_settings")).on("click",".frm_add_form_logic",fi),e.on("click",".frm_already_used",ci),document.addEventListener("click",(function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))})),e.on("mouseup","*:not(.frm-show-box)",Ro),jQuery(document.getElementById("no_save")).on("change",(function(){this.checked&&!0!==confirm(a.no_save_warning)&&jQuery(this).attr("checked",!1)})),jQuery('select[name="options[edit_action]"]').on("change",Yn),t=document.getElementById("logged_in"),jQuery(t).on("change",(function(){this.checked?qo(".hide_logged_in"):Co(".hide_logged_in")})),r=jQuery(document.getElementById("frm_cookie_expiration")),jQuery(document.getElementById("frm_single_entry_type")).on("change",(function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")}));var o=document.getElementById("single_entry");jQuery(o).on("change",(function(){this.checked?qo(".hide_single_entry"):Co(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")})),jQuery(".hide_save_draft").hide();var l=jQuery(document.getElementById("save_draft"));l.on("change",(function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")})),Hn(l),n=document.getElementById("editable"),jQuery(n).on("change",(function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Hn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))})),jQuery(document).on("change","#protect_files",(function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")})),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Sn),jQuery(document).on("submit",".frm_form_settings",Fi),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Di),bo(),jQuery(document).on("frm-action-loaded",Vi),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',(function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden")})),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-"+e.target.value+"]").forEach((function(e){e.classList.remove("frm_hidden")})),t.setAttribute("data-on-submit-type",e.target.value)}}))},panelInit:function(){var e,t,r,n;jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",xi),jQuery(document).on("change",".frm_insert_val",(function(){Ei(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")})),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Si),jQuery(document).on("keyup change",".frm-build-logic",Ai),Kn(),jQuery(document).on("frmElementAdded",(function(e,t){Kn(t)})),jQuery(document).on("mousedown",".frm-show-box",Bi),t=document.getElementById("form_settings_page"),r=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab"),(null!==t||r||D)&&jQuery(document).on("focusin","form input, form textarea",(function(e){var i,o,a,l;if(e.stopPropagation(),Ii(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(e.target).closest("#frm_adv_info").length)return;if(null!==t||D)i=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(i.show(),i.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0!==(l=this.id)&&-1===l.indexOf("-search-input")&&(jQuery("#frm-adv-info-tab").attr("data-fills",l.trim()),this.classList.contains("field_custom_html")&&(l="field_custom_html"),a=["after_html","before_html","submit_html","field_custom_html"],jQuery.inArray(l,a)>=0&&(jQuery(".frm_code_list li:not(.show_"+l+")").addClass("frm_hidden"),jQuery(".frm_code_list li.show_"+l).removeClass("frm_hidden")))):((o=jQuery(".frm-category-tabs li"))[0]&&(o[0].style.display=""),n.click(),i.hide(),i.siblings().show());else if(r){var s=new CustomEvent("frm_legacy_views_handle_field_focus");s.frmData={idAttrValue:this.id},document.dispatchEvent(s)}}})),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",(function(e){e.preventDefault()})),(e=jQuery("#frm_adv_info")).on("click",".subsubsub a.frmids",(function(e){Wi("frmids",e)})),e.on("click",".subsubsub a.frmkeys",(function(e){Wi("frmkeys",e)}))},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",(function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),i=t.cloneNode(!0),o=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault(),data={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce};var a="frm_inbox_slide_in"===t.id;a&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",(function(){return t.remove()}),{once:!0})),Io(data,(function(){if(!a)return"#"!==n?(window.location=n,!0):void Bo(t,(function(){var e;null!==o&&(i.classList.remove("frm-fade"),null===(e=i.querySelector(".frm-inbox-message-heading"))||void 0===e||e.removeChild(i.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss")),o.append(i)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),yo()),t.parentNode.removeChild(t)}))}))}})),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&yo()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",wo)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){var e;jQuery(document).on("click","[data-frmuninstall]",Ui),ao(),null!==(e=document.getElementById("licenses_settings"))&&jQuery(e).on("click",".edd_frm_save_license",Ji),jQuery(document).on("click","#frm-new-template button",jo),jQuery("#frm-dismissable-cta .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()}));var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",xo),document.querySelector(".frm_captchas").addEventListener("change",(function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)})),frmDom.util.documentOn("submit",".frm_settings_form",(function(){return E=0}));var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",(function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)}));var n=document.getElementById("payments_settings"),i=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');i&&i.forEach((function(e){e.addEventListener("change",(function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),i.forEach((function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}}))}}))}))},exportInit:function(){jQuery(".frm_form_importer").on("submit",Ki),jQuery(document.getElementById("frm_export_xml")).on("submit",Xi),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",Zi),jQuery('input[name="frm_import_file"]').on("change",eo),document.querySelector('select[name="format"]').addEventListener("change",ro),jQuery('input[name="frm_export_forms[]"]').on("click",oo),ao(),jQuery(".frm-feature-banner .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()})),io(to()),document.querySelector("#frm-export-select-all").addEventListener("change",(function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach((function(t){return t.checked=e.target.checked}))}))},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",(function(r){r.target===t&&Io({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},(function(){jQuery(e).fadeOut(400,(function(){e.remove()}))}))}))}},updateOpts:function(e,t,r){var n=pn(e),i=Fo(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:i,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_"+e+"_opts").innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),rn(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_"+e+"_"+t+" .frm_remove_tag").trigger("click")},downloadXML:function(e,t,r){var n=ajaxurl+"?action=frm_"+e+"_xml&ids="+t;null!==r&&(n=n+"&is_template="+r),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(r){var n=k,i=0;"summary"===e&&(i=j.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(pe(e,0,n,i),{field_options:t}),success:function(t){r(t),setTimeout((function(){Qn(),Ve(t,!0);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})}),10)},error:je})}))},confirmLinkClick:F,handleInsertFieldByDraggingResponse:ye,handleAddFieldClickResponse:Ie,syncLayoutClasses:le,moveFieldSettings:ni}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready((function(){var e;frmAdminBuild.init(),frmDom.bootstrap.setupBootstrapDropdowns((function(e){var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("
        ","")).replaceAll("
      • ",'
      • ",""),t.outerHTML=r)})),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-toggle","dropdown")})),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'+t+'"]').prop("checked",!!e)},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_"+r).children(".frm_checkbox").children("label").children('input[name^="'+t+'"]').prop("checked",!!e)},window.frmGetFieldValues=function(e,t,r,n,i,o){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field="+t+"&field_id="+e+"&name="+i+"&t="+n+"&form_action="+jQuery('input[name="frm_action"]').val()+"&nonce="+frmGlobal.nonce,success:function(e){document.getElementById("frm_show_selected_values_"+t+"_"+r).innerHTML=e,"function"==typeof o&&o()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce="+frmGlobal.nonce+"&frm_skip_cookie=1"+t,success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,i=n/r*100;jQuery(".frm_admin_progress_bar").css("width",i+"%").attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout((function(){location.href="?page=formidable-entries&frm_action=list&form="+e+"&import-message=1"}),2e3))}})}})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/*!*******************************!*\ + !*** ./js/src/admin/admin.js ***! + \*******************************/ +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/* exported frm_add_logic_row, frm_remove_tag, frm_show_div, frmCheckAll, frmCheckAllLevel */ +/* eslint-disable jsdoc/require-param, prefer-const, no-redeclare, @wordpress/no-unused-vars-before-return, jsdoc/check-types, jsdoc/check-tag-names, @wordpress/i18n-translator-comments, @wordpress/valid-sprintf, jsdoc/require-returns-description, jsdoc/require-param-type, no-unused-expressions, compat/compat */ + +window.FrmFormsConnect = window.FrmFormsConnect || function (document, window, $) { + /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl */ + + var el = { + messageBox: null, + reset: null, + setElements: function setElements() { + el.messageBox = document.querySelector('.frm_pro_license_msg'); + el.reset = document.getElementById('frm_reconnect_link'); + } + }; + + /** + * Public functions and properties. + * + * @since 4.03 + * + * @type {Object} + */ + var app = { + /** + * Register connect button event. + * + * @since 4.03 + */ + init: function init() { + el.setElements(); + $(document.getElementById('frm_deauthorize_link')).on('click', app.deauthorize); + $('.frm_authorize_link').on('click', app.authorize); + // Handles FF dashboard Authorize & Reauthorize events. + // Attach click event to parent as #frm_deauthorize_link & #frm_reconnect_link dynamically recreated by bootstrap.setupBootstrapDropdowns in dom.js + $('.frm-dashboard-license-options').on('click', '#frm_deauthorize_link', app.deauthorize); + $('.frm-dashboard-license-options').on('click', '#frm_reconnect_link', app.reauthorize); + if (el.reset !== null) { + $(el.reset).on('click', app.reauthorize); + } + }, + /* Manual license authorization */ + authorize: function authorize() { + /*jshint validthis:true */ + var button = this; + var pluginSlug = this.getAttribute('data-plugin'); + var input = document.getElementById('edd_' + pluginSlug + '_license_key'); + var license = input.value; + var wpmu = document.getElementById('proplug-wpmu'); + this.classList.add('frm_loading_button'); + if (wpmu === null) { + wpmu = 0; + } else if (wpmu.checked) { + wpmu = 1; + } else { + wpmu = 0; + } + $.ajax({ + type: 'POST', + url: ajaxurl, + dataType: 'json', + data: { + action: 'frm_addon_activate', + license: license, + plugin: pluginSlug, + wpmu: wpmu, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + app.afterAuthorize(msg, input); + button.classList.remove('frm_loading_button'); + } + }); + }, + afterAuthorize: function afterAuthorize(msg, input) { + if (msg.success === true) { + input.value = '•••••••••••••••••••'; + } + wp.hooks.doAction('frm_after_authorize', msg); + app.showMessage(msg); + }, + showProgress: function showProgress(msg) { + if (el.messageBox === null) { + // In case the message box was added after page load. + el.setElements(); + } + var messageBox = el.messageBox; + if (messageBox === null) { + return; + } + if (msg.success === true) { + messageBox.classList.remove('frm_error_style'); + messageBox.classList.add('frm_message', 'frm_updated_message'); + } else { + messageBox.classList.add('frm_error_style'); + messageBox.classList.remove('frm_message', 'frm_updated_message'); + } + messageBox.classList.remove('frm_hidden'); + messageBox.innerHTML = msg.message; + }, + showMessage: function showMessage(msg) { + if (el.messageBox === null) { + // In case the message box was added after page load. + el.setElements(); + } + var messageBox = el.messageBox; + if (msg.success === true) { + app.showAuthorized(true); + app.showInlineSuccess(); + + /** + * Triggers the after license is authorized action for a confirmation/success modal. + * @param {Object} msg An object containing message data received from Authorize request. + */ + wp.hooks.doAction('frmAdmin.afterLicenseAuthorizeSuccess', { + msg: msg + }); + } + app.showProgress(msg); + if (msg.message !== '') { + setTimeout(function () { + messageBox.innerHTML = ''; + messageBox.classList.add('frm_hidden'); + messageBox.classList.remove('frm_error_style', 'frm_message', 'frm_updated_message'); + }, 10000); + var refreshPage = document.querySelector('.frm-admin-page-dashboard'); + if (refreshPage) { + setTimeout(function () { + window.location.reload(); + }, 1000); + } + } + }, + showAuthorized: function showAuthorized(show) { + var from = show ? 'unauthorized' : 'authorized'; + var to = show ? 'authorized' : 'unauthorized'; + var container = document.querySelectorAll('.frm_' + from + '_box'); + if (container.length) { + // Replace all authorized boxes with unauthorized boxes. + container.forEach(function (box) { + box.className = box.className.replace('frm_' + from + '_box', 'frm_' + to + '_box'); + }); + } + }, + /** + * Use the data-success element to replace the element content. + */ + showInlineSuccess: function showInlineSuccess() { + var successElement = document.querySelectorAll('.frm-confirm-msg [data-success]'); + if (successElement.length) { + successElement.forEach(function (element) { + element.innerHTML = frmAdminBuild.purifyHtml(element.getAttribute('data-success')); + }); + } + }, + /* Clear the site license cache */ + reauthorize: function reauthorize() { + /*jshint validthis:true */ + this.innerHTML = ''; + $.ajax({ + type: 'POST', + url: ajaxurl, + dataType: 'json', + data: { + action: 'frm_reset_cache', + plugin: 'formidable_pro', + nonce: frmGlobal.nonce + }, + success: function success(msg) { + el.reset.textContent = msg.message; + if (el.reset.getAttribute('data-refresh') === '1') { + window.location.reload(); + } + } + }); + return false; + }, + deauthorize: function deauthorize() { + /*jshint validthis:true */ + if (!confirm(frmGlobal.deauthorize)) { + return false; + } + var pluginSlug = this.getAttribute('data-plugin'), + input = document.getElementById('edd_' + pluginSlug + '_license_key'), + license = input.value, + link = this; + this.innerHTML = ''; + $.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_addon_deactivate', + license: license, + plugin: pluginSlug, + nonce: frmGlobal.nonce + }, + success: function success() { + app.showAuthorized(false); + input.value = ''; + link.replaceWith('Disconnected'); + + /** + * Triggers the after license is deauthorized sruccess action. + */ + wp.hooks.doAction('frmAdmin.afterLicenseDeauthorizeSuccess', {}); + } + }); + return false; + } + }; + + // Provide access to public functions/properties. + return app; +}(document, window, jQuery); +window.frmAdminBuildJS = function () { + //'use strict'; + + /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */ + + var frmAdminJs = frm_admin_js; // eslint-disable-line camelcase + var _frmDom = frmDom, + tag = _frmDom.tag, + div = _frmDom.div, + span = _frmDom.span, + a = _frmDom.a, + svg = _frmDom.svg, + img = _frmDom.img; + var onClickPreventDefault = frmDom.util.onClickPreventDefault; + var _frmDom$ajax = frmDom.ajax, + doJsonFetch = _frmDom$ajax.doJsonFetch, + doJsonPost = _frmDom$ajax.doJsonPost; + frmAdminJs.contextualShortcodes = getContextualShortcodes(); + var icons = { + save: svg({ + href: '#frm_save_icon' + }), + drag: svg({ + href: '#frm_drag_icon', + classList: ['frm_drag_icon', 'frm-drag'] + }) + }; + var $newFields = jQuery(document.getElementById('frm-show-fields')), + builderForm = document.getElementById('new_fields'), + thisForm = document.getElementById('form_id'), + copyHelper = false, + fieldsUpdated = 0, + thisFormId = 0, + autoId = 0, + optionMap = {}, + lastNewActionIdReturned = 0; + var _wp$i18n = wp.i18n, + __ = _wp$i18n.__, + sprintf = _wp$i18n.sprintf; + var debouncedSyncAfterDragAndDrop, postBodyContent, $postBodyContent; + var dragState = { + dragging: false + }; + if (thisForm !== null) { + thisFormId = thisForm.value; + } + var currentURL = new URL(window.location.href); + var urlParams = currentURL.searchParams; + var builderPage = document.getElementById('frm_builder_page'); + + // Global settings + var s; + function showElement(element) { + if (!element[0]) { + return; + } + element[0].style.display = ''; + } + function empty($obj) { + if ($obj !== null) { + while ($obj.firstChild) { + $obj.removeChild($obj.firstChild); + } + } + } + function addClass($obj, className) { + if ($obj.classList) { + $obj.classList.add(className); + } else { + $obj.className += ' ' + className; + } + } + function confirmClick(e) { + /*jshint validthis:true */ + e.stopPropagation(); + e.preventDefault(); + confirmLinkClick(this); + } + function confirmLinkClick(link) { + var message = link.getAttribute('data-frmverify'), + loadedFrom = link.getAttribute('data-loaded-from'); + if (message === null || link.id === 'frm-confirmed-click') { + return true; + } + if ('entries-list' === loadedFrom) { + return wp.hooks.applyFilters('frm_on_multiple_entries_delete', { + link: link, + initModal: initModal + }); + } + return confirmModal(link); + } + function confirmModal(link) { + var verify, + $confirmMessage, + i, + dataAtts, + btnClass, + $info = initModal('#frm_confirm_modal', '400px'), + continueButton = document.getElementById('frm-confirmed-click'); + if ($info === false) { + return false; + } + verify = link.getAttribute('data-frmverify'); + btnClass = verify ? link.getAttribute('data-frmverify-btn') : ''; + $confirmMessage = jQuery('.frm-confirm-msg'); + $confirmMessage.empty(); + if (verify) { + $confirmMessage.append(document.createTextNode(verify)); + if (btnClass) { + continueButton.classList.add(btnClass); + } + } + removeAtts = continueButton.dataset; + for (i in dataAtts) { + continueButton.removeAttribute('data-' + i); + } + dataAtts = link.dataset; + for (i in dataAtts) { + if (i !== 'frmverify') { + continueButton.setAttribute('data-' + i, dataAtts[i]); + } + } + + /** + * Triggers the pre-open action for a confirmation modal. This action passes + * relevant modal information and associated link to any listening hooks. + * + * @param {Object} options An object containing modal elements and data. + * @param {HTMLElement} options.$info The HTML element containing modal information. + * @param {string} options.link The link associated with the modal action. + */ + wp.hooks.doAction('frmAdmin.beforeOpenConfirmModal', { + $info: $info, + link: link + }); + $info.dialog('open'); + continueButton.setAttribute('href', link.getAttribute('href') || link.getAttribute('data-href')); + return false; + } + function infoModal(msg) { + var $info = initModal('#frm_info_modal', '400px'); + if ($info === false) { + return false; + } + jQuery('.frm-info-msg').html(msg); + $info.dialog('open'); + return false; + } + function toggleItem(e) { + /*jshint validthis:true */ + var toggle = this.getAttribute('data-frmtoggle'); + var text = this.getAttribute('data-toggletext'); + var $items = jQuery(toggle); + e.preventDefault(); + $items.toggle(); + if (text !== null && text !== '') { + this.setAttribute('data-toggletext', this.innerHTML); + this.textContent = text; + } + return false; + } + + /** + * Toggle a class on target elements when an anchor is clicked, or when a radio or checkbox has been selected. + * + * @param {Event} e Event with either the change or click type. + * @return {false} + */ + function hideShowItem(e) { + /*jshint validthis:true */ + var hide = this.getAttribute('data-frmhide'); + var show = this.getAttribute('data-frmshow'); + var uncheckList = this.getAttribute('data-frmuncheck'); + var uncheckListArray = uncheckList ? uncheckList.split(',') : []; + + // Flip unchecked checkboxes so an off value undoes the on value. + if (isUncheckedCheckbox(this)) { + if (hide !== null) { + show = hide; + hide = null; + } else if (show !== null) { + hide = show; + show = null; + } + } + e.preventDefault(); + var toggleClass = this.getAttribute('data-toggleclass') || 'frm_hidden'; + if (hide !== null) { + jQuery(hide).addClass(toggleClass); + } + if (show !== null) { + jQuery(show).removeClass(toggleClass); + } + var current = this.parentNode.querySelectorAll('a.current'); + if (current !== null) { + for (var _i = 0; _i < current.length; _i++) { + current[_i].classList.remove('current'); + } + this.classList.add('current'); + } + if (uncheckListArray.length) { + uncheckListArray.forEach(function (uncheckItem) { + var uncheckItemElement = document.querySelector(uncheckItem); + if (uncheckItemElement) { + uncheckItemElement.checked = false; + } + }); + } + return false; + } + function isUncheckedCheckbox(element) { + return 'INPUT' === element.nodeName && 'checkbox' === element.type && !element.checked; + } + function loadTooltips() { + var wrapClass = jQuery('.wrap, .frm_wrap'), + confirmModal = document.getElementById('frm_confirm_modal'), + doAction = false, + confirmedBulkDelete = false; + jQuery(confirmModal).on('click', '[data-deletefield]', deleteFieldConfirmed); + jQuery(confirmModal).on('click', '[data-removeid]', removeThisTag); + jQuery(confirmModal).on('click', '[data-trashtemplate]', trashTemplate); + wrapClass.on('click', '.frm_remove_tag, .frm_remove_form_action', removeThisTag); + wrapClass.on('click', 'a[data-frmverify]', confirmClick); + wrapClass.on('click', 'a[data-frmtoggle]', toggleItem); + wrapClass.on('click', 'a[data-frmhide], a[data-frmshow]', hideShowItem); + wrapClass.on('change', 'input[data-frmhide], input[data-frmshow]', hideShowItem); + wrapClass.on('click', '.widget-top,a.widget-action', clickWidget); + wrapClass.on('mouseenter.frm', '.frm_bstooltip, .frm_help', function () { + jQuery(this).off('mouseenter.frm'); + jQuery('.frm_bstooltip, .frm_help').tooltip(); + jQuery(this).tooltip('show'); + }); + jQuery('.frm_bstooltip, .frm_help').tooltip(); + jQuery(document).on('click', '#doaction, #doaction2', function (event) { + var isTop = this.id === 'doaction', + suffix = isTop ? 'top' : 'bottom', + bulkActionSelector = document.getElementById('bulk-action-selector-' + suffix), + confirmBulkDelete = document.getElementById('confirm-bulk-delete-' + suffix); + if (bulkActionSelector !== null && confirmBulkDelete !== null) { + doAction = this; + if (!confirmedBulkDelete && bulkActionSelector.value === 'bulk_delete') { + event.preventDefault(); + confirmLinkClick(confirmBulkDelete); + return false; + } + } else { + doAction = false; + } + }); + jQuery(document).on('click', '#frm-confirmed-click', function (event) { + if (doAction === false || event.target.classList.contains('frm-btn-inactive')) { + return; + } + if (this.getAttribute('href') === 'confirm-bulk-delete') { + event.preventDefault(); + confirmedBulkDelete = true; + doAction.click(); + return false; + } + }); + } + function deleteTooltips() { + document.querySelectorAll('.tooltip').forEach(function (tooltip) { + tooltip.remove(); + }); + } + function removeThisTag() { + /*jshint validthis:true */ + var show, hide, removeMore; + if (parseInt(this.getAttribute('data-skip-frm-js')) || confirmLinkClick(this) === false) { + return; + } + var deleteButton = jQuery(this); + var id = deleteButton.attr('data-removeid'); + show = deleteButton.attr('data-showlast'); + if (typeof show === 'undefined') { + show = ''; + } + hide = deleteButton.attr('data-hidelast'); + if (typeof hide === 'undefined') { + hide = ''; + } + removeMore = deleteButton.attr('data-removemore'); + if (show !== '') { + if (deleteButton.closest('.frm_add_remove').find('.frm_remove_tag:visible').length > 1) { + show = ''; + hide = ''; + } + } else if (id.indexOf('frm_postmeta_') === 0) { + if (jQuery('#frm_postmeta_rows .frm_postmeta_row').length < 2) { + show = '.frm_add_postmeta_row.button'; + } + if (jQuery('.frm_toggle_cf_opts').length && jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().length) { + if (show !== '') { + show += ','; + } + show += '#' + jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().attr('id') + ' .frm_toggle_cf_opts'; + } + } + var fadeEle = document.getElementById(id); + var $fadeEle = jQuery(fadeEle); + $fadeEle.fadeOut(300, function () { + var _document$querySelect; + $fadeEle.remove(); + fieldUpdated(); + if (hide !== '') { + jQuery(hide).hide(); + } + if (show !== '') { + jQuery(show + ' a,' + show).removeClass('frm_hidden').fadeIn('slow'); + } + if (this.closest('.frm_form_action_settings')) { + var type = this.closest('.frm_form_action_settings').querySelector('.frm_action_name').value; + afterActionRemoved(type); + } + (_document$querySelect = document.querySelector('.tooltip')) === null || _document$querySelect === void 0 || _document$querySelect.remove(); + }); + if (typeof removeMore !== 'undefined') { + removeMore = jQuery(removeMore); + removeMore.fadeOut(400, function () { + removeMore.remove(); + }); + } + if (show !== '') { + jQuery(this).closest('.frm_logic_rows').fadeOut('slow'); + } + + /** + * Fires after a tag element has been removed in the admin interface. + * + * @param {string} id The ID of the removed element + * @param {HTMLElement} fadeEle The removed element that was faded out + */ + wp.hooks.doAction('frm_admin_tag_removed', id, fadeEle); + return false; + } + function afterActionRemoved(type) { + checkActiveAction(type); + var hookName = 'frm_after_action_removed'; + var hookArgs = { + type: type + }; + wp.hooks.doAction(hookName, hookArgs); + } + function clickWidget(event, b) { + /*jshint validthis:true */ + if (typeof b === 'undefined') { + b = this; + } + popCalcFields(b, false); + var cont = jQuery(b).closest('.frm_form_action_settings'); + var target = event.target; + if (cont.length && typeof target !== 'undefined') { + var className = target.parentElement.className; + if ('string' === typeof className) { + if (className.indexOf('frm_email_icons') > -1 || className.indexOf('frm_toggle') > -1) { + // clicking on delete icon shouldn't open it + event.stopPropagation(); + return; + } + } + } + var inside = cont.children('.widget-inside'); + if (cont.length && inside.find('p, div, table').length < 1) { + var actionId = cont.find('input[name$="[ID]"]').val(); + var actionType = cont.find('input[name$="[post_excerpt]"]').val(); + if (actionType) { + inside.html(''); + cont.find('.spinner').fadeIn('slow'); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_form_action_fill', + action_id: actionId, + action_type: actionType, + nonce: frmGlobal.nonce + }, + success: function success(html) { + inside.html(html); + initiateMultiselect(); + showInputIcon('#' + cont.attr('id')); + initAutocomplete(inside); + jQuery(b).trigger('frm-action-loaded'); + + /** + * Fires after filling form action content when opening. + * + * @since 5.5.4 + * + * @param {Object} insideElement JQuery object of form action inside element. + */ + wp.hooks.doAction('frm_filled_form_action', inside); + } + }); + } + } + jQuery(b).closest('.frm_field_box').siblings().find('.widget-inside').slideUp('fast'); + if (typeof b.className !== 'undefined' && b.className.indexOf('widget-action') !== -1 || jQuery(b).closest('.start_divider').length < 1) { + return; + } + inside = jQuery(b).closest('div.widget').children('.widget-inside'); + if (inside.is(':hidden')) { + inside.slideDown('fast'); + } else { + inside.slideUp('fast'); + } + } + function clickNewTab() { + /*jshint validthis:true */ + var t = this.getAttribute('href'); + if (typeof t === 'undefined') { + return false; + } + var c = t.replace('#', '.'); + var $link = jQuery(this); + $link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); + $link.closest('div').children('.tabs-panel').not(t).not(c).hide(); + var tabContent = document.getElementById(t.replace('#', '')); + if (tabContent) { + tabContent.style.display = 'block'; + } + + // clearSettingsBox would hide field settings when opening the fields modal and we want to skip it there. + if (this.id === 'frm_insert_fields_tab' && !this.closest('#frm_adv_info')) { + clearSettingsBox(); + } + return false; + } + function clickTab(link, auto) { + link = jQuery(link); + var t = link.attr('href'); + if (typeof t === 'undefined') { + return; + } + var c = t.replace('#', '.'); + link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); + if (link.closest('div').find('.tabs-panel').length) { + link.closest('div').children('.tabs-panel').not(t).not(c).hide(); + } else if (document.getElementById('form_global_settings') !== null) { + /* global settings */ + var ajax = link.data('frmajax'); + link.closest('.frm_wrap').find('.tabs-panel, .hide_with_tabs').hide(); + if (typeof ajax !== 'undefined' && ajax == '1') { + loadSettingsTab(t); + } + } else { + /* form settings page */ + jQuery('#frm-categorydiv .tabs-panel, .hide_with_tabs').hide(); + } + jQuery(t).show(); + jQuery(c).show(); + hideShortcodes(); + if (auto !== 'auto') { + // Hide success message on tab change. + jQuery('.frm_updated_message').hide(); + jQuery('.frm_warning_style').hide(); + } + if (jQuery(link).closest('#frm_adv_info').length) { + return; + } + if (jQuery('.frm_form_settings').length) { + jQuery('.frm_form_settings').attr('action', '?page=formidable&frm_action=settings&id=' + jQuery('.frm_form_settings input[name="id"]').val() + '&t=' + t.replace('#', '')); + } else { + jQuery('.frm_settings_form').attr('action', '?page=formidable-settings&t=' + t.replace('#', '')); + } + } + function setupSortable(sortableSelector) { + document.querySelectorAll(sortableSelector).forEach(function (list) { + makeDroppable(list); + Array.from(list.children).forEach(function (child) { + return makeDraggable(child, '.frm-move'); + }); + var $sectionTitle = jQuery(list).children('[data-type="divider"]').children('.divider_section_only'); + if ($sectionTitle.length) { + makeDroppable($sectionTitle); + } + }); + setupFieldOptionSorting(jQuery('#frm_builder_page')); + } + function makeDroppable(list) { + jQuery(list).droppable({ + accept: '.frmbutton, li.frm_field_box', + deactivate: handleFieldDrop, + over: onDragOverDroppable, + out: onDraggableLeavesDroppable, + tolerance: 'pointer' + }); + } + function onDragOverDroppable(event, ui) { + var droppable = getDroppableForOnDragOver(event.target); + var draggable = ui.draggable[0]; + if (!allowDrop(draggable, droppable, event)) { + droppable.classList.remove('frm-over-droppable'); + jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); + return; + } + document.querySelectorAll('.frm-over-droppable').forEach(function (droppable) { + return droppable.classList.remove('frm-over-droppable'); + }); + droppable.classList.add('frm-over-droppable'); + jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); + } + + /** + * Maybe change the droppable. + * Section titles are made droppable, but are not a list, so we need to change the droppable to the section's list instead. + * + * @param {Element} droppable + * @return {Element} + */ + function getDroppableForOnDragOver(droppable) { + if (droppable.classList.contains('divider_section_only')) { + droppable = jQuery(droppable).nextAll('.start_divider.frm_sorting').get(0); + } + return droppable; + } + function onDraggableLeavesDroppable(event) { + var droppable = event.target; + droppable.classList.remove('frm-over-droppable'); + } + function makeDraggable(draggable, handle) { + var settings = { + helper: getDraggableHelper, + revert: 'invalid', + delay: 10, + start: handleDragStart, + stop: handleDragStop, + drag: handleDrag, + cursor: 'grabbing', + refreshPositions: true, + cursorAt: { + top: 0, + left: 90 // The width of draggable button is 180. 90 should center the draggable on the cursor. + } + }; + if ('string' === typeof handle) { + settings.handle = handle; + } + jQuery(draggable).draggable(settings); + } + function getDraggableHelper(event) { + var draggable = event.delegateTarget; + if (isFieldGroup(draggable)) { + var newTextFieldClone = document.getElementById('frm-insert-fields').querySelector('.frm_ttext').cloneNode(true); + newTextFieldClone.querySelector('use').setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_field_group_layout_icon'); + newTextFieldClone.querySelector('span').textContent = __('Field Group', 'formidable'); + newTextFieldClone.classList.add('frm_field_box'); + newTextFieldClone.classList.add('ui-sortable-helper'); + return newTextFieldClone; + } + var copyTarget; + var isNewField = draggable.classList.contains('frmbutton'); + if (isNewField) { + copyTarget = draggable.cloneNode(true); + copyTarget.classList.add('ui-sortable-helper'); + draggable.classList.add('frm-new-field'); + return copyTarget; + } + if (draggable.hasAttribute('data-ftype')) { + var fieldType = draggable.getAttribute('data-ftype'); + copyTarget = document.getElementById('frm-insert-fields').querySelector('.frm_t' + fieldType); + copyTarget = copyTarget.cloneNode(true); + copyTarget.classList.add('form-field'); + copyTarget.classList.add('ui-sortable-helper'); + if (copyTarget) { + return copyTarget.cloneNode(true); + } + } + return div({ + className: 'frmbutton' + }); + } + function handleDragStart(event, ui) { + dragState.dragging = true; + var container = postBodyContent; + container.classList.add('frm-dragging-field'); + document.body.classList.add('frm-dragging'); + ui.helper.addClass('frm-sortable-helper'); + ui.helper.initialOffset = container.scrollTop; + event.target.classList.add('frm-drag-fade'); + unselectFieldGroups(); + deleteEmptyDividerWrappers(); + maybeRemoveGroupHoverTarget(); + closeOpenFieldDropdowns(); + deleteTooltips(); + } + function handleDragStop() { + var container = postBodyContent; + container.classList.remove('frm-dragging-field'); + document.body.classList.remove('frm-dragging'); + var fade = document.querySelector('.frm-drag-fade'); + if (fade) { + fade.classList.remove('frm-drag-fade'); + } + } + function handleDrag(event, ui) { + maybeScrollBuilder(event); + var draggable = event.target; + var droppable = getDroppableTarget(); + var placeholder = document.getElementById('frm_drag_placeholder'); + if (!allowDrop(draggable, droppable, event)) { + if (placeholder) { + placeholder.remove(); + } + return; + } + if (!placeholder) { + placeholder = tag('li', { + id: 'frm_drag_placeholder', + className: 'sortable-placeholder' + }); + } + var frmSortableHelper = ui.helper.get(0); + if (frmSortableHelper.classList.contains('form-field') || frmSortableHelper.classList.contains('frm_field_box')) { + // Sync the y position of the draggable so it still follows the cursor after scrolling up and down the field list. + frmSortableHelper.style.transform = 'translateY(' + getDragOffset(ui.helper) + 'px)'; + } + if ('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')) { + placeholder.style.left = 0; + handleDragOverYAxis({ + droppable: droppable, + y: event.clientY, + placeholder: placeholder + }); + return; + } + placeholder.style.top = ''; + handleDragOverFieldGroup({ + droppable: droppable, + x: event.clientX, + placeholder: placeholder + }); + } + function maybeScrollBuilder(event) { + $postBodyContent.scrollTop(function (_, v) { + var moved = event.clientY; + var h = postBodyContent.offsetHeight; + var relativePos = event.clientY - postBodyContent.offsetTop; + var y = relativePos - h / 2; + if (relativePos > h - 50 && moved > 5) { + // Scrolling down. + return v + y * 0.1; + } + if (relativePos < 70 && moved < 130) { + // Scrolling up. + return v - Math.abs(y * 0.1); + } + return v; + }); + } + function getDragOffset($helper) { + return postBodyContent.scrollTop - $helper.initialOffset; + } + function getDroppableTarget() { + var droppable = document.getElementById('frm-show-fields'); + while (droppable.querySelector('.frm-over-droppable')) { + droppable = droppable.querySelector('.frm-over-droppable'); + } + if ('frm-show-fields' === droppable.id && !droppable.classList.contains('frm-over-droppable')) { + droppable = false; + } + return droppable; + } + function handleFieldDrop(_, ui) { + if (!dragState.dragging) { + // dragState.dragging is set to true on drag start. + // The deactivate event gets called for every droppable. This check to make sure it happens once. + return; + } + dragState.dragging = false; + var draggable = ui.draggable[0]; + var placeholder = document.getElementById('frm_drag_placeholder'); + if (!placeholder) { + ui.helper.remove(); + debouncedSyncAfterDragAndDrop(); + return; + } + maybeOpenCollapsedPage(placeholder); + var $previousFieldContainer = ui.helper.parent(); + var previousSection = ui.helper.get(0).closest('ul.start_divider'); + var newSection = placeholder.closest('ul.start_divider'); + if (draggable.classList.contains('frm-new-field')) { + insertNewFieldByDragging(draggable.id); + } else { + moveFieldThatAlreadyExists(draggable, placeholder); + maybeMakeFieldGroupDraggableAfterDragging(placeholder.parentElement); + } + var previousSectionId = previousSection ? parseInt(previousSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; + var newSectionId = newSection ? parseInt(newSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; + placeholder.remove(); + ui.helper.remove(); + var $previousContainerFields = $previousFieldContainer.length ? getFieldsInRow($previousFieldContainer) : []; + maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields); + maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields); + if (previousSectionId !== newSectionId) { + updateFieldAfterMovingBetweenSections(jQuery(draggable), previousSection); + } + debouncedSyncAfterDragAndDrop(); + } + + /** + * When a field is moved into a field group, make sure the field group is draggable. + * + * @since 6.24 + * + * @param {HTMLElement} placeholderParent + * @return {void} + */ + function maybeMakeFieldGroupDraggableAfterDragging(placeholderParent) { + var isDroppingIntoFieldGroup = placeholderParent.nodeName === 'UL' && !placeholderParent.classList.contains('start_divider') && 'frm-show-fields' !== placeholderParent.id; + if (!isDroppingIntoFieldGroup) { + return; + } + var fieldGroupLi = placeholderParent.closest('li'); + if (fieldGroupLi && !fieldGroupLi.classList.contains('ui-draggable')) { + makeDraggable(fieldGroupLi, '.frm-move'); + } + } + + /** + * If a page if collapsed, expand it before dragging since only the page break will move. + * + * @param {Element} placeholder + * @return {void} + */ + function maybeOpenCollapsedPage(placeholder) { + if (!placeholder.previousElementSibling || !placeholder.previousElementSibling.classList.contains('frm-is-collapsed')) { + return; + } + var $pageBreakField = jQuery(placeholder).prevUntil('[data-type="break"]'); + if (!$pageBreakField.length) { + return; + } + var collapseButton = $pageBreakField.find('.frm-collapse-page').get(0); + if (collapseButton) { + collapseButton.click(); + } + } + function maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields) { + if (!$previousFieldContainer.length) { + return; + } + if ($previousContainerFields.length) { + syncLayoutClasses($previousContainerFields.first()); + } else { + maybeDeleteAnEmptyFieldGroup($previousFieldContainer.get(0)); + } + } + function maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields) { + if (0 !== $previousContainerFields.length || 1 !== getFieldsInRow(jQuery(draggable.parentNode)).length) { + syncLayoutClasses(jQuery(draggable)); + } + } + + /** + * Remove an empty field group, but don't remove an empty section. + * + * @param {Element} previousFieldContainer + * @return {void} + */ + function maybeDeleteAnEmptyFieldGroup(previousFieldContainer) { + var closestFieldBox = previousFieldContainer.closest('li.frm_field_box'); + if (closestFieldBox && !closestFieldBox.classList.contains('edit_field_type_divider')) { + closestFieldBox.remove(); + } + } + function handleDragOverYAxis(_ref) { + var droppable = _ref.droppable, + y = _ref.y, + placeholder = _ref.placeholder; + var $list = jQuery(droppable); + var top; + $children = $list.children().not('.edit_field_type_end_divider'); + if (0 === $children.length) { + $list.prepend(placeholder); + top = 0; + } else { + var insertAtIndex = determineIndexBasedOffOfMousePositionInList($list, y); + if (insertAtIndex === $children.length) { + var $lastChild = jQuery($children.get(insertAtIndex - 1)); + top = $lastChild.offset().top + $lastChild.outerHeight(); + $list.append(placeholder); + + // Make sure nothing gets inserted after the end divider. + var $endDivider = $list.children('.edit_field_type_end_divider'); + if ($endDivider.length) { + $list.append($endDivider); + } + } else { + top = jQuery($children.get(insertAtIndex)).offset().top; + jQuery($children.get(insertAtIndex)).before(placeholder); + } + } + top -= $list.offset().top; + placeholder.style.top = top + 'px'; + } + function determineIndexBasedOffOfMousePositionInList($list, y) { + var $items = $list.children().not('.edit_field_type_end_divider'); + var length = $items.length; + var index, item, itemTop, returnIndex; + if (!document.querySelector('.frm-has-fields .frm_no_fields')) { + // Always return 0 when there are no fields. + return 0; + } + returnIndex = 0; + for (index = length - 1; index >= 0; --index) { + item = $items.get(index); + itemTop = jQuery(item).offset().top; + if (y > itemTop) { + returnIndex = index; + if (y > itemTop + jQuery(item).outerHeight() / 2) { + returnIndex = index + 1; + } + break; + } + } + return returnIndex; + } + function handleDragOverFieldGroup(_ref2) { + var droppable = _ref2.droppable, + x = _ref2.x, + placeholder = _ref2.placeholder; + var $row = jQuery(droppable); + var $children = getFieldsInRow($row); + if (!$children.length) { + return; + } + var left; + var insertAtIndex = determineIndexBasedOffOfMousePositionInRow($row, x); + if (insertAtIndex === $children.length) { + var $lastChild = jQuery($children.get(insertAtIndex - 1)); + left = $lastChild.offset().left + $lastChild.outerWidth(); + $row.append(placeholder); + } else { + left = jQuery($children.get(insertAtIndex)).offset().left; + jQuery($children.get(insertAtIndex)).before(placeholder); + var amountToOffsetLeftBy = 0 === insertAtIndex ? 4 : 8; // Offset by 8 in between rows, but only 4 for the first item in a group. + left -= amountToOffsetLeftBy; // Offset the placeholder slightly so it appears between two fields. + } + left -= $row.offset().left; + placeholder.style.left = left + 'px'; + } + function syncAfterDragAndDrop() { + fixUnwrappedListItems(); + toggleSectionHolder(); + maybeFixEndDividers(); + maybeDeleteEmptyFieldGroups(); + updateFieldOrder(); + var event = new Event('frm_sync_after_drag_and_drop', { + bubbles: false + }); + document.dispatchEvent(event); + } + function maybeFixEndDividers() { + document.querySelectorAll('.edit_field_type_end_divider').forEach(function (endDivider) { + return endDivider.parentNode.appendChild(endDivider); + }); + } + function maybeDeleteEmptyFieldGroups() { + document.querySelectorAll('li.form_field_box:not(.form-field)').forEach(function (fieldGroup) { + return !fieldGroup.children.length && fieldGroup.remove(); + }); + } + function fixUnwrappedListItems() { + var lists = document.querySelectorAll('ul#frm-show-fields, ul.start_divider'); + lists.forEach(function (list) { + list.childNodes.forEach(function (child) { + if ('undefined' === typeof child.classList) { + return; + } + if (child.classList.contains('edit_field_type_end_divider')) { + // Never wrap end divider in place. + return; + } + if ('undefined' !== typeof child.classList && child.classList.contains('form-field')) { + wrapFieldLiInPlace(child); + } + }); + }); + } + function deleteEmptyDividerWrappers() { + var dividers = document.querySelectorAll('ul.start_divider'); + if (!dividers.length) { + return; + } + dividers.forEach(function (divider) { + var children = [].slice.call(divider.children); + children.forEach(function (child) { + if (0 === child.children.length) { + child.remove(); + } else if (1 === child.children.length && 'ul' === child.firstElementChild.nodeName.toLowerCase() && 0 === child.firstElementChild.children.length) { + child.remove(); + } + }); + }); + } + function getFieldsInRow($row) { + var $fields = jQuery(); + var row = $row.get(0); + if (!row.children) { + return $fields; + } + Array.from(row.children).forEach(function (child) { + if ('none' === child.style.display) { + return; + } + var classes = child.classList; + if (!classes.contains('form-field') || classes.contains('edit_field_type_end_divider') || classes.contains('frm-sortable-helper')) { + return; + } + $fields = $fields.add(child); + }); + return $fields; + } + function determineIndexBasedOffOfMousePositionInRow($row, x) { + var $inputs = getFieldsInRow($row), + length = $inputs.length, + index, + input, + inputLeft, + returnIndex; + returnIndex = 0; + for (index = length - 1; index >= 0; --index) { + input = $inputs.get(index); + inputLeft = jQuery(input).offset().left; + if (x > inputLeft) { + returnIndex = index; + if (x > inputLeft + jQuery(input).outerWidth() / 2) { + returnIndex = index + 1; + } + break; + } + } + return returnIndex; + } + function syncLayoutClasses($item, type) { + var $fields, size, layoutClasses, classToAddFunction; + if ('undefined' === typeof type) { + type = 'even'; + } + $fields = $item.parent().children('li.form-field, li.frmbutton_loadingnow').not('.edit_field_type_end_divider'); + size = $fields.length; + layoutClasses = getLayoutClasses(); + if ('even' === type && 5 !== size) { + $fields.each(getSyncLayoutClass(layoutClasses, getEvenClassForSize(size))); + } else if ('clear' === type) { + $fields.each(getSyncLayoutClass(layoutClasses, '')); + } else { + if (-1 !== ['left', 'right', 'middle', 'even'].indexOf(type)) { + classToAddFunction = function classToAddFunction(index) { + return getClassForBlock(size, type, index); + }; + } else { + classToAddFunction = function classToAddFunction(index) { + var size = type[index]; + return getLayoutClassForSize(size); + }; + } + $fields.each(getSyncLayoutClass(layoutClasses, classToAddFunction)); + } + updateFieldGroupControls($item.parent(), $fields.length); + } + function updateFieldGroupControls($row, count) { + var rowOffset, shouldShowControls, controls; + rowOffset = $row.offset(); + if ('undefined' === typeof rowOffset) { + return; + } + shouldShowControls = count >= 2; + controls = document.getElementById('frm_field_group_controls'); + if (null === controls) { + if (!shouldShowControls) { + // exit early. if we do not need controls and they do not exist, do nothing. + return; + } + controls = div(); + controls.id = 'frm_field_group_controls'; + controls.setAttribute('role', 'group'); + controls.setAttribute('tabindex', 0); + setFieldControlsHtml(controls); + builderPage.appendChild(controls); + } + $row.append(controls); + controls.style.display = shouldShowControls ? 'block' : 'none'; + } + function setFieldControlsHtml(controls) { + var layoutOption, moveOption; + layoutOption = document.createElement('span'); + layoutOption.innerHTML = ''; + var layoutOptionLabel = __('Set Row Layout', 'formidable'); + addTooltip(layoutOption, layoutOptionLabel); + makeTabbable(layoutOption, layoutOptionLabel); + moveOption = document.createElement('span'); + moveOption.innerHTML = ''; + moveOption.classList.add('frm-move'); + var moveOptionLabel = __('Move Field Group', 'formidable'); + addTooltip(moveOption, moveOptionLabel); + makeTabbable(moveOption, moveOptionLabel); + controls.innerHTML = ''; + controls.appendChild(layoutOption); + controls.appendChild(moveOption); + controls.appendChild(getFieldControlsDropdown()); + } + function addTooltip(element, title) { + element.setAttribute('data-toggle', 'tooltip'); + element.setAttribute('data-container', 'body'); + element.setAttribute('title', title); + element.addEventListener('mouseover', function () { + if (null === element.getAttribute('data-original-title')) { + jQuery(element).tooltip(); + } + }); + } + function getFieldControlsDropdown() { + var dropdown = span({ + className: 'dropdown' + }); + var trigger = a({ + className: 'frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle', + children: [span({ + child: svg({ + href: '#frm_thick_more_vert_icon' + }) + }), span({ + className: 'screen-reader-text', + text: __('Toggle More Options Dropdown', 'formidable') + })] + }); + frmDom.setAttributes(trigger, { + title: __('More Options', 'formidable'), + 'data-toggle': 'dropdown', + 'data-container': 'body' + }); + makeTabbable(trigger, __('More Options', 'formidable')); + dropdown.appendChild(trigger); + var ul = div({ + className: 'frm-dropdown-menu dropdown-menu dropdown-menu-right' + }); + ul.setAttribute('role', 'menu'); + dropdown.appendChild(ul); + return dropdown; + } + function getSyncLayoutClass(layoutClasses, classToAdd) { + return function (itemIndex) { + var currentClassToAdd, length, layoutClassIndex, currentClass, activeLayoutClass, fieldId, layoutClassesInput; + currentClassToAdd = 'function' === typeof classToAdd ? classToAdd(itemIndex) : classToAdd; + length = layoutClasses.length; + activeLayoutClass = false; + for (layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex) { + currentClass = layoutClasses[layoutClassIndex]; + if (this.classList.contains(currentClass)) { + activeLayoutClass = currentClass; + break; + } + } + fieldId = this.dataset.fid; + if ('undefined' === typeof fieldId) { + // we are syncing the drag/drop placeholder before the actual field has loaded. + // this will get called again afterward and the input will exist then. + this.classList.add(currentClassToAdd); + return; + } + moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); + layoutClassesInput = document.getElementById('frm_classes_' + fieldId); + if (null === layoutClassesInput) { + // not every field type has a layout class input. + return; + } + if (false === activeLayoutClass) { + if ('' !== currentClassToAdd) { + layoutClassesInput.value = layoutClassesInput.value.concat(' ' + currentClassToAdd); + } + } else { + this.classList.remove(activeLayoutClass); + layoutClassesInput.value = layoutClassesInput.value.replace(activeLayoutClass, currentClassToAdd); + } + if (this.classList.contains('frm_first')) { + this.classList.remove('frm_first'); + layoutClassesInput.value = layoutClassesInput.value.replace('frm_first', '').trim(); + } + if (0 === itemIndex) { + this.classList.add('frm_first'); + layoutClassesInput.value = layoutClassesInput.value.concat(' frm_first'); + } + jQuery(layoutClassesInput).trigger('change'); + }; + } + function getLayoutClasses() { + return ['frm_full', 'frm_half', 'frm_third', 'frm_fourth', 'frm_sixth', 'frm_two_thirds', 'frm_three_fourths', 'frm1', 'frm2', 'frm3', 'frm4', 'frm5', 'frm6', 'frm7', 'frm8', 'frm9', 'frm10', 'frm11', 'frm12']; + } + function setupFieldOptionSorting(sort) { + var opts = { + items: '.frm_sortable_field_opts li', + axis: 'y', + opacity: 0.65, + forcePlaceholderSize: false, + handle: '.frm-drag', + helper: function helper(e, li) { + copyHelper = li.clone().insertAfter(li); + return li.clone(); + }, + stop: function stop(e, ui) { + copyHelper && copyHelper.remove(); + var fieldId = ui.item.attr('id').replace('frm_delete_field_', '').replace('-' + ui.item.data('optkey') + '_container', ''); + resetDisplayedOpts(fieldId); + fieldUpdated(); + } + }; + jQuery(sort).sortable(opts); + } + + // Get the section where a field is dropped + function getSectionForFieldPlacement(currentItem) { + var section = ''; + if (typeof currentItem !== 'undefined' && !currentItem.hasClass('edit_field_type_divider')) { + section = currentItem.closest('.edit_field_type_divider'); + } + return section; + } + + // Get the form ID where a field is dropped + function getFormIdForFieldPlacement(section) { + var formId = ''; + if (typeof section[0] !== 'undefined') { + var sDivide = section.children('.start_divider'); + sDivide.children('.edit_field_type_end_divider').appendTo(sDivide); + if (typeof section.attr('data-formid') !== 'undefined') { + var fieldId = section.attr('data-fid'); + formId = jQuery('input[name="field_options[form_select_' + fieldId + ']"]').val(); + } + } + if (typeof formId === 'undefined' || formId === '') { + formId = thisFormId; + } + return formId; + } + + // Get the section ID where a field is dropped + function getSectionIdForFieldPlacement(section) { + var sectionId = 0; + if (typeof section[0] !== 'undefined') { + sectionId = section.attr('id').replace('frm_field_id_', ''); + } + return sectionId; + } + + /** + * Update a field after it is dragged and dropped into, out of, or between sections + * + * @param {Object} currentItem + * @param {Object} previousSection + * @return {void} + */ + function updateFieldAfterMovingBetweenSections(currentItem, previousSection) { + if (!currentItem.hasClass('form-field')) { + // currentItem is a field group. Call for children recursively. + getFieldsInRow(jQuery(currentItem.get(0).firstChild)).each(function () { + updateFieldAfterMovingBetweenSections(jQuery(this), previousSection); + }); + return; + } + var fieldId = currentItem.attr('id').replace('frm_field_id_', ''); + var section = getSectionForFieldPlacement(currentItem); + var formId = getFormIdForFieldPlacement(section); + var sectionId = getSectionIdForFieldPlacement(section); + var previousFormId = previousSection ? getFormIdForFieldPlacement(jQuery(previousSection.parentNode)) : 0; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_update_field_after_move', + form_id: formId, + field: fieldId, + section_id: sectionId, + previous_form_id: previousFormId, + nonce: frmGlobal.nonce + }, + success: function success() { + toggleSectionHolder(); + updateInSectionValue(fieldId, sectionId); + } + }); + } + + // Update the in_section field value + function updateInSectionValue(fieldId, sectionId) { + document.getElementById('frm_in_section_' + fieldId).value = sectionId; + } + + /** + * Get the arguments for inserting a new field. + * + * @since 6.23 + * + * @param {string} fieldType + * @param {string} sectionId + * @param {string} formId + * @param {Number} hasBreak + * + * @return {Object} + */ + function getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak) { + return { + action: 'frm_insert_field', + form_id: formId, + field_type: fieldType, + section_id: sectionId, + nonce: frmGlobal.nonce, + has_break: hasBreak, + last_row_field_ids: getFieldIdsInSubmitRow() + }; + } + + /** + * Returns true if it's a range field type and slider type is not selected. + * + * @since 6.23 + * + * @param {string} fieldType + * @return {boolean} + */ + function shouldStopInsertingField(fieldType) { + return wp.hooks.applyFilters('frm_should_stop_inserting_field', false, fieldType); + } + + /** + * Add a new field by dragging and dropping it from the Fields sidebar + * + * @param {string} fieldType + */ + function insertNewFieldByDragging(fieldType) { + if (shouldStopInsertingField(fieldType)) { + wp.hooks.doAction('frm_stopped_inserting_by_dragging', fieldType); + return; + } + var placeholder = document.getElementById('frm_drag_placeholder'); + var loadingID = fieldType.replace('|', '-') + '_' + getAutoId(); + var loading = tag('li', { + id: loadingID, + className: 'frm-wait frmbutton_loadingnow' + }); + var $placeholder = jQuery(loading); + var currentItem = jQuery(placeholder); + var section = getSectionForFieldPlacement(currentItem); + var formId = getFormIdForFieldPlacement(section); + var sectionId = getSectionIdForFieldPlacement(section); + placeholder.parentNode.insertBefore(loading, placeholder); + placeholder.remove(); + syncLayoutClasses($placeholder); + var hasBreak = 0; + if ('summary' === fieldType) { + // see if we need to insert a page break before this newly-added summary field. Check for at least 1 page break + hasBreak = jQuery('.frmbutton_loadingnow#' + loadingID).prevAll('li[data-type="break"]').length ? 1 : 0; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak), + success: function success(msg) { + handleInsertFieldByDraggingResponse(msg, $placeholder); + var fieldId = checkMsgForFieldId(msg); + if (fieldId) { + /** + * Fires after a field is added. + * + * @since 6.23 + * + * @param {Object} fieldData The field data. + * @param {string} fieldData.field The field HTML. + * @param {string} fieldData.field_type The field type. + * @param {string} fieldData.form_id The form ID. + */ + wp.hooks.doAction('frm_after_field_added_in_form_builder', { + field: msg, + fieldId: fieldId, + fieldType: fieldType, + form_id: formId + }); + } + }, + error: handleInsertFieldError + }); + } + + /** + * @param {string} msg + * @param {Object} $placeholder jQuery object. + */ + function handleInsertFieldByDraggingResponse(msg, $placeholder) { + var replaceWith; + document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); + var $siblings = $placeholder.siblings('li.form-field').not('.edit_field_type_end_divider'); + if (!$siblings.length) { + // if dragging into a new row, we need to wrap the li first. + replaceWith = wrapFieldLi(msg); + } else { + replaceWith = msgAsjQueryObject(msg); + if (!$placeholder.get(0).parentNode.parentNode.classList.contains('ui-draggable')) { + // If a field group wasn't draggable because it only had a single field, make it draggable. + makeDraggable($placeholder.get(0).parentNode.parentNode, '.frm-move'); + } + } + $placeholder.replaceWith(replaceWith); + updateFieldOrder(); + afterAddField(msg, false); + if ($siblings.length) { + syncLayoutClasses($siblings.first()); + } + toggleSectionHolder(); + if (!$siblings.length) { + makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); + makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); + } else { + makeDraggable(replaceWith.get(0), '.frm-move'); + } + } + + /** + * Get the field ID from the response message. + * + * @since 6.23 + * + * @param {string} msg + * @return {Number} + */ + function checkMsgForFieldId(msg) { + var result = msg.match(/data-fid="(\d+)"/); + return result ? parseInt(result[1]) : 0; + } + function getFieldIdsInSubmitRow() { + var submitField = document.querySelector('.edit_field_type_submit'); + if (!submitField) { + return []; + } + var lastRowFields = submitField.parentNode.children; + var ids = []; + for (var _i2 = 0; _i2 < lastRowFields.length; _i2++) { + ids.push(lastRowFields[_i2].dataset.fid); + } + return ids; + } + function moveFieldThatAlreadyExists(draggable, placeholder) { + placeholder.parentNode.insertBefore(draggable, placeholder); + } + function msgAsjQueryObject(msg) { + var element = div(); + element.innerHTML = msg; + return jQuery(element.firstChild); + } + function handleInsertFieldError(jqXHR, _, errorThrown) { + maybeShowInsertFieldError(errorThrown, jqXHR); + } + function maybeShowInsertFieldError(errorThrown, jqXHR) { + if (!jqXHRAborted(jqXHR)) { + infoModal(errorThrown + '. Please try again.'); + } + } + function jqXHRAborted(jqXHR) { + return jqXHR.status === 0 || jqXHR.readyState === 0; + } + + /** + * Get a unique id that automatically increments with every function call. + * Can be used for any UI that requires a unique id. + * Not to be used in data. + * + * @return {number} + */ + function getAutoId() { + return ++autoId; + } + + /** + * Determine if a draggable element can be droppable into a droppable element. + * + * Don't allow page break, embed form, or section inside section field + * Don't allow page breaks inside of field groups. + * Don't allow field groups with sections inside of sections. + * Don't allow field groups in field groups. + * Don't allow hidden fields inside of field groups but allow them in sections. + * Don't allow any fields below the submit button field. + * Don't allow submit button field above any fields. + * Don't allow GDPR fields in repeaters. + * + * @param {HTMLElement} draggable + * @param {HTMLElement} droppable + * @param {Event} event + * @return {Boolean} + */ + function allowDrop(draggable, droppable, event) { + if (false === droppable) { + // Don't show drop placeholder if dragging somewhere off of the droppable area. + return false; + } + if (droppable.closest('.frm-sortable-helper')) { + // Do not allow drop into draggable. + return false; + } + var isSubmitBtn = draggable.classList.contains('edit_field_type_submit'); + var containSubmitBtn = !draggable.classList.contains('form_field') && !!draggable.querySelector('.edit_field_type_submit'); + if ('frm-show-fields' === droppable.id) { + var draggableIndex = determineIndexBasedOffOfMousePositionInList(jQuery(droppable), event.clientY); + if (isSubmitBtn || containSubmitBtn) { + // Do not allow dropping submit button to above position. + var lastRowIndex = droppable.childElementCount - 1; + return draggableIndex > lastRowIndex; + } + + // Do not allow dropping other fields to below submit button. + var submitButtonIndex = jQuery(droppable.querySelector('.edit_field_type_submit').closest('#frm-show-fields > li')).index(); + return draggableIndex <= submitButtonIndex; + } + if (isSubmitBtn) { + if (droppable.classList.contains('start_divider')) { + // Don't allow dropping submit button into a repeater. + return false; + } + if (isLastRow(droppable.parentElement)) { + // Allow dropping submit button into the last row. + return true; + } + if (!isLastRow(droppable.parentElement.nextElementSibling)) { + // Don't a dropping submit button into the row that isn't the second one from bottom. + return false; + } + + // Allow dropping submit button into the second row from bottom if there is only submit button in the last row. + return !draggable.parentElement.querySelector('li.frm_field_box:not(.edit_field_type_submit)'); + } + if (droppable.classList.contains('start_divider') && (draggable.classList.contains('edit_field_type_gdpr') || draggable.id === 'gdpr') && droppable.closest('.repeat_section')) { + // Don't allow GDPR fields in repeaters. + return false; + } + if (!droppable.classList.contains('start_divider')) { + var $fieldsInRow = getFieldsInRow(jQuery(droppable)); + if (!groupCanFitAnotherField($fieldsInRow, jQuery(draggable))) { + // Field group is full and cannot accept another field. + return false; + } + if (draggable.id === 'divider' && droppable.closest('.start_divider')) { + return false; + } + } + var isNewField = draggable.classList.contains('frm-new-field'); + if (isNewField) { + return allowNewFieldDrop(draggable, droppable); + } + return allowMoveField(draggable, droppable); + } + + /** + * Checks if given element is the last row in form builder. + * + * @param {HTMLElement} element Element. + * @return {Boolean} + */ + function isLastRow(element) { + return element && element.matches('#frm-show-fields > li:last-child'); + } + + // Don't allow a new page break or hidden field in a field group. + // Don't allow a new field into a field group that includes a page break or hidden field. + // Don't allow a new section inside of a section. + // Don't allow an embedded form in a section. + function allowNewFieldDrop(draggable, droppable) { + var classes = draggable.classList; + var newPageBreakField = classes.contains('frm_tbreak'); + var newHiddenField = classes.contains('frm_thidden'); + var newSectionField = classes.contains('frm_tdivider'); + var newEmbedField = classes.contains('frm_tform'); + var newUserIdField = classes.contains('frm_tuser_id'); + var newFieldWillBeAddedToAGroup = !('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')); + if (newFieldWillBeAddedToAGroup) { + if (groupIncludesBreakOrHiddenOrUserId(droppable)) { + // Never allow any field beside a page break or a hidden field. + return false; + } + return !newHiddenField && !newPageBreakField && !newUserIdField; + } + var fieldTypeIsAlwaysAllowed = !newPageBreakField && !newHiddenField && !newSectionField && !newEmbedField; + if (fieldTypeIsAlwaysAllowed) { + return true; + } + var newFieldWillBeAddedToASection = droppable.classList.contains('start_divider') || null !== droppable.closest('.start_divider'); + if (newFieldWillBeAddedToASection) { + // Don't allow a section or an embedded form in a section. + return !newEmbedField && !newSectionField; + } + return true; + } + function allowMoveField(draggable, droppable) { + if (isFieldGroup(draggable)) { + return allowMoveFieldGroup(draggable, droppable); + } + var isPageBreak = draggable.classList.contains('edit_field_type_break'); + if (isPageBreak) { + // Page breaks are only allowed in the main list of fields, not in sections or in field groups. + return false; + } + if (droppable.classList.contains('start_divider')) { + return allowMoveFieldToSection(draggable); + } + var isHiddenField = draggable.classList.contains('edit_field_type_hidden'); + var isUserIdField = draggable.classList.contains('edit_field_type_user_id'); + if (isHiddenField || isUserIdField) { + // Hidden fields and user id fields should not be added to field groups since they're not shown + // and don't make sense with the grid distribution. + return false; + } + return allowMoveFieldToGroup(draggable, droppable); + } + function isFieldGroup(draggable) { + return draggable.classList.contains('frm_field_box') && !draggable.classList.contains('form-field'); + } + function allowMoveFieldGroup(fieldGroup, droppable) { + if (droppable.classList.contains('start_divider') && null === fieldGroup.querySelector('.start_divider')) { + // Allow a field group with no section inside of a section. + return true; + } + return false; + } + function allowMoveFieldToSection(draggable) { + var draggableIncludeEmbedForm = draggable.classList.contains('edit_field_type_form') || draggable.querySelector('.edit_field_type_form'); + if (draggableIncludeEmbedForm) { + // Do not allow an embedded form inside of a section. + return false; + } + var draggableIncludesSection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); + if (draggableIncludesSection) { + // Do not allow a section inside of a section. + return false; + } + return true; + } + function allowMoveFieldToGroup(draggable, group) { + if (groupIncludesBreakOrHiddenOrUserId(group)) { + // Never allow any field beside a page break or a hidden field. + return false; + } + var isFieldGroup = jQuery(draggable).children('ul.frm_sorting').not('.start_divider').length > 0; + if (isFieldGroup) { + // Do not allow a field group directly inside of a field group unless it's in a section. + return false; + } + var draggableIncludesASection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); + var draggableIsEmbedField = draggable.classList.contains('edit_field_type_form'); + var groupIsInASection = null !== group.closest('.start_divider'); + if (groupIsInASection && (draggableIncludesASection || draggableIsEmbedField)) { + // Do not allow a section or an embed field inside of a section. + return false; + } + return true; + } + function groupIncludesBreakOrHiddenOrUserId(group) { + return null !== group.querySelector('.edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id'); + } + function groupCanFitAnotherField(fieldsInRow, $field) { + var fieldId; + if (fieldsInRow.length < 6) { + return true; + } + if (fieldsInRow.length > 6) { + return false; + } + fieldId = $field.attr('data-fid'); + // allow 6 if we're not changing field groups. + return 1 === jQuery(fieldsInRow).filter('[data-fid="' + fieldId + '"]').length; + } + function loadFields(fieldId) { + var thisField = document.getElementById(fieldId); + var $thisField = jQuery(thisField); + var field = []; + var addHtmlToField = function addHtmlToField(element) { + var frmHiddenFdata = element.querySelector('.frm_hidden_fdata'); + element.classList.add('frm_load_now'); + if (frmHiddenFdata !== null) { + field.push(frmHiddenFdata.innerHTML); + } + }; + var nextElement = thisField; + addHtmlToField(nextElement); + var nextField = getNextField(nextElement); + while (nextField && field.length < 15) { + addHtmlToField(nextField); + nextElement = nextField; + nextField = getNextField(nextField); + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_load_field', + field: field, + form_id: thisFormId, + nonce: frmGlobal.nonce + }, + success: function success(html) { + return handleAjaxLoadFieldSuccess(html, $thisField, field); + } + }); + } + function getNextField(field) { + var _field$parentNode; + if (field.nextElementSibling) { + return field.nextElementSibling; + } + return (_field$parentNode = field.parentNode) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.closest('.frm_field_box')) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.nextElementSibling) === null || _field$parentNode === void 0 ? void 0 : _field$parentNode.querySelector('.form-field'); + } + function handleAjaxLoadFieldSuccess(html, $thisField, field) { + var key, $nextSet; + html = html.replace(/^\s+|\s+$/g, ''); + if (html.indexOf('{') !== 0) { + jQuery('.frm_load_now').removeClass('.frm_load_now').html('Error'); + return; + } + html = JSON.parse(html); + for (key in html) { + jQuery('#frm_field_id_' + key).replaceWith(html[key]); + setupSortable('#frm_field_id_' + key + '.edit_field_type_divider ul.frm_sorting'); + makeDraggable(document.getElementById('frm_field_id_' + key)); + } + $nextSet = $thisField.nextAll('.frm_field_loading:not(.frm_load_now)'); + if ($nextSet.length) { + loadFields($nextSet.attr('id')); + } else { + // go up a level + $nextSet = jQuery(document.getElementById('frm-show-fields')).find('.frm_field_loading:not(.frm_load_now)'); + if ($nextSet.length) { + loadFields($nextSet.attr('id')); + } + } + initiateMultiselect(); + renumberPageBreaks(); + maybeHideQuantityProductFieldOption(); + var loadedEvent = new Event('frm_ajax_loaded_field', { + bubbles: false + }); + loadedEvent.frmFields = field.map(function (f) { + return JSON.parse(f); + }); + document.dispatchEvent(loadedEvent); + } + function addFieldClick() { + /*jshint validthis:true */ + var $thisObj = jQuery(this); + // there is no real way to disable a (with a valid href attribute) in HTML - https://css-tricks.com/how-to-disable-links/ + if ($thisObj.hasClass('disabled')) { + return false; + } + var $button = $thisObj.closest('.frmbutton'); + var fieldType = $button.attr('id'); + if (shouldStopInsertingField(fieldType)) { + return; + } + var hasBreak = 0; + if ('summary' === fieldType) { + hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; + } + var formId = thisFormId; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), + success: function success(msg) { + handleAddFieldClickResponse(msg); + var fieldId = checkMsgForFieldId(msg); + if (fieldId) { + /** + * Fires after a field is added. + * + * @since 6.23 + * + * @param {Object} fieldData The field data. + * @param {string} fieldData.field The field HTML. + * @param {string} fieldData.field_type The field type. + * @param {string} fieldData.form_id The form ID. + */ + wp.hooks.doAction('frm_after_field_added_in_form_builder', { + field: msg, + fieldId: fieldId, + fieldType: fieldType, + form_id: formId + }); + } + }, + error: handleInsertFieldError + }); + return false; + } + function handleAddFieldClickResponse(msg) { + document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); + var replaceWith = wrapFieldLi(msg); + var submitField = $newFields[0].querySelector('.edit_field_type_submit'); + if (!submitField) { + $newFields.append(replaceWith); + } else { + jQuery(submitField.closest('.frm_field_box:not(.form-field)')).before(replaceWith); + } + afterAddField(msg, true); + replaceWith.each(function () { + makeDroppable(this.querySelector('ul.frm_sorting')); + makeDraggable(this.querySelector('.form-field'), '.frm-move'); + }); + } + function insertFormField(fieldType) { + var fieldOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return new Promise(function (resolve) { + var formId = thisFormId; + var hasBreak = 0; + if ('summary' === fieldType) { + hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: Object.assign(getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), { + field_options: fieldOptions + }), + success: function success(msg) { + resolve(msg); + setTimeout(function () { + updateFieldOrder(); + afterAddField(msg, true); + var fieldId = checkMsgForFieldId(msg); + if (fieldId) { + /** + * Fires after a field is added. + * + * @since 6.23 + * + * @param {Object} fieldData The field data. + * @param {string} fieldData.field The field HTML. + * @param {string} fieldData.field_type The field type. + * @param {string} fieldData.form_id The form ID. + */ + wp.hooks.doAction('frm_after_field_added_in_form_builder', { + field: msg, + fieldId: fieldId, + fieldType: fieldType, + form_id: formId + }); + } + }, 10); + }, + error: handleInsertFieldError + }); + }); + } + function maybeHideQuantityProductFieldOption() { + var hide = true, + opts = document.querySelectorAll('.frmjs_prod_field_opt_cont'); + if ($newFields.find('li.edit_field_type_product').length > 1) { + hide = false; + } + for (var _i3 = 0; _i3 < opts.length; _i3++) { + if (hide) { + opts[_i3].classList.add('frm_hidden'); + } else { + opts[_i3].classList.remove('frm_hidden'); + } + } + } + + /** + * Returns true if a field can be duplicated. + * + * @since 6.19 + * + * @param {HTMLElement} field + * @param {number} maxFieldsInGroup + * + * @return {Boolean} + */ + function canDuplicateField(field, maxFieldsInGroup) { + if (field.classList.contains('frm-page-collapsed')) { + return false; + } + var fieldGroup = field.closest('li.frm_field_box:not(.form-field)'); + if (!fieldGroup) { + return true; + } + var fieldsInGroup = getFieldsInRow(jQuery(fieldGroup.querySelector('ul'))).length; + return fieldsInGroup < maxFieldsInGroup; + } + function duplicateField() { + var $field, fieldId, children, newRowId, fieldOrder; + var maxFieldsInGroup = 6; + $field = jQuery(this).closest('li.form-field'); + newRowId = this.getAttribute('frm-target-row-id'); + if (!(newRowId && newRowId.startsWith('frm_field_group_')) && !canDuplicateField($field.get(0), maxFieldsInGroup)) { + /* translators: %1$d: Maximum number of fields allowed in a field group. */ + infoModal(sprintf(__('You can only have a maximum of %1$d fields in a field group. Delete or move out a field from the group and try again.', 'formidable'), maxFieldsInGroup)); + return; + } + closeOpenFieldDropdowns(); + fieldId = $field.data('fid'); + children = fieldsInSection(fieldId); + if (null !== newRowId) { + fieldOrder = this.getAttribute('frm-field-order'); + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_duplicate_field', + field_id: fieldId, + form_id: thisFormId, + children: children, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + var _$field$0$querySelect; + var newRow; + var replaceWith; + if (null !== newRowId) { + newRow = document.getElementById(newRowId); + if (null !== newRow) { + replaceWith = msgAsjQueryObject(msg); + jQuery(newRow).append(replaceWith); + makeDraggable(replaceWith.get(0), '.frm-move'); + if (null !== fieldOrder) { + newRow.lastElementChild.setAttribute('frm-field-order', fieldOrder); + } + jQuery(newRow).trigger('frm_added_duplicated_field_to_row', { + duplicatedFieldHtml: msg, + originalFieldId: fieldId + }); + afterAddField(msg, false); + setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); + return; + } + } + if ($field.siblings('li.form-field').length) { + replaceWith = msgAsjQueryObject(msg); + $field.after(replaceWith); + syncLayoutClasses($field); + makeDraggable(replaceWith.get(0), '.frm-move'); + } else { + replaceWith = wrapFieldLi(msg); + $field.parent().parent().after(replaceWith); + makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); + makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); + } + updateFieldOrder(); + afterAddField(msg, false); + maybeDuplicateUnsavedSettings(fieldId, msg); + toggleOneSectionHolder(replaceWith.find('.start_divider')); + (_$field$0$querySelect = $field[0].querySelector('.frm-dropdown-menu.dropdown-menu-right')) === null || _$field$0$querySelect === void 0 || _$field$0$querySelect.classList.remove('show'); + setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); + } + }); + return false; + } + + /** + * Sets the layout classes for a duplicated field in a field group from the layout classes of the original field. + * + * @param {HTMLElement} field The original field. + * @param {HTMLElement} newField The duplicated field. + * + * @return {void} + */ + function setLayoutClassesForDuplicatedFieldInGroup(field, newField) { + var _document$getElementB; + var hoverTarget = field.closest('.frm-field-group-hover-target'); + if (!hoverTarget || !isFieldGroup(hoverTarget.parentElement)) { + return; + } + var fieldId = field.dataset.fid; + var fieldClasses = (_document$getElementB = document.getElementById('frm_classes_' + fieldId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.value; + if (!fieldClasses) { + return; + } + fieldClasses = fieldClasses.replace('frm_first', ''); + if (!newField.className.includes(fieldClasses)) { + newField.className += ' ' + fieldClasses; + var classesInput = document.getElementById('frm_classes_' + newField.dataset.fid); + if (classesInput) { + classesInput.value = fieldClasses; + } + } + } + function maybeDuplicateUnsavedSettings(originalFieldId, newFieldHtml) { + var originalSettings, newFieldId, copySettings, fieldOptionKeys, originalDefault, copyDefault; + originalSettings = document.getElementById('frm-single-settings-' + originalFieldId); + if (null === originalSettings) { + return; + } + newFieldId = jQuery(newFieldHtml).attr('data-fid'); + if ('undefined' === typeof newFieldId) { + return; + } + copySettings = document.getElementById('frm-single-settings-' + newFieldId); + if (null === copySettings) { + return; + } + fieldOptionKeys = ['name', 'required', 'unique', 'read_only', 'placeholder', 'description', 'size', 'max', 'format', 'prepend', 'append', 'separate_value']; + originalSettings.querySelectorAll('input[name^="field_options["], textarea[name^="field_options["]').forEach(function (originalSetting) { + var key, tagType, copySetting; + key = getKeyFromSettingInput(originalSetting); + if ('options' === key) { + copyOption(originalSetting, copySettings, originalFieldId, newFieldId); + return; + } + if (-1 === fieldOptionKeys.indexOf(key)) { + return; + } + tagType = originalSetting.matches('input') ? 'input' : 'textarea'; + copySetting = copySettings.querySelector(tagType + '[name="field_options[' + key + '_' + newFieldId + ']"]'); + if (null === copySetting) { + return; + } + if ('checkbox' === originalSetting.type) { + if (originalSetting.checked !== copySetting.checked) { + jQuery(copySetting).trigger('click'); + } + } else if ('text' === originalSetting.type || 'textarea' === tagType) { + if (originalSetting.value !== copySetting.value) { + copySetting.value = originalSetting.value; + jQuery(copySetting).trigger('change'); + } + } + }); + originalDefault = originalSettings.querySelector('input[name="default_value_' + originalFieldId + '"]'); + if (null !== originalDefault) { + copyDefault = copySettings.querySelector('input[name="default_value_' + newFieldId + '"]'); + if (null !== copyDefault && originalDefault.value !== copyDefault.value) { + copyDefault.value = originalDefault.value; + jQuery(copyDefault).trigger('change'); + } + } + } + function copyOption(originalSetting, copySettings, originalFieldId, newFieldId) { + var remainingKeyDetails, copyKey, copySetting; + remainingKeyDetails = originalSetting.name.substr(23 + ('' + originalFieldId).length); + copyKey = 'field_options[options_' + newFieldId + ']' + remainingKeyDetails; + copySetting = copySettings.querySelector('input[name="' + copyKey + '"]'); + if (null !== copySetting && copySetting.value !== originalSetting.value) { + copySetting.value = originalSetting.value; + jQuery(copySetting).trigger('change'); + } + } + function getKeyFromSettingInput(input) { + var nameWithoutPrefix, nameSplit; + nameWithoutPrefix = input.name.substr(14); + nameSplit = nameWithoutPrefix.split('_'); + nameSplit.pop(); + return nameSplit.join('_'); + } + function closeOpenFieldDropdowns() { + var openSettings = document.querySelector('.frm-field-settings-open'); + if (null !== openSettings) { + openSettings.classList.remove('frm-field-settings-open'); + jQuery(document).off('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); + jQuery('.frm-field-action-icons .dropdown.open').removeClass('open'); + } + } + function handleClickOutsideOfFieldSettings(event) { + if (!jQuery(event.originalEvent.target).closest('.frm-field-action-icons').length) { + closeOpenFieldDropdowns(); + } + } + function checkForMultiselectKeysOnMouseMove(event) { + var keyIsDown = !!(event.ctrlKey || event.metaKey || event.shiftKey); + jQuery(builderPage).toggleClass('frm-multiselect-key-is-down', keyIsDown); + checkForActiveHoverTarget(event); + } + function checkForActiveHoverTarget(event) { + var container, elementFromPoint, list, previousHoverTarget; + container = postBodyContent; + if (container.classList.contains('frm-dragging-field')) { + return; + } + if (null !== document.querySelector('.frm-field-group-hover-target .frm-field-settings-open')) { + // do not set a hover target if a dropdown is open for the current hover target. + return; + } + elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); + if (null !== elementFromPoint && !elementFromPoint.classList.contains('edit_field_type_divider')) { + list = elementFromPoint.closest('ul.frm_sorting'); + if (null !== list && !list.classList.contains('start_divider') && 'frm-show-fields' !== list.id) { + previousHoverTarget = maybeRemoveGroupHoverTarget(); + if (false !== previousHoverTarget && !jQuery(previousHoverTarget).is(list)) { + destroyFieldGroupPopup(); + } + updateFieldGroupControls(jQuery(list), getFieldsInRow(jQuery(list)).length); + list.classList.add('frm-field-group-hover-target'); + jQuery('#wpbody-content').on('mousemove', maybeRemoveHoverTargetOnMouseMove); + } + } + } + function maybeRemoveGroupHoverTarget() { + var controls, previousHoverTarget; + controls = document.getElementById('frm_field_group_controls'); + if (null !== controls) { + controls.style.display = 'none'; + } + previousHoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === previousHoverTarget) { + return false; + } + jQuery('#wpbody-content').off('mousemove', maybeRemoveHoverTargetOnMouseMove); + previousHoverTarget.classList.remove('frm-field-group-hover-target'); + return previousHoverTarget; + } + function maybeRemoveHoverTargetOnMouseMove(event) { + var elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); + if (null !== elementFromPoint && null !== elementFromPoint.closest('#frm-show-fields')) { + return; + } + maybeRemoveGroupHoverTarget(); + } + function onFieldActionDropdownShow(isFieldGroup) { + unselectFieldGroups(); + // maybe offset the dropdown if it goes off of the right of the screen. + setTimeout(function () { + var ul, $ul; + ul = document.querySelector('.dropdown.show .frm-dropdown-menu'); + if (null === ul) { + return; + } + if (null === ul.getAttribute('aria-label')) { + ul.setAttribute('aria-label', __('More Options', 'formidable')); + } + if (0 === ul.children.length) { + fillFieldActionDropdown(ul, true === isFieldGroup); + } + $ul = jQuery(ul); + if ($ul.offset().left > jQuery(window).width() - $ul.outerWidth()) { + ul.style.left = -$ul.outerWidth() + 'px'; + } + var firstAnchor = ul.firstElementChild.querySelector('a'); + if (firstAnchor) { + firstAnchor.focus(); + } + }, 0); + } + function onFieldGroupActionDropdownShow() { + onFieldActionDropdownShow(true); + } + function changeSectionStyle(e) { + var collapsedSection = e.target.closest('.frm-section-collapsed'); + if (!collapsedSection) { + return; + } + if (e.type === 'show') { + collapsedSection.style.zIndex = 3; + } else { + collapsedSection.style.zIndex = 1; + } + } + function fillFieldActionDropdown(ul, isFieldGroup) { + var classSuffix, options; + classSuffix = isFieldGroup ? '_field_group' : '_field'; + options = [getDeleteActionOption(isFieldGroup), getDuplicateActionOption(isFieldGroup)]; + if (!isFieldGroup) { + options.push({ + class: 'frm_select', + icon: 'frm_settings_icon', + label: __('Field Settings', 'formidable') + }); + } + options.forEach(function (option) { + var li, anchor, span; + li = document.createElement('div'); + li.classList.add('frm_more_options_li', 'dropdown-item'); + anchor = document.createElement('a'); + anchor.classList.add(option.class + classSuffix); + anchor.setAttribute('href', '#'); + makeTabbable(anchor); + span = document.createElement('span'); + span.textContent = option.label; + anchor.innerHTML = ''; + anchor.appendChild(document.createTextNode(' ')); + anchor.appendChild(span); + li.appendChild(anchor); + ul.appendChild(li); + }); + } + function getDeleteActionOption(isFieldGroup) { + var option = { + class: 'frm_delete', + icon: 'frm_delete_icon' + }; + option.label = isFieldGroup ? __('Delete Group', 'formidable') : __('Delete', 'formidable'); + return option; + } + function getDuplicateActionOption(isFieldGroup) { + var option = { + class: 'frm_clone', + icon: 'frm_clone_icon' + }; + option.label = isFieldGroup ? __('Duplicate Group', 'formidable') : __('Duplicate', 'formidable'); + return option; + } + function wrapFieldLi(field) { + var wrapper = div(); + if ('string' === typeof field) { + wrapper.innerHTML = field; + } else { + wrapper.appendChild(field); + } + var result = jQuery(); + Array.from(wrapper.children).forEach(function (li) { + result = result.add(jQuery('
      • ').addClass('frm_field_box').html(jQuery('
          ').addClass('frm_grid_container frm_sorting').append(li))); + }); + return result; + } + function wrapFieldLiInPlace(li) { + var ul = tag('ul', { + className: 'frm_grid_container frm_sorting' + }); + var wrapper = tag('li', { + className: 'frm_field_box', + child: ul + }); + li.replaceWith(wrapper); + ul.appendChild(li); + makeDroppable(ul); + makeDraggable(wrapper, '.frm-move'); + } + function afterAddField(msg, addFocus) { + var regex = /id="(\S+)"/; + var match = regex.exec(msg); + var field = document.getElementById(match[1]); + var section = '#' + match[1] + '.edit_field_type_divider ul.frm_sorting.start_divider'; + var $thisSection = jQuery(section); + var type = field.getAttribute('data-type'); + checkHtmlForNewFields(msg); + var toggled = false; + fieldUpdated(); + setupSortable(section); + if ('quantity' === type) { + // try to automatically attach a product field + maybeSetProductField(field); + } + if ('product' === type || 'quantity' === type) { + // quantity too needs to be a part of the if stmt especially cos of the very + // 1st quantity field (or even if it's just one quantity field in the form). + maybeHideQuantityProductFieldOption(); + } + if ($thisSection.length) { + $thisSection.parent('.frm_field_box').children('.frm_no_section_fields').addClass('frm_block'); + } else { + var $parentSection = jQuery(field).closest('ul.frm_sorting.start_divider'); + if ($parentSection.length) { + toggleOneSectionHolder($parentSection); + toggled = true; + } + } + if (msg.indexOf('frm-collapse-page') !== -1) { + renumberPageBreaks(); + } + addClass(field, 'frm-newly-added'); + setTimeout(function () { + field.classList.remove('frm-newly-added'); + }, 1000); + if (addFocus) { + var bounding = field.getBoundingClientRect(), + container = document.getElementById('post-body-content'), + inView = bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight); + if (!inView) { + container.scroll({ + top: container.scrollHeight, + left: 0, + behavior: 'smooth' + }); + } + if (toggled === false) { + toggleOneSectionHolder($thisSection); + } + } + deselectFields(); + initiateMultiselect(); + document.getElementById('frm-show-fields').classList.remove('frm-over-droppable'); + var addedEvent = new Event('frm_added_field', { + bubbles: false + }); + addedEvent.frmField = field; + addedEvent.frmSection = section; + addedEvent.frmType = type; + addedEvent.frmToggles = toggled; + document.dispatchEvent(addedEvent); + } + + /** + * Since multiple new fields may get added when a new field is inserted, check the HTML. + * + * @param {string} html + * @return {void} + */ + function checkHtmlForNewFields(html) { + var element = div(); + element.innerHTML = html; + element.querySelectorAll('.form-field').forEach(addFieldIdToDraftFieldsInput); + } + + /** + * @param {HTMLElement} field + * @return {void} + */ + function addFieldIdToDraftFieldsInput(field) { + if (!field.dataset.fid) { + return; + } + var draftInput = document.getElementById('draft_fields'); + if (!draftInput) { + return; + } + if ('' === draftInput.value) { + draftInput.value = field.dataset.fid; + } else { + var split = draftInput.value.split(','); + if (!split.includes(field.dataset.fid)) { + draftInput.value += ',' + field.dataset.fid; + } + } + } + function clearSettingsBox(preventFieldGroups) { + jQuery('#new_fields .frm-single-settings').addClass('frm_hidden'); + jQuery('#frm-options-panel > .frm-single-settings').removeClass('frm_hidden'); + deselectFields(preventFieldGroups); + } + function deselectFields(preventFieldGroups) { + jQuery('li.ui-state-default.selected').removeClass('selected'); + jQuery('.frm-show-field-settings.selected').removeClass('selected'); + if (!preventFieldGroups) { + unselectFieldGroups(); + } + } + function scrollToField(field) { + var newPos = field.getBoundingClientRect().top, + container = document.getElementById('post-body-content'); + if (typeof animate === 'undefined') { + jQuery(container).scrollTop(newPos); + } else { + // TODO: smooth scroll + jQuery(container).animate({ + scrollTop: newPos + }, 500); + } + } + function checkCalculationCreatedByUser() { + var calculation = this.value; + var warningMessage = checkMatchingParens(calculation); + warningMessage += checkShortcodes(calculation, this); + if (warningMessage !== '') { + infoModal(calculation + '\n\n' + warningMessage); + } + } + + /** + * Checks a string for parens, brackets, and curly braces and returns a message if any unmatched are found. + * @param formula + * @return {string} + */ + function checkMatchingParens(formula) { + var stack = [], + formulaArray = formula.split(''), + length = formulaArray.length, + opening = ['{', '[', '('], + closing = { + '}': '{', + ')': '(', + ']': '[' + }, + unmatchedClosing = [], + msg = '', + i, + top; + for (i = 0; i < length; i++) { + if (opening.includes(formulaArray[i])) { + stack.push(formulaArray[i]); + continue; + } + if (closing.hasOwnProperty(formulaArray[i])) { + top = stack.pop(); + if (top !== closing[formulaArray[i]]) { + unmatchedClosing.push(formulaArray[i]); + } + } + } + if (stack.length > 0 || unmatchedClosing.length > 0) { + msg = frmAdminJs.unmatched_parens + '\n\n'; + return msg; + } + return ''; + } + + /** + * Checks a calculation for shortcodes that shouldn't be in it and returns a message if found. + * @param calculation + * @param inputElement + * @return {string} + */ + function checkShortcodes(calculation, inputElement) { + var msg = checkNonNumericShortcodes(calculation, inputElement); + msg += checkNonFormShortcodes(calculation); + return msg; + } + + /** + * Checks if a numeric calculation has shortcodes that output non-numeric strings and returns a message if found. + * @param calculation + * + * @param inputElement + * @return {string} + */ + function checkNonNumericShortcodes(calculation, inputElement) { + var msg = ''; + if (isTextCalculation(inputElement)) { + return msg; + } + var nonNumericShortcodes = getNonNumericShortcodes(); + if (nonNumericShortcodes.test(calculation)) { + msg = frmAdminJs.text_shortcodes + '\n\n'; + } + return msg; + } + + /** + * Determines if the calculation input is from a text calculation. + * + * @param inputElement + */ + function isTextCalculation(inputElement) { + return jQuery(inputElement).siblings('label[for^="calc_type"]').children('input').prop('checked'); + } + + /** + * Returns a regular expression of shortcodes that can't be used in numeric calculations. + * @return {RegExp} + */ + function getNonNumericShortcodes() { + return /\[(date|time|email|ip)\]/; + } + + /** + * Checks if a string has any shortcodes that do not belong in forms and returns a message if any are found. + * @param formula + * @return {string} + */ + function checkNonFormShortcodes(formula) { + var nonFormShortcodes = getNonFormShortcodes(), + msg = ''; + if (nonFormShortcodes.test(formula)) { + msg += frmAdminJs.view_shortcodes + '\n\n'; + } + return msg; + } + + /** + * Returns a regular expression of shortcodes that can't be used in forms but can be used in Views, Email + * Notifications, and other Formidable areas. + * + * @return {RegExp} + */ + function getNonFormShortcodes() { + return /\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g; + } + function isCalcBoxType(box, listClass) { + var list = jQuery(box).find('.frm_code_list'); + return 1 === list.length && list.hasClass(listClass); + } + function extractExcludedOptions(exclude) { + var opts = []; + if (!Array.isArray(exclude)) { + return opts; + } + for (var _i4 = 0; _i4 < exclude.length; _i4++) { + if (exclude[_i4].startsWith('[')) { + opts.push(exclude[_i4]); + // remove it + exclude.splice(_i4, 1); + // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value + _i4--; + } + } + return opts; + } + function hasExcludedOption(field, excludedOpts) { + var hasOption = false; + for (var _i5 = 0; _i5 < excludedOpts.length; _i5++) { + var inputs = document.getElementsByName(getFieldOptionInputName(excludedOpts[_i5], field.fieldId)); + // 2nd condition checks that there's at least one non-empty value + if (inputs.length && jQuery(inputs[0]).val()) { + hasOption = true; + break; + } + } + return hasOption; + } + function getFieldOptionInputName(opt, fieldId) { + var at = opt.indexOf(']'); + return 'field_options' + opt.substring(0, at) + '_' + fieldId + opt.substring(at); + } + function popCalcFields(v, force) { + var box, + exclude, + fields, + i, + list, + p = jQuery(v).closest('.frm-single-settings'), + calc = p.find('.frm-calc-field'); + if (!force && (!calc.length || calc.val() === '' || calc.is(':hidden'))) { + return; + } + var isSummary = isCalcBoxType(v, 'frm_js_summary_list'); + var fieldId = p.find('input[name="frm_fields_submitted[]"]').val(); + if (force) { + box = v; + } else { + box = document.getElementById('frm-calc-box-' + fieldId); + } + exclude = getExcludeArray(box, isSummary); + var excludedOpts = extractExcludedOptions(exclude); + fields = getFieldList(); + list = document.getElementById('frm-calc-list-' + fieldId); + list.innerHTML = ''; + for (i = 0; i < fields.length; i++) { + if (exclude && exclude.includes(fields[i].fieldType) || excludedOpts.length && hasExcludedOption(fields[i], excludedOpts)) { + continue; + } + var _a = document.createElement('a'); + _a.setAttribute('href', '#'); + _a.setAttribute('data-code', fields[i].fieldId); + _a.classList.add('frm_insert_code'); + _a.appendChild(span(fields[i].fieldName)); + _a.appendChild(span({ + className: 'frm-text-sm frm-text-grey-500', + text: '[' + fields[i].fieldId + ']' + })); + var li = document.createElement('li'); + li.classList.add('frm-field-list-' + fieldId); + li.classList.add('frm-field-list-' + fields[i].fieldType); + li.appendChild(_a); + list.appendChild(li); + } + } + function getExcludeArray(calcBox, isSummary) { + var codeList = calcBox.querySelector('.frm_code_list'); + var exclude = JSON.parse(codeList.getAttribute('data-exclude')); + if (isSummary) { + // includedExtras are those that are normally excluded from the summary but the form owner can choose to include, + // when they have been chosen to be included, then they can now be manually excluded in the calc box. + var includedExtras = getIncludedExtras(); + if (includedExtras.length) { + for (var _i6 = 0; _i6 < exclude.length; _i6++) { + if (includedExtras.includes(exclude[_i6])) { + // remove it + exclude.splice(_i6, 1); + // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value + _i6--; + } + } + } + } + return exclude; + } + function getIncludedExtras() { + var checked = []; + var checkboxes = document.getElementsByClassName('frm_include_extras_field'); + for (var _i7 = 0; _i7 < checkboxes.length; _i7++) { + if (checkboxes[_i7].checked) { + checked.push(checkboxes[_i7].value); + } + } + return checked; + } + function rePopCalcFieldsForSummary() { + popCalcFields(jQuery('.frm-inline-modal.postbox:has(.frm_js_summary_list)')[0], true); + } + function getFieldList(fieldType) { + var i, + fields = [], + allFields = document.querySelectorAll('li.frm_field_box'), + checkType = 'undefined' !== typeof fieldType; + for (i = 0; i < allFields.length; i++) { + // data-ftype is better (than data-type) cos of fields loaded by AJAX - which might not be ready yet + if (checkType && allFields[i].getAttribute('data-ftype') !== fieldType) { + continue; + } + var fieldId = allFields[i].getAttribute('data-fid'); + if (typeof fieldId !== 'undefined' && fieldId) { + fields.push({ + fieldId: fieldId, + fieldName: getPossibleValue('frm_name_' + fieldId), + fieldType: getPossibleValue('field_options_type_' + fieldId), + fieldKey: getPossibleValue('field_options_field_key_' + fieldId) + }); + } + } + return wp.hooks.applyFilters('frm_admin_get_field_list', fields, fieldType, allFields); + } + function popProductFields(field) { + var i, + checked, + id, + options = [], + current = getCurrentProductFields(field), + fName = field.getAttribute('data-frmfname'), + products = getFieldList('product'), + quantities = getFieldList('quantity'), + isSelect = field.tagName === 'SELECT', + // for reverse compatibility. + // whether we have just 1 product and 1 quantity field & should therefore attach the latter to the former + auto = 1 === quantities.length && 1 === products.length; + if (isSelect) { + // This fallback can be removed after 4.05. + current = field.getAttribute('data-frmcurrent'); + } + for (i = 0; i < products.length; i++) { + // let's be double sure it's string, else indexOf will fail + id = products[i].fieldId.toString(); + checked = auto || -1 !== current.indexOf(id); + if (isSelect) { + // This fallback can be removed after 4.05. + checked = checked ? ' selected' : ''; + options.push(''); + } else { + checked = checked ? ' checked' : ''; + options.push(''); + } + } + field.innerHTML = options.join(''); + } + function getCurrentProductFields(prodFieldOpt) { + var products = prodFieldOpt.querySelectorAll('[type="checkbox"]:checked'), + idsArray = []; + for (var _i8 = 0; _i8 < products.length; _i8++) { + idsArray.push(products[_i8].value); + } + return idsArray; + } + function popAllProductFields() { + var opts = document.querySelectorAll('.frmjs_prod_field_opt'); + for (var _i9 = 0; _i9 < opts.length; _i9++) { + popProductFields(opts[_i9]); + } + } + function maybeSetProductField(field) { + var fieldId = field.getAttribute('data-fid'), + productFieldOpt = document.getElementById('field_options[product_field_' + fieldId + ']'); + if (null === productFieldOpt) { + return; + } + popProductFields(productFieldOpt); + // in order to move its settings to that LHS panel where + // the update form resides, else it'll lose this setting + moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); + } + + /** + * If the element doesn't exist, use a blank value. + */ + function getPossibleValue(id) { + var field = document.getElementById(id); + if (field !== null) { + return field.value; + } + return ''; + } + function liveChanges() { + /*jshint validthis:true */ + var option, + newValue = this.value, + changes = document.getElementById(this.getAttribute('data-changeme')), + att = this.getAttribute('data-changeatt'); + if (changes === null) { + return; + } + if (att !== null) { + if (changes.tagName === 'SELECT' && att === 'placeholder') { + option = changes.options[0]; + if (option.value === '') { + option.innerHTML = newValue; + } else { + // Create a placeholder option if there are no blank values. + addBlankSelectOption(changes, newValue); + } + } else if (att === 'class') { + changeFieldClass(changes, this); + } else if (isSliderField(changes)) { + updateSliderFieldPreview(changes, att, newValue); + } else { + changes.setAttribute(att, newValue); + } + } else if (changes.id.indexOf('setup-message') === 0) { + if (newValue !== '') { + changes.innerHTML = ''; + } + } else { + changes.innerHTML = purifyHtml(newValue); + if ('TEXTAREA' === changes.nodeName && changes.classList.contains('wp-editor-area')) { + // Trigger change events on wysiwyg textareas so we can also sync default values in the visual tab. + jQuery(changes).trigger('change'); + } + if (changes.classList.contains('frm_primary_label') && 'break' === changes.nextElementSibling.getAttribute('data-ftype')) { + changes.nextElementSibling.querySelector('.frm_button_submit').textContent = newValue; + } + } + } + function updateSliderFieldPreview(field, att, newValue) { + if (frmGlobal.proIncludesSliderJs) { + var hookName = 'frm_update_slider_field_preview'; + var hookArgs = { + field: field, + att: att, + newValue: newValue + }; + wp.hooks.doAction(hookName, hookArgs); + return; + } + + // This functionality has been moved to pro since v5.4.3. This code should be removed eventually. + if ('value' === att) { + if ('' === newValue) { + newValue = getSliderMidpoint(field); + } + field.value = newValue; + } else { + field.setAttribute(att, newValue); + } + if (-1 === ['value', 'min', 'max'].indexOf(att)) { + return; + } + if (('max' === att || 'min' === att) && '' === getSliderDefaultValueInput(field.id)) { + field.value = getSliderMidpoint(field); + } + field.parentNode.querySelector('.frm_range_value').textContent = field.value; + } + function getSliderDefaultValueInput(previewInputId) { + return document.querySelector('input[data-changeme="' + previewInputId + '"][data-changeatt="value"]').value; + } + function getSliderMidpoint(sliderInput) { + var max = parseFloat(sliderInput.getAttribute('max')); + var min = parseFloat(sliderInput.getAttribute('min')); + return (max - min) / 2 + min; + } + function isSliderField(previewInput) { + return 'range' === previewInput.type && previewInput.parentNode.classList.contains('frm_range_container'); + } + function toggleInvalidMsg() { + /*jshint validthis:true */ + var typeDropdown, + fieldType, + fieldId = this.getAttribute('data-fid'), + value = ''; + ['field_options_max_', 'frm_format_'].forEach(function (id) { + var input = document.getElementById(id + fieldId); + if (!input) { + return; + } + value += input.value; + }); + typeDropdown = document.getElementsByName('field_options[type_' + fieldId + ']')[0]; + fieldType = typeDropdown.options[typeDropdown.selectedIndex].value; + if (fieldType === 'text') { + toggleValidationBox('' !== value, '.frm_invalid_msg' + fieldId); + } + } + function markRequired() { + /*jshint validthis:true */ + var thisid = this.id.replace('frm_', ''), + fieldId = thisid.replace('req_field_', ''), + checked = this.checked, + label = jQuery('#field_label_' + fieldId + ' .frm_required'); + toggleValidationBox(checked, '.frm_required_details' + fieldId); + if (checked) { + var $reqBox = jQuery('input[name="field_options[required_indicator_' + fieldId + ']"]'); + if ($reqBox.val() === '') { + $reqBox.val('*'); + } + label.removeClass('frm_hidden'); + } else { + label.addClass('frm_hidden'); + } + } + function toggleValidationBox(hasValue, messageClass) { + $msg = jQuery(messageClass); + if (hasValue) { + $msg.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); + } else { + // Fade out validation options + var $validationBox = $msg.fadeOut('fast').closest('.frm_validation_box'); + var v = $validationBox.css('display', 'block').children(':not(' + messageClass + '):visible').length; + $validationBox.css('display', ''); + if (v === 0) { + $msg.closest('.frm_validation_msg').fadeOut('fast'); + } + } + } + function markUnique() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + var $thisField = jQuery('.frm_unique_details' + fieldId); + if (this.checked) { + $thisField.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); + $unqDetail = jQuery('.frm_unique_details' + fieldId + ' input'); + if ($unqDetail.val() === '') { + $unqDetail.val(frmAdminJs.default_unique); + } + } else { + var $validationBox = $thisField.fadeOut('fast').closest('.frm_validation_box'); + var v = $validationBox.css('display', 'block').children(':not(.frm_unique_details' + fieldId + '):visible').length; + $validationBox.css('display', ''); + if (v === 0) { + $thisField.closest('.frm_validation_msg').fadeOut('fast'); + } + } + } + + //Fade confirmation field and validation option in or out + function addConf() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + var val = jQuery(this).val(); + var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)); + toggleValidationBox(val !== '', '.frm_conf_details' + fieldId); + if (val !== '') { + //Add default validation message if empty + var valMsg = jQuery('.frm_validation_box .frm_conf_details' + fieldId + ' input'); + if (valMsg.val() === '') { + valMsg.val(frmAdminJs.default_conf); + } + setConfirmationFieldDescriptions(fieldId); + + //Add or remove class for confirmation field styling + if (val === 'inline') { + $thisField.removeClass('frm_conf_below').addClass('frm_conf_inline'); + } else if (val === 'below') { + $thisField.removeClass('frm_conf_inline').addClass('frm_conf_below'); + } + jQuery('.frm-conf-box-' + fieldId).removeClass('frm_hidden'); + } else { + jQuery('.frm-conf-box-' + fieldId).addClass('frm_hidden'); + setTimeout(function () { + $thisField.removeClass('frm_conf_inline frm_conf_below'); + }, 200); + } + } + function setConfirmationFieldDescriptions(fieldId) { + var fieldType = document.getElementsByName('field_options[type_' + fieldId + ']')[0].value; + var fieldDescription = document.getElementById('field_description_' + fieldId); + var hiddenDescName = 'field_options[description_' + fieldId + ']'; + var newValue = frmAdminJs['enter_' + fieldType]; + maybeSetNewDescription(fieldDescription, hiddenDescName, newValue); + var confFieldDescription = document.getElementById('conf_field_description_' + fieldId); + var hiddenConfName = 'field_options[conf_desc_' + fieldId + ']'; + var newConfValue = frmAdminJs['confirm_' + fieldType]; + maybeSetNewDescription(confFieldDescription, hiddenConfName, newConfValue); + } + function maybeSetNewDescription(descriptionDiv, hiddenName, newValue) { + if (descriptionDiv.innerHTML === frmAdminJs.desc) { + // Set the visible description value and the hidden description value + descriptionDiv.innerHTML = newValue; + document.getElementsByName(hiddenName)[0].value = newValue; + } + } + function initBulkOptionsOverlay() { + /*jshint validthis:true */ + var $info = initModal('#frm-bulk-modal', '700px'); + if ($info === false) { + return; + } + jQuery('.frm-insert-preset').on('click', insertBulkPreset); + jQuery(builderForm).on('click', 'a.frm-bulk-edit-link', function (event) { + event.preventDefault(); + var i, + key, + label, + content = '', + optList, + opts, + fieldId = jQuery(this).closest('[data-fid]').data('fid'), + separate = usingSeparateValues(fieldId), + product = isProductField(fieldId); + optList = document.getElementById('frm_field_' + fieldId + '_opts'); + if (!optList) { + return; + } + opts = optList.getElementsByTagName('li'); + document.getElementById('bulk-field-id').value = fieldId; + for (i = 0; i < opts.length; i++) { + key = opts[i].getAttribute('data-optkey'); + if (key !== '000') { + label = document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][label]')[0]; + if (typeof label !== 'undefined') { + content += label.value; + if (separate) { + content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][value]')[0].value; + } + if (product) { + content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][price]')[0].value; + } + content += '\r\n'; + } + } + if (i >= opts.length - 1) { + document.getElementById('frm_bulk_options').value = content; + } + } + $info.dialog('open'); + return false; + }); + jQuery('#frm-update-bulk-opts').on('click', function () { + var fieldId = document.getElementById('bulk-field-id').value; + var optionType = document.getElementById('bulk-option-type').value; + if (optionType) { + // Use custom handler for custom option type. + return; + } + this.classList.add('frm_loading_button'); + frmAdminBuild.updateOpts(fieldId, document.getElementById('frm_bulk_options').value, $info); + fieldUpdated(); + }); + } + function insertBulkPreset(event) { + /*jshint validthis:true */ + var opts = JSON.parse(this.getAttribute('data-opts')); + event.preventDefault(); + document.getElementById('frm_bulk_options').value = opts.join('\n'); + return false; + } + + //Add new option or "Other" option to radio/checkbox/dropdown + function addFieldOption() { + var _this$closest; + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'), + newOption = jQuery('#frm_field_' + fieldId + '_opts .frm_option_template').prop('outerHTML'), + optType = jQuery(this).data('opttype'), + optKey = 0, + oldKey = '000', + lastKey = getHighestOptKey(fieldId); + if (lastKey !== oldKey) { + optKey = lastKey + 1; + } + + //Update hidden field + if (optType === 'other') { + document.getElementById('other_input_' + fieldId).value = 1; + + //Hide "Add Other" option now if this is radio field + var ftype = jQuery(this).data('ftype'); + if (ftype === 'radio' || ftype === 'select') { + jQuery(this).fadeOut('slow'); + } + var _data = { + action: 'frm_add_field_option', + field_id: fieldId, + opt_key: optKey, + opt_type: optType, + nonce: frmGlobal.nonce + }; + jQuery.post(ajaxurl, _data, function (msg) { + jQuery(document.getElementById('frm_field_' + fieldId + '_opts')).append(msg); + resetDisplayedOpts(fieldId); + }); + } else { + newOption = newOption.replace(new RegExp('optkey="' + oldKey + '"', 'g'), 'optkey="' + optKey + '"'); + newOption = newOption.replace(new RegExp('-' + oldKey + '_', 'g'), '-' + optKey + '_'); + newOption = newOption.replace(new RegExp('-' + oldKey + '"', 'g'), '-' + optKey + '"'); + newOption = newOption.replace(new RegExp('\\[' + oldKey + '\\]', 'g'), '[' + optKey + ']'); + newOption = newOption.replace('frm_hidden frm_option_template', ''); + newOption = { + newOption: newOption + }; + addSaveAndDragIconsToOption(fieldId, newOption); + this.closest('.frm_single_option').after(newOption.newOption); + resetDisplayedOpts(fieldId); + } + + // Make sure all remove buttons are enabled + (_this$closest = this.closest('.frm_sortable_field_opts')) === null || _this$closest === void 0 || (_this$closest = _this$closest.querySelectorAll('.frm_remove_tag.frm_disabled')) === null || _this$closest === void 0 || _this$closest.forEach(function (button) { + return button.classList.remove('frm_disabled'); + }); + fieldUpdated(); + } + function getHighestOptKey(fieldId) { + var i = 0, + optKey = 0, + opts = jQuery('#frm_field_' + fieldId + '_opts li'), + lastKey = 0; + for (i; i < opts.length; i++) { + optKey = opts[i].getAttribute('data-optkey'); + if (opts.length === 1) { + return optKey; + } + if (optKey !== '000') { + optKey = optKey.replace('other_', ''); + optKey = parseInt(optKey, 10); + } + if (!isNaN(lastKey) && (optKey > lastKey || lastKey === '000')) { + lastKey = optKey; + } + } + return lastKey; + } + function toggleMultSel() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + toggleMultiSelect(fieldId, this.value); + } + function toggleMultiSelect(fieldId, value) { + var setting = jQuery('.frm_multiple_cont_' + fieldId); + if (value === 'select') { + setting.fadeIn('fast'); + } else { + setting.fadeOut('fast'); + } + } + function toggleSepValues() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + toggle(jQuery('.field_' + fieldId + '_option_key')); + jQuery('.field_' + fieldId + '_option').toggleClass('frm_with_key'); + } + function toggleImageOptions() { + /*jshint validthis:true */ + var hasImageOptions, + imageSize, + $field = jQuery(this).closest('.frm-single-settings'), + fieldId = $field.data('fid'), + displayField = document.getElementById('frm_field_id_' + fieldId); + refreshOptionDisplayNow(jQuery(this)); + toggle(jQuery('.field_' + fieldId + '_image_id')); + toggle(jQuery('.frm_toggle_image_options_' + fieldId)); + toggle(jQuery('.frm_image_size_' + fieldId)); + toggle(jQuery('.frm_alignment_' + fieldId)); + toggle(jQuery('.frm-add-other#frm_add_field_' + fieldId)); + hasImageOptions = imagesAsOptions(fieldId); + if (hasImageOptions) { + setAlignment(fieldId, 'inline'); + removeImageSizeClasses(displayField); + imageSize = getImageOptionSize(fieldId); + displayField.classList.add('frm_image_options'); + displayField.classList.add('frm_image_size_' + imageSize); + $field.find('.frm-bulk-edit-link').hide(); + } else { + displayField.classList.remove('frm_image_options'); + removeImageSizeClasses(displayField); + setAlignment(fieldId, 'block'); + $field.find('.frm-bulk-edit-link').show(); + } + + /** + * Fires when image options are toggled for a field. + * + * @param {HTMLElement} field The field element. + * @param {boolean} hasImageOptions Whether the field has image options enabled. + */ + wp.hooks.doAction('frm_image_options_toggled', $field[0], hasImageOptions); + } + function removeImageSizeClasses(field) { + field.classList.remove('frm_image_size_', 'frm_image_size_small', 'frm_image_size_medium', 'frm_image_size_large', 'frm_image_size_xlarge'); + } + function setAlignment(fieldId, alignment) { + jQuery('#field_options_align_' + fieldId).val(alignment).trigger('change'); + } + function setImageSize() { + var $field = jQuery(this).closest('.frm-single-settings'), + fieldId = $field.data('fid'), + displayField = document.getElementById('frm_field_id_' + fieldId); + refreshOptionDisplay(); + if (imagesAsOptions(fieldId)) { + removeImageSizeClasses(displayField); + displayField.classList.add('frm_image_options'); + displayField.classList.add('frm_image_size_' + getImageOptionSize(fieldId)); + } + } + function refreshOptionDisplayNow(object) { + var $field = object.closest('.frm-single-settings'), + fieldID = $field.data('fid'); + jQuery('.field_' + fieldID + '_option').trigger('change'); + } + function refreshOptionDisplay() { + /*jshint validthis:true */ + refreshOptionDisplayNow(jQuery(this)); + } + function addImageToOption(event) { + var imagePreview = event.target.closest('.frm_image_preview_wrapper'); + event.preventDefault(); + wp.media.model.settings.post.id = 0; + var fileFrame = wp.media.frames.file_frame = wp.media({ + multiple: false, + library: { + type: ['image'] + } + }); + fileFrame.on('select', function () { + var attachment = fileFrame.state().get('selection').first().toJSON(); + var img = imagePreview.querySelector('img'); + img.setAttribute('src', attachment.url); + img.classList.remove('frm_hidden'); + img.removeAttribute('srcset'); // Prevent the old image from sticking around. + + imagePreview.querySelector('.frm_image_preview_frame').style.display = 'block'; + imagePreview.querySelector('.frm_image_preview_title').textContent = attachment.filename; + imagePreview.querySelector('.frm_choose_image_box').style.display = 'none'; + var $imagePreview = jQuery(imagePreview); + $imagePreview.siblings('input[name*="[label]"]').data('frmimgurl', attachment.url); + $imagePreview.find('input.frm_image_id').val(attachment.id).trigger('change'); + wp.media.model.settings.post.id = 0; + }); + fileFrame.open(); + } + function removeImageFromOption(event) { + var $this = jQuery(this), + previewWrapper = $this.closest('.frm_image_preview_wrapper'); + event.preventDefault(); + event.stopPropagation(); + previewWrapper.find('img').attr('src', ''); + previewWrapper.find('.frm_image_preview_frame').hide(); + previewWrapper.find('.frm_choose_image_box').show(); + previewWrapper.find('input.frm_image_id').val(0).trigger('change'); + } + function toggleMultiselect() { + /*jshint validthis:true */ + var dropdown = jQuery(this).closest('li').find('.frm_form_fields select'); + if (this.checked) { + dropdown.attr('multiple', 'multiple'); + } else { + dropdown.removeAttr('multiple'); + } + } + + /** + * Allow typing on form switcher click without an extra click to search. + */ + function focusSearchBox() { + var searchBox = document.getElementById('dropform-search-input'); + if (searchBox !== null) { + setTimeout(function () { + searchBox.focus(); + }, 100); + } + } + + /** + * Dismiss a warning message and send an AJAX request to update the dismissal state. + * + * @since 6.3 + * + * @param {Event} event The event object associated with the click on the dismiss icon. + */ + function dismissWarningMessage(event) { + var target = event.target; + var warningEl = target.closest('.frm_warning_style'); + jQuery(warningEl).fadeOut(400, function () { + return warningEl.remove(); + }); + var action = target.dataset.action; + var formData = new FormData(); + doJsonPost(action, formData); + } + + /** + * If a field is clicked in the builder, prevent inputs from changing. + */ + function stopFieldFocus(e) { + e.preventDefault(); + } + + /** + * Delete a field option. + */ + function deleteFieldOption() { + var parentLi = this.parentNode; + var parentUl = parentLi.parentNode; + + // If only 2 visible options, add disabled class to the other delete button + var visibleOptions = parentUl.querySelectorAll('li:not(.frm_hidden)'); + if (visibleOptions.length === 2) { + var _Array$from$find$quer; + (_Array$from$find$quer = Array.from(visibleOptions).find(function (li) { + return li !== parentLi; + }).querySelector('.frm_remove_tag')) === null || _Array$from$find$quer === void 0 || _Array$from$find$quer.classList.add('frm_disabled'); + } + + /*jshint validthis:true */ + var otherInput, + fieldId = this.getAttribute('data-fid'); + jQuery(parentLi).fadeOut('fast', function () { + wp.hooks.doAction('frm_before_delete_field_option', this); + jQuery(parentLi).remove(); + var hasOther = jQuery(parentUl).find('.frm_other_option'); + if (hasOther.length < 1) { + otherInput = document.getElementById('other_input_' + fieldId); + if (otherInput !== null) { + otherInput.value = 0; + } + jQuery('#other_button_' + fieldId).fadeIn('fast'); + } + }); + fieldUpdated(); + } + + /** + * If a radio button is set as default, allow a click to + * deselect it. + */ + function maybeUncheckRadio() { + var $self, uncheck, unbind, up; + + /*jshint validthis:true */ + $self = jQuery(this); + if ($self.is(':checked')) { + uncheck = function uncheck() { + setTimeout(function () { + $self.prop('checked', false); + }, 0); + }; + unbind = function unbind() { + $self.off('mouseup', up); + }; + up = function up() { + uncheck(); + unbind(); + }; + $self.on('mouseup', up); + $self.one('mouseout', unbind); + } + } + + /** + * If the field option has the default text, clear it out on click. + */ + function maybeClearOptText() { + /*jshint validthis:true */ + if (this.value === frmAdminJs.new_option) { + this.setAttribute('data-value-on-focus', this.value); + this.value = ''; + } + } + function confirmFieldsDeleteMessage(numberOfFields) { + /* translators: %1$s: Number of fields that are selected to be deleted. */ + return sprintf(__('Are you sure you want to delete these %1$s selected field(s)?', 'formidable'), numberOfFields); + } + function clickDeleteField() { + /*jshint validthis:true */ + var confirmMsg = frmAdminJs.conf_delete, + maybeDivider = this.parentNode.parentNode.parentNode.parentNode.parentNode, + li = maybeDivider.parentNode, + field = jQuery(this).closest('li.form-field'), + fieldId = field.data('fid'); + if (field.data('ftype') === 'divider') { + var fieldBoxes = document.querySelectorAll('.frm-field-group-hover-target .start_divider .frm_field_box'); + var fieldIdsToDelete = 0; + fieldBoxes.forEach(function (fieldBox) { + var fieldsInsideFieldBox = fieldBox.querySelectorAll('li.form-field'); + if (fieldsInsideFieldBox) { + fieldIdsToDelete += fieldsInsideFieldBox.length; + } + }); + if (fieldIdsToDelete) { + confirmMsg = confirmFieldsDeleteMessage(++fieldIdsToDelete); + } + } + if (li.classList.contains('frm-section-collapsed') || li.classList.contains('frm-page-collapsed')) { + return false; + } + + // If deleting a section, use a special message. + if (maybeDivider.className === 'divider_section_only') { + confirmMsg = frmAdminJs.conf_delete_sec; + } + this.setAttribute('data-frmverify', confirmMsg); + this.setAttribute('data-frmverify-btn', 'frm-button-red'); + this.setAttribute('data-deletefield', fieldId); + closeOpenFieldDropdowns(); + confirmLinkClick(this); + return false; + } + function clickSelectField() { + this.closest('li.form-field').click(); + } + function clickDeleteFieldGroup() { + var hoverTarget, decoy; + hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === hoverTarget) { + return; + } + hoverTarget.classList.add('frm-selected-field-group'); + decoy = document.createElement('div'); + decoy.classList.add('frm-delete-field-groups', 'frm_hidden'); + document.body.appendChild(decoy); + decoy.click(); + } + function duplicateFieldGroup() { + var hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === hoverTarget) { + return; + } + var newRowId = 'frm_field_group_' + getAutoId(); + var placeholderUlChild = document.createTextNode(''); + wrapFieldLiInPlace(placeholderUlChild); + var newRow = jQuery(placeholderUlChild).closest('li').get(0); + newRow.classList.add('frm_hidden'); + var newRowUl = newRow.querySelector('ul'); + newRowUl.id = newRowId; + jQuery(hoverTarget.closest('li.frm_field_box')).after(newRow); + var $fields = getFieldsInRow(jQuery(hoverTarget)); + var syncDetails = []; + var injectedCloneOptions = []; + var expectedLength = $fields.length; + var originalFieldIdByDuplicatedFieldId = {}; + var duplicatedCount = 0; + jQuery(newRow).on('frm_added_duplicated_field_to_row', function (_, args) { + originalFieldIdByDuplicatedFieldId[jQuery(args.duplicatedFieldHtml).attr('data-fid')] = args.originalFieldId; + if (expectedLength > ++duplicatedCount) { + return; + } + var $newRowUl = jQuery(newRowUl); + var $duplicatedFields = getFieldsInRow($newRowUl); + injectedCloneOptions.forEach(function (cloneOption) { + cloneOption.remove(); + }); + for (var index = 0; index < expectedLength; ++index) { + $newRowUl.append($newRowUl.children('li.form-field[frm-field-order="' + index + '"]')); + } + syncLayoutClasses($duplicatedFields.first(), syncDetails); + newRow.classList.remove('frm_hidden'); + updateFieldOrder(); + getFieldsInRow($newRowUl).each(function () { + maybeDuplicateUnsavedSettings(originalFieldIdByDuplicatedFieldId[this.getAttribute('data-fid')], jQuery(this).prop('outerHTML')); + }); + }); + $fields.each(function (index) { + var cloneOption; + cloneOption = document.createElement('li'); + cloneOption.classList.add('frm_clone_field'); + cloneOption.setAttribute('frm-target-row-id', newRowId); + cloneOption.setAttribute('frm-field-order', index); + this.appendChild(cloneOption); + cloneOption.click(); + injectedCloneOptions.push(cloneOption); + syncDetails.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); + }); + } + function clickFieldGroupLayout() { + var hoverTarget, sizeOfFieldGroup, popupWrapper; + hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === hoverTarget) { + return; + } + deselectFields(); + sizeOfFieldGroup = getSizeOfFieldGroupFromChildElement(hoverTarget.querySelector('li.form-field')); + hoverTarget.classList.add('frm-has-open-field-group-popup'); + jQuery(document).on('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); + popupWrapper = div(); + popupWrapper.style.position = 'relative'; + popupWrapper.appendChild(getFieldGroupPopup(sizeOfFieldGroup, this)); + this.parentNode.appendChild(popupWrapper); + var firstLayoutOption = popupWrapper.querySelector('.frm-row-layout-option'); + if (firstLayoutOption) { + firstLayoutOption.focus(); + } + } + function destroyFieldGroupPopupOnOutsideClick(event) { + if (event.target.classList.contains('frm-custom-field-group-layout') || event.target.classList.contains('frm-cancel-custom-field-group-layout')) { + return; + } + if (!jQuery(event.target).closest('#frm_field_group_controls').length && !jQuery(event.target).closest('#frm_field_group_popup').length) { + destroyFieldGroupPopup(); + } + } + function getSizeOfFieldGroupFromChildElement(element) { + var $ul = jQuery(element).closest('ul'); + if ($ul.length) { + return getFieldsInRow($ul).length; + } + return getSelectedFieldCount(); + } + function getFieldGroupPopup(sizeOfFieldGroup, childElement) { + var popup, wrapper, rowLayoutOptions, ul; + popup = document.getElementById('frm_field_group_popup'); + if (null === popup) { + popup = div(); + } else { + popup.innerHTML = ''; + } + popup.id = 'frm_field_group_popup'; + wrapper = div(); + wrapper.style.padding = '0 24px 12px'; + wrapper.appendChild(getRowLayoutTitle()); + rowLayoutOptions = getRowLayoutOptions(sizeOfFieldGroup); + ul = childElement.closest('ul.frm_sorting'); + if (null !== ul) { + maybeMarkRowLayoutAsActive(ul, rowLayoutOptions); + } + wrapper.appendChild(rowLayoutOptions); + popup.appendChild(wrapper); + popup.appendChild(separator()); + popup.appendChild(getCustomLayoutOption()); + popup.appendChild(getBreakIntoDifferentRowsOption()); + return popup; + } + function maybeMarkRowLayoutAsActive(activeRow, options) { + var length, index, currentRow; + length = options.children.length; + for (index = 0; index < length; ++index) { + currentRow = options.children[index]; + if (rowLayoutsMatch(currentRow, activeRow)) { + currentRow.classList.add('frm-active-row-layout'); + return; + } + } + } + function separator() { + return document.createElement('hr'); + } + function getCustomLayoutOption() { + var option = div(); + option.textContent = __('Custom layout', 'formidable'); + jQuery(option).prepend(getIconClone('frm_gear_svg')); + option.classList.add('frm-custom-field-group-layout'); + makeTabbable(option); + return option; + } + function makeTabbable(element, ariaLabel) { + element.setAttribute('tabindex', 0); + element.setAttribute('role', 'button'); + if ('undefined' !== typeof ariaLabel) { + element.setAttribute('aria-label', ariaLabel); + } + } + function getIconClone(iconId) { + var clone = document.getElementById(iconId).cloneNode(true); + clone.id = ''; + return clone; + } + function getBreakIntoDifferentRowsOption() { + var option = div(); + option.textContent = __('Break into rows', 'formidable'); + jQuery(option).prepend(getIconClone('frm_break_field_group_svg')); + option.classList.add('frm-break-field-group'); + makeTabbable(option); + return option; + } + function getRowLayoutTitle() { + var rowLayoutTitle = div(); + rowLayoutTitle.classList.add('frm-row-layout-title'); + rowLayoutTitle.textContent = __('Row Layout', 'formidable'); + return rowLayoutTitle; + } + function getRowLayoutOptions(size) { + var wrapper, padding; + wrapper = getEmptyGridContainer(); + if (5 !== size) { + wrapper.appendChild(getRowLayoutOption(size, 'even')); + } + if (size % 2 === 1) { + // only include the middle option for odd numbers because even doesn't make a lot of sense. + wrapper.appendChild(getRowLayoutOption(size, 'middle')); + } + if (size < 6) { + wrapper.appendChild(getRowLayoutOption(size, 'left')); + wrapper.appendChild(getRowLayoutOption(size, 'right')); + } else { + padding = div(); + padding.classList.add('frm_fourth'); + wrapper.prepend(padding); + } + return wrapper; + } + function getRowLayoutOption(size, type) { + var option, useClass; + option = div(); + option.classList.add('frm-row-layout-option'); + makeTabbable(option, type); + switch (size) { + case 6: + useClass = 'frm_half'; + break; + case 5: + useClass = 'frm_third'; + break; + default: + useClass = size % 2 === 1 ? 'frm_fourth' : 'frm_third'; + break; + } + option.classList.add(useClass); + option.setAttribute('layout-type', type); + option.appendChild(getRowForSizeAndType(size, type)); + return option; + } + function rowLayoutsMatch(row1, row2) { + return getRowLayoutAsKey(row1) === getRowLayoutAsKey(row2); + } + function getRowLayoutAsKey(row) { + var $fields, sizes; + if (row.classList.contains('frm-row-layout-option')) { + $fields = jQuery(row).find('.frm_grid_container').children(); + } else { + $fields = getFieldsInRow(jQuery(row)); + } + sizes = []; + $fields.each(function () { + sizes.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); + }); + return sizes.join('-'); + } + function getRowForSizeAndType(size, type) { + var row, index, block; + row = getEmptyGridContainer(); + for (index = 0; index < size; ++index) { + block = div(); + block.classList.add(getClassForBlock(size, type, index)); + block.style.height = '16px'; + block.style.background = '#9EA9B8'; + block.style.borderRadius = '1px'; + row.appendChild(block); + } + return row; + } + + /** + * @param {number} size 2-6. + * @param {string} type even, middle, left, or right. + * @param {number} index 0-5. + * @return {string} The class name. + */ + function getClassForBlock(size, type, index) { + if ('even' === type) { + return getEvenClassForSize(size, index); + } else if ('middle' === type) { + if (3 === size) { + return 1 === index ? 'frm6' : 'frm3'; + } + if (5 === size) { + return 2 === index ? 'frm4' : 'frm2'; + } + } else if ('left' === type) { + return 0 === index ? getLargeClassForSize(size) : getSmallClassForSize(size); + } else if ('right' === type) { + return index === size - 1 ? getLargeClassForSize(size) : getSmallClassForSize(size); + } + return 'frm12'; + } + function getEvenClassForSize(size, index) { + if (-1 !== [2, 3, 4, 6].indexOf(size)) { + return getLayoutClassForSize(12 / size); + } + if (5 === size && 'undefined' !== typeof index) { + return 0 === index ? 'frm4' : 'frm2'; + } + return 'frm12'; + } + function getSmallClassForSize(size) { + switch (size) { + case 2: + case 3: + return 'frm3'; + case 4: + return 'frm2'; + case 5: + return 'frm2'; + case 6: + return 'frm1'; + } + return 'frm12'; + } + function getLargeClassForSize(size) { + switch (size) { + case 2: + return 'frm9'; + case 3: + case 4: + return 'frm6'; + case 5: + return 'frm4'; + case 6: + return 'frm7'; + } + return 'frm12'; + } + function getEmptyGridContainer() { + var wrapper = div(); + wrapper.classList.add('frm_grid_container'); + return wrapper; + } + + /** + * Handle when a field group layout option (that sets grid classes/column sizing) is selected in the "Row Layout" popup. + * + * @return {void} + */ + function handleFieldGroupLayoutOptionClick() { + var row = document.querySelector('.frm-field-group-hover-target'); + if (!row) { + // The field group layout options also get clicked when merging multiple rows. + // The following code isn't required for multiple rows though so just exit early. + return; + } + var type = this.getAttribute('layout-type'); + syncLayoutClasses(getFieldsInRow(jQuery(row)).first(), type); + destroyFieldGroupPopup(); + } + function handleFieldGroupLayoutOptionInsideMergeClick() { + var $ul, type; + $ul = mergeSelectedFieldGroups(); + type = this.getAttribute('layout-type'); + syncLayoutClasses(getFieldsInRow($ul).first(), type); + unselectFieldGroups(); + } + function mergeSelectedFieldGroups() { + var $selectedFieldGroups = jQuery('.frm-selected-field-group'), + $firstGroupUl = $selectedFieldGroups.first(); + $selectedFieldGroups.not($firstGroupUl).each(function () { + getFieldsInRow(jQuery(this)).each(function () { + var previousParent = this.parentNode; + getFieldsInRow($firstGroupUl).last().after(this); + if (!jQuery(previousParent).children('li.form-field').length) { + // clean up the previous field group if we've removed all of its fields. + previousParent.closest('li.frm_field_box').remove(); + } + }); + }); + updateFieldOrder(); + syncLayoutClasses(getFieldsInRow($firstGroupUl).first()); + return $firstGroupUl; + } + function customFieldGroupLayoutClick() { + var $fields; + if (null !== this.closest('.frm-merge-fields-into-row')) { + return; + } + $fields = getFieldsInRow(jQuery('.frm-field-group-hover-target')); + setupCustomLayoutOptions($fields); + } + function setupCustomLayoutOptions($fields) { + var size, popup, wrapper, layoutClass, inputRow, paddingElement, inputValueOverride, index, inputField, heading, label, buttonsWrapper, cancelButton, saveButton; + size = $fields.length; + popup = document.getElementById('frm_field_group_popup'); + popup.innerHTML = ''; + wrapper = div(); + wrapper.style.padding = '0 24px'; + layoutClass = getEvenClassForSize(5 === size ? 6 : size); + inputRow = div(); + inputRow.style.padding = '20px 0'; + inputRow.classList.add('frm_grid_container'); + if (5 === size) { + // add a span to pad the inputs by 1 column, to account for the missing 2 columns. + paddingElement = document.createElement('span'); + paddingElement.classList.add('frm1'); + inputRow.appendChild(paddingElement); + } + inputValueOverride = getSelectedFieldCount() > 0 ? getSizeOfLayoutClass(getEvenClassForSize(size)) : false; + if (false !== inputValueOverride && inputValueOverride >= 12) { + inputValueOverride = Math.floor(12 / size); + } + for (index = 0; index < size; ++index) { + inputField = document.createElement('input'); + inputField.type = 'text'; + inputField.classList.add(layoutClass); + inputField.classList.add('frm-custom-grid-size-input'); + inputField.value = false !== inputValueOverride ? inputValueOverride : getSizeOfLayoutClass(getLayoutClassName($fields.get(index).classList)); + inputRow.appendChild(inputField); + } + heading = div(); + heading.classList.add('frm-builder-popup-heading'); + heading.textContent = __('Enter number of columns for each field', 'formidable'); + label = div(); + label.classList.add('frm-builder-popup-subheading'); + label.textContent = __('Layouts are based on a 12-column grid system', 'formidable'); + wrapper.appendChild(heading); + wrapper.appendChild(label); + wrapper.appendChild(inputRow); + buttonsWrapper = div(); + buttonsWrapper.style.textAlign = 'right'; + cancelButton = getSecondaryButton(); + cancelButton.textContent = __('Cancel', 'formidable'); + cancelButton.classList.add('frm-cancel-custom-field-group-layout'); + cancelButton.style.marginRight = '10px'; + saveButton = getPrimaryButton(); + saveButton.textContent = __('Save', 'formidable'); + saveButton.classList.add('frm-save-custom-field-group-layout'); + buttonsWrapper.appendChild(cancelButton); + buttonsWrapper.appendChild(saveButton); + wrapper.appendChild(buttonsWrapper); + popup.appendChild(wrapper); + setTimeout(function () { + var firstInput = popup.querySelector('input.frm-custom-grid-size-input').focus(); + if (firstInput) { + firstInput.focus(); + } + }, 0); + } + function customFieldGroupLayoutInsideMergeClick() { + $fields = jQuery('.frm-selected-field-group li.form-field'); + setupCustomLayoutOptions($fields); + } + function getPrimaryButton() { + var button = getButton(); + button.classList.add('button-primary', 'frm-button-primary'); + return button; + } + function getSecondaryButton() { + var button = getButton(); + button.classList.add('button-secondary', 'frm-button-secondary'); + return button; + } + function getButton() { + var button = document.createElement('a'); + button.setAttribute('href', '#'); + button.classList.add('button'); + button.style.textDecoration = 'none'; + return button; + } + function getSizeOfLayoutClass(className) { + switch (className) { + case 'frm_half': + return 6; + case 'frm_third': + return 4; + case 'frm_two_thirds': + return 8; + case 'frm_fourth': + return 3; + case 'frm_three_fourths': + return 9; + case 'frm_sixth': + return 2; + } + if (0 === className.indexOf('frm')) { + return parseInt(className.substr(3)); + } + + // Anything missing a layout class should be a full width row. + return 12; + } + function getLayoutClassName(classList) { + var classes, index, currentClass; + classes = getLayoutClasses(); + for (index = 0; index < classes.length; ++index) { + currentClass = classes[index]; + if (classList.contains(currentClass)) { + return currentClass; + } + } + return ''; + } + function getLayoutClassForSize(size) { + return 'frm' + size; + } + function breakFieldGroupClick() { + var row = document.querySelector('.frm-field-group-hover-target'); + breakRow(row); + destroyFieldGroupPopup(); + } + function breakRow(row) { + var $row = jQuery(row); + getFieldsInRow($row).each(function (index) { + var field = this; + if (0 !== index) { + $row.parent().after(wrapFieldLi(field)); + } + stripLayoutFromFields(jQuery(field)); + }); + } + function stripLayoutFromFields(field) { + syncLayoutClasses(field, 'clear'); + } + function focusFieldGroupInputOnClick() { + this.select(); + } + function cancelCustomFieldGroupClick() { + revertToFieldGroupPopupFirstPage(this); + } + function revertToFieldGroupPopupFirstPage(triggerElement) { + jQuery(document.getElementById('frm_field_group_popup')).replaceWith(getFieldGroupPopup(getSizeOfFieldGroupFromChildElement(triggerElement), triggerElement)); + } + function destroyFieldGroupPopup() { + var popup, wrapper; + popup = document.getElementById('frm_field_group_popup'); + if (popup === null) { + return; + } + wrapper = document.querySelector('.frm-has-open-field-group-popup'); + if (null !== wrapper) { + wrapper.classList.remove('frm-has-open-field-group-popup'); + popup.parentNode.remove(); + } + jQuery(document).off('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); + } + function saveCustomFieldGroupClick() { + var syncDetails, $controls, $ul; + syncDetails = []; + jQuery(document.getElementById('frm_field_group_popup').querySelectorAll('.frm_grid_container input')).each(function () { + syncDetails.push(parseInt(this.value)); + }); + $controls = jQuery(document.getElementById('frm_field_group_controls')); + if ($controls.length && 'none' !== $controls.get(0).style.display) { + syncLayoutClasses(getFieldsInRow(jQuery(document.querySelector('.frm-field-group-hover-target'))).first(), syncDetails); + } else { + $ul = mergeSelectedFieldGroups(); + syncLayoutClasses(getFieldsInRow($ul).first(), syncDetails); + unselectFieldGroups(); + } + destroyFieldGroupPopup(); + } + function fieldGroupClick(e) { + maybeShowFieldGroupMessage(); + if ('ul' !== e.originalEvent.target.nodeName.toLowerCase()) { + // only continue if the group itself was clicked / ignore when a field is clicked. + return; + } + var hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (!hoverTarget) { + return; + } + var ctrlOrCmdKeyIsDown = e.ctrlKey || e.metaKey; + var shiftKeyIsDown = e.shiftKey; + var groupIsActive = hoverTarget.classList.contains('frm-selected-field-group'); + var $selectedFieldGroups = getSelectedFieldGroups(); + var numberOfSelectedGroups = $selectedFieldGroups.length; + if (ctrlOrCmdKeyIsDown || shiftKeyIsDown) { + // multi-selecting + + var selectedField = getSelectedField(); + if (null !== selectedField && !jQuery(selectedField).siblings('li.form-field').length) { + // count a selected field on its own as a selected field group when multiselecting. + selectedField.parentNode.classList.add('frm-selected-field-group'); + ++numberOfSelectedGroups; + } + if (ctrlOrCmdKeyIsDown) { + if (groupIsActive) { + // unselect if holding ctrl or cmd and the group was already active. + --numberOfSelectedGroups; + hoverTarget.classList.remove('frm-selected-field-group'); + syncAfterMultiSelect(numberOfSelectedGroups); + return; // exit early to avoid adding back frm-selected-field-group + } + ++numberOfSelectedGroups; + } else if (shiftKeyIsDown && !groupIsActive) { + ++numberOfSelectedGroups; // include the one we're selecting right now. + var $firstGroup = $selectedFieldGroups.first(); + var $range, targetSection; + var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); + if (hoverTargetSection) { + targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); + } + if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { + // If field target field is in a section + if (hoverTargetSection) { + $range = $firstGroup.parent().nextUntil(targetSection); + var _fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); + $range = $range.add(_fieldsInSection.slice(0, _fieldsInSection.indexOf(hoverTarget) + 1)); + } else { + $range = $firstGroup.parent().nextUntil(hoverTarget.parentNode); + } + } else { + if (hoverTargetSection) { + $range = $firstGroup.parent().prevUntil(targetSection); + var _fieldsInSection2 = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); + $range = $range.add(_fieldsInSection2.slice(-_fieldsInSection2.indexOf(hoverTarget) + 1)); + } else { + $range = $firstGroup.parent().prevUntil(hoverTarget.parentNode); + } + } + $range.each(function () { + var $fieldGroup = jQuery(this).closest('li').find('ul.frm_sorting'); + if (!$fieldGroup.hasClass('frm-selected-field-group')) { + ++numberOfSelectedGroups; + $fieldGroup.addClass('frm-selected-field-group'); + } + }); + } + } else { + // not multi-selecting + unselectFieldGroups(); + numberOfSelectedGroups = 1; + } + hoverTarget.classList.add('frm-selected-field-group'); + syncAfterMultiSelect(numberOfSelectedGroups); + maybeHideFieldGroupMessage(); + jQuery(document).off('click', unselectFieldGroups); + jQuery(document).on('click', unselectFieldGroups); + } + + /** + * Hide the field group message by manipulating classes. + * + * @param {Element} fieldGroupMessage The field group message element. + * @return {void} + */ + function hideFieldGroupMessage(fieldGroupMessage) { + if (!fieldGroupMessage) { + return; + } + fieldGroupMessage.classList.add('frm_hidden'); + fieldGroupMessage.classList.remove('frm-fadein-up-back'); + } + + /** + * Show the field group message by manipulating classes. + * + * @param {Element} fieldGroupMessage The field group message element. + * @return {void} + */ + function showFieldGroupMessage(fieldGroupMessage) { + if (!fieldGroupMessage) { + return; + } + fieldGroupMessage.classList.remove('frm_hidden'); + fieldGroupMessage.classList.add('frm-fadein-up-back'); + } + + /** + * Maybe show a message if there are at least two rows. + * + * @return {void} + */ + function maybeShowFieldGroupMessage() { + var fieldGroupMessage = document.getElementById('frm-field-group-message'); + var rows = document.querySelectorAll('.edit_form_item:not(.edit_field_type_end_divider)'); + if (rows.length < 2) { + hideFieldGroupMessage(fieldGroupMessage); + return; + } + if (fieldGroupMessage) { + showFieldGroupMessage(fieldGroupMessage); + return; + } + fieldGroupMessage = div({ + id: 'frm-field-group-message', + className: 'frm-flex-center frm-fadein-up-back', + children: [span({ + id: 'frm-field-group-message-dismiss', + className: 'frm-flex-center', + child: svg({ + href: '#frm_close_icon' + }) + })] + }); + + // Insert the field group into the DOM + document.getElementById('post-body-content').appendChild(fieldGroupMessage); + + // Get and add the field group message text + var messageText = getFieldGroupMessageText(); + fieldGroupMessage.prepend(messageText); + + // Set up a click event listener + document.getElementById('frm-field-group-message-dismiss').addEventListener('click', function () { + hideFieldGroupMessage(document.getElementById('frm-field-group-message')); + }); + } + + /** + * Get a span element with text about selecting multiple fields. + * + * @return {HTMLElement} A span element with the message and style classes. + */ + function getFieldGroupMessageText() { + var text = document.createElement('span'); + text.classList.add('frm-field-group-message-text', 'frm-flex-center'); + text.innerHTML = sprintf(/* translators: %1$s: Start span HTML, %2$s: end span HTML */ + frm_admin_js.holdShiftMsg, + // eslint-disable-line camelcase + '', ''); + return text; + } + + /** + * Maybe hide the field group message based on the number of selected rows. + * + * @return {void} + */ + function maybeHideFieldGroupMessage() { + var selectedRowCount = document.querySelectorAll('.frm-selected-field-group').length; + if (selectedRowCount < 2) { + return; + } + var fieldGroupMessage = document.getElementById('frm-field-group-message'); + hideFieldGroupMessage(fieldGroupMessage); + } + function getSelectedField() { + return document.getElementById('frm-show-fields').querySelector('li.form-field.selected'); + } + function getSelectedFieldGroups() { + var $fieldGroups = jQuery('.frm-selected-field-group'); + if ($fieldGroups.length) { + return $fieldGroups; + } + var selectedField = getSelectedField(); + if (selectedField) { + // If there is only one field in a group and the field is selected, consider the field's group as selected for multi-select. + var selectedFieldGroup = selectedField.closest('ul'); + if (selectedFieldGroup && 1 === getFieldsInRow(jQuery(selectedFieldGroup)).length) { + selectedFieldGroup.classList.add('frm-selected-field-group'); + return jQuery(selectedFieldGroup); + } + } + return jQuery(); + } + function syncAfterMultiSelect(numberOfSelectedGroups) { + clearSettingsBox(true); // unselect any fields if one is selected. + if (numberOfSelectedGroups >= 2 || 1 === numberOfSelectedGroups && selectedGroupHasMultipleFields()) { + addFieldMultiselectPopup(); + } else { + maybeRemoveMultiselectPopup(); + } + maybeRemoveGroupHoverTarget(); + } + function selectedGroupHasMultipleFields() { + return getFieldsInRow(jQuery(document.querySelector('.frm-selected-field-group'))).length > 1; + } + function unselectFieldGroups(event) { + if ('undefined' !== typeof event) { + if (null !== event.originalEvent.target.closest('#frm-show-fields')) { + return; + } + if (event.originalEvent.target.classList.contains('frm-merge-fields-into-row')) { + return; + } + if (null !== event.originalEvent.target.closest('.frm-merge-fields-into-row')) { + return; + } + if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { + return; + } + if (event.originalEvent.target.classList.contains('frm-cancel-custom-field-group-layout')) { + return; + } + } + jQuery('.frm-selected-field-group').removeClass('frm-selected-field-group'); + jQuery(document).off('click', unselectFieldGroups); + maybeRemoveMultiselectPopup(); + } + function maybeRemoveMultiselectPopup() { + var popup = document.getElementById('frm_field_multiselect_popup'); + if (null !== popup) { + popup.remove(); + } + } + function addFieldMultiselectPopup() { + getFieldMultiselectPopup(); + } + function getFieldMultiselectPopup() { + var popup, mergeOption, caret, verticalSeparator, deleteOption; + popup = document.getElementById('frm_field_multiselect_popup'); + if (null !== popup) { + popup.classList.toggle('frm-unmergable', !selectedFieldsAreMergeable()); + return popup; + } + popup = div(); + popup.id = 'frm_field_multiselect_popup'; + if (!selectedFieldsAreMergeable()) { + popup.classList.add('frm-unmergable'); + } + mergeOption = div(); + mergeOption.classList.add('frm-merge-fields-into-row'); + mergeOption.textContent = __('Merge into row', 'formidable'); + caret = document.createElement('a'); + caret.style.marginLeft = '5px'; + caret.classList.add('frm_icon_font', 'frm_arrowdown6_icon'); + caret.setAttribute('href', '#'); + mergeOption.appendChild(caret); + popup.appendChild(mergeOption); + verticalSeparator = div(); + verticalSeparator.classList.add('frm-multiselect-popup-separator'); + popup.appendChild(verticalSeparator); + deleteOption = div(); + deleteOption.classList.add('frm-delete-field-groups'); + deleteOption.appendChild(getIconClone('frm_trash_svg')); + popup.appendChild(deleteOption); + document.getElementById('post-body-content').appendChild(popup); + jQuery(popup).hide().fadeIn(); + return popup; + } + function selectedFieldsAreMergeable() { + var selectedFieldGroups, totalFieldCount, length, index, fieldGroup; + selectedFieldGroups = document.querySelectorAll('.frm-selected-field-group'); + length = selectedFieldGroups.length; + if (1 === length) { + return false; + } + totalFieldCount = 0; + for (index = 0; index < length; ++index) { + fieldGroup = selectedFieldGroups[index]; + if (null !== fieldGroup.querySelector('.edit_field_type_break, .edit_field_type_hidden')) { + return false; + } + totalFieldCount += getFieldsInRow(jQuery(fieldGroup)).length; + if (totalFieldCount > 6) { + return false; + } + } + return true; + } + function mergeFieldsIntoRowClick(event) { + var size, popup; + if (null !== event.originalEvent.target.closest('#frm_field_group_popup')) { + // prevent clicks within the popup from triggering the button again. + return; + } + if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { + // avoid switching back to the first page when clicking the custom option nested inside of the merge option. + return; + } + size = getSelectedFieldCount(); + popup = getFieldGroupPopup(size, document.querySelector('.frm-selected-field-group').firstChild); + this.appendChild(popup); + } + function getSelectedFieldCount() { + var count = 0; + jQuery(document.querySelectorAll('.frm-selected-field-group')).each(function () { + count += getFieldsInRow(jQuery(this)).length; + }); + return count; + } + function deleteFieldGroupsClick() { + var fieldIdsToDelete, deleteOnConfirm, multiselectPopup; + fieldIdsToDelete = getSelectedFieldIds(); + deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction(fieldIdsToDelete); + multiselectPopup = document.getElementById('frm_field_multiselect_popup'); + if (null !== multiselectPopup) { + multiselectPopup.remove(); + } + this.setAttribute('data-frmverify', confirmFieldsDeleteMessage(fieldIdsToDelete.length)); + confirmLinkClick(this); + var confirmedClick = document.getElementById('frm-confirmed-click'); + + // Remove any previous delete field data so delete confirmation does not attempt + // to delete a field that was already deleted or previously attempted and cancelled. + confirmedClick === null || confirmedClick === void 0 || confirmedClick.removeAttribute('data-deletefield'); + jQuery(confirmedClick).on('click', deleteOnConfirm); + jQuery('#frm_confirm_modal').one('dialogclose', function () { + jQuery(confirmedClick).off('click', deleteOnConfirm); + }); + } + function getSelectedFieldIds() { + var deleteFieldIds = []; + jQuery('.frm-selected-field-group > li.form-field').each(function () { + deleteFieldIds.push(this.dataset.fid); + }); + return deleteFieldIds; + } + function getDeleteSelectedFieldGroupsOnConfirmFunction(deleteFieldIds) { + return function (event) { + event.preventDefault(); + deleteAllSelectedFieldGroups(deleteFieldIds); + }; + } + function deleteAllSelectedFieldGroups(deleteFieldIds) { + deleteFieldIds.forEach(function (fieldId) { + deleteFields(fieldId); + }); + } + function deleteFieldConfirmed() { + /*jshint validthis:true */ + deleteFields(this.getAttribute('data-deletefield')); + } + function deleteFields(fieldId) { + var field = jQuery('#frm_field_id_' + fieldId); + deleteField(fieldId); + if (field.hasClass('edit_field_type_divider')) { + field.find('li.frm_field_box[data-fid]').each(function () { + deleteField(this.getAttribute('data-fid')); + }); + } + toggleSectionHolder(); + } + + /** + * Checks if there is only submit field in the form builder. + * + * @return {Boolean} + */ + function hasOnlySubmitField() { + // If there are at least 2 rows, return false. + if ($newFields.get(0).childElementCount > 1) { + return false; + } + var childUl = $newFields.get(0).firstElementChild.firstElementChild; + + // Use query instead of children because there might be a div inside this ul. + var childLi = childUl.querySelectorAll('li.frm_field_box'); + + // If there are at least 2 items in the row, return false. + if (childLi.length > 1) { + return false; + } + return childLi[0].classList.contains('edit_field_type_submit'); + } + + /** + * Moves open modals out of the field options form. + * + * When a modal is open, it is moved in the DOM and appended to the parent element of the modal trigger input. That + * creates a problem since deleting the field also deletes the modal and this function fixes that problem. + * + * @since 6.22 + * + * @param {Object} settings + * @return {void} + */ + function moveOpenModalsOutOfFieldOptions(settings) { + var openModals = settings[0].querySelectorAll('.frm-inline-modal[data-fills]'); + if (!openModals.length) { + return; + } + openModals.forEach(function (modal) { + modal.classList.add('frm_hidden'); + modal.removeAttribute('data-fills'); + modal.closest('form').appendChild(modal); + }); + } + function deleteField(fieldId) { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_delete_field', + field_id: fieldId, + nonce: frmGlobal.nonce + }, + success: function success() { + var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)), + settings = jQuery('#frm-single-settings-' + fieldId); + + // Remove settings from sidebar. + if (settings.is(':visible')) { + var _document$querySelect2; + (_document$querySelect2 = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect2 === void 0 || _document$querySelect2.click(); + document.querySelector('#frm-options-panel .frm-single-settings').classList.remove('frm_hidden'); + } + moveOpenModalsOutOfFieldOptions(settings); + settings.remove(); + $thisField.fadeOut('slow', function () { + var $section = $thisField.closest('.start_divider'), + type = $thisField.data('type'), + $adjacentFields = $thisField.siblings('li.form-field'), + $liWrapper; + if (!$adjacentFields.length) { + if ($thisField.is('.edit_field_type_end_divider')) { + $adjacentFields.length = $thisField.closest('li.form-field').siblings(); + } else { + $liWrapper = $thisField.closest('ul.frm_sorting').parent(); + } + } + $thisField.remove(); + if (type === 'break') { + renumberPageBreaks(); + } else if (type === 'product') { + maybeHideQuantityProductFieldOption(); + // a product field attached to a quantity field earlier might be the one deleted, so re-populate + popAllProductFields(); + } + if ($adjacentFields.length) { + syncLayoutClasses($adjacentFields.first()); + } else { + $liWrapper.remove(); + } + if (jQuery('#frm-show-fields li').length === 0 || hasOnlySubmitField()) { + var formEditorContainer = document.getElementById('frm_form_editor_container'); + formEditorContainer.classList.remove('frm-has-fields'); + formEditorContainer.classList.add('frm-empty-fields'); + } else if ($section.length) { + toggleOneSectionHolder($section); + } + + // prevent "More Options" tooltips from staying around after their target field is deleted. + deleteTooltips(); + }); + if ($thisField.length) { + wp.hooks.doAction('frm_after_delete_field', $thisField[0]); + } + } + }); + } + function addFieldLogicRow() { + /*jshint validthis:true */ + var id = jQuery(this).closest('.frm-single-settings').data('fid'), + formId = thisFormId, + logicRows = document.getElementById('frm_logic_row_' + id).querySelectorAll('.frm_logic_row'); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_logic_row', + form_id: formId, + field_id: id, + nonce: frmGlobal.nonce, + meta_name: getNewRowId(logicRows, 'frm_logic_' + id + '_'), + fields: getFieldList() + }, + success: function success(html) { + jQuery(document.getElementById('logic_' + id)).fadeOut('fast', function () { + var logicRow = document.getElementById('frm_logic_row_' + id); + logicRow.insertAdjacentHTML('beforeend', html); + var logicRowText = logicRow.querySelector('.frm_logic_row:last-child .frm-logic-rule-text'); + if (logicRowText) { + logicRowText.textContent = logicRow.dataset.ruleText; + } + var logicRows = logicRow.closest('.frm_logic_rows'); + logicRows.style.height = 'auto'; + jQuery(logicRows).fadeIn('fast'); + }); + } + }); + return false; + } + function getNewRowId(rows, replace, defaultValue) { + if (!rows.length) { + return 'undefined' !== typeof defaultValue ? defaultValue : 0; + } + return parseInt(rows[rows.length - 1].id.replace(replace, ''), 10) + 1; + } + function addWatchLookupRow() { + /*jshint validthis:true */ + var lastRowId, + id = jQuery(this).closest('.frm-single-settings').data('fid'), + formId = thisFormId, + lookupBlockRows = document.getElementById('frm_watch_lookup_block_' + id).children; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_watch_lookup_row', + form_id: formId, + field_id: id, + row_key: getNewRowId(lookupBlockRows, 'frm_watch_lookup_' + id + '_'), + nonce: frmGlobal.nonce + }, + success: function success(newRow) { + var _document$getElementB2; + var watchRowBlock = jQuery(document.getElementById('frm_watch_lookup_block_' + id)); + watchRowBlock.append(newRow); + watchRowBlock.fadeIn('slow'); + + // Show the "Watch Lookup Fields" label if it was hidden + (_document$getElementB2 = document.getElementById("frm_watch_lookup_label_".concat(id))) === null || _document$getElementB2 === void 0 || _document$getElementB2.classList.remove('frm-force-hidden'); + } + }); + return false; + } + function resetOptionTextDetails() { + jQuery('.frm-single-settings ul input[type="text"][name^="field_options[options_"]').filter('[data-value-on-load]').removeAttr('data-value-on-load'); + jQuery('input[type="hidden"][name^=optionmap]').remove(); + } + function optionTextAlreadyExists(input) { + var fieldId = jQuery(input).closest('.frm-single-settings').attr('data-fid'), + optionInputs = jQuery(input).closest('ul').get(0).querySelectorAll('.field_' + fieldId + '_option'), + index, + optionInput; + for (index in optionInputs) { + optionInput = optionInputs[index]; + if (optionInput.id !== input.id && optionInput.value === input.value && optionInput.getAttribute('data-duplicate') !== 'true') { + return true; + } + } + return false; + } + function onOptionTextFocus() { + var input, fieldId; + if (this.getAttribute('data-value-on-load') === null) { + this.setAttribute('data-value-on-load', this.value); + fieldId = jQuery(this).closest('.frm-single-settings').attr('data-fid'); + input = document.createElement('input'); + input.value = this.value; + input.setAttribute('type', 'hidden'); + input.setAttribute('name', 'optionmap[' + fieldId + '][' + this.value + ']'); + this.parentNode.appendChild(input); + if (typeof optionMap[fieldId] === 'undefined') { + optionMap[fieldId] = {}; + } + optionMap[fieldId][this.value] = input; + } + if (this.getAttribute('data-duplicate') === 'true') { + this.removeAttribute('data-duplicate'); + + // we want to use original value if actually still a duplicate + if (optionTextAlreadyExists(this)) { + this.setAttribute('data-value-on-focus', this.getAttribute('data-value-on-load')); + return; + } + } + if ('' !== this.value || frmAdminJs.new_option !== this.getAttribute('data-value-on-focus')) { + this.setAttribute('data-value-on-focus', this.value); + } + } + + /** + * Returns an object that has the old and new values and labels, when a field choice is changed. + * + * @param {HTMLElement} input + * @return {Object} + */ + function getChoiceOldAndNewValues(input) { + var _getChoiceOldValueAnd = getChoiceOldValueAndLabel(input), + oldValue = _getChoiceOldValueAnd.oldValue, + oldLabel = _getChoiceOldValueAnd.oldLabel; + var _getChoiceNewValueAnd = getChoiceNewValueAndLabel(input), + newValue = _getChoiceNewValueAnd.newValue, + newLabel = _getChoiceNewValueAnd.newLabel; + return { + oldValue: oldValue, + oldLabel: oldLabel, + newValue: newValue, + newLabel: newLabel + }; + } + + /** + * Returns an object that has the new value and label, when a field choice is changed. + * + * @param {HTMLElement} choiceElement + * @return {Object} + */ + function getChoiceNewValueAndLabel(choiceElement) { + var singleOptionContainer = choiceElement.closest('.frm_single_option'); + var newValue, newLabel; + if (choiceElement.parentElement.classList.contains('frm_single_option')) { + // label changed + newValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').value; + newLabel = choiceElement.value; + return { + newValue: newValue, + newLabel: newLabel + }; + } + + // saved value changed + newLabel = singleOptionContainer.querySelector('input[type="text"]').value; + newValue = choiceElement.value; + return { + newValue: newValue, + newLabel: newLabel + }; + } + + /** + * Returns an object that has the old value and label, when a field choice is changed. + * + * @param {HTMLElement} choiceElement + * @return {Object} + */ + function getChoiceOldValueAndLabel(choiceElement) { + var _choiceElement$closes, _choiceElement$closes2; + var usingSeparateValues = (_choiceElement$closes = (_choiceElement$closes2 = choiceElement.closest('.frm-single-settings').querySelector('.frm_toggle_sep_values')) === null || _choiceElement$closes2 === void 0 ? void 0 : _choiceElement$closes2.checked) !== null && _choiceElement$closes !== void 0 ? _choiceElement$closes : false; + var singleOptionContainer = choiceElement.closest('.frm_single_option'); + var oldValue, oldLabel; + if (usingSeparateValues) { + if (choiceElement.parentElement.classList.contains('frm_single_option')) { + // label changed + oldValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').getAttribute('data-value-on-focus'); + oldLabel = choiceElement.getAttribute('data-value-on-focus'); + return { + oldValue: oldValue, + oldLabel: oldLabel + }; + } + } + oldValue = choiceElement.getAttribute('data-value-on-focus'); + oldLabel = singleOptionContainer.querySelector('input[type="text"]').getAttribute('data-value-on-focus'); + return { + oldValue: oldValue, + oldLabel: oldLabel + }; + } + function onOptionTextBlur() { + var originalValue, fieldId, fieldIndex, logicId, row, rowLength, rowIndex, valueSelect, opts, fieldIds, settingId, setting, optionMatches, option; + var _getChoiceOldAndNewVa = getChoiceOldAndNewValues(this), + oldValue = _getChoiceOldAndNewVa.oldValue, + oldLabel = _getChoiceOldAndNewVa.oldLabel, + newValue = _getChoiceOldAndNewVa.newValue, + newLabel = _getChoiceOldAndNewVa.newLabel; + if (oldValue === newValue && oldLabel === newLabel) { + return; + } + var singleSettingsContainer = this.closest('.frm-single-settings'); + fieldId = singleSettingsContainer.getAttribute('data-fid'); + originalValue = this.getAttribute('data-value-on-load'); + + // check if the newValue is already mapped to another option + // if it is, mark as duplicate and return + if (optionTextAlreadyExists(this)) { + this.setAttribute('data-duplicate', 'true'); + if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { + // unmap any other change that may have happened before instead of changing it to something unused + optionMap[fieldId][originalValue].value = originalValue; + } + return; + } + if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { + optionMap[fieldId][originalValue].value = newValue; + } + fieldIds = []; + rows = builderPage.querySelectorAll('.frm_logic_row'); + rowLength = rows.length; + for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { + row = rows[rowIndex]; + opts = row.querySelector('.frm_logic_field_opts'); + if (opts.value !== fieldId) { + continue; + } + logicId = row.id.split('_')[2]; + valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); + if ('' === oldValue) { + optionMatches = []; + } else { + optionMatches = valueSelect.querySelectorAll('option[value="' + oldValue + '"]'); + } + if (!optionMatches.length) { + optionMatches = valueSelect.querySelectorAll('option[value="' + newValue + '"]'); + if (!optionMatches.length) { + var _singleSettingsContai; + if (!((_singleSettingsContai = singleSettingsContainer.querySelector('.frm_toggle_sep_values')) !== null && _singleSettingsContai !== void 0 && _singleSettingsContai.checked)) { + option = searchSelectByText(valueSelect, oldValue); // Find conditional logic option with oldValue + } + if (!option) { + option = document.createElement('option'); + valueSelect.appendChild(option); + } + } + } + if (optionMatches.length) { + option = optionMatches[optionMatches.length - 1]; + } + option.setAttribute('value', newValue); + option.textContent = newLabel; + if (fieldIds.indexOf(logicId) === -1) { + fieldIds.push(logicId); + } + } + for (fieldIndex in fieldIds) { + settingId = fieldIds[fieldIndex]; + setting = document.getElementById('frm-single-settings-' + settingId); + moveFieldSettings(setting); + } + } + + /** + * Returns an option element that matches a string with its text content. + * + * @param {HTMLElement} selectElement + * @param {string} searchText + * @return {HTMLElement|null} + */ + function searchSelectByText(selectElement, searchText) { + var options = selectElement.options; + for (var _i10 = 0; _i10 < options.length; _i10++) { + var option = options[_i10]; + if (searchText === option.textContent) { + return option; + } + } + return null; + } + function updateGetValueFieldSelection() { + /*jshint validthis:true */ + var fieldID = this.id.replace('get_values_form_', ''); + var fieldSelect = document.getElementById('get_values_field_' + fieldID); + var fieldType = this.getAttribute('data-fieldtype'); + if (this.value === '') { + fieldSelect.options.length = 1; + } else { + var formID = this.value; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_get_options_for_get_values_field', + form_id: formID, + field_type: fieldType, + nonce: frmGlobal.nonce + }, + success: function success(fields) { + fieldSelect.innerHTML = fields; + } + }); + } + } + + // Clear the Watch Fields option when Lookup field switches to "Text" option + function maybeClearWatchFields() { + /*jshint validthis:true */ + var link, + lookupBlock, + fieldID = this.name.replace('field_options[data_type_', '').replace(']', ''); + link = document.getElementById('frm_add_watch_lookup_link_' + fieldID); + if (!link) { + return; + } + link = link.parentNode; + if (this.value === 'text') { + lookupBlock = document.getElementById('frm_watch_lookup_block_' + fieldID); + if (lookupBlock !== null) { + // Clear and hide the Watch Fields option + lookupBlock.innerHTML = ''; + link.classList.add('frm_hidden'); + + // Hide the Watch Fields row + link.previousElementSibling.style.display = 'none'; + link.previousElementSibling.previousElementSibling.style.display = 'none'; + link.previousElementSibling.previousElementSibling.previousElementSibling.style.display = 'none'; + } + } else { + // Show the Watch Fields option + link.classList.remove('frm_hidden'); + } + toggleMultiSelect(fieldID, this.value); + } + + // Number the pages and hide/show the first page as needed. + function renumberPageBreaks() { + var i, + containerClass, + pages = document.getElementsByClassName('frm-page-num'); + if (pages.length > 1) { + document.getElementById('frm-fake-page').style.display = 'block'; + for (i = 0; i < pages.length; i++) { + containerClass = pages[i].parentNode.parentNode.parentNode.classList; + if (i === 1) { + // Hide previous button on page 1 + containerClass.add('frm-first-page'); + } else { + containerClass.remove('frm-first-page'); + } + pages[i].textContent = i + 1; + } + } else { + document.getElementById('frm-fake-page').style.display = 'none'; + } + wp.hooks.doAction('frm_renumber_page_breaks', pages); + } + + // The fake field works differently than real fields. + function maybeCollapsePage() { + /*jshint validthis:true */ + var field = jQuery(this).closest('.frm_field_box[data-ftype=break]'); + if (field.length) { + toggleCollapsePage(field); + } else { + toggleCollapseFakePage(); + } + } + + // Find all fields in a page and hide/show them + function toggleCollapsePage(field) { + var toCollapse = getAllFieldsForPage(field.get(0).parentNode.closest('li.frm_field_box').nextElementSibling); + togglePage(field, toCollapse); + } + function toggleCollapseFakePage() { + var topLevel = document.getElementById('frm-fake-page'), + firstField = document.getElementById('frm-show-fields').firstElementChild, + toCollapse = getAllFieldsForPage(firstField); + if (firstField.getAttribute('data-ftype') === 'break') { + // Don't collapse if the first field is a page break. + return; + } + togglePage(jQuery(topLevel), toCollapse); + } + function getAllFieldsForPage(firstWrapper) { + var $fieldsForPage, currentWrapper; + $fieldsForPage = jQuery(); + if (null === firstWrapper) { + return $fieldsForPage; + } + currentWrapper = firstWrapper; + do { + if (null !== currentWrapper.querySelector('.edit_field_type_break')) { + break; + } + $fieldsForPage = $fieldsForPage.add(jQuery(currentWrapper)); + currentWrapper = currentWrapper.nextElementSibling; + } while (null !== currentWrapper); + return $fieldsForPage; + } + function togglePage(field, toCollapse) { + var i, + fieldCount = toCollapse.length, + slide = Math.min(fieldCount, 3); + if (field.hasClass('frm-page-collapsed')) { + field.removeClass('frm-page-collapsed'); + toCollapse.removeClass('frm-is-collapsed'); + for (i = 0; i < slide; i++) { + if (i === slide - 1) { + jQuery(toCollapse[i]).slideDown(150, function () { + toCollapse.show(); + }); + } else { + jQuery(toCollapse[i]).slideDown(150); + } + } + } else { + field.addClass('frm-page-collapsed'); + toCollapse.addClass('frm-is-collapsed'); + for (i = 0; i < slide; i++) { + if (i === slide - 1) { + jQuery(toCollapse[i]).slideUp(150, function () { + toCollapse.css('cssText', 'display:none !important;'); + }); + } else { + jQuery(toCollapse[i]).slideUp(150); + } + } + } + } + function maybeCollapseSection() { + /*jshint validthis:true */ + var parentCont = this.parentNode.parentNode.parentNode.parentNode; + parentCont.classList.toggle('frm-section-collapsed'); + } + function maybeCollapseSettings() { + /*jshint validthis:true */ + this.classList.toggle('frm-collapsed'); + + // Toggles the "aria-expanded" attribute + var expanded = this.getAttribute('aria-expanded') === 'true' || false; + this.setAttribute('aria-expanded', !expanded); + addSlideAnimationCssVars(this.nextElementSibling); + } + + /** + * Add slide animation CSS variables to the element + * + * @param {HTMLElement} element The element to add CSS variables to + * @return {void} + */ + function addSlideAnimationCssVars(element) { + if (!element) { + return; + } + var height = element.scrollHeight; + if (height <= 0) { + return; + } + height += 250; + element.style.setProperty('--slide-height', "".concat(height, "px")); + element.style.setProperty('--slide-time', "".concat(Math.ceil(height * 0.8), "ms")); + } + function clickLabel() { + if (!this.id) { + return; + } + + /*jshint validthis:true */ + var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0], + fieldId = this.id.replace('field_label_', ''), + fieldType = document.getElementById('field_options_type_' + fieldId), + fieldTypeName = fieldType.value; + if (typeof setting !== 'undefined') { + if (fieldType.tagName === 'SELECT') { + fieldTypeName = fieldType.options[fieldType.selectedIndex].text.toLowerCase(); + } else { + fieldTypeName = fieldTypeName.replace('_', ' '); + } + fieldTypeName = normalizeFieldName(fieldTypeName); + setTimeout(function () { + if (setting.value.toLowerCase() === fieldTypeName) { + setting.select(); + } else { + setting.focus(); + } + }, 50); + } + } + function clickDescription() { + /*jshint validthis:true */ + var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0]; + if (typeof setting !== 'undefined') { + setTimeout(function () { + setting.focus(); + autoExpandSettings(setting); + }, 50); + } + } + function autoExpandSettings(setting) { + var inSection = setting.closest('.frm-collapse-me'); + if (inSection !== null) { + inSection.previousElementSibling.classList.remove('frm-collapsed'); + } + } + function normalizeFieldName(fieldTypeName) { + if (fieldTypeName === 'divider') { + fieldTypeName = 'section'; + } else if (fieldTypeName === 'range') { + fieldTypeName = 'slider'; + } else if (fieldTypeName === 'data') { + fieldTypeName = 'dynamic'; + } else if (fieldTypeName === 'form') { + fieldTypeName = 'embed form'; + } + return fieldTypeName; + } + function clickVis(e) { + /*jshint validthis:true */ + var currentClass, originalList; + currentClass = e.target.classList; + if (currentClass.contains('frm-collapse-page') || currentClass.contains('frm-sub-label') || e.target.closest('.dropdown') !== null) { + return; + } + if (this.closest('.start_divider') !== null) { + e.stopPropagation(); + } + if (this.classList.contains('edit_field_type_divider')) { + originalList = e.originalEvent.target.closest('ul.frm_sorting'); + if (null !== originalList) { + // prevent section click if clicking a field group within a section. + if (originalList.classList.contains('edit_field_type_divider') || originalList.parentNode.parentNode.classList.contains('start_divider')) { + return; + } + } + } + clickAction(this); + } + + /** + * Update the format input based on the selected format type. + * + * @since 6.9 + * + * @param {Event} event The event object from the format type selection. + * @return {void} + */ + function maybeUpdateFormatInput(event) { + var formatElement = event.target; + var type = formatElement.value; + if ('custom' === type) { + var fieldId = formatElement.dataset.fieldId; + var formatInput = document.getElementById("frm-field-format-custom-".concat(fieldId)).querySelector('.frm_format_opt'); + if ('international' === formatInput.value || 'currency' === formatInput.value || 'number' === formatInput.value) { + formatInput.setAttribute('value', ''); + } + } + setTimeout(function () { + formatElement.querySelectorAll('option').forEach(function (option) { + if (option.selected && option.classList.contains('frm_show_upgrade')) { + formatElement.value = 'none'; + } + }); + }, 0); + } + + /** + * Open Advanced settings on double click. + */ + function openAdvanced() { + var fieldId = this.getAttribute('data-fid'); + autoExpandSettings(document.getElementById('field_options_field_key_' + fieldId)); + } + function toggleRepeatButtons() { + /*jshint validthis:true */ + var $thisField = jQuery(this).closest('.frm_field_box'); + $thisField.find('.repeat_icon_links').removeClass('repeat_format repeat_formatboth repeat_formattext').addClass('repeat_format' + this.value); + if (this.value === 'text' || this.value === 'both') { + $thisField.find('.frm_repeat_text').show(); + $thisField.find('.repeat_icon_links a').addClass('frm_button'); + } else { + $thisField.find('.frm_repeat_text').hide(); + $thisField.find('.repeat_icon_links a').removeClass('frm_button'); + } + } + function checkRepeatLimit() { + /*jshint validthis:true */ + var val = this.value; + if (val !== '' && (val < 2 || val > 200)) { + infoModal(frmAdminJs.repeat_limit_min); + this.value = ''; + } + } + function checkCheckboxSelectionsLimit() { + /*jshint validthis:true */ + var val = this.value; + if (val !== '' && (val < 1 || val > 200)) { + infoModal(frmAdminJs.checkbox_limit); + this.value = ''; + } + } + function updateRepeatText(obj, addRemove) { + var $thisField = jQuery(obj).closest('.frm_field_box'); + $thisField.find('.frm_' + addRemove + '_form_row .frm_repeat_label').text(obj.value); + } + function fieldsInSection(id) { + var children = []; + jQuery(document.getElementById('frm_field_id_' + id)).find('li.frm_field_box:not(.no_repeat_section .edit_field_type_end_divider)').each(function () { + children.push(jQuery(this).data('fid')); + }); + return children; + } + function toggleFormTax() { + /*jshint validthis:true */ + var id = jQuery(this).closest('.frm-single-settings').data('fid'); + var val = this.value; + var $showFields = document.getElementById('frm_show_selected_fields_' + id); + var $showForms = document.getElementById('frm_show_selected_forms_' + id); + jQuery($showForms).find('select').val(''); + if (val === 'form') { + $showForms.style.display = 'inline'; + empty($showFields); + } else { + $showFields.style.display = 'none'; + $showForms.style.display = 'none'; + getTaxOrFieldSelection(val, id); + } + } + function resetOptOnChange() { + /*jshint validthis:true */ + var field, thisOpt; + field = getFieldKeyFromOpt(this); + if (!field) { + return; + } + thisOpt = jQuery(this).closest('.frm_single_option'); + resetSingleOpt(field.fieldId, field.fieldKey, thisOpt); + } + function getFieldKeyFromOpt(object) { + var allOpts, fieldId, fieldKey; + allOpts = jQuery(object).closest('.frm_sortable_field_opts'); + if (!allOpts.length) { + return false; + } + fieldId = allOpts.attr('id').replace('frm_field_', '').replace('_opts', ''); + fieldKey = allOpts.data('key'); + return { + fieldId: fieldId, + fieldKey: fieldKey + }; + } + function resetSingleOpt(fieldId, fieldKey, thisOpt) { + var saved, + text, + defaultVal, + previewInput, + labelForDisplay, + optContainer, + optKey = thisOpt.data('optkey'), + separateValues = usingSeparateValues(fieldId), + single = jQuery('label[for="field_' + fieldKey + '-' + optKey + '"]'), + baseName = 'field_options[options_' + fieldId + '][' + optKey + ']', + label = jQuery('input[name="' + baseName + '[label]"]'); + if (single.length < 1) { + resetDisplayedOpts(fieldId); + + // Set the default value. + defaultVal = thisOpt.find('input[name^="default_value_"]'); + if (defaultVal.is(':checked') && label.length > 0) { + jQuery('select[name^="item_meta[' + fieldId + ']"]').val(label.val()); + } + return; + } + previewInput = single.children('input'); + if (label.length < 1) { + // Check for other label. + label = jQuery('input[name="' + baseName + '"]'); + saved = label.val(); + } else if (separateValues) { + saved = jQuery('input[name="' + baseName + '[value]"]').val(); + } else { + saved = label.val(); + } + if (label.length < 1) { + return; + } + + // Set the displayed value. + text = single[0].childNodes; + if (imagesAsOptions(fieldId)) { + labelForDisplay = getImageDisplayValue(thisOpt, fieldId, label); + optContainer = single.find('.frm_image_option_container'); + if (optContainer.length > 0) { + optContainer.replaceWith(labelForDisplay); + } else { + text[text.length - 1].nodeValue = ''; + single.append(labelForDisplay); + } + } else { + var firstInputIndex = false; + text.forEach(function (node, index) { + if (firstInputIndex === false) { + if (node.tagName === 'INPUT') { + firstInputIndex = index; + } + } else if (index === firstInputIndex + 1) { + var nodeValue = ''; + if (buttonsAsOptions(fieldId)) { + nodeValue = div({ + className: 'frm_label_button_container', + text: ' ' + label.val() + }); + single[0].replaceChild(nodeValue, node); + } else { + node.nodeValue = ' ' + label.val(); + } + } else { + single[0].removeChild(node); + } + }); + } + + // Set saved value. + previewInput.val(saved); + + // Set the default value. + defaultVal = thisOpt.find('input[name^="default_value_"]'); + previewInput.prop('checked', defaultVal.is(':checked') ? true : false); + } + function buttonsAsOptions(fieldId) { + var fields = document.getElementsByName('field_options[image_options_' + fieldId + ']'); + var result = Array.from(fields).find(function (field) { + return field.checked && 'buttons' === field.value; + }); + return typeof result !== 'undefined'; + } + + /** + * Set the displayed value for an image option. + */ + function getImageDisplayValue(thisOpt, fieldId, label) { + var image, imageUrl, showLabelWithImage, fieldType; + image = thisOpt.find('img'); + if (image) { + imageUrl = image.attr('src'); + } + showLabelWithImage = showingLabelWithImage(fieldId); + fieldType = radioOrCheckbox(fieldId); + return getImageLabel(label.val(), showLabelWithImage, imageUrl, fieldType); + } + function getImageOptionSize(fieldId) { + var val, + field = document.getElementById('field_options_image_size_' + fieldId), + size = ''; + if (field !== null) { + val = field.value; + if (val !== '') { + size = val; + } + } + return size; + } + function resetDisplayedOpts(fieldId) { + var i, + opts, + type, + placeholder, + fieldInfo, + input = jQuery('[name^="item_meta[' + fieldId + ']"]'); + if (input.length < 1) { + return; + } + if (input.is('select')) { + placeholder = document.getElementById('frm_placeholder_' + fieldId); + if (placeholder !== null && placeholder.value === '') { + fillDropdownOpts(input[0], { + sourceID: fieldId + }); + } else { + fillDropdownOpts(input[0], { + sourceID: fieldId, + placeholder: placeholder.value + }); + } + } else { + opts = getMultipleOpts(fieldId); + jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields').html(''); + fieldInfo = getFieldKeyFromOpt(jQuery('#frm_delete_field_' + fieldId + '-000_container')); + var container = jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields'), + hasImageOptions = imagesAsOptions(fieldId), + imageSize = hasImageOptions ? getImageOptionSize(fieldId) : '', + imageOptionClass = hasImageOptions ? 'frm_image_option frm_image_' + imageSize + ' ' : '', + isProduct = isProductField(fieldId); + type = 'hidden' === input.attr('type') ? input.data('field-type') : input.attr('type'); + for (i = 0; i < opts.length; i++) { + container.append(addRadioCheckboxOpt(type, opts[i], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass)); + } + } + adjustConditionalLogicOptionOrders(fieldId); + } + + /** + * Returns an object that has a value and label for new conditional logic option, for a given option value. + * + * @param {Number} fieldId + * @param {string} expectedOption + * @return {Object} + */ + function getNewConditionalLogicOption(fieldId, expectedOption) { + var optionsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); + var expectedOptionInput = optionsContainer.querySelector('input[value="' + expectedOption + '"]'); + if (expectedOptionInput) { + return getChoiceNewValueAndLabel(expectedOptionInput); + } + return { + newValue: expectedOption, + newLabel: expectedOption + }; + } + function adjustConditionalLogicOptionOrders(fieldId, type) { + var row, + opts, + logicId, + valueSelect, + optionLength, + optionIndex, + expectedOption, + optionMatch, + fieldOptions, + rows = builderPage.querySelectorAll('.frm_logic_row'), + rowLength = rows.length; + fieldOptions = wp.hooks.applyFilters('frm_conditional_logic_field_options', getFieldOptions(fieldId), { + type: type, + fieldId: fieldId + }); + optionLength = fieldOptions.length; + for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { + row = rows[rowIndex]; + opts = row.querySelector('.frm_logic_field_opts'); + if (opts.value != fieldId) { + continue; + } + logicId = row.id.split('_')[2]; + valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); + for (optionIndex = optionLength - 1; optionIndex >= 0; optionIndex--) { + var _document$getElementB3; + expectedOption = fieldOptions[optionIndex]; + var expectedOptionValue = (_document$getElementB3 = document.getElementById('frm_field_' + fieldId + '_opts').querySelector('.frm_option_key input[type="text"]')) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.value; + if (!expectedOptionValue) { + expectedOptionValue = expectedOption; + } + optionMatch = valueSelect.querySelector('option[value="' + expectedOptionValue + '"]'); + var _getNewConditionalLog = getNewConditionalLogicOption(fieldId, expectedOption), + newValue = _getNewConditionalLog.newValue, + newLabel = _getNewConditionalLog.newLabel; + var fieldChoices = document.querySelectorAll('#frm_field_' + fieldId + '_opts input[data-value-on-focus]'); + var expectedChoiceEl = Array.from(fieldChoices).find(function (element) { + return element.value === expectedOption; + }); + if (expectedChoiceEl) { + var oldValue = expectedChoiceEl.dataset.valueOnFocus; + var hasMatch = oldValue && valueSelect.querySelector('option[value="' + oldValue + '"]'); + if (hasMatch) { + continue; + } + } + prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel); + } + optionMatch = valueSelect.querySelector('option[value=""]'); + if (optionMatch !== null) { + valueSelect.prepend(optionMatch); + } + } + } + function prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel) { + if (optionMatch === null && !valueSelect.querySelector('option[value="' + newValue + '"]')) { + optionMatch = frmDom.tag('option', { + text: newLabel + }); + optionMatch.value = newValue; + } + valueSelect.prepend(optionMatch); + } + function getFieldOptions(fieldId) { + var index, + input, + li, + listItems, + optsContainer, + length, + options = []; + optsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); + if (!optsContainer) { + return options; + } + listItems = optsContainer.querySelectorAll('.frm_single_option'); + length = listItems.length; + for (index = 0; index < length; index++) { + li = listItems[index]; + if (li.classList.contains('frm_hidden')) { + continue; + } + input = li.querySelector('.field_' + fieldId + '_option'); + options.push(input.value); + } + return options; + } + function addRadioCheckboxOpt(type, opt, fieldId, fieldKey, isProduct, classes) { + var other, + single = '', + isOther = opt.key.indexOf('other') !== -1, + id = 'field_' + fieldKey + '-' + opt.key, + inputType = type === 'scale' ? 'radio' : type; + other = ''; + this.getSingle = function () { + /** + * Get single option template. + * @param {Object} option Object containing the option data. + * @param {string} type The field type. + * @param {string} fieldId The field id. + * @param {string} classes The option clasnames. + * @param {string} id The input id attribute. + */ + single = wp.hooks.applyFilters('frm_admin.build_single_option_template', single, { + opt: opt, + type: type, + fieldId: fieldId, + classes: classes, + id: id + }); + if ('' !== single) { + return single; + } + return '
          ' + (isOther ? other : '') + '
          '; + }; + return this.getSingle(); + } + function fillDropdownOpts(field, atts) { + if (field === null) { + return; + } + var sourceID = atts.sourceID, + placeholder = atts.placeholder, + isProduct = isProductField(sourceID), + showOther = atts.other; + removeDropdownOpts(field); + var opts = getMultipleOpts(sourceID), + hasPlaceholder = typeof placeholder !== 'undefined'; + for (var _i11 = 0; _i11 < opts.length; _i11++) { + var label = opts[_i11].label, + isOther = opts[_i11].key.indexOf('other') !== -1; + if (hasPlaceholder && label !== '') { + addBlankSelectOption(field, placeholder); + } else if (hasPlaceholder) { + label = placeholder; + } + hasPlaceholder = false; + if (!isOther || showOther) { + var opt = document.createElement('option'); + opt.value = opts[_i11].saved; + opt.innerHTML = purifyHtml(label); + if (isProduct) { + opt.setAttribute('data-price', opts[_i11].price); + } + field.appendChild(opt); + } + } + } + function addBlankSelectOption(field, placeholder) { + var opt = document.createElement('option'), + firstChild = field.firstChild; + opt.value = ''; + opt.innerHTML = placeholder; + if (firstChild !== null) { + field.insertBefore(opt, firstChild); + field.selectedIndex = 0; + } else { + field.appendChild(opt); + } + } + function getMultipleOpts(fieldId) { + var i, + saved, + labelName, + label, + key, + optObj, + fieldType, + checked = false, + opts = [], + imageUrl = ''; + var optVals = jQuery('input[name^="field_options[options_' + fieldId + ']"]'); + var isProduct = isProductField(fieldId); + var showLabelWithImage = showingLabelWithImage(fieldId); + var hasImageOptions = imagesAsOptions(fieldId); + var separateValues = usingSeparateValues(fieldId); + for (i = 0; i < optVals.length; i++) { + if (optVals[i].name.indexOf('[000]') > 0 || optVals[i].name.indexOf('[value]') > 0 || optVals[i].name.indexOf('[image]') > 0 || optVals[i].name.indexOf('[price]') > 0) { + continue; + } + saved = optVals[i].value; + label = saved; + key = optVals[i].name.replace('field_options[options_' + fieldId + '][', '').replace('[label]', '').replace(']', ''); + if (separateValues) { + labelName = optVals[i].name.replace('[label]', '[value]'); + saved = jQuery('input[name="' + labelName + '"]').val(); + } + if (hasImageOptions) { + imageUrl = getImageUrlFromInput(optVals[i]); + fieldType = radioOrCheckbox(fieldId); + label = getImageLabel(label, showLabelWithImage, imageUrl, fieldType); + } + + /** + * @since 5.0.04 + */ + label = frmAdminBuild.hooks.applyFilters('frm_choice_field_label', label, fieldId, optVals[i], hasImageOptions); + checked = getChecked(optVals[i].id); + optObj = { + saved: saved, + label: label, + checked: checked, + key: key + }; + if (isProduct) { + labelName = optVals[i].name.replace('[label]', '[price]'); + optObj.price = jQuery('input[name="' + labelName + '"]').val(); + } + opts.push(optObj); + } + return opts; + } + function radioOrCheckbox(fieldId) { + var settings = document.getElementById('frm-single-settings-' + fieldId); + if (settings === null) { + return 'radio'; + } + return settings.classList.contains('frm-type-checkbox') ? 'checkbox' : 'radio'; + } + function getImageUrlFromInput(optVal) { + var img, + wrapper = jQuery(optVal).siblings('.frm_image_preview_wrapper'); + if (!wrapper.length) { + return ''; + } + img = wrapper.find('img'); + if (!img.length) { + return ''; + } + return img.attr('src'); + } + function purifyHtml(html) { + if (html instanceof Element || html instanceof Document) { + html = html.outerHTML; + } + var clean = jQuery.parseHTML(html).reduce(function (total, currentNode) { + var cleanNode = frmDom.cleanNode(currentNode); + if ('#text' === cleanNode.nodeName) { + return total += cleanNode.textContent; + } + return total + cleanNode.outerHTML; + }, ''); + if (clean !== html) { + // Clean it until nothing changes, in case the stripped result is now unsafe. + return purifyHtml(clean); + } + return clean; + } + function getImageLabel(label, showLabelWithImage, imageUrl, fieldType) { + var imageLabelClass, + originalLabel = label, + shape = fieldType === 'checkbox' ? 'square' : 'circle', + labelImage, + labelNode, + imageLabel; + originalLabel = purifyHtml(originalLabel); + if (imageUrl) { + labelImage = img({ + src: imageUrl, + alt: originalLabel + }); + } else { + labelImage = div({ + className: 'frm_empty_url' + }); + labelImage.innerHTML = frmAdminJs.image_placeholder_icon; + } + imageLabelClass = showLabelWithImage ? ' frm_label_with_image' : ''; + imageLabel = tag('span', { + className: 'frm_text_label_for_image_inner' + }); + imageLabel.innerHTML = originalLabel; + labelNode = tag('span', { + className: 'frm_image_option_container' + imageLabelClass, + children: [labelImage, tag('span', { + className: 'frm_text_label_for_image', + child: imageLabel + })] + }); + return labelNode; + } + function getChecked(id) { + field = jQuery('#' + id); + if (field.length === 0) { + return false; + } + checkbox = field.siblings('input[type=checkbox]'); + return checkbox.length && checkbox.prop('checked'); + } + function removeDropdownOpts(field) { + var i; + if (typeof field.options === 'undefined') { + return; + } + for (i = field.options.length - 1; i >= 0; i--) { + field.remove(i); + } + } + + /** + * Is the box checked to use separate values? + */ + function usingSeparateValues(fieldId) { + return isChecked('separate_value_' + fieldId); + } + + /** + * Is the box checked to use images as options? + */ + function imagesAsOptions(fieldId) { + var checked = false, + field = document.getElementsByName('field_options[image_options_' + fieldId + ']'); + for (var _i12 = 0; _i12 < field.length; _i12++) { + if (field[_i12].checked) { + checked = '0' !== field[_i12].value; + } + } + + /** + * @since 5.0.04 + */ + return frmAdminBuild.hooks.applyFilters('frm_choice_field_images_as_options', checked, fieldId); + } + function showingLabelWithImage(fieldId) { + var isShowing = !isChecked('hide_image_text_' + fieldId); + + /** + * @since 5.0.04 + */ + return frmAdminBuild.hooks.applyFilters('frm_choice_field_showing_label_with_image', isShowing, fieldId); + } + function isChecked(id) { + var field = document.getElementById(id); + if (field === null) { + return false; + } + return field.checked; + } + function checkUniqueOpt(targetInput) { + var settingsContainer = targetInput.closest('.frm-single-settings'); + var fieldId = settingsContainer.getAttribute('data-fid'); + var areValuesSeparate = settingsContainer.querySelector('[name="field_options[separate_value_' + fieldId + ']"]').checked; + if (areValuesSeparate && !targetInput.name.endsWith('[value]')) { + return; + } + var container = document.getElementById('frm_field_' + fieldId + '_opts'); + var conflicts = Array.from(container.querySelectorAll('input[type="text"]')).filter(function (input) { + return input.id !== targetInput.id && areValuesSeparate === input.name.endsWith('[value]') && input.value === targetInput.value; + }); + if (conflicts.length) { + /* translators: %s: The detected option value. */ + infoModal(sprintf(__('Duplicate option value "%s" detected', 'formidable'), purifyHtml(targetInput.value))); + } + } + function getFieldValues() { + /*jshint validthis:true */ + var isTaxonomy, + val = this.value; + if (val) { + var parentIDs = this.parentNode.id.replace('frm_logic_', '').split('_'); + var fieldID = parentIDs[0]; + var metaKey = parentIDs[1]; + var valueField = document.getElementById('frm_field_id_' + val); + var valueFieldType = valueField.getAttribute('data-ftype'); + var fill = document.getElementById('frm_show_selected_values_' + fieldID + '_' + metaKey); + var optionName = 'field_options[hide_opt_' + fieldID + '][]'; + var optionID = 'frm_field_logic_opt_' + fieldID; + var input = false; + var showSelect = valueFieldType === 'select' || valueFieldType === 'checkbox' || valueFieldType === 'radio'; + var showText = valueFieldType === 'text' || valueFieldType === 'email' || valueFieldType === 'phone' || valueFieldType === 'url' || valueFieldType === 'number'; + if (showSelect) { + isTaxonomy = document.getElementById('frm_has_hidden_options_' + val); + if (isTaxonomy !== null) { + // get the category options with ajax + showSelect = false; + } + } + if (showSelect || showText) { + var comparison = document.querySelector("#frm_logic_".concat(fieldID, "_").concat(metaKey, " [name=\"field_options[hide_field_cond_").concat(fieldID, "][]\"]")).value; + fill.innerHTML = ''; + var creatingValuesDropdown = showSelect && !['LIKE', 'not LIKE', 'LIKE%', '%LIKE'].includes(comparison); + if (creatingValuesDropdown) { + input = document.createElement('select'); + } else { + input = document.createElement('input'); + input.type = 'text'; + } + input.name = optionName; + input.id = optionID + '_' + metaKey; + fill.appendChild(input); + if (creatingValuesDropdown) { + var fillField = document.getElementById(input.id); + fillDropdownOpts(fillField, { + sourceID: val, + placeholder: '', + other: true + }); + } + } else { + var thisType = this.getAttribute('data-type'); + var callback = function callback() { + var event = new CustomEvent('frm_logic_options_loaded'); + event.frmData = { + valueFieldType: valueFieldType, + fieldID: fieldID, + metaKey: metaKey + }; + document.dispatchEvent(event); + }; + frmGetFieldValues(val, fieldID, metaKey, thisType, undefined, callback); + } + } + } + function getFieldSelection() { + /*jshint validthis:true */ + var formId = this.value; + if (formId) { + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + getTaxOrFieldSelection(formId, fieldId); + } + } + function getTaxOrFieldSelection(formId, fieldId) { + if (formId) { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_get_field_selection', + field_id: fieldId, + form_id: formId, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + var $selectedFields = jQuery('#frm_show_selected_fields_' + fieldId); + $selectedFields.toggleClass('frm6', !msg.includes('frm-inline-message')); + $selectedFields.html(msg).show(); + } + }); + } + } + function updateFieldOrder() { + var self = this; + this.initOnceInAllInstances = function () { + if ('undefined' !== typeof updateFieldOrder.prototype.orderFieldsObject) { + return; + } + + // It will store the order input fields ( input[name="field_options[field_order_{fieldId}]"] ). + // It will help to reduce the DOM searches based on fieldId. + // The same object data is used across all "updateFieldOrder" instances. + updateFieldOrder.prototype.orderFieldsObject = {}; + + // Get the Form group that will handle the fields settings. + // Perform a single DOM search and use it across all "updateFieldOrder" instances. + updateFieldOrder.prototype.fieldSettingsForm = document.getElementById('frm-end-form-marker').closest('form'); + }; + this.getFieldOrderInputById = function (fieldId, parent) { + var field; + var orderFieldsObject = updateFieldOrder.prototype.orderFieldsObject; + var fieldSettingsForm = updateFieldOrder.prototype.fieldSettingsForm; + if ('undefined' === typeof orderFieldsObject[fieldId]) { + field = fieldSettingsForm.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); + if (null === field) { + field = parent.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); + } + orderFieldsObject[fieldId] = field; + return field; + } + return orderFieldsObject[fieldId]; + }; + this.initOnceInAllInstances(); + renumberPageBreaks(); + return function () { + var fieldId, + field, + currentOrder, + newOrder, + moveFieldsClass = new moveFieldSettings(), + fields = jQuery('li.frm_field_box', jQuery('#frm-show-fields')); + for (i = 0; i < fields.length; i++) { + fieldId = fields[i].getAttribute('data-fid'); + field = self.getFieldOrderInputById(fieldId, fields[i]); + + // get current field order, make sure we don't get the "field" reference as the "field" value will get updated later. + currentOrder = null !== field ? Object.assign({}, field.value)[0] : null; + newOrder = i + 1; + if (currentOrder != newOrder && null !== currentOrder) { + field.value = newOrder; + singleField = fields[i].querySelector('#frm-single-settings-' + fieldId); + + // add field that needs to be moved to "updateFieldOrder.prototype.fieldSettingsForm" + moveFieldsClass.append(singleField); + fieldUpdated(); + } + } + // move all appended fields + moveFieldsClass.moveFields(); + }(); + } + function toggleSectionHolder() { + document.querySelectorAll('.start_divider').forEach(function (divider) { + toggleOneSectionHolder(jQuery(divider)); + }); + } + function toggleOneSectionHolder($section) { + var noSectionFields, $rows, length, index, sectionHasFields; + if (!$section.length) { + return; + } + $rows = $section.find('ul.frm_sorting'); + sectionHasFields = false; + length = $rows.length; + for (index = 0; index < length; ++index) { + if (0 !== getFieldsInRow(jQuery($rows.get(index))).length) { + sectionHasFields = true; + break; + } + } + noSectionFields = $section.parent().children('.frm_no_section_fields').get(0); + noSectionFields.classList.toggle('frm_block', !sectionHasFields); + } + function handleShowPasswordLiveUpdate() { + frmDom.util.documentOn('change', '.frm_show_password_setting_input', function (event) { + var fieldId = event.target.getAttribute('data-fid'); + var fieldEl = document.getElementById('frm_field_id_' + fieldId); + if (!fieldEl) { + return; + } + fieldEl.classList.toggle('frm_disabled_show_password', !event.target.checked); + }); + } + function slideDown() { + /*jshint validthis:true */ + var id = jQuery(this).data('slidedown'); + var $thisId = jQuery(document.getElementById(id)); + if ($thisId.is(':hidden')) { + $thisId.slideDown('fast'); + this.style.display = 'none'; + } + return false; + } + function slideUp() { + /*jshint validthis:true */ + var id = jQuery(this).data('slideup'); + var $thisId = jQuery(document.getElementById(id)); + $thisId.slideUp('fast'); + $thisId.siblings('a').show(); + return false; + } + function adjustVisibilityValuesForEveryoneValues(element, option) { + if ('' === option.getAttribute('value')) { + onEveryoneOptionSelected(jQuery(this)); + } else { + unselectEveryoneOptionIfSelected(jQuery(this)); + } + } + function onEveryoneOptionSelected($select) { + $select.val(''); + $select.next('.btn-group').find('.multiselect-container input[value!=""]').prop('checked', false); + } + function unselectEveryoneOptionIfSelected($select) { + var selectedValues = $select.val(), + index; + if (selectedValues === null) { + $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', true); + onEveryoneOptionSelected($select); + return; + } + index = selectedValues.indexOf(''); + if (index >= 0) { + selectedValues.splice(index, 1); + $select.val(selectedValues); + $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', false); + } + } + + /** + * Get rid of empty container that inserts extra space. + */ + function hideEmptyEle() { + jQuery('.frm-hide-empty').each(function () { + if (jQuery(this).text().trim().length === 0) { + jQuery(this).remove(); + } + }); + } + + /* Change the classes in the builder */ + function changeFieldClass(field, setting) { + var classes, + replace, + alignField, + replaceWith = ' ' + setting.value, + fieldId = field.getAttribute('data-fid'); + + // Include classes from multiple settings. + if (typeof fieldId !== 'undefined') { + if (setting.classList.contains('field_options_align')) { + replaceWith += ' ' + document.getElementById('frm_classes_' + fieldId).value; + } else if (setting.classList.contains('frm_classes')) { + alignField = document.getElementById('field_options_align_' + fieldId); + if (alignField !== null) { + replaceWith += ' ' + alignField.value; + } + } + } + replaceWith += ' '; + + // Allow for the column number dropdown. + replaceWith = replaceWith.replace(' block ', ' vertical_radio ').replace(' inline ', ' horizontal_radio '); + classes = field.className.split(' frmstart ')[1]; + classes = 0 === classes.indexOf('frmend ') ? '' : classes.split(' frmend ')[0]; + if (classes.trim() === '') { + replace = ' frmstart frmend '; + if (-1 === field.className.indexOf(replace)) { + replace = ' frmstart frmend '; + } + replaceWith = ' frmstart ' + replaceWith.trim() + ' frmend '; + } else { + replace = classes.trim(); + replaceWith = replaceWith.trim(); + } + field.className = field.className.replace(replace, replaceWith); + } + function maybeShowInlineModal(e) { + /*jshint validthis:true */ + e.preventDefault(); + showInlineModal(this, undefined, e); + } + function showInlineModal(icon, input, event) { + var box = document.getElementById(icon.getAttribute('data-open')), + container = jQuery(icon).closest('p,ul'), + inputTrigger = typeof input !== 'undefined'; + if (container.hasClass('frm-open')) { + container.removeClass('frm-open'); + box.classList.add('frm_hidden'); + } else { + if (!inputTrigger) { + input = getInputForIcon(icon); + } + if (input !== null) { + if (!inputTrigger) { + var key = event.key; + if (key !== 'Enter' && key !== ' ') { + input.focus(); + } + } + container.after(box); + box.setAttribute('data-fills', input.id.replace('-proxy-input', '')); + if (box.id.indexOf('frm-calc-box') === 0) { + popCalcFields(box, true); + } + } + container.addClass('frm-open'); + box.classList.remove('frm_hidden'); + + /** + * @since 6.4.1 + */ + wp.hooks.doAction('frm_show_inline_modal', box, icon); + } + } + function dismissInlineModal(e) { + /*jshint validthis:true */ + e.preventDefault(); + this.parentNode.classList.add('frm_hidden'); + jQuery('.frm-open [data-open="' + this.parentNode.id + '"]').closest('.frm-open').removeClass('frm-open'); + } + + /** + * Close frm-modal-no-dismiss element when clicking outside of it + * + * @param {Event} event The click event + */ + function closeModalOnOutsideClick(_ref3) { + var target = _ref3.target; + if (target.closest('.frm-inline-modal.frm-modal-no-dismiss') || target.closest('.frm-show-inline-modal') || target.closest('#frm_adv_info') || target.closest('.frm-token-proxy-input')) { + return; + } + + // Close all inline modals (without close button) that are not hidden + document.querySelectorAll('.frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)').forEach(function (modal) { + modal.classList.add('frm_hidden'); + modal.previousElementSibling.classList.remove('frm-open'); + }); + } + function changeInputtedValue() { + /*jshint validthis:true */ + var i, + action = this.getAttribute('data-frmchange').split(','); + for (i = 0; i < action.length; i++) { + if (action[i] === 'updateOption') { + changeHiddenSeparateValue(this); + } else if (action[i] === 'updateDefault') { + changeDefaultRadioValue(this); + } else if (action[i] === 'checkUniqueOpt') { + checkUniqueOpt(this); + } else { + this.value = this.value[action[i]](); + } + } + } + + /** + * When the saved value is changed, update the default value radio. + */ + function changeDefaultRadioValue(input) { + var parentLi = getOptionParent(input), + key = parentLi.getAttribute('data-optkey'), + fieldId = getOptionFieldId(parentLi, key), + defaultRadio = parentLi.querySelector('input[name="default_value_' + fieldId + '"]'); + if (defaultRadio !== null) { + defaultRadio.value = input.value; + } + } + + /** + * If separate values are not enabled, change the saved value when + * the displayed value is changed. + */ + function changeHiddenSeparateValue(input) { + var savedVal, + parentLi = getOptionParent(input), + key = parentLi.getAttribute('data-optkey'), + fieldId = getOptionFieldId(parentLi, key), + sep = document.getElementById('separate_value_' + fieldId); + if (sep !== null && sep.checked === false) { + // If separate values are not turned on. + savedVal = document.getElementById('field_key_' + fieldId + '-' + key); + savedVal.value = input.value; + changeDefaultRadioValue(savedVal); + } + } + function getOptionParent(input) { + var parentLi = input.parentNode; + if (parentLi.tagName !== 'LI') { + parentLi = parentLi.parentNode; + } + return parentLi; + } + function getOptionFieldId(li, key) { + var liId = li.id; + return liId.replace('frm_delete_field_', '').replace('-' + key + '_container', ''); + } + function submitBuild() { + /*jshint validthis:true */ + var $thisEle = this; + if (showNameYourFormModal()) { + return; + } + preFormSave(this); + var $form = jQuery(builderForm); + var v = JSON.stringify($form.serializeArray()); + jQuery(document.getElementById('frm_compact_fields')).val(v); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_save_form', + frm_compact_fields: v, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + afterFormSave($thisEle); + var $postStuff = document.getElementById('post-body-content'); + var $html = document.createElement('div'); + $html.setAttribute('class', 'frm_updated_message'); + $html.innerHTML = msg; + $postStuff.insertBefore($html, $postStuff.firstChild); + reloadIfAddonActivatedAjaxSubmitOnly(); + }, + error: function error() { + triggerSubmit(document.getElementById('frm_js_build_form')); + } + }); + } + function triggerSubmit(form) { + var button = form.ownerDocument.createElement('input'); + button.style.display = 'none'; + button.type = 'submit'; + form.appendChild(button).click(); + form.removeChild(button); + } + function triggerChange(element) { + jQuery(element).trigger('change'); + } + function submitNoAjax() { + /*jshint validthis:true */ + var form; + if (showNameYourFormModal()) { + return; + } + preFormSave(this); + form = jQuery(builderForm); + jQuery(document.getElementById('frm_compact_fields')).val(JSON.stringify(form.serializeArray())); + triggerSubmit(document.getElementById('frm_js_build_form')); + } + + /** + * Display a modal dialog for naming a new form template, if applicable. + * + * @return {boolean} True if the modal is successfully initialized and displayed; false otherwise. + */ + function showNameYourFormModal() { + // Exit early if the 'new_template' URL parameter is not set to 'true' + if (!shouldShowNameYourFormNameModal()) { + return false; + } + var modalWidget = initModal('#frm-form-templates-modal', '440px'); + if (!modalWidget) { + return false; + } + + // Set the vertical offset for the modal and open it + offsetModalY(modalWidget, '72px'); + modalWidget.dialog('open'); + return true; + } + + /** + * Returns true if 'Name Your Form' modal should be displayed. + * + * @return {Boolean} + */ + function shouldShowNameYourFormNameModal() { + var _document$querySelect3; + var formNameInput = document.getElementById('frm_form_name'); + if (formNameInput && formNameInput.value.trim() !== '') { + return false; + } + return 'true' === urlParams.get('new_template') && ((_document$querySelect3 = document.querySelector('#frm_top_bar #frm_bs_dropdown .frm_bstooltip')) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.textContent.trim()) === frm_admin_js.noTitleText; // eslint-disable-line camelcase + } + + /** + * Manages event handling for the 'Name your form' modal. + * + * Attaches click and keydown event listeners to the save button and input field. + * + * @return {void} + */ + function addFormNameModalEvents() { + var saveFormNameButton = document.getElementById('frm-save-form-name-button'); + var newFormNameInput = document.getElementById('frm_new_form_name_input'); + + // Attach click event listener + onClickPreventDefault(saveFormNameButton, onSaveFormNameButton); + + // Attach keydown event listener + newFormNameInput.addEventListener('keydown', function (event) { + if (event.key === 'Enter') { + onSaveFormNameButton.call(this, event); + } + }); + } + + /** + * Handles the click event on the save form name button. + * + * @param {Event} event The click event object. + * @return {void} + */ + var onSaveFormNameButton = function onSaveFormNameButton(event) { + var newFormName = document.getElementById('frm_new_form_name_input').value.trim(); + + // Prepare FormData for the POST request + var formData = new FormData(); + formData.append('form_id', urlParams.get('id')); + formData.append('form_name', newFormName); + + // Perform the POST request + doJsonPost('rename_form', formData).then(function (data) { + // Remove the 'new_template' parameter from the URL and update the browser history + urlParams.delete('new_template'); + currentURL.search = urlParams.toString(); + history.replaceState({}, '', currentURL.toString()); + if (null !== document.getElementById('frm_notification_settings')) { + document.getElementById('frm_form_name').value = newFormName; + document.getElementById('frm_form_key').value = data.form_key; + } + + // Trigger the 'Save' button click using jQuery + jQuery('#frm-publishing').find('.frm_button_submit').trigger('click'); + }); + }; + function preFormSave(b) { + removeWPUnload(); + if (jQuery('form.inplace_form').length) { + jQuery('.inplace_save, .postbox').trigger('click'); + } + if (b.classList.contains('frm_button_submit')) { + b.classList.add('frm_loading_form'); + } else { + b.classList.add('frm_loading_button'); + } + b.setAttribute('aria-busy', 'true'); + adjustFormatInputBeforeSave(); + } + + /** + * Updates the format input based on the selected format type from dropdowns during the form save process. + * + * @since 6.9 + * + * @return {void} + */ + function adjustFormatInputBeforeSave() { + var formatTypes = document.querySelectorAll('.frm_format_dropdown, .frm_phone_type_dropdown'); + var valueMap = { + none: '', + international: 'international', + currency: 'currency', + number: 'number' + }; + formatTypes.forEach(function (formatType) { + var value = formatType.value; + if (value in valueMap) { + var formatInput = document.getElementById("frm_format_".concat(formatType.dataset.fieldId)); + formatInput.value = valueMap[value]; + } + }); + } + function afterFormSave(button) { + button.classList.remove('frm_loading_form'); + button.classList.remove('frm_loading_button'); + resetOptionTextDetails(); + fieldsUpdated = 0; + button.setAttribute('aria-busy', 'false'); + setTimeout(function () { + jQuery('.frm_updated_message').fadeOut('slow', function () { + this.parentNode.removeChild(this); + }); + }, 5000); + } + function initUpgradeModal() { + var $info = initModal('#frm_upgrade_modal'); + if ($info === false) { + return; + } + document.addEventListener('click', handleUpgradeClick); + frmDom.util.documentOn('change', 'select.frm_select_with_upgrade', handleUpgradeClick); + function handleUpgradeClick(event) { + var element, link, content; + element = event.target; + if (!element.classList) { + return; + } + var showExpiredModal = element.classList.contains('frm_show_expired_modal') || null !== element.querySelector('.frm_show_expired_modal') || element.closest('.frm_show_expired_modal'); + + // If a `select` element is clicked, check if the selected option has a 'data-upgrade' attribute + if (event.type === 'change' && element.classList.contains('frm_select_with_upgrade')) { + var selectedOption = element.options[element.selectedIndex]; + if (selectedOption && selectedOption.dataset.upgrade) { + element = selectedOption; + } + } + if (!element.dataset.upgrade) { + var parent = element.closest('[data-upgrade]'); + if (!parent) { + parent = element.closest('.frm_field_box'); + if (!parent) { + return; + } + // Fake it if it's missing to avoid error. + element.dataset.upgrade = ''; + } + element = parent; + } + if (showExpiredModal) { + var hookName = 'frm_show_expired_modal'; + wp.hooks.doAction(hookName, element); + return; + } + var upgradeLabel = element.dataset.upgrade; + if (!upgradeLabel || element.classList.contains('frm_show_upgrade_tab')) { + return; + } + event.preventDefault(); + var modal = $info.get(0); + var lockIcon = modal.querySelector('.frm_lock_icon'); + if (lockIcon) { + lockIcon.style.display = 'block'; + lockIcon.classList.remove('frm_lock_open_icon'); + lockIcon.querySelector('use').setAttribute('href', '#frm_lock_icon'); + } + var upgradeImageId = 'frm_upgrade_modal_image'; + var oldImage = document.getElementById(upgradeImageId); + if (oldImage) { + oldImage.remove(); + } + if (element.dataset.image) { + if (lockIcon) { + lockIcon.style.display = 'none'; + } + lockIcon.parentNode.insertBefore(img({ + id: upgradeImageId, + src: frmGlobal.url + '/images/' + element.dataset.image + }), lockIcon); + } + var level = modal.querySelector('.license-level'); + if (level) { + level.textContent = getRequiredLicenseFromTrigger(element); + } + + // If one click upgrade, hide other content + addOneClick(element, 'modal', upgradeLabel); + modal.querySelector('.frm_are_not_installed').style.display = element.dataset.image ? 'none' : 'inline-block'; + modal.querySelector('.frm_feature_label').textContent = upgradeLabel; + modal.querySelector('h2').style.display = 'block'; + $info.dialog('open'); + + // set the utm medium + var button = modal.querySelector('.button-primary:not(.frm-oneclick-button)'); + link = button.getAttribute('href').replace(/(medium=)[a-z_-]+/ig, '$1' + element.getAttribute('data-medium')); + content = element.getAttribute('data-content'); + if (content === null) { + content = ''; + } + link = link.replace(/(content=)[a-z_-]+/ig, '$1' + content); + button.setAttribute('href', link); + } + } + + /** + * Opens a basic modal with the given title and content. + * + * @param {Event} event The event object. + * @return {void} + */ + function showBasicModal(event) { + var _event$target$dataset; + var button = (_event$target$dataset = event.target.dataset) !== null && _event$target$dataset !== void 0 && _event$target$dataset.modalTitle ? event.target : event.target.closest('[data-modal-title]'); + if (!button) { + return; + } + var _button$dataset = button.dataset, + modalTitle = _button$dataset.modalTitle, + modalContent = _button$dataset.modalContent; + if (!modalTitle || !modalContent) { + return; + } + event.preventDefault(); + frmDom.modal.maybeCreateModal('frmBasicModal', { + title: modalTitle, + content: div({ + className: 'inside', + child: span(modalContent) + }) + }); + } + function getRequiredLicenseFromTrigger(element) { + if (element.dataset.requires) { + return element.dataset.requires; + } + return 'Pro'; + } + function populateUpgradeTab(element) { + var title = element.dataset.upgrade; + var tab = element.getAttribute('href').replace('#', ''); + var container = document.querySelector('.frm_' + tab) || document.querySelector('.' + tab); + if (!container) { + return; + } + if (container.querySelector('.frm-upgrade-message')) { + // Tab has already been populated. + return; + } + var h2 = container.querySelector('h2'); + h2.style.borderBottom = 'none'; + + /* translators: %s: Form Setting section name (ie Form Permissions, Form Scheduling). */ + h2.textContent = sprintf(__('%s are not installed', 'formidable'), title); + container.classList.add('frmcenter'); + var upgradeModal = document.getElementById('frm_upgrade_modal'); + appendClonedModalElementToContainer('frm-oneclick'); + appendClonedModalElementToContainer('frm-addon-status'); + + // Borrow the call to action from the Upgrade upgradeModal which should exist on the settings page (it is still used for other upgrades including Actions). + var upgradeModalLink = upgradeModal.querySelector('.frm-upgrade-link'); + if (upgradeModalLink) { + var upgradeButton = upgradeModalLink.cloneNode(true); + var level = upgradeButton.querySelector('.license-level'); + if (level) { + level.textContent = getRequiredLicenseFromTrigger(element); + } + container.appendChild(upgradeButton); + + // Maybe append the secondary "Already purchased?" link from the upgradeModal as well. + if (upgradeModalLink.nextElementSibling && upgradeModalLink.nextElementSibling.querySelector('.frm-link-secondary')) { + container.appendChild(upgradeModalLink.nextElementSibling.cloneNode(true)); + } + appendClonedModalElementToContainer('frm-oneclick-button'); + } + appendClonedModalElementToContainer('frm-upgrade-message'); + var upgradeLabel = element.dataset.message; + if (upgradeLabel === undefined) { + upgradeLabel = element.dataset.upgrade; + } + addOneClick(element, 'tab', upgradeLabel); + if (element.dataset.screenshot) { + container.appendChild(getScreenshotWrapper(element.dataset.screenshot)); + } + function appendClonedModalElementToContainer(className) { + container.appendChild(upgradeModal.querySelector('.' + className).cloneNode(true)); + } + } + function getScreenshotWrapper(screenshot) { + var folderUrl = frmGlobal.url + '/images/screenshots/'; + var wrapper = div({ + className: 'frm-settings-screenshot-wrapper', + children: [getToolbar(), div({ + child: img({ + src: folderUrl + screenshot + }) + })] + }); + function getToolbar() { + var children = getColorIcons(); + children.push(img({ + src: frmGlobal.url + '/images/tab.svg' + })); + return div({ + className: 'frm-settings-screenshot-toolbar', + children: children + }); + } + function getColorIcons() { + return ['#ED8181', '#EDE06A', '#80BE30'].map(function (color) { + var circle = div({ + className: 'frm-minmax-icon' + }); + circle.style.backgroundColor = color; + return circle; + }); + } + return wrapper; + } + + /** + * Allow addons to be installed from the upgrade modal. + * + * @param {Element} link + * @param {string} context Either 'modal' or 'tab'. + * @param {string|undefined} upgradeLabel + */ + function addOneClick(link, context, upgradeLabel) { + var container; + if ('modal' === context) { + container = document.getElementById('frm_upgrade_modal'); + } else if ('tab' === context) { + container = document.getElementById(link.getAttribute('href').substr(1)); + } else { + return; + } + var oneclickMessage = container.querySelector('.frm-oneclick'); + var upgradeMessage = container.querySelector('.frm-upgrade-message'); + var showLink = container.querySelector('.frm-upgrade-link'); + var button = container.querySelector('.frm-oneclick-button'); + var addonStatus = container.querySelector('.frm-addon-status'); + var oneclick = link.getAttribute('data-oneclick'); + var newMessage = link.getAttribute('data-message'); + var showIt = 'block'; + var showMsg = 'block'; + var hideIt = 'none'; + + // If one click upgrade, hide other content. + if (oneclickMessage !== null && typeof oneclick !== 'undefined' && oneclick) { + if (newMessage === null) { + showMsg = 'none'; + } + showIt = 'none'; + hideIt = 'block'; + oneclick = JSON.parse(oneclick); + button.className = button.className.replace(' frm-install-addon', '').replace(' frm-activate-addon', ''); + button.className = button.className + ' ' + oneclick.class; + button.rel = oneclick.url; + if (oneclick.class === 'frm-activate-addon') { + oneclickMessage.textContent = __('This plugin is not activated. Would you like to activate it now?', 'formidable'); + button.textContent = __('Activate', 'formidable'); + } else { + oneclickMessage.textContent = __('That add-on is not installed. Would you like to install it now?', 'formidable'); + button.textContent = __('Install', 'formidable'); + } + } + if (!newMessage) { + newMessage = upgradeMessage.getAttribute('data-default'); + } + if (undefined !== upgradeLabel) { + newMessage = newMessage.replace('', upgradeLabel); + } + upgradeMessage.innerHTML = newMessage; + if (link.dataset.upsellImage) { + upgradeMessage.appendChild(img({ + src: link.dataset.upsellImage, + alt: link.dataset.upgrade + })); + } + + // Either set the link or use the default. + showLink.href = getShowLinkHrefValue(link, showLink); + addonStatus.style.display = 'none'; + oneclickMessage.style.display = hideIt; + button.style.display = hideIt === 'block' ? 'inline-block' : hideIt; + upgradeMessage.style.display = showMsg; + showLink.style.display = showIt === 'block' ? 'inline-block' : showIt; + } + function getShowLinkHrefValue(link, showLink) { + var customLink = link.getAttribute('data-link'); + if (customLink === null || typeof customLink === 'undefined' || customLink === '') { + customLink = showLink.getAttribute('data-default'); + } + return customLink; + } + + /* Form settings */ + + function showInputIcon(parentClass) { + if (typeof parentClass === 'undefined') { + parentClass = ''; + } + maybeAddFieldSelection(parentClass); + jQuery(parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) input,' + parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) textarea').wrap('').before(''); + } + + /** + * For reverse compatibility. Check for fields that were + * using the old sidebar. + */ + function maybeAddFieldSelection(parentClass) { + var i, + missingClass = jQuery(parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_message, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_to, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_subject'); + for (i = 0; i < missingClass.length; i++) { + missingClass[i].parentNode.classList.add('frm_has_shortcodes'); + } + } + function showSuccessOpt() { + /*jshint validthis:true */ + var c = 'success'; + if (this.name === 'options[edit_action]') { + c = 'edit'; + } + var v = jQuery(this).val(); + jQuery('.' + c + '_action_box').hide(); + if (v === 'redirect') { + jQuery('.' + c + '_action_redirect_box.' + c + '_action_box').fadeIn('slow'); + } else if (v === 'page') { + jQuery('.' + c + '_action_page_box.' + c + '_action_box').fadeIn('slow'); + } else { + jQuery('.' + c + '_action_message_box.' + c + '_action_box').fadeIn('slow'); + } + } + function copyFormAction(event) { + if (waitForActionToLoadBeforeCopy(event.target)) { + return; + } + var targetSettings = event.target.closest('.frm_form_action_settings'); + var wysiwygs = targetSettings.querySelectorAll('.wp-editor-area'); + if (wysiwygs.length) { + // Temporary remove TinyMCE before cloning to avoid TinyMCE conflicts. + wysiwygs.forEach(function (wysiwyg) { + tinymce.EditorManager.execCommand('mceRemoveEditor', true, wysiwyg.id); + }); + } + var $action = jQuery(targetSettings).clone(); + var currentID = $action.attr('id').replace('frm_form_action_', ''); + var newID = newActionId(currentID); + $action.find('.frm_action_id, .frm-btn-group').remove(); + $action.find('input[name$="[' + currentID + '][ID]"]').val(''); + $action.find('.widget-inside').hide(); + + // the .html() gets original values, so they need to be set + $action.find('input[type=text], textarea, input[type=number]').prop('defaultValue', function () { + return this.value; + }); + $action.find('input[type=checkbox], input[type=radio]').prop('defaultChecked', function () { + return this.checked; + }); + var rename = new RegExp('\\[' + currentID + '\\]', 'g'); + var reid = new RegExp('_' + currentID + '"', 'g'); + var reclass = new RegExp('-' + currentID + '"', 'g'); + var revalue = new RegExp('"' + currentID + '"', 'g'); // if a field id matches, this could cause trouble + + var html = $action.html().replace(rename, '[' + newID + ']').replace(reid, '_' + newID + '"'); + html = html.replace(reclass, '-' + newID + '"').replace(revalue, '"' + newID + '"'); + var newAction = div({ + id: 'frm_form_action_' + newID, + className: $action.get(0).className + }); + newAction.setAttribute('data-actionkey', newID); + newAction.innerHTML = html; + newAction.querySelectorAll('.wp-editor-wrap, .wp-editor-wrap *').forEach(function (element) { + if ('string' === typeof element.className) { + element.className = element.className.replace(currentID, newID); + } + element.id = element.id.replace(currentID, newID); + }); + newAction.classList.remove('open'); + document.getElementById('frm_notification_settings').appendChild(newAction); + if (wysiwygs.length) { + // Re-initialize the original wysiwyg which was removed before cloning. + wysiwygs.forEach(function (wysiwyg) { + frmDom.wysiwyg.init(wysiwyg); + }); + newAction.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { + frmDom.wysiwyg.init(wysiwyg); + }); + } + if (newAction.classList.contains('frm_single_on_submit_settings')) { + var autocompleteInput = newAction.querySelector('input.frm-page-search'); + if (autocompleteInput) { + initAutocomplete(newAction); + } + } + initiateMultiselect(); + var hookName = 'frm_after_duplicate_action'; + wp.hooks.doAction(hookName, newAction); + } + function waitForActionToLoadBeforeCopy(element) { + var $trigger = jQuery(element), + $original = $trigger.closest('.frm_form_action_settings'), + $inside = $original.find('.widget-inside'), + $top; + if ($inside.find('p, div, table').length) { + return false; + } + $top = $original.find('.widget-top'); + $top.on('frm-action-loaded', function () { + $trigger.trigger('click'); + $original.removeClass('open'); + $inside.hide(); + }); + $top.trigger('click'); + return true; + } + function newActionId(currentID) { + var newID = parseInt(currentID, 10) + 11; + var exists = document.getElementById('frm_form_action_' + newID); + if (exists !== null) { + newID++; + newID = newActionId(newID); + } + return newID; + } + function addFormAction() { + /*jshint validthis:true */ + var type = jQuery(this).data('actiontype'); + if (isAtLimitForActionType(type)) { + return; + } + var actionId = getNewActionId(); + var formId = thisFormId; + var placeholderSetting = document.createElement('div'); + placeholderSetting.classList.add('frm_single_' + type + '_settings'); + var actionsList = document.getElementById('frm_notification_settings'); + actionsList.appendChild(placeholderSetting); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_form_action', + type: type, + list_id: actionId, + form_id: formId, + nonce: frmGlobal.nonce + }, + success: handleAddFormActionSuccess + }); + function handleAddFormActionSuccess(html) { + fieldUpdated(); + placeholderSetting.remove(); + closeOpenActions(); + var newActionContainer = div(); + newActionContainer.innerHTML = html; + var widgetTop = newActionContainer.querySelector('.widget-top'); + Array.from(newActionContainer.children).forEach(function (child) { + return actionsList.appendChild(child); + }); + jQuery('.frm_form_action_settings').fadeIn('slow'); + var newAction = document.getElementById('frm_form_action_' + actionId); + newAction.classList.add('open'); + document.getElementById('post-body-content').scroll({ + top: newAction.offsetTop + 10, + left: 0, + behavior: 'smooth' + }); + + // Check if icon should be active + checkActiveAction(type); + showInputIcon('#frm_form_action_' + actionId); + initiateMultiselect(); + initAutocomplete(newAction); + if (widgetTop) { + jQuery(widgetTop).trigger('frm-action-loaded'); + } + + /** + * Fires after added a new form action. + * + * @since 5.5.4 + * + * @param {HTMLElement} formAction Form action element. + */ + frmAdminBuild.hooks.doAction('frm_added_form_action', newAction); + } + } + function closeOpenActions() { + document.querySelectorAll('.frm_form_action_settings.open').forEach(function (setting) { + return setting.classList.remove('open'); + }); + } + function toggleActionGroups() { + /*jshint validthis:true */ + var actions = document.getElementById('frm_email_addon_menu').classList, + search = document.getElementById('actions-search-input'); + if (actions.contains('frm-all-actions')) { + actions.remove('frm-all-actions'); + actions.add('frm-limited-actions'); + } else { + actions.add('frm-all-actions'); + actions.remove('frm-limited-actions'); + } + + // Reset search. + search.value = ''; + triggerEvent(search, 'input'); + } + function getNewActionId() { + var actionSettings = document.querySelectorAll('.frm_form_action_settings'), + len = getNewRowId(actionSettings, 'frm_form_action_'); + if (typeof document.getElementById('frm_form_action_' + len) !== 'undefined') { + len = len + 100; + } + if (lastNewActionIdReturned >= len) { + len = lastNewActionIdReturned + 1; + } + lastNewActionIdReturned = len; + return len; + } + function clickAction(obj) { + var $thisobj = jQuery(obj); + if (obj.className.indexOf('selected') !== -1) { + return; + } + if (obj.className.indexOf('edit_field_type_end_divider') !== -1 && $thisobj.closest('.edit_field_type_divider').hasClass('no_repeat_section')) { + return; + } + deselectFields(); + $thisobj.addClass('selected'); + showFieldOptions(obj); + } + + /** + * When a field is selected, show the field settings in the sidebar. + */ + function showFieldOptions(obj) { + var _document$querySelect4; + var i, + singleField, + fieldId = obj.getAttribute('data-fid'), + fieldType = obj.getAttribute('data-type'), + allFieldSettings = document.querySelectorAll('.frm-single-settings:not(.frm_hidden)'); + for (i = 0; i < allFieldSettings.length; i++) { + allFieldSettings[i].classList.add('frm_hidden'); + } + singleField = document.getElementById('frm-single-settings-' + fieldId); + moveFieldSettings(singleField); + if (fieldType && 'quantity' === fieldType) { + popProductFields(jQuery(singleField).find('.frmjs_prod_field_opt')[0]); + } + + // Scroll settings panel to top + (_document$querySelect4 = document.querySelector('.frm-settings-panel.frm-scrollbar-wrapper')) === null || _document$querySelect4 === void 0 || _document$querySelect4.scrollTo({ + top: 0, + behavior: 'instant' + }); + singleField.classList.remove('frm_hidden'); + document.getElementById('frm-options-panel-tab').click(); + var editor = singleField.querySelector('.wp-editor-area'); + if (editor) { + frmDom.wysiwyg.init(editor, { + setupCallback: setupTinyMceEventHandlers + }); + } + wp.hooks.doAction('frmShowedFieldSettings', obj, singleField); + maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField); + } + function maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField) { + var _singleField$querySel; + if (!shouldAddShortcodesModalTriggerIcon(fieldType)) { + return; + } + var fieldSettingsSelector = '#frm-single-settings-' + fieldId; + if (document.querySelector(fieldSettingsSelector + ' .frm-show-box')) { + return; + } + (_singleField$querySel = singleField.querySelector('.wp-editor-container')) === null || _singleField$querySel === void 0 || _singleField$querySel.classList.add('frm_has_shortcodes'); + var wrapTextareaWithIconContainer = function wrapTextareaWithIconContainer() { + var textareas = document.querySelectorAll(fieldSettingsSelector + ' .frm_has_shortcodes textarea'); + textareas.forEach(function (textarea) { + var wrapperSpan = span({ + className: 'frm-with-right-icon' + }); + textarea.parentNode.insertBefore(wrapperSpan, textarea); + wrapperSpan.appendChild(createModalTriggerIcon()); + wrapperSpan.appendChild(textarea); + }); + }; + var createModalTriggerIcon = function createModalTriggerIcon() { + return frmDom.svg({ + href: '#frm_more_horiz_solid_icon', + classList: ['frm-show-box'] + }); + }; + wrapTextareaWithIconContainer(); + } + function shouldAddShortcodesModalTriggerIcon(fieldType) { + var fieldsWithShortcodesBox = wp.hooks.applyFilters('frm_fields_with_shortcode_popup', ['html']); + return fieldsWithShortcodesBox.includes(fieldType); + } + function setupTinyMceEventHandlers(editor) { + editor.on('Change', function () { + handleTinyMceChange(editor); + }); + } + function handleTinyMceChange(editor) { + if (!isTinyMceActive() || tinyMCE.activeEditor.isHidden()) { + return; + } + editor.targetElm.value = editor.getContent(); + jQuery(editor.targetElm).trigger('change'); + } + function isTinyMceActive() { + var activeSettings, wrapper; + activeSettings = document.querySelector('.frm-single-settings:not(.frm_hidden)'); + if (!activeSettings) { + return false; + } + wrapper = activeSettings.querySelector('.wp-editor-wrap'); + return null !== wrapper && wrapper.classList.contains('tmce-active'); + } + + /** + * Move the settings to the sidebar the first time they are changed or selected. + * Keep the end marker at the end of the form. + */ + function moveFieldSettings(singleField) { + var self = this; + if (singleField === null) { + // The field may have not been loaded yet via ajax. + return; + } + this.fragment = document.createDocumentFragment(); + this.initOnceInAllInstances = function () { + if ('undefined' !== typeof moveFieldSettings.prototype.endMarker) { + return; + } + // perform a single search in the DOM and use it across all moveFieldSettings instances + moveFieldSettings.prototype.endMarker = document.getElementById('frm-end-form-marker'); + }; + this.append = function (field) { + var classname = null !== field ? field.parentElement.classList : ''; + if (null === field || !classname.contains('frm_field_box') && !classname.contains('divider_section_only')) { + return; + } + self.fragment.appendChild(field); + }; + this.moveFields = function () { + builderForm.insertBefore(self.fragment, moveFieldSettings.prototype.endMarker); + }; + this.initOnceInAllInstances(); + + // Move the field if function is called as function with a singleField passed as arg. + // In this particular case only 1 field is needed to be moved so the field will get instantly moved. + // "singleField" may be undefined when it's called as a constructor instead of a function. Use the constructor to add multiple fields which are passed through "append" and move these all at once via "moveFields". + if ('undefined' !== typeof singleField) { + this.append(singleField); + this.moveFields(); + return; + } + return { + append: this.append, + moveFields: this.moveFields + }; + } + function showEmailRow() { + /*jshint validthis:true */ + var actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'); + var rowType = this.getAttribute('data-emailrow'); + jQuery('#frm_form_action_' + actionKey + ' .frm_' + rowType + '_row').fadeIn('slow'); + jQuery(this).fadeOut('slow'); + } + function hideEmailRow() { + /*jshint validthis:true */ + var actionBox = jQuery(this).closest('.frm_form_action_settings'), + rowType = this.getAttribute('data-emailrow'), + emailRowSelector = '.frm_' + rowType + '_row', + emailButtonSelector = '.frm_' + rowType + '_button'; + jQuery(actionBox).find(emailButtonSelector).fadeIn('slow'); + jQuery(actionBox).find(emailRowSelector).fadeOut('slow', function () { + jQuery(actionBox).find(emailRowSelector + ' input').val(''); + }); + } + function showEmailWarning() { + /*jshint validthis:true */ + var actionBox = jQuery(this).closest('.frm_form_action_settings'), + emailRowSelector = '.frm_from_to_match_row', + fromVal = actionBox.find('input[name$="[post_content][from]"]').val(), + toVal = actionBox.find('input[name$="[post_content][email_to]"]').val(); + if (fromVal === toVal) { + jQuery(actionBox).find(emailRowSelector).fadeIn('slow'); + } else { + jQuery(actionBox).find(emailRowSelector).fadeOut('slow'); + } + } + function checkActiveAction(type) { + var actionTriggers = document.querySelectorAll('.frm_' + type + '_action'); + if (isAtLimitForActionType(type)) { + var addAlreadyUsedClass = getLimitForActionType(type) > 0; + markActionTriggersInactive(actionTriggers, addAlreadyUsedClass); + return; + } + markActionTriggersActive(actionTriggers); + } + function markActionTriggersActive(triggers) { + triggers.forEach(function (trigger) { + if (trigger.querySelector('.frm_show_upgrade')) { + // Prevent disabled action becoming active. + return; + } + trigger.classList.remove('frm_inactive_action', 'frm_already_used'); + trigger.classList.add('frm_active_action'); + }); + } + function markActionTriggersInactive(triggers, addAlreadyUsedClass) { + triggers.forEach(function (trigger) { + trigger.classList.remove('frm_active_action'); + trigger.classList.add('frm_inactive_action'); + if (addAlreadyUsedClass) { + trigger.classList.add('frm_already_used'); + } + }); + } + function isAtLimitForActionType(type) { + var atLimit = getNumberOfActionsForType(type) >= getLimitForActionType(type); + var hookName = 'frm_action_at_limit'; + var hookArgs = { + type: type + }; + atLimit = wp.hooks.applyFilters(hookName, atLimit, hookArgs); + return atLimit; + } + function getLimitForActionType(type) { + return parseInt(jQuery('.frm_' + type + '_action').data('limit'), 10); + } + function getNumberOfActionsForType(type) { + return jQuery('.frm_single_' + type + '_settings').length; + } + function actionLimitMessage() { + var message = frmAdminJs.only_one_action; + var limit = this.dataset.limit; + if ('undefined' !== typeof limit) { + limit = parseInt(limit); + if (limit > 1) { + message = message.replace(1, limit).trim(); + } else { + message += ' ' + frmAdminJs.edit_action_text; + } + } + infoModal(message); + } + function addFormLogicRow() { + /*jshint validthis:true */ + var id = jQuery(this).data('emailkey'); + var type = jQuery(this).closest('.frm_form_action_settings').find('.frm_action_name').val(); + var formId = document.getElementById('form_id').value; + var logicRowsContainer = document.getElementById('frm_logic_row_' + id); + var logicRows = logicRowsContainer.querySelectorAll('.frm_logic_row'); + var newRowID = getNewRowId(logicRows, 'frm_logic_' + id + '_'); + var placeholder = div({ + id: 'frm_logic_' + id + '_' + newRowID, + className: 'frm_logic_row frm_hidden' + }); + logicRowsContainer.appendChild(placeholder); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_form_logic_row', + email_id: id, + form_id: formId, + meta_name: newRowID, + type: type, + nonce: frmGlobal.nonce + }, + success: function success(html) { + jQuery(document.getElementById('logic_link_' + id)).fadeOut('slow', function () { + placeholder.insertAdjacentHTML('beforebegin', html); + placeholder.remove(); + + // Show conditional logic options after "Add Conditional Logic" is clicked. + jQuery(logicRowsContainer).parent('.frm_logic_rows').fadeIn('slow'); + }); + } + }); + return false; + } + function checkDupPost() { + /*jshint validthis:true */ + var postField = jQuery('select.frm_single_post_field'); + postField.css('border-color', ''); + var $t = this; + var v = jQuery($t).val(); + if (v === '' || v === 'checkbox') { + return false; + } + postField.each(function () { + if (jQuery(this).val() === v && this.name !== $t.name) { + this.style.borderColor = 'red'; + jQuery($t).val(''); + infoModal(frmAdminJs.field_already_used); + return false; + } + }); + } + function togglePostContent() { + /*jshint validthis:true */ + var v = jQuery(this).val(); + if ('' === v) { + jQuery('.frm_post_content_opt, select.frm_dyncontent_opt').hide().val(''); + jQuery('.frm_dyncontent_opt').hide(); + } else if ('post_content' === v) { + jQuery('.frm_post_content_opt').show(); + jQuery('.frm_dyncontent_opt').hide(); + jQuery('select.frm_dyncontent_opt').val(''); + } else { + jQuery('.frm_post_content_opt').hide().val(''); + jQuery('select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt').show(); + } + } + function fillDyncontent() { + /*jshint validthis:true */ + var v = jQuery(this).val(); + var $dyn = jQuery(document.getElementById('frm_dyncontent')); + if ('' === v || 'new' === v) { + $dyn.val(''); + jQuery('.frm_dyncontent_opt').show(); + } else { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_display_get_content', + id: v, + nonce: frmGlobal.nonce + }, + success: function success(val) { + $dyn.val(val); + jQuery('.frm_dyncontent_opt').show(); + } + }); + } + } + function switchPostType() { + /*jshint validthis:true */ + // update all rows of categories/taxonomies + var curSelect, + newSelect, + catRows = document.getElementById('frm_posttax_rows').childNodes, + postParentField = document.querySelector('.frm_post_parent_field'), + postMenuOrderField = document.querySelector('.frm_post_menu_order_field'), + postType = this.value; + + // Get new category/taxonomy options + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_replace_posttax_options', + post_type: postType, + nonce: frmGlobal.nonce + }, + success: function success(html) { + // Loop through each category row, and replace the first dropdown + for (i = 0; i < catRows.length; i++) { + // Check if current element is a div + if (catRows[i].tagName !== 'DIV') { + continue; + } + + // Get current category select + curSelect = catRows[i].getElementsByTagName('select')[0]; + + // Set up new select + newSelect = document.createElement('select'); + newSelect.innerHTML = html; + newSelect.className = curSelect.className; + newSelect.name = curSelect.name; + + // Replace the old select with the new select + catRows[i].replaceChild(newSelect, curSelect); + } + } + }); + + // Get new post parent option. + if (postParentField) { + getActionOption(postParentField, postType, 'frm_get_post_parent_option', function (response, optName) { + // The replaced string is declared in FrmProFormActionController::ajax_get_post_menu_order_option() in the pro version. + postParentField.querySelector('.frm_post_parent_opt_wrapper').innerHTML = response.replaceAll('REPLACETHISNAME', optName); + initAutocomplete(postParentField); + }); + } + if (postMenuOrderField) { + getActionOption(postMenuOrderField, postType, 'frm_should_use_post_menu_order_option'); + } + } + function getActionOption(field, postType, action, successHandler) { + var opt = field.querySelector('.frm_autocomplete_value_input') || field.querySelector('select'), + optName = opt.getAttribute('name'); + jQuery.ajax({ + url: ajaxurl, + method: 'POST', + data: { + action: action, + post_type: postType, + _wpnonce: frmGlobal.nonce + }, + success: function success(response) { + if ('string' !== typeof response) { + console.error(response); + return; + } + if ('0' === response) { + // This post type does not support this field. + field.classList.add('frm_hidden'); + field.value = ''; + return; + } + field.classList.remove('frm_hidden'); + if ('function' === typeof successHandler) { + successHandler(response, optName); + } + }, + error: function error(response) { + return console.error(response); + } + }); + } + function addPosttaxRow() { + /*jshint validthis:true */ + addPostRow('tax', this); + } + function addPostmetaRow() { + /*jshint validthis:true */ + addPostRow('meta', this); + } + function addPostRow(type, button) { + var name, + id = jQuery('input[name="id"]').val(), + settings = jQuery(button).closest('.frm_form_action_settings'), + key = settings.data('actionkey'), + postType = settings.find('.frm_post_type').val(), + metaName = 0, + postTypeRows = document.querySelectorAll('.frm_post' + type + '_row'); + if (postTypeRows.length) { + name = postTypeRows[postTypeRows.length - 1].id.replace('frm_post' + type + '_', ''); + if (isNumeric(name)) { + metaName = 1 + parseInt(name, 10); + } else { + metaName = 1; + } + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_post' + type + '_row', + form_id: id, + meta_name: metaName, + tax_key: metaName, + post_type: postType, + action_key: key, + nonce: frmGlobal.nonce + }, + success: function success(html) { + var cfOpts, optIndex; + jQuery(document.getElementById('frm_post' + type + '_rows')).append(html); + jQuery('.frm_add_post' + type + '_row.button').hide(); + if (type === 'meta') { + jQuery('.frm_name_value').show(); + cfOpts = document.querySelectorAll('.frm_toggle_cf_opts'); + for (optIndex = 0; optIndex < cfOpts.length - 1; ++optIndex) { + cfOpts[optIndex].style.display = 'none'; + } + } else if (type === 'tax') { + jQuery('.frm_posttax_labels').show(); + } + } + }); + } + function isNumeric(value) { + return !isNaN(parseFloat(value)) && isFinite(value); + } + function changePosttaxRow() { + /*jshint validthis:true */ + if (!jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').length) { + return; + } + jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').html('
          '); + var postType = jQuery(this).closest('.frm_form_action_settings').find('select[name$="[post_content][post_type]"]').val(), + actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'), + taxKey = jQuery(this).closest('.frm_posttax_row').attr('id').replace('frm_posttax_', ''), + metaName = jQuery(this).val(), + showExclude = jQuery(document.getElementById(taxKey + '_show_exclude')).is(':checked') ? 1 : 0, + fieldId = jQuery('select[name$="[post_category][' + taxKey + '][field_id]"]').val(), + id = jQuery('input[name="id"]').val(); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_posttax_row', + form_id: id, + post_type: postType, + tax_key: taxKey, + action_key: actionKey, + meta_name: metaName, + field_id: fieldId, + show_exclude: showExclude, + nonce: frmGlobal.nonce + }, + success: function success(html) { + var $tax = jQuery(document.getElementById('frm_posttax_' + taxKey)); + $tax.replaceWith(html); + } + }); + } + function toggleCfOpts() { + /*jshint validthis:true */ + var row = jQuery(this).closest('.frm_postmeta_row'); + var cancel = row.find('.frm_cancelnew'); + var select = row.find('.frm_enternew'); + if (row.find('select.frm_cancelnew').is(':visible')) { + cancel.hide(); + select.show(); + } else { + cancel.show(); + select.hide(); + } + row.find('input.frm_enternew, select.frm_cancelnew').val(''); + return false; + } + function toggleFormOpts() { + /*jshint validthis:true */ + var changedOpt = jQuery(this); + var val = changedOpt.val(); + if (changedOpt.attr('type') === 'checkbox') { + if (this.checked === false) { + val = ''; + } + } + var toggleClass = changedOpt.data('toggleclass'); + if (val === '') { + jQuery('.' + toggleClass).hide(); + } else { + jQuery('.' + toggleClass).show(); + jQuery('.hide_' + toggleClass + '_' + val).hide(); + } + } + function submitSettings() { + if (showNameYourFormModal()) { + return; + } + + /*jshint validthis:true */ + preFormSave(this); + triggerSubmit(document.querySelector('.frm_form_settings')); + } + + /* Customization Panel */ + function insertCode(e) { + /*jshint validthis:true */ + e.preventDefault(); + insertFieldCode(jQuery(this), this.getAttribute('data-code')); + return false; + } + function insertFieldCode(element, variable) { + var rich = false, + elementId = element; + if (_typeof(element) === 'object') { + if (element.hasClass('frm_noallow')) { + return; + } + elementId = jQuery(element).closest('[data-fills]').attr('data-fills'); + if (typeof elementId === 'undefined') { + elementId = element.closest('div').attr('class'); + if (typeof elementId !== 'undefined') { + elementId = elementId.split(' ')[1]; + } + } + } + if (typeof elementId === 'undefined') { + var active = document.activeElement; + if (active.type === 'search') { + // If the search field has focus, find the correct field. + elementId = active.id.replace('-search-input', ''); + if (elementId.match(/\d/gi) === null) { + active = jQuery('.frm-single-settings:visible .' + elementId); + elementId = active.attr('id'); + } + } else { + elementId = active.id; + } + } + if (elementId) { + rich = jQuery('#wp-' + elementId + '-wrap.wp-editor-wrap').length > 0; + } + var contentBox = jQuery(document.getElementById(elementId)); + if (typeof element.attr('data-shortcode') === 'undefined' && (!contentBox.length || typeof contentBox.attr('data-shortcode') === 'undefined')) { + // this helps to exclude those that don't want shortcode-like inserted content e.g. frm-pro's summary field + var doShortcode = element.parents('ul.frm_code_list').attr('data-shortcode'); + if (doShortcode === 'undefined' || doShortcode !== 'no') { + variable = '[' + variable + ']'; + } + } + if (rich) { + wpActiveEditor = elementId; + } + if (!contentBox.length) { + return false; + } + if (variable === '[default-html]' || variable === '[default-plain]') { + var p = 0; + if (variable === '[default-plain]') { + p = 1; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_get_default_html', + form_id: jQuery('input[name="id"]').val(), + plain_text: p, + nonce: frmGlobal.nonce + }, + elementId: elementId, + success: function success(msg) { + if (rich) { + var _p = document.createElement('p'); + _p.innerText = msg; + send_to_editor(_p.innerHTML); + } else { + insertContent(contentBox, msg); + } + } + }); + } else { + variable = maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox); + if (rich) { + send_to_editor(variable); + } else { + insertContent(contentBox, variable); + } + } + return false; + } + function maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox) { + if ('object' !== _typeof(element) || !(element instanceof jQuery) || 0 !== contentBox[0].id.indexOf('success_url_')) { + return variable; + } + element = element[0]; + if (!element.closest('#frm-insert-fields-box')) { + // Only add sanitize_url=1 to field shortcodes. + return variable; + } + if (!element.parentNode.classList.contains('frm_insert_url')) { + variable = variable.replace(']', ' sanitize_url=1]'); + } + return variable; + } + function insertContent(contentBox, variable) { + if (document.selection) { + contentBox[0].focus(); + document.selection.createRange().text = variable; + } else { + obj = contentBox[0]; + var e = obj.selectionEnd; + variable = maybeFormatInsertedContent(contentBox, variable, obj.selectionStart, e); + obj.value = obj.value.substr(0, obj.selectionStart) + variable + obj.value.substr(obj.selectionEnd, obj.value.length); + var _s = e + variable.length; + maybeRemoveLayoutClasses(obj, variable); + obj.focus(); + obj.setSelectionRange(_s, _s); + } + triggerChange(contentBox); + } + + /** + * When a layout class is added, remove any previous layout classes to avoid conflicts. + * We only expect one layout class to exist for a given field. + * For example, if a field has frm_half and we set it to frm_third, frm_half will be removed. + * + * @since 6.11 + * + * @param {HTMLElement} obj + * @param {string} variable + * @return {void} + */ + function maybeRemoveLayoutClasses(obj, variable) { + if (!obj.classList.contains('frm_classes') || !isALayoutClass(variable)) { + return; + } + var removeClasses = obj.value.split(' ').filter(isALayoutClass); + if (removeClasses.length) { + obj.value = maybeRemoveClasses(obj.value, removeClasses, variable.trim()); + } + } + + /** + * Check if a given class is a layout class. + * + * @since 6.11 + * + * @param {string} className + * @return {boolean} + */ + function isALayoutClass(className) { + var layoutClasses = ['frm_half', 'frm_third', 'frm_two_thirds', 'frm_fourth', 'frm_three_fourths', 'frm_fifth', 'frm_sixth', 'frm2', 'frm3', 'frm4', 'frm6', 'frm8', 'frm9', 'frm10', 'frm12']; + return layoutClasses.includes(className.trim()); + } + + /** + * @since 6.11 + * + * @param {string} beforeValue + * @param {Array} removeClasses + * @param {string} variable + * @return {string} + */ + function maybeRemoveClasses(beforeValue, removeClasses, variable) { + var currentClasses = beforeValue.split(' ').filter(function (currentClass) { + currentClass = currentClass.trim(); + return currentClass.length && !removeClasses.includes(currentClass); + }); + if (!currentClasses.includes(variable)) { + currentClasses.push(variable); + } + return currentClasses.join(' '); + } + function maybeFormatInsertedContent(input, textToInsert, selectionStart, selectionEnd) { + var separator = input.data('sep'); + if (undefined === separator) { + return textToInsert; + } + var value = input.val(); + if (!value.trim().length) { + return textToInsert; + } + var startPattern = new RegExp(separator + '\\s*$'); + var endPattern = new RegExp('^\\s*' + separator); + if (value.substr(0, selectionStart).trim().length && false === startPattern.test(value.substr(0, selectionStart))) { + textToInsert = separator + textToInsert; + } + if (value.substr(selectionEnd, value.length).trim().length && false === endPattern.test(value.substr(selectionEnd, value.length))) { + textToInsert += separator; + } + return textToInsert; + } + function resetLogicBuilder() { + /*jshint validthis:true */ + var id = document.getElementById('frm-id-condition'), + key = document.getElementById('frm-key-condition'); + if (this.value === 'id') { + id.classList.remove('frm_hidden'); + key.classList.add('frm_hidden'); + triggerEvent(key, 'change'); + } else { + id.classList.add('frm_hidden'); + key.classList.remove('frm_hidden'); + triggerEvent(id, 'change'); + } + } + function setLogicExample() { + var field, + code, + idKey = document.getElementById('frm-id-key-condition-id').checked ? 'frm-id-condition' : 'frm-key-condition', + is = document.getElementById('frm-is-condition').value, + text = document.getElementById('frm-text-condition').value, + result = document.getElementById('frm-insert-condition'); + idKey = document.getElementById(idKey); + field = idKey.options[idKey.selectedIndex].value; + code = 'if ' + field + ' ' + is + '="' + text + '"]'; + result.setAttribute('data-code', code + frmAdminJs.conditional_text + '[/if ' + field); + result.innerHTML = '[' + code + '[/if ' + field + ']'; + } + function maybeShowModal(input) { + var moreIcon; + if (input.parentNode.parentNode.classList.contains('frm_has_shortcodes')) { + hideShortcodes(); + moreIcon = getIconForInput(input); + if (moreIcon.tagName === 'use') { + moreIcon = moreIcon.firstElementChild; + if (moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href').indexOf('frm_close_icon') === -1) { + showShortcodeBox(moreIcon, 'nofocus'); + } + } else if (!moreIcon.classList.contains('frm_close_icon')) { + showShortcodeBox(moreIcon, 'nofocus'); + } + } + } + function showShortcodes(e) { + /*jshint validthis:true */ + e.preventDefault(); + e.stopPropagation(); + showShortcodeBox(this); + } + + /** + * Handles 'change' event on the document. + * + * @since 6.16.3 + * + * @param {Event} event + * @return {void} + */ + function handleBuilderChangeEvent(event) { + maybeShowSaveAndReloadModal(event.target); + } + + /** + * Shows 'Save and Reload' modal if the target field's type is changed. + * + * @since 6.16.3 + * + * @param {HTMLElement} target + * @return {void} + */ + function maybeShowSaveAndReloadModal(target) { + var _document$querySelect5; + if (!target.id.startsWith('field_options_type_')) { + return; + } + var idParts = target.id.split('_'); + var fieldId = idParts.length && idParts[idParts.length - 1]; + if ((_document$querySelect5 = document.querySelector("#frm-single-settings-".concat(fieldId))) !== null && _document$querySelect5 !== void 0 && _document$querySelect5.classList.contains("frm-type-".concat(target.value))) { + // Do not show modal if the field type is reverted back to the original type when builder is loaded. + return; + } + showSaveAndReloadModal(); + } + + /** + * Shows 'Save and Reload' modal with the given message. + * + * @since 6.16.3 + * + * @param {string} message + * @return {void} + */ + function showSaveAndReloadModal(message) { + if ('undefined' === typeof message) { + message = __('You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?', 'formidable'); + } + frmDom.modal.maybeCreateModal('frmSaveAndReloadModal', { + title: __('Save and Reload?', 'formidable'), + content: getModalContent(), + footer: getModalFooter() + }); + function getModalContent() { + var modalContent = div(message); + modalContent.style.padding = 'var(--gap-md)'; + return modalContent; + } + function getModalFooter() { + var continueButton = frmDom.modal.footerButton({ + text: __('Save and Reload', 'formidable'), + buttonType: 'primary' + }); + onClickPreventDefault(continueButton, function () { + saveAndReloadFormBuilder(); + }); + var cancelButton = frmDom.modal.footerButton({ + text: __('Cancel', 'formidable'), + buttonType: 'cancel' + }); + cancelButton.classList.add('dismiss'); + return frmDom.div({ + children: [cancelButton, continueButton] + }); + } + } + function updateShortcodesPopupPosition(target) { + var moreIcon; + if (target instanceof Event) { + var useElements = document.querySelectorAll('.frm-single-settings .frm-show-box.frmsvg use'); + var openTrigger = Array.from(useElements).find(function (use) { + return use.getAttribute('href') === '#frm_close_icon'; + }); + if ('undefined' === typeof openTrigger) { + return; + } + moreIcon = openTrigger.parentElement; + } else { + moreIcon = target; + } + var moreIconPosition = moreIcon.getBoundingClientRect(); + var shortCodesPopup = document.getElementById('frm_adv_info'); + var parentPos = shortCodesPopup.parentElement.getBoundingClientRect(); + shortCodesPopup.style.top = moreIconPosition.top - parentPos.top + 32 + 'px'; + shortCodesPopup.style.left = moreIconPosition.left - parentPos.left - 280 + 'px'; + } + function showShortcodeBox(moreIcon, shouldFocus) { + var input = getInputForIcon(moreIcon), + box = document.getElementById('frm_adv_info'), + classes = moreIcon.className; + if (moreIcon.tagName === 'svg') { + moreIcon = moreIcon.firstElementChild; + } + if (moreIcon.tagName === 'use') { + classes = moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href'); + if (null === classes) { + // If the deprecated xlink:href is not defined, check for href. + classes = moreIcon.getAttribute('href'); + } + } + if (classes.indexOf('frm_close_icon') !== -1) { + hideShortcodes(box); + } else { + updateShortcodesPopupPosition(moreIcon); + jQuery('.frm_code_list a').removeClass('frm_noallow'); + if (input.classList.contains('frm_not_email_to')) { + jQuery('#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a').addClass('frm_noallow'); + } else if (input.classList.contains('frm_not_email_subject')) { + jQuery('.frm_code_list li.hide_frm_not_email_subject a').addClass('frm_noallow'); + } + box.setAttribute('data-fills', input.id); + box.style.display = 'block'; + if (moreIcon.tagName === 'use') { + if (moreIcon.hasAttributeNS('http://www.w3.org/1999/xlink', 'href')) { + moreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); + } else { + var newMoreIcon = document.createElementNS('http://www.w3.org/2000/svg', 'use'); + newMoreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); + moreIcon.parentNode.replaceChild(newMoreIcon, moreIcon); + } + } else { + moreIcon.className = classes.replace('frm_more_horiz_solid_icon', 'frm_close_icon'); + } + if (shouldFocus !== 'nofocus') { + if ('none' !== input.style.display) { + input.focus(); + } else { + jQuery(tinymce.get(input.id)).trigger('focus'); + } + } + showOrHideContextualShortcodes(input); + } + } + + /** + * Returns true if a shortcode could be shown in the search result. + * + * @since 6.16.3 + * + * @param {HTMLElement} item + * @return {Boolean} + */ + function checkContextualShortcode(item) { + if (frmAdminJs.contextualShortcodes.length === 0) { + return true; + } + return !isContextualShortcode(item) || canShowContextualShortcode(item); + } + + /** + * Returns true if a shortcode is contextual to fields. + * + * @since 6.16.3 + * + * @param {HTMLElement} item + * @return {Boolean} + */ + function isContextualShortcode(item) { + var anchor = item.querySelector('a'); + if (!anchor) { + return false; + } + var shortcode = anchor.dataset.code; + return frmAdminJs.contextualShortcodes.address.includes(shortcode) || frmAdminJs.contextualShortcodes.body.includes(shortcode); + } + + /** + * @since 6.16.3 + * + * @param {HTMLElement} item + * @return {Boolean} + */ + function canShowContextualShortcode(item) { + var shortcode = item.querySelector('a').dataset.code; + var inputId = document.getElementById('frm_adv_info').dataset.fills; + var input = document.getElementById(inputId); + var contextualShortcodes = frmAdminJs.contextualShortcodes; + if (contextualShortcodes.address.includes(shortcode)) { + return input.matches(contextualShortcodes.addressSelector); + } + return input.matches(contextualShortcodes.bodySelector); + } + + /** + * @since 6.16.3 + * + * @param {HTMLElement} input + * @return {void} + */ + function showOrHideContextualShortcodes(input) { + ['address', 'body'].forEach(function (type) { + toggleContextualShortcodes(input, type); + }); + } + + /** + * @since 6.16.3 + * + * @param {HTMLElement} input + * @param {string} type + * + * @return {void} + */ + function toggleContextualShortcodes(input, type) { + var selector, contextualShortcodes; + selector = frmAdminJs.contextualShortcodes[type + 'Selector']; + contextualShortcodes = frmAdminJs.contextualShortcodes[type]; + var shouldShowShortcodes = input.matches(selector); + var _iterator = _createForOfIteratorHelper(contextualShortcodes), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _document$querySelect6; + var shortcode = _step.value; + var shortcodeLi = (_document$querySelect6 = document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="' + shortcode + '"]')) === null || _document$querySelect6 === void 0 ? void 0 : _document$querySelect6.closest('li'); + shortcodeLi === null || shortcodeLi === void 0 || shortcodeLi.classList.toggle('frm_hidden', !shouldShowShortcodes); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + + /** + * Returns shortcodes that are contextual to the current input field. + * + * @since 6.16.3 + * + * @return {Array} + */ + function getContextualShortcodes() { + var _document$getElementB4; + var contextualShortcodes = (_document$getElementB4 = document.getElementById('frm_adv_info')) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.dataset.contextualShortcodes; + if (!contextualShortcodes) { + return []; + } + contextualShortcodes = JSON.parse(contextualShortcodes); + contextualShortcodes.addressSelector = '[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]'; + contextualShortcodes.bodySelector = '[id^=email_message_]'; + return contextualShortcodes; + } + function fieldUpdated() { + if (!fieldsUpdated) { + fieldsUpdated = 1; + window.addEventListener('beforeunload', confirmExit); + } + } + function buildSubmittedNoAjax() { + // set fieldsUpdated to 0 to avoid the unsaved changes pop up + fieldsUpdated = 0; + } + function settingsSubmitted() { + // set fieldsUpdated to 0 to avoid the unsaved changes pop up + fieldsUpdated = 0; + } + function saveAndReloadSettings() { + var page, form; + page = document.getElementById('form_settings_page'); + if (null !== page) { + form = page.querySelector('form.frm_form_settings'); + if (null !== form) { + fieldsUpdated = 0; + form.submit(); + } + } + } + function reloadIfAddonActivatedAjaxSubmitOnly() { + var submitButton = document.getElementById('frm_submit_side_top'); + if (submitButton.hasAttribute('data-new-addon-installed') && 'true' === submitButton.getAttribute('data-new-addon-installed')) { + submitButton.removeAttribute('data-new-addon-installed'); + window.location.reload(); + } + } + function saveAndReloadFormBuilder() { + var submitButton = document.getElementById('frm_submit_side_top'); + if (submitButton.classList.contains('frm_submit_ajax')) { + submitButton.setAttribute('data-new-addon-installed', true); + } + submitButton.click(); + } + function confirmExit(event) { + if (fieldsUpdated) { + event.preventDefault(); + event.returnValue = ''; + } + } + function bindClickForDialogClose($modal) { + var closeModal = function closeModal() { + $modal.dialog('close'); + }; + jQuery('.ui-widget-overlay').on('click', closeModal); + $modal.on('click', 'a.dismiss', closeModal); + } + function offsetModalY($modal, amount) { + var position = { + my: 'top', + at: 'top+' + amount, + of: window + }; + $modal.dialog('option', 'position', position); + } + + /** + * Get the input box for the selected icon or calculation field. + * + * @param {Element} moreIcon The icon element + * @return {Element} The associated input or textarea + */ + function getInputForIcon(moreIcon) { + if (moreIcon.classList.contains('frm-input-icon')) { + return moreIcon.previousElementSibling; + } + + // For regular fields + var input = moreIcon.nextElementSibling; + while (input !== null && (input.tagName !== 'INPUT' && input.tagName !== 'TEXTAREA' || input.classList.contains('frm-token-input-field'))) { + input = getInputForIcon(input); + } + + // For calculation fields + if (!input) { + var _moreIcon$closest; + input = (_moreIcon$closest = moreIcon.closest('.frm-field-formula')) === null || _moreIcon$closest === void 0 ? void 0 : _moreIcon$closest.querySelector('.frm-calc-field'); + } + return input; + } + + /** + * Get the ... icon for the selected input box. + */ + function getIconForInput(input) { + var _input$nextElementSib; + if ((_input$nextElementSib = input.nextElementSibling) !== null && _input$nextElementSib !== void 0 && _input$nextElementSib.classList.contains('frm-input-icon')) { + return input.nextElementSibling; + } + var moreIcon = input.previousElementSibling; + while (moreIcon !== null && moreIcon.tagName !== 'I' && moreIcon.tagName !== 'svg') { + moreIcon = getIconForInput(moreIcon); + } + return moreIcon; + } + function hideShortcodes(box) { + var i, u, closeIcons, closeSvg; + if (typeof box === 'undefined') { + box = document.getElementById('frm_adv_info'); + if (box === null) { + return; + } + } + if (document.getElementById('frm_dyncontent') !== null) { + // Don't run when in the sidebar. + return; + } + box.style.display = 'none'; + closeIcons = document.querySelectorAll('.frm-show-box.frm_close_icon'); + for (i = 0; i < closeIcons.length; i++) { + closeIcons[i].classList.remove('frm_close_icon'); + closeIcons[i].classList.add('frm_more_horiz_solid_icon'); + } + closeSvg = document.querySelectorAll('.frm_has_shortcodes use'); + for (u = 0; u < closeSvg.length; u++) { + if (closeSvg[u].getAttributeNS('http://www.w3.org/1999/xlink', 'href') === '#frm_close_icon') { + if (closeSvg[u].closest('.frm_remove_field')) { + // Don't change the icon for the email fields remove button. + continue; + } + closeSvg[u].setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_more_horiz_solid_icon'); + } + } + } + function toggleAllowedHTML(input) { + var b, + id = input.id; + if (typeof id === 'undefined' || id.indexOf('-search-input') !== -1) { + return; + } + jQuery('#frm-adv-info-tab').attr('data-fills', id.trim()); + if (input.classList.contains('field_custom_html')) { + id = 'field_custom_html'; + } + b = ['after_html', 'before_html', 'submit_html', 'field_custom_html']; + if (jQuery.inArray(id, b) >= 0) { + jQuery('.frm_code_list li:not(.show_' + id + ')').addClass('frm_hidden'); + jQuery('.frm_code_list li.show_' + id).removeClass('frm_hidden'); + } + } + function toggleKeyID(switchTo, e) { + e.stopPropagation(); + jQuery('.frm_code_list .frmids, .frm_code_list .frmkeys').addClass('frm_hidden'); + jQuery('.frm_code_list .' + switchTo).removeClass('frm_hidden'); + jQuery('.frmids, .frmkeys').removeClass('current'); + jQuery('.' + switchTo).addClass('current'); + } + function onActionLoaded(event) { + var settings = event.target.closest('.frm_form_action_settings'); + if (settings && (settings.classList.contains('frm_single_email_settings') || settings.classList.contains('frm_single_on_submit_settings'))) { + initWysiwygOnActionLoaded(settings); + } + } + function initWysiwygOnActionLoaded(settings) { + settings.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { + frmDom.wysiwyg.init(wysiwyg, { + height: 160, + addFocusEvents: true + }); + }); + } + + /* Global settings page */ + function loadSettingsTab(anchor) { + var holder = anchor.replace('#', ''); + var holderContainer = jQuery('.frm_' + holder + '_ajax'); + if (holderContainer.length) { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_settings_tab', + tab: holder.replace('_settings', ''), + nonce: frmGlobal.nonce + }, + success: function success(html) { + holderContainer.replaceWith(html); + } + }); + } + } + function uninstallNow() { + /*jshint validthis:true */ + if (confirmLinkClick(this) === true) { + jQuery('.frm_uninstall .frm-wait').css('visibility', 'visible'); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: 'action=frm_uninstall&nonce=' + frmGlobal.nonce, + success: function success(msg) { + jQuery('.frm_uninstall').fadeOut('slow'); + window.location = msg; + } + }); + } + return false; + } + function saveAddonLicense() { + /*jshint validthis:true */ + var button = jQuery(this); + var buttonName = this.name; + var pluginSlug = this.getAttribute('data-plugin'); + var action = buttonName.replace('edd_' + pluginSlug + '_license_', ''); + var license = document.getElementById('edd_' + pluginSlug + '_license_key').value; + button.get(0).disabled = true; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + dataType: 'json', + data: { + action: 'frm_addon_' + action, + license: license, + plugin: pluginSlug, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + button.get(0).disabled = false; + var thisRow = button.closest('.edd_frm_license_row'); + if (action === 'deactivate') { + license = ''; + document.getElementById('edd_' + pluginSlug + '_license_key').value = ''; + } + thisRow.find('.edd_frm_license').html(license); + var eddWrapper = button.get(0).closest('.frm_form_field'); + var actionIsSuccess = msg.success === true; + eddWrapper.querySelector(".frm_icon_font.frm_action_success").classList.toggle('frm_hidden', !actionIsSuccess || action === 'deactivate'); + eddWrapper.querySelector(".frm_icon_font.frm_action_error").classList.toggle('frm_hidden', actionIsSuccess); + var messageBox = thisRow.find('.frm_license_msg'); + messageBox.html(msg.message); + if (msg.message !== '') { + setTimeout(function () { + messageBox.html(''); + thisRow.find('.frm_icon_font').addClass('frm_hidden'); + if (actionIsSuccess) { + var actionIsActivate = action === 'activate'; + thisRow.get(0).querySelector('.edd_frm_unauthorized').classList.toggle('frm_hidden', actionIsActivate); + thisRow.get(0).querySelector('.edd_frm_authorized').classList.toggle('frm_hidden', !actionIsActivate); + } + }, 2000); + } + } + }); + } + + /* Import/Export page */ + + function startFormMigration(event) { + event.preventDefault(); + var checkedBoxes = jQuery(event.target).find('input:checked'); + if (!checkedBoxes.length) { + return; + } + var ids = []; + checkedBoxes.each(function (i) { + ids[i] = this.value; + }); + + // Begin the import process. + importForms(ids, event.target); + } + + /** + * Begins the process of importing the forms. + */ + function importForms(forms, targetForm) { + // Hide the form select section. + var $form = jQuery(targetForm), + $processSettings = $form.next('.frm-importer-process'); + + // Display total number of forms we have to import. + $processSettings.find('.form-total').text(forms.length); + $processSettings.find('.form-current').text('1'); + $form.hide(); + + // Show processing status. + // '.process-completed' might have been shown earlier during a previous import, so hide now. + $processSettings.find('.process-completed').hide(); + $processSettings.show(); + + // Create global import queue. + s.importQueue = forms; + s.imported = 0; + + // Import the first form in the queue. + importForm($processSettings); + } + + /** + * Imports a single form from the import queue. + */ + function importForm($processSettings) { + var formID = s.importQueue[0], + provider = jQuery('#welcome-panel').find('input[name="slug"]').val(), + data = { + action: 'frm_import_' + provider, + form_id: formID, + nonce: frmGlobal.nonce + }; + + // Trigger AJAX import for this form. + jQuery.post(ajaxurl, data, function (res) { + if (res.success) { + var statusUpdate; + if (res.data.error) { + statusUpdate = '

          ' + res.data.name + ': ' + res.data.msg + '

          '; + } else { + statusUpdate = '

          Imported ' + res.data.name + '

          '; + } + $processSettings.find('.status').prepend(statusUpdate); + $processSettings.find('.status').show(); + + // Remove this form ID from the queue. + s.importQueue = jQuery.grep(s.importQueue, function (value) { + return value != formID; + }); + s.imported++; + if (s.importQueue.length === 0) { + $processSettings.find('.process-count').hide(); + $processSettings.find('.forms-completed').text(s.imported); + $processSettings.find('.process-completed').show(); + } else { + // Import next form in the queue. + $processSettings.find('.form-current').text(s.imported + 1); + importForm($processSettings); + } + } + }); + } + function validateExport(e) { + /*jshint validthis:true */ + e.preventDefault(); + var s = false; + var $exportForms = jQuery('input[name="frm_export_forms[]"]'); + if (!jQuery('input[name="frm_export_forms[]"]:checked').val()) { + $exportForms.closest('.frm-table-box').addClass('frm_blank_field'); + s = 'stop'; + } + var $exportType = jQuery('input[name="type[]"]'); + if (!jQuery('input[name="type[]"]:checked').val() && $exportType.attr('type') === 'checkbox') { + $exportType.closest('p').addClass('frm_blank_field'); + s = 'stop'; + } + if (s === 'stop') { + return false; + } + e.stopPropagation(); + this.submit(); + } + function removeExportError() { + /*jshint validthis:true */ + var t = jQuery(this).closest('.frm_blank_field'); + if (typeof t === 'undefined') { + return; + } + var $thisName = this.name; + if ($thisName === 'type[]' && jQuery('input[name="type[]"]:checked').val()) { + t.removeClass('frm_blank_field'); + } else if ($thisName === 'frm_export_forms[]' && jQuery(this).val()) { + t.removeClass('frm_blank_field'); + } + } + function checkCSVExtension() { + /*jshint validthis:true */ + var f = jQuery(this).val(); + var re = /\.csv$/i; + if (f.match(re) !== null) { + jQuery('.show_csv').fadeIn(); + } else { + jQuery('.show_csv').fadeOut(); + } + } + function getExportOption() { + var exportFormatSelect = document.querySelector('select[name="format"]'); + if (exportFormatSelect) { + return exportFormatSelect.value; + } + return ''; + } + function exportTypeChanged(event) { + var value = event.target.value; + showOrHideRepeaters(value); + checkExportTypes.call(event.target); + checkSelectedAllFormsCheckbox(value); + } + function checkSelectedAllFormsCheckbox(exportType) { + var selectAllCheckbox = document.getElementById('frm-export-select-all'); + if (exportType === 'csv') { + selectAllCheckbox.checked = false; + selectAllCheckbox.disabled = true; + } else { + selectAllCheckbox.disabled = false; + } + } + function checkExportTypes() { + /*jshint validthis:true */ + var $dropdown = jQuery(this); + var $selected = $dropdown.find(':selected'); + var s = $selected.data('support'); + var multiple = s.indexOf('|'); + jQuery('input[name="type[]"]').each(function () { + this.checked = false; + if (s.indexOf(this.value) >= 0) { + this.disabled = false; + if (multiple === -1) { + this.checked = true; + } + } else { + this.disabled = true; + } + }); + if ($dropdown.val() === 'csv') { + jQuery('.csv_opts').show(); + jQuery('.xml_opts').hide(); + } else { + jQuery('.csv_opts').hide(); + jQuery('.xml_opts').show(); + } + var c = $selected.data('count'); + var exportField = jQuery('input[name="frm_export_forms[]"]'); + if (c === 'single') { + exportField.prop('multiple', false); + exportField.prop('checked', false); + } else { + exportField.prop('multiple', true); + exportField.prop('disabled', false); + } + $dropdown.trigger('change'); + } + function showOrHideRepeaters(exportOption) { + if (exportOption === '') { + return; + } + var repeaters = document.querySelectorAll('.frm-is-repeater'); + if (!repeaters.length) { + return; + } + if (exportOption === 'csv') { + repeaters.forEach(function (form) { + form.classList.remove('frm_hidden'); + }); + } else { + repeaters.forEach(function (form) { + form.classList.add('frm_hidden'); + }); + } + searchContent.call(document.querySelector('.frm-auto-search')); + } + function preventMultipleExport() { + var type = jQuery('select[name=format]'), + selected = type.find(':selected'), + count = selected.data('count'), + exportField = jQuery('input[name="frm_export_forms[]"]'); + if (count === 'single') { + // Disable all other fields to prevent multiple selections. + if (this.checked) { + exportField.prop('disabled', true); + this.removeAttribute('disabled'); + } else { + exportField.prop('disabled', false); + } + } else { + exportField.prop('disabled', false); + } + } + function initiateMultiselect() { + jQuery('.frm_multiselect').hide().each(frmDom.bootstrap.multiselect.init); + } + + /* Addons page */ + function installMultipleAddons(e) { + e.preventDefault(); + toggleAddonState(this, 'frm_multiple_addons'); + } + function activateAddon(e) { + e.preventDefault(); + toggleAddonState(this, 'frm_activate_addon'); + } + function installAddon(e) { + e.preventDefault(); + toggleAddonState(this, 'frm_install_addon'); + } + function toggleAddonState(clicked, action) { + var button, plugin, el, message; + + // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated. + jQuery('.frm-addon-error').remove(); + button = jQuery(clicked); + plugin = button.attr('rel'); + el = button.parent(); + message = el.parent().find('.addon-status-label'); + button.addClass('frm_loading_button'); + + // Process the Ajax to perform the activation. + jQuery.ajax({ + url: ajaxurl, + type: 'POST', + async: true, + cache: false, + dataType: 'json', + data: { + action: action, + nonce: frmGlobal.nonce, + plugin: plugin + }, + success: function success(response) { + var _response$data, _response; + response = (_response$data = (_response = response) === null || _response === void 0 ? void 0 : _response.data) !== null && _response$data !== void 0 ? _response$data : response; + var saveAndReload; + if ('string' !== typeof response && 'string' === typeof response.message) { + if ('undefined' !== typeof response.saveAndReload) { + saveAndReload = response.saveAndReload; + } + response = response.message; + } + var error = extractErrorFromAddOnResponse(response); + if (error) { + addonError(error, el, button); + return; + } + afterAddonInstall(response, button, message, el, saveAndReload, action); + + /** + * Trigger an action after successfully toggling the addon state. + * + * @param {Object} response + */ + wp.hooks.doAction('frm_update_addon_state', response); + }, + error: function error() { + button.removeClass('frm_loading_button'); + } + }); + } + function installAddonWithCreds(e) { + // Prevent the default action, let the user know we are attempting to install again and go with it. + e.preventDefault(); + + // Now let's make another Ajax request once the user has submitted their credentials. + var proceed = jQuery(this); + var el = proceed.parent().parent(); + var plugin = proceed.attr('rel'); + proceed.addClass('frm_loading_button'); + jQuery.ajax({ + url: ajaxurl, + type: 'POST', + async: true, + cache: false, + dataType: 'json', + data: { + action: 'frm_install_addon', + nonce: frmAdminJs.nonce, + plugin: plugin, + hostname: el.find('#hostname').val(), + username: el.find('#username').val(), + password: el.find('#password').val() + }, + success: function success(response) { + var _response$data2, _response2; + response = (_response$data2 = (_response2 = response) === null || _response2 === void 0 ? void 0 : _response2.data) !== null && _response$data2 !== void 0 ? _response$data2 : response; + var error = extractErrorFromAddOnResponse(response); + if (error) { + addonError(error, el, proceed); + return; + } + afterAddonInstall(response, proceed, message, el); + }, + error: function error() { + proceed.removeClass('frm_loading_button'); + } + }); + } + function afterAddonInstall(response, button, message, el, saveAndReload) { + var action = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'frm_activate_addon'; + var addonStatuses = document.querySelectorAll('.frm-addon-status'); + addonStatuses.forEach(function (addonStatus) { + addonStatus.textContent = response; + addonStatus.style.display = 'block'; + }); + + // The Ajax request was successful, so let's update the output. + button.css({ + opacity: '0' + }); + document.querySelectorAll('.frm-oneclick').forEach(function (oneClick) { + oneClick.style.display = 'none'; + }); + jQuery('#frm_upgrade_modal h2').hide(); + jQuery('#frm_upgrade_modal .frm_lock_icon').addClass('frm_lock_open_icon'); + jQuery('#frm_upgrade_modal .frm_lock_icon use').attr('xlink:href', '#frm_lock_open_icon'); + + // Proceed with CSS changes + var actionMap = { + frm_activate_addon: { + class: 'frm-addon-active', + message: frmAdminJs.active + }, + frm_deactivate_addon: { + class: 'frm-addon-installed', + message: frmAdminJs.installed + }, + frm_uninstall_addon: { + class: 'frm-addon-not-installed', + message: frmAdminJs.not_installed + } + }; + actionMap.frm_install_addon = actionMap.frm_activate_addon; + var messageElement = message[0]; + if (messageElement) { + messageElement.textContent = actionMap[action].message; + } + var parentElement = el[0].parentElement; + parentElement.classList.remove('frm-addon-not-installed', 'frm-addon-installed', 'frm-addon-active'); + parentElement.classList.add(actionMap[action].class); + var buttonElement = button[0]; + buttonElement.classList.remove('frm_loading_button'); + + // Maybe refresh import and SMTP pages + var refreshPage = document.querySelectorAll('.frm-admin-page-import, #frm-admin-smtp, #frm-welcome'); + if (refreshPage.length > 0) { + window.location.reload(); + return; + } + if (['settings', 'form_builder'].includes(saveAndReload)) { + addonStatuses.forEach(function (addonStatus) { + var inModal = null !== addonStatus.closest('#frm_upgrade_modal'); + addonStatus.appendChild(getSaveAndReloadSettingsOptions(saveAndReload, inModal)); + }); + } + } + function getSaveAndReloadSettingsOptions(saveAndReload, inModal) { + var className = 'frm-save-and-reload-options'; + var children = [saveAndReloadSettingsButton(saveAndReload)]; + if (inModal) { + children.push(closePopupButton()); + } + return div({ + className: className, + children: children + }); + } + function saveAndReloadSettingsButton(saveAndReload) { + var button = document.createElement('button'); + button.classList.add('frm-save-and-reload', 'button', 'button-primary', 'frm-button-primary'); + button.textContent = __('Save and Reload', 'formidable'); + button.addEventListener('click', function () { + if (saveAndReload === 'form_builder') { + saveAndReloadFormBuilder(); + } else if (saveAndReload === 'settings') { + saveAndReloadSettings(); + } + }); + return button; + } + function closePopupButton() { + var a = document.createElement('a'); + a.setAttribute('href', '#'); + a.classList.add('button', 'button-secondary', 'frm-button-secondary', 'dismiss'); + a.textContent = __('Close', 'formidable'); + return a; + } + function extractErrorFromAddOnResponse(response) { + if (typeof response !== 'string') { + if (typeof response.success !== 'undefined' && response.success) { + return false; + } + if (response.form) { + if (jQuery(response.form).is('#message')) { + return { + message: jQuery(response.form).find('p').html() + }; + } + } + return response; + } + return false; + } + function addonError(response, el, button) { + if (response.form) { + jQuery('.frm-inline-error').remove(); + button.closest('.frm-card').html(response.form).css({ + padding: 5 + }).find('#upgrade').attr('rel', button.attr('rel')).on('click', installAddonWithCreds); + } else { + el.append('

          ' + response.message + '

          '); + button.removeClass('frm_loading_button'); + jQuery('.frm-addon-error').delay(4000).fadeOut(); + } + } + + /* Templates */ + function showActiveCampaignForm() { + loadApiEmailForm(); + } + function handleApiFormError(inputId, errorId, type, message) { + var $error = jQuery(errorId); + $error.removeClass('frm_hidden').attr('frm-error', type); + if (typeof message !== 'undefined') { + $error.find('span[frm-error="' + type + '"]').text(message); + } + jQuery(inputId).one('keyup', function () { + $error.addClass('frm_hidden'); + }); + } + function handleEmailAddressError(type) { + handleApiFormError('#frm_leave_email', '#frm_leave_email_error', type); + } + function loadApiEmailForm() { + var formContainer = document.getElementById('frmapi-email-form'); + jQuery.ajax({ + dataType: 'json', + url: formContainer.getAttribute('data-url'), + success: function success(json) { + var form = json.renderedHtml; + form = form.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi, ''); + formContainer.innerHTML = form; + } + }); + } + function initAutocomplete(container) { + frmDom.autocomplete.initSelectionAutocomplete(container); + } + function nextInstallStep(thisStep) { + thisStep.classList.add('frm_grey'); + thisStep.nextElementSibling.classList.remove('frm_grey'); + } + function installTemplateFieldset(e) { + /*jshint validthis:true */ + var fieldset = this.parentNode.parentNode, + action = fieldset.elements.type.value, + button = this; + e.preventDefault(); + button.classList.add('frm_loading_button'); + installNewForm(fieldset, action, button); + } + function installTemplate(e) { + /*jshint validthis:true */ + var action = this.elements.type.value, + button = this.querySelector('button'); + e.preventDefault(); + button.classList.add('frm_loading_button'); + installNewForm(this, action, button); + } + function installNewForm(form, action, button) { + var formData = formToData(form); + var formName = formData.template_name; + var formDesc = formData.template_desc; + var link = form.elements.link.value; + var data = { + action: action, + xml: link, + name: formName, + desc: formDesc, + form: JSON.stringify(formData), + nonce: frmGlobal.nonce + }; + var hookName = 'frm_before_install_new_form'; + var filterArgs = { + formData: formData + }; + data = wp.hooks.applyFilters(hookName, data, filterArgs); + postAjax(data, function (response) { + if (typeof response.redirect !== 'undefined') { + var redirect = response.redirect; + if (typeof form.elements.redirect === 'undefined') { + window.location = redirect; + } else { + var href = document.getElementById('frm-redirect-link'); + if (typeof link !== 'undefined' && href !== null) { + // Show the next installation step. + href.setAttribute('href', redirect); + href.classList.remove('frm_grey', 'disabled'); + nextInstallStep(form.parentNode.parentNode); + button.classList.add('frm_grey', 'disabled'); + } + } + } else { + jQuery('.spinner').css('visibility', 'hidden'); + + // Show response.message + if ('string' === typeof response.message) { + showInstallFormErrorModal(response.message); + } + } + button.classList.remove('frm_loading_button'); + }); + } + function showInstallFormErrorModal(message) { + var modalContent = div(message); + modalContent.style.padding = '20px 40px'; + var modal = frmDom.modal.maybeCreateModal('frmInstallFormErrorModal', { + title: __('Unable to install template', 'formidable'), + content: modalContent + }); + modal.classList.add('frm_common_modal'); + } + function handleCaptchaTypeChange(e) { + var thresholdContainer = document.getElementById('frm_captcha_threshold_container'); + if (thresholdContainer) { + thresholdContainer.classList.toggle('frm_hidden', 'v3' !== e.target.value); + } + } + function trashTemplate(e) { + /*jshint validthis:true */ + var id = this.getAttribute('data-id'); + e.preventDefault(); + data = { + action: 'frm_forms_trash', + id: id, + nonce: frmGlobal.nonce + }; + postAjax(data, function () { + var card = document.getElementById('frm-template-custom-' + id); + fadeOut(card, function () { + card.parentNode.removeChild(card); + }); + }); + } + function searchContent() { + /*jshint validthis:true */ + var i, + regEx = false, + searchText = this.value.toLowerCase(), + toSearch = this.getAttribute('data-tosearch'), + items = document.getElementsByClassName(toSearch); + if (this.tagName === 'SELECT') { + searchText = selectedOptions(this); + searchText = searchText.join('|').toLowerCase(); + regEx = true; + } + if (toSearch === 'frm-action' && searchText !== '') { + var addons = document.getElementById('frm_email_addon_menu').classList; + addons.remove('frm-all-actions'); + addons.add('frm-limited-actions'); + } + for (i = 0; i < items.length; i++) { + var innerText = items[i].innerText.toLowerCase(); + var itemCanBeShown = !(getExportOption() === 'xml' && items[i].classList.contains('frm-is-repeater')); + if (searchText === '') { + if (itemCanBeShown && checkContextualShortcode(items[i])) { + items[i].classList.remove('frm_hidden'); + } + items[i].classList.remove('frm-search-result'); + } else if (regEx && new RegExp(searchText).test(innerText) || innerText.indexOf(searchText) >= 0 || textMatchesPlural(innerText, searchText)) { + if (itemCanBeShown && checkContextualShortcode(items[i])) { + items[i].classList.remove('frm_hidden'); + } + items[i].classList.add('frm-search-result'); + } else { + items[i].classList.add('frm_hidden'); + items[i].classList.remove('frm-search-result'); + } + } + + // Updates the visibility of category headings based on search results. + updateCatHeadingVisibility(); + jQuery(this).trigger('frmAfterSearch'); + } + + /** + * Allow a search for "signatures" to still match "signature" for example when searching fields. + * + * @since 6.15 + * + * @param {string} text The text in the element we are checking for a match. + * @param {string} searchText The text value that is being searched. + * @return {boolean} + */ + function textMatchesPlural(text, searchText) { + if (searchText === 's') { + // Don't match everything when just "s" is searched. + return false; + } + if (text[text.length - 1] === 's') { + // Do not match something with double s if the text already ends in s. + return false; + } + return (text + 's').indexOf(searchText) >= 0; + } + + /** + * Updates the visibility of category headings based on search results. + * If all associated fields are hidden (indicating no search matches), + * the heading is hidden. + * + * @since 6.4.1 + */ + function updateCatHeadingVisibility() { + var insertFieldsElement = document.querySelector('#frm-insert-fields'); + if (!insertFieldsElement) { + return; + } + var headingElements = insertFieldsElement.querySelectorAll(':scope > .frm-with-line'); + headingElements.forEach(function (heading) { + var fieldsListElement = heading.nextElementSibling; + if (!fieldsListElement) { + return; + } + var listItemElements = fieldsListElement.querySelectorAll(':scope > li.frmbutton'); + var allHidden = Array.from(listItemElements).every(function (li) { + return li.classList.contains('frm_hidden'); + }); + + // Add or remove class based on `allHidden` condition + heading.classList.toggle('frm_hidden', allHidden); + }); + } + function stopPropagation(e) { + e.stopPropagation(); + } + + /* Helpers */ + + function selectedOptions(select) { + var opt, + result = [], + options = select && select.options; + for (var _i13 = 0, iLen = options.length; _i13 < iLen; _i13++) { + opt = options[_i13]; + if (opt.selected) { + result.push(opt.value); + } + } + return result; + } + function triggerEvent(element, event) { + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(event, false, true); + element.dispatchEvent(evt); + } + function postAjax(data, success) { + var response; + var xmlHttp = new XMLHttpRequest(); + var params = typeof data === 'string' ? data : Object.keys(data).map(function (k) { + return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]); + }).join('&'); + xmlHttp.open('post', ajaxurl, true); + xmlHttp.onreadystatechange = function () { + if (xmlHttp.readyState > 3 && xmlHttp.status == 200) { + response = xmlHttp.responseText; + try { + response = JSON.parse(response); + } catch (e) { + // The response may not be JSON, so just return it. + } + success(response); + } + }; + xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xmlHttp.send(params); + return xmlHttp; + } + function fadeOut(element, success) { + element.classList.add('frm-fade'); + setTimeout(success, 1000); + } + function invisible(classes) { + jQuery(classes).css('visibility', 'hidden'); + } + function visible(classes) { + jQuery(classes).css('visibility', 'visible'); + } + function initModal(id, width) { + var $info = jQuery(id); + if (!$info.length) { + return false; + } + if (typeof width === 'undefined') { + width = '550px'; + } + var dialogArgs = { + dialogClass: 'frm-dialog', + modal: true, + autoOpen: false, + closeOnEscape: true, + width: width, + resizable: false, + draggable: false, + open: function open() { + jQuery('.ui-dialog-titlebar').addClass('frm_hidden').removeClass('ui-helper-clearfix'); + jQuery('#wpwrap').addClass('frm_overlay'); + jQuery('.frm-dialog').removeClass('ui-widget ui-widget-content ui-corner-all'); + $info.removeClass('ui-dialog-content ui-widget-content'); + bindClickForDialogClose($info); + }, + close: function close() { + jQuery('#wpwrap').removeClass('frm_overlay'); + jQuery('.spinner').css('visibility', 'hidden'); + this.removeAttribute('data-option-type'); + var optionType = document.getElementById('bulk-option-type'); + if (optionType) { + optionType.value = ''; + } + } + }; + $info.dialog(dialogArgs); + return $info; + } + function toggle(cname, id) { + if (id === '#') { + var cont = document.getElementById(cname); + var hidden = cont.style.display; + if (hidden === 'none') { + cont.style.display = 'block'; + } else { + cont.style.display = 'none'; + } + } else { + var vis = cname.is(':visible'); + if (vis) { + cname.hide(); + } else { + cname.show(); + } + } + } + function removeWPUnload() { + window.onbeforeunload = null; + var w = jQuery(window); + w.off('beforeunload.widgets'); + w.off('beforeunload.edit-post'); + } + function addMultiselectLabelListener() { + var clickListener = function clickListener(e) { + if ('LABEL' !== e.target.nodeName) { + return; + } + var labelFor = e.target.getAttribute('for'); + if (!labelFor) { + return; + } + var input = document.getElementById(labelFor); + if (!input || !input.nextElementSibling) { + return; + } + var buttonToggle = input.nextElementSibling.querySelector('button.dropdown-toggle.multiselect'); + if (!buttonToggle) { + return; + } + var triggerMultiselectClick = function triggerMultiselectClick() { + return buttonToggle.click(); + }; + setTimeout(triggerMultiselectClick, 0); + }; + document.addEventListener('click', clickListener); + } + function maybeChangeEmbedFormMsg() { + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + var fieldItem = document.getElementById('frm_field_id_' + fieldId); + if (null === fieldItem || 'form' !== fieldItem.dataset.type) { + return; + } + fieldItem = jQuery(fieldItem); + if (this.options[this.selectedIndex].value) { + fieldItem.find('.frm-not-set')[0].classList.add('frm_hidden'); + var embedMsg = fieldItem.find('.frm-embed-message'); + embedMsg.html(embedMsg.data('embedmsg') + this.options[this.selectedIndex].text); + fieldItem.find('.frm-embed-field-placeholder')[0].classList.remove('frm_hidden'); + } else { + fieldItem.find('.frm-not-set')[0].classList.remove('frm_hidden'); + fieldItem.find('.frm-embed-field-placeholder')[0].classList.add('frm_hidden'); + } + } + function toggleProductType() { + var settings = jQuery(this).closest('.frm-single-settings'), + container = settings.find('.frmjs_product_choices'), + heading = settings.find('.frm_prod_options_heading'), + currentVal = this.options[this.selectedIndex].value; + container.removeClass('frm_prod_type_single frm_prod_type_user_def'); + heading.removeClass('frm_prod_user_def'); + if ('single' === currentVal) { + container.addClass('frm_prod_type_single'); + } else if ('user_def' === currentVal) { + container.addClass('frm_prod_type_user_def'); + heading.addClass('frm_prod_user_def'); + } + } + + /** + * @param {Number | string} fieldId + * @return {boolean} True if the field is a product field. + */ + function isProductField(fieldId) { + var field = document.getElementById('frm_field_id_' + fieldId); + if (field === null) { + return false; + } + return 'product' === field.getAttribute('data-type'); + } + + /** + * Serialize form data with vanilla JS. + */ + function formToData(form) { + var subKey, + i, + object = {}, + formData = form.elements; + for (i = 0; i < formData.length; i++) { + var input = formData[i], + key = input.name, + value = input.value, + names = key.match(/(.*)\[(.*)\]/); + if ((input.type === 'radio' || input.type === 'checkbox') && !input.checked) { + continue; + } + if (names !== null) { + key = names[1]; + subKey = names[2]; + if (!Reflect.has(object, key)) { + object[key] = {}; + } + object[key][subKey] = value; + continue; + } + + // Reflect.has in favor of: object.hasOwnProperty(key) + if (!Reflect.has(object, key)) { + object[key] = value; + continue; + } + if (!Array.isArray(object[key])) { + object[key] = [object[key]]; + } + object[key].push(value); + } + return object; + } + + /** + * Show, hide, and sort subfields of Name field on form builder. + * + * @since 4.11 + */ + function handleNameFieldOnFormBuilder() { + /** + * Gets subfield element from cache. + * + * @param {string} fieldId Field ID. + * @param {string} key Cache key. + * @return {HTMLElement|undefined} Return the element from cache or undefined if not found. + */ + var getSubFieldElFromCache = function getSubFieldElFromCache(fieldId, key) { + window.frmCachedSubFields = window.frmCachedSubFields || {}; + window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; + return window.frmCachedSubFields[fieldId][key]; + }; + + /** + * Sets subfield element to cache. + * + * @param {string} fieldId Field ID. + * @param {string} key Cache key. + * @param {HTMLElement} el Element. + */ + var setSubFieldElToCache = function setSubFieldElToCache(fieldId, key, el) { + window.frmCachedSubFields = window.frmCachedSubFields || {}; + window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; + window.frmCachedSubFields[fieldId][key] = el; + }; + + /** + * Gets column class from the number of columns. + * + * @param {Number} colCount Number of columns. + * @return {string} + */ + var getColClass = function getColClass(colCount) { + return 'frm' + parseInt(12 / colCount); + }; + var colClasses = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(function (num) { + return 'frm' + num; + }); + var allSubFieldNames = ['first', 'middle', 'last']; + + /** + * Handles name layout change. + * + * @param {Event} event Event object. + */ + var onChangeLayout = function onChangeLayout(event) { + var value = event.target.value; + var subFieldNames = value.split('_'); + var fieldId = event.target.dataset.fieldId; + + /* + * Live update form on the form builder. + */ + var container = document.querySelector('#field_' + fieldId + '_inner_container .frm_combo_inputs_container'); + var newColClass = getColClass(subFieldNames.length); + + // Set all sub field elements to cache and hide all of them first. + allSubFieldNames.forEach(function (name) { + var subFieldEl = container.querySelector('[data-sub-field-name="' + name + '"]'); + if (subFieldEl) { + var _subFieldEl$classList; + subFieldEl.classList.add('frm_hidden'); + (_subFieldEl$classList = subFieldEl.classList).remove.apply(_subFieldEl$classList, _toConsumableArray(colClasses)); + setSubFieldElToCache(fieldId, name, subFieldEl); + } + }); + subFieldNames.forEach(function (subFieldName) { + var subFieldEl = getSubFieldElFromCache(fieldId, subFieldName); + if (!subFieldEl) { + return; + } + subFieldEl.classList.remove('frm_hidden'); + subFieldEl.classList.add(newColClass); + container.append(subFieldEl); + }); + + /* + * Live update subfield options. + */ + // Hide all subfield options. + allSubFieldNames.forEach(function (name) { + var optionsEl = document.querySelector('.frm_sub_field_options-' + name + '[data-field-id="' + fieldId + '"]'); + if (optionsEl) { + optionsEl.classList.add('frm_hidden'); + setSubFieldElToCache(fieldId, name + '_options', optionsEl); + } + }); + subFieldNames.forEach(function (subFieldName) { + var optionsEl = getSubFieldElFromCache(fieldId, subFieldName + '_options'); + if (!optionsEl) { + return; + } + optionsEl.classList.remove('frm_hidden'); + }); + }; + var dropdownSelector = '.frm_name_layout_dropdown'; + document.addEventListener('change', function (event) { + if (event.target.matches(dropdownSelector)) { + onChangeLayout(event); + } + }, false); + } + function debounce(func) { + var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100; + return frmDom.util.debounce(func, wait); + } + function addSaveAndDragIconsToOption(fieldId, liObject) { + var li, useTag, useTagHref; + var hasDragIcon = false; + var hasSaveIcon = false; + if (liObject.newOption) { + var parser = new DOMParser(); + li = parser.parseFromString(liObject.newOption, 'text/html').body.childNodes[0]; + } else { + li = liObject; + } + var liIcons = li.querySelectorAll('svg'); + liIcons.forEach(function (svg, key) { + useTag = svg.getElementsByTagNameNS('http://www.w3.org/2000/svg', 'use')[0]; + if (!useTag) { + return; + } + useTagHref = useTag.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || useTag.getAttribute('href'); + if (useTagHref === '#frm_drag_icon') { + hasDragIcon = true; + } + if (useTagHref === '#frm_save_icon') { + hasSaveIcon = true; + } + }); + if (!hasDragIcon) { + li.prepend(icons.drag.cloneNode(true)); + } + if (li.querySelector("[id^=field_key_".concat(fieldId, "-]")) && !hasSaveIcon) { + li.querySelector("[id^=field_key_".concat(fieldId, "-]")).after(icons.save.cloneNode(true)); + } + if (liObject.newOption) { + liObject.newOption = li; + } + } + function maybeAddSaveAndDragIcons(fieldId) { + var fieldOptions = document.querySelectorAll("[id^=frm_delete_field_".concat(fieldId, "-]")); + // return if there are no options. + if (fieldOptions.length < 2) { + return; + } + var options = _toConsumableArray(fieldOptions).slice(1); + options.forEach(function (li, _key) { + if (li.classList.contains('frm_other_option')) { + return; + } + addSaveAndDragIconsToOption(fieldId, li); + }); + } + + /** + * Enforce the maximum number of entries list columns dynamically. + * + * @since 6.24 + * + * @return {void} + */ + function maybeInitEntriesListPage() { + if (!document.body.classList.contains('frm-admin-page-entries')) { + return; + } + var screenOptionsWrapper = document.getElementById('screen-options-wrap'); + if (!screenOptionsWrapper) { + return; + } + var maxSelectionsNote = div({ + className: 'frm_warning_style', + text: __('Only 10 columns can be selected at a time.', 'formidable') + }); + maxSelectionsNote.style.margin = 0; + var legend = screenOptionsWrapper.querySelector('legend'); + legend.parentNode.insertBefore(maxSelectionsNote, legend.nextElementSibling); + var checkboxes = Array.from(screenOptionsWrapper.querySelectorAll('input[type="checkbox"]')); + var maximumColumns = 10; + var getSelectedCount = function getSelectedCount() { + return checkboxes.reduce(function (count, checkbox) { + return checkbox.checked ? count + 1 : count; + }, 0); + }; + var disableCheckboxesIfAtMax = function disableCheckboxesIfAtMax() { + if (getSelectedCount() >= maximumColumns) { + maxSelectionsNote.classList.remove('frm_hidden'); + checkboxes.forEach(function (checkbox) { + if (!checkbox.checked) { + checkbox.parentNode.classList.add('frm_noallow'); + checkbox.disabled = true; + } + }); + } else { + maxSelectionsNote.classList.add('frm_hidden'); + } + }; + var addCheckboxListeners = function addCheckboxListeners() { + checkboxes.forEach(function (checkbox) { + checkbox.addEventListener('change', function (event) { + if (event.target.checked) { + disableCheckboxesIfAtMax(); + } else { + maxSelectionsNote.classList.add('frm_hidden'); + + // Enable all checkboxes when a checkbox is unchecked. + checkboxes.forEach(function (checkbox) { + checkbox.parentNode.classList.remove('frm_noallow'); + checkbox.disabled = false; + }); + } + }); + }); + }; + disableCheckboxesIfAtMax(); + addCheckboxListeners(); + } + function initOnSubmitAction() { + var onChangeType = function onChangeType(event) { + if (!event.target.checked) { + return; + } + var actionEl = event.target.closest('.frm_form_action_settings'); + actionEl.querySelectorAll('.frm_on_submit_dependent_setting:not(.frm_hidden)').forEach(function (el) { + el.classList.add('frm_hidden'); + }); + var activeEls = actionEl.querySelectorAll('.frm_on_submit_dependent_setting[data-show-if-' + event.target.value + ']'); + activeEls.forEach(function (activeEl) { + activeEl.classList.remove('frm_hidden'); + }); + actionEl.setAttribute('data-on-submit-type', event.target.value); + }; + frmDom.util.documentOn('change', '.frm_on_submit_type input[type="radio"]', onChangeType); + } + + /** + * Listen for click events for an API-loaded email collection form. + * + * This is used for the Active Campaign sign-up form in the inbox page (when there are no messages). + */ + function initAddMyEmailAddress() { + jQuery(document).on('click', '#frm-add-my-email-address', function (event) { + event.preventDefault(); + addMyEmailAddress(); + }); + var emptyInbox = document.getElementById('frm_empty_inbox'); + var leaveEmailInput = document.getElementById('frm_leave_email'); + if (emptyInbox && leaveEmailInput) { + var leaveEmailModal = document.getElementById('frm-leave-email-modal'); + leaveEmailModal.classList.remove('frm_hidden'); + leaveEmailModal.querySelector('.frm_modal_footer').classList.add('frm_hidden'); + leaveEmailInput.addEventListener('keyup', function (event) { + if ('Enter' === event.key) { + var button = document.getElementById('frm-add-my-email-address'); + if (button) { + button.click(); + } + } + }); + } + } + function addMyEmailAddress() { + var email = document.getElementById('frm_leave_email').value.trim(); + if ('' === email) { + handleEmailAddressError('empty'); + return; + } + var regex = /^(([^<>()\[\]\\.,;:\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; + if (regex.test(email) === false) { + handleEmailAddressError('invalid'); + return; + } + var $hiddenForm = jQuery('#frmapi-email-form').find('form'); + var $hiddenEmailField = $hiddenForm.find('[type="email"]').not('.frm_verify'); + if (!$hiddenEmailField.length) { + return; + } + var emptyInbox = document.getElementById('frm_empty_inbox'); + if (emptyInbox) { + document.getElementById('frm-add-my-email-address').remove(); + var emailWrapper = document.getElementById('frm_leave_email_wrapper'); + if (emailWrapper) { + emailWrapper.classList.add('frm_hidden'); + var spinner = span({ + className: 'frm-wait frm_spinner' + }); + spinner.style.visibility = 'visible'; + spinner.style.float = 'none'; + spinner.style.width = 'unset'; + emailWrapper.parentElement.insertBefore(spinner, emailWrapper.nextElementSibling); + } + } + $hiddenEmailField.val(email); + jQuery.ajax({ + type: 'POST', + url: $hiddenForm.attr('action'), + data: $hiddenForm.serialize() + '&action=frm_forms_preview' + }).done(function (data) { + var message = jQuery(data).find('.frm_message').text().trim(); + if (message.indexOf('Thanks!') === -1) { + handleEmailAddressError('invalid'); + return; + } + var apiForm = document.getElementById('frmapi-email-form'); + var spinner = apiForm.parentElement.querySelector('.frm_spinner'); + if (spinner) { + spinner.remove(); + } + var showSuccessMessage = wp.hooks.applyFilters('frm_thank_you_on_signup', true); + if (showSuccessMessage) { + // Handle successful form submission. + // handle the Active Campaign form on the inbox page. + document.getElementById('frm_leave_email_wrapper').replaceWith(span(__('Thank you for signing up!', 'formidable'))); + } + }); + } + + /** + * Adds footer links to the admin body content. + * + * @return {void} + */ + function addAdminFooterLinks() { + var _document$querySelect7; + var footerLinks = document.querySelector('.frm-admin-footer-links'); + var container = (_document$querySelect7 = document.querySelector('.frm_page_container')) !== null && _document$querySelect7 !== void 0 ? _document$querySelect7 : document.getElementById('wpbody-content'); + if (!footerLinks || !container) { + return; + } + container.appendChild(footerLinks); + footerLinks.classList.remove('frm_hidden'); + } + + /** + * Apply zebra striping to a table while ignoring empty rows. + * + * @param {string} tableSelector The CSS selector for the table. + * @param {string} emptyRowClass The class name used to identify empty rows. + */ + function applyZebraStriping(tableSelector, emptyRowClass) { + // Get all non-empty table rows within the specified table + var rows = document.querySelectorAll("".concat(tableSelector, " tr").concat(emptyRowClass ? ":not(.".concat(emptyRowClass, ")") : '')); + if (rows.length < 1) { + return; + } + var isOdd = true; + rows.forEach(function (row) { + // Clean old "frm-odd" or "frm-even" classes and add the appropriate new class + row.classList.remove('frm-odd', 'frm-even'); + row.classList.add(isOdd ? 'frm-odd' : 'frm-even'); + isOdd = !isOdd; + }); + var tables = document.querySelectorAll(tableSelector); + tables.forEach(function (table) { + return table.classList.add('frm-zebra-striping'); + }); + } + function maybeHideShortcodes(e) { + if (!builderPage) { + e.stopPropagation(); + } + if (e.target.classList.contains('frm-show-box') || e.target.parentElement && e.target.parentElement.classList.contains('frm-show-box')) { + return; + } + var sidebar = document.getElementById('frm_adv_info'); + if (!sidebar) { + return; + } + if (sidebar.dataset.fills === e.target.id && typeof e.target.id !== 'undefined') { + return; + } + var isChild = e.target.closest('#frm_adv_info'); + if (!isChild && sidebar.style.display !== 'none') { + hideShortcodes(sidebar); + } + } + + /** + * Initializes and manages the visibility of dependent elements based on the selected options in dropdowns with the 'frm_select_with_dependency' class. + * It sets up initial visibility at page load and updates it on each dropdown change. + * + * @since 6.9 + * + * @return {void} + */ + function initSelectDependencies() { + var selects = document.querySelectorAll('select.frm_select_with_dependency'); + + /** + * Toggles the visibility of dependent elements associated with a select element based on its current selection. + * + * @since 6.9 + * + * @param {HTMLElement} select The select element whose dependencies need to be managed. + * @return {void} + */ + function toggleDependencyVisibility(select) { + var selectedOption = select.options[select.selectedIndex]; + select.querySelectorAll('option[data-dependency]:not([data-dependency-skip])').forEach(function (option) { + var dependencyElement = document.querySelector(option.dataset.dependency); + dependencyElement === null || dependencyElement === void 0 || dependencyElement.classList.toggle('frm_hidden', selectedOption !== option); + }); + } + + // Initial setup: Show dependencies based on the current selection in each dropdown + selects.forEach(toggleDependencyVisibility); + + // Update dependencies visibility on dropdown change + frmDom.util.documentOn('change', 'select.frm_select_with_dependency', function (event) { + return toggleDependencyVisibility(event.target); + }); + } + + /** + * Moves the focus to the next single option input field in the list and positions the cursor at the end of the text. + * + * @param {HTMLElement} currentInput The currently focused input element. + */ + function focusNextSingleOptionInput(currentInput) { + var optionsList = currentInput.closest('.frm_single_option').parentElement; + var inputs = optionsList.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'); + var inputsArray = Array.from(inputs); + + // Find the index of the currently focused input + var currentIndex = inputsArray.indexOf(currentInput); + if (currentIndex < 0) { + return; + } + + // Find the next visible input field + var nextInput = inputsArray.slice(currentIndex + 1).find(function (input) { + return input.offsetParent !== null; + }); + if (nextInput) { + nextInput.focus(); + + // Move the cursor to the end of the text in the next input field + var textLength = nextInput.value.length; + nextInput.setSelectionRange(textLength, textLength); + } + } + return { + init: function init() { + initAddMyEmailAddress(); + addAdminFooterLinks(); + s = {}; + + // Bootstrap dropdown button + jQuery('.wp-admin').on('click', function (e) { + var t = jQuery(e.target); + var $openDrop = jQuery('.dropdown.open'); + if ($openDrop.length && !t.hasClass('dropdown') && !t.closest('.dropdown').length) { + $openDrop.removeClass('open'); + } + }); + jQuery('#frm_bs_dropdown:not(.open) a').on('click', focusSearchBox); + if (typeof thisFormId === 'undefined') { + thisFormId = jQuery(document.getElementById('form_id')).val(); + } + + // Add event listener for dismissible warning messages. + document.querySelectorAll('.frm-warning-dismiss').forEach(function (dismissIcon) { + onClickPreventDefault(dismissIcon, dismissWarningMessage); + }); + frmAdminBuild.inboxBannerInit(); + if ($newFields.length > 0) { + // only load this on the form builder page + frmAdminBuild.buildInit(); + } else if (document.getElementById('frm_notification_settings') !== null) { + // only load on form settings page + frmAdminBuild.settingsInit(); + } else if (document.getElementById('frm_styling_form') !== null) { + // load styling settings js + frmAdminBuild.styleInit(); + } else if (document.getElementById('form_global_settings') !== null) { + // global settings page + frmAdminBuild.globalSettingsInit(); + } else if (document.getElementById('frm_export_xml') !== null) { + // import/export page + frmAdminBuild.exportInit(); + } else if (null !== document.querySelector('.frm-inbox-wrapper')) { + // Dashboard page inbox. + frmAdminBuild.inboxInit(); + } else if (document.getElementById('frm-welcome') !== null) { + // Solution install page + frmAdminBuild.solutionInit(); + } else { + maybeInitEntriesListPage(); + initAutocomplete(); + jQuery('[data-frmprint]').on('click', function () { + window.print(); + return false; + }); + } + jQuery(document).on('change', 'select[data-toggleclass], input[data-toggleclass]', toggleFormOpts); + initSelectDependencies(); + var $advInfo = jQuery(document.getElementById('frm_adv_info')); + if ($advInfo.length > 0 || jQuery('.frm_field_list').length > 0) { + // only load on the form, form settings, and view settings pages + frmAdminBuild.panelInit(); + } + loadTooltips(); + initUpgradeModal(); + frmDom.util.documentOn('click', '[data-modal-title]', showBasicModal); + + // used on build, form settings, and view settings + var $shortCodeDiv = jQuery(document.getElementById('frm_shortcodediv')); + if ($shortCodeDiv.length > 0) { + jQuery('a.edit-frm_shortcode').on('click', function () { + if ($shortCodeDiv.is(':hidden')) { + $shortCodeDiv.slideDown('fast'); + this.style.display = 'none'; + } + return false; + }); + jQuery('.cancel-frm_shortcode', '#frm_shortcodediv').on('click', function () { + $shortCodeDiv.slideUp('fast'); + $shortCodeDiv.siblings('a.edit-frm_shortcode').show(); + return false; + }); + } + + // tabs + jQuery(document).on('click', '#frm-nav-tabs a', clickNewTab); + jQuery('.post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a').on('click', function () { + var showUpgradeTab = this.classList.contains('frm_show_upgrade_tab'); + if (this.classList.contains('frm_noallow') && !showUpgradeTab) { + return; + } + if (showUpgradeTab) { + populateUpgradeTab(this); + } + clickTab(this); + return false; + }); + clickTab(jQuery('.starttab a'), 'auto'); + + // submit the search form with dropdown + jQuery(document).on('click', '#frm-fid-search-menu a', function () { + var val = this.id.replace('fid-', ''); + jQuery('select[name="fid"]').val(val); + triggerSubmit(document.getElementById('posts-filter')); + return false; + }); + jQuery('.frm_select_box').on('click focus', function () { + this.select(); + }); + jQuery(document).on('input search change', '.frm-auto-search:not(#frm-form-templates-page #template-search-input)', searchContent); + jQuery(document).on('focusin click', '.frm-auto-search', stopPropagation); + var autoSearch = jQuery('.frm-auto-search'); + if (autoSearch.val() !== '') { + autoSearch.trigger('keyup'); + } + + // Initialize Formidable Connection. + FrmFormsConnect.init(); + jQuery(document).on('click', '.frm-install-addon', installAddon); + jQuery(document).on('click', '.frm-activate-addon', activateAddon); + jQuery(document).on('click', '.frm-solution-multiple', installMultipleAddons); + + // prevent annoying confirmation message from WordPress + jQuery('button, input[type=submit]').on('click', removeWPUnload); + addMultiselectLabelListener(); + frmAdminBuild.hooks.addFilter('frm_before_embed_modal', function (ids, _ref4) { + var element = _ref4.element, + type = _ref4.type; + if ('form' !== type) { + return ids; + } + var formId, formKey; + var row = element.closest('tr'); + if (row) { + // Embed icon on form index. + formId = parseInt(row.querySelector('.column-id').textContent); + formKey = row.querySelector('.column-form_key').textContent; + } else { + // Embed button in form builder / form settings. + formId = document.getElementById('form_id').value; + var formKeyInput = document.getElementById('frm_form_key'); + if (formKeyInput) { + formKey = formKeyInput.value; + } else { + var previewDrop = document.getElementById('frm-previewDrop'); + if (previewDrop) { + formKey = previewDrop.nextElementSibling.querySelector('.dropdown-item a').getAttribute('href').split('form=')[1]; + } + } + } + return [formId, formKey]; + }); + document.querySelectorAll('#frm-show-fields > li, .frm_grid_container li').forEach(function (el, _key) { + el.addEventListener('click', function () { + var _this$querySelector; + var fieldId = ((_this$querySelector = this.querySelector('li')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.dataset.fid) || this.dataset.fid; + maybeAddSaveAndDragIcons(fieldId); + }); + }); + var smallScreenProceedButton = document.getElementById('frm_small_screen_proceed_button'); + if (smallScreenProceedButton) { + onClickPreventDefault(smallScreenProceedButton, function () { + var _document$getElementB5; + (_document$getElementB5 = document.getElementById('frm_small_device_message_container')) === null || _document$getElementB5 === void 0 || _document$getElementB5.remove(); + doJsonPost('small_screen_proceed', new FormData()); + }); + } + var saleBanner = document.getElementById('frm_sale_banner'); + var saleDismiss = saleBanner === null || saleBanner === void 0 ? void 0 : saleBanner.querySelector('.dismiss'); + if (saleBanner) { + onClickPreventDefault(saleBanner, function (event) { + var target = event.target; + if (target.closest('.dismiss')) { + return; + } + window.location.href = saleBanner.getAttribute('data-url'); + }); + if (saleDismiss) { + onClickPreventDefault(saleDismiss, function () { + saleBanner.remove(); + var formData = new FormData(); + doJsonPost('sale_banner_dismiss', formData); + }); + } + } + }, + buildInit: function buildInit() { + jQuery('#frm_builder_page').on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); + var loadFieldId, $builderForm, builderArea; + debouncedSyncAfterDragAndDrop = debounce(syncAfterDragAndDrop, 10); + postBodyContent = document.getElementById('post-body-content'); + $postBodyContent = jQuery(postBodyContent); + if (jQuery('.frm_field_loading').length) { + loadFieldId = jQuery('.frm_field_loading').first().attr('id'); + loadFields(loadFieldId); + } + setupSortable('ul.frm_sorting'); + document.querySelectorAll('.field_type_list > li:not(.frm_show_upgrade)').forEach(makeDraggable); + jQuery('ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a').disableSelection(); + jQuery('.frm_submit_ajax').on('click', submitBuild); + jQuery('.frm_submit_no_ajax').on('click', submitNoAjax); + addFormNameModalEvents(); + jQuery('a.edit-form-status').on('click', slideDown); + jQuery('.cancel-form-status').on('click', slideUp); + jQuery('.save-form-status').on('click', function () { + var newStatus = jQuery(document.getElementById('form_change_status')).val(); + jQuery('input[name="new_status"]').val(newStatus); + jQuery(document.getElementById('form-status-display')).html(newStatus); + jQuery('.cancel-form-status').trigger('click'); + return false; + }); + jQuery('.frm_form_builder form').first().on('submit', function () { + jQuery('.inplace_field').trigger('blur'); + }); + initiateMultiselect(); + renumberPageBreaks(); + $builderForm = jQuery(builderForm); + builderArea = document.getElementById('frm_form_editor_container'); + $builderForm.on('click', '.frm_add_logic_row', addFieldLogicRow); + $builderForm.on('click', '.frm_add_watch_lookup_row', addWatchLookupRow); + $builderForm.on('change', '.frm_get_values_form', updateGetValueFieldSelection); + $builderForm.on('change', '.frm_logic_field_opts', getFieldValues); + $builderForm.on('frm-multiselect-changed', 'select[name^="field_options[admin_only_"]', adjustVisibilityValuesForEveryoneValues); + jQuery(document.getElementById('frm-insert-fields')).on('click', '.frm_add_field', addFieldClick); + $newFields.on('click', '.frm_clone_field', duplicateField); + $builderForm.on('blur', 'input[id^="frm_calc"]', checkCalculationCreatedByUser); + $builderForm.on('change', 'input.frm_format_opt, input.frm_max_length_opt', toggleInvalidMsg); + $builderForm.on('change click', '[data-changeme]', liveChanges); + $builderForm.on('click', 'input.frm_req_field', markRequired); + $builderForm.on('click', '.frm_mark_unique', markUnique); + $builderForm.on('change', '.frm_repeat_format', toggleRepeatButtons); + $builderForm.on('change', '.frm_repeat_limit', checkRepeatLimit); + $builderForm.on('change', '.frm_js_checkbox_limit', checkCheckboxSelectionsLimit); + $builderForm.on('input', 'input[name^="field_options[add_label_"]', function () { + updateRepeatText(this, 'add'); + }); + $builderForm.on('input', 'input[name^="field_options[remove_label_"]', function () { + updateRepeatText(this, 'remove'); + }); + $builderForm.on('change', 'select[name^="field_options[data_type_"]', maybeClearWatchFields); + jQuery(builderArea).on('click', '.frm-collapse-page', maybeCollapsePage); + jQuery(builderArea).on('click', '.frm-collapse-section', maybeCollapseSection); + $builderForm.on('click', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', maybeCollapseSettings); + $builderForm.on('keydown', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', function (event) { + // If so, only proceed if the key pressed was 'Enter' or 'Space' + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + maybeCollapseSettings.call(this, event); + } + }); + jQuery(builderArea).on('show.bs.dropdown hide.bs.dropdown', changeSectionStyle); + $builderForm.on('click', '.frm_toggle_sep_values', toggleSepValues); + $builderForm.on('click', '.frm_toggle_image_options', toggleImageOptions); + $builderForm.on('click', '.frm_remove_image_option', removeImageFromOption); + $builderForm.on('click', '.frm_choose_image_box', addImageToOption); + $builderForm.on('change', '.frm_hide_image_text', refreshOptionDisplay); + $builderForm.on('change', '.frm_field_options_image_size', setImageSize); + $builderForm.on('click', '.frm_multiselect_opt', toggleMultiselect); + $newFields.on('mousedown', 'input, textarea, select', stopFieldFocus); + $newFields.on('click', 'input[type=radio], input[type=checkbox]', stopFieldFocus); + $newFields.on('click', '.frm_delete_field', clickDeleteField); + $newFields.on('click', '.frm_select_field', clickSelectField); + jQuery(document).on('click', '.frm_delete_field_group', clickDeleteFieldGroup); + jQuery(document).on('click', '.frm_clone_field_group', duplicateFieldGroup); + jQuery(document).on('click', '#frm_field_group_controls > span:first-child', clickFieldGroupLayout); + jQuery(document).on('click', '.frm-row-layout-option', handleFieldGroupLayoutOptionClick); + jQuery(document).on('click', '.frm-merge-fields-into-row .frm-row-layout-option', handleFieldGroupLayoutOptionInsideMergeClick); + jQuery(document).on('click', '.frm-custom-field-group-layout', customFieldGroupLayoutClick); + jQuery(document).on('click', '.frm-merge-fields-into-row .frm-custom-field-group-layout', customFieldGroupLayoutInsideMergeClick); + jQuery(document).on('click', '.frm-break-field-group', breakFieldGroupClick); + $newFields.on('click', '#frm_field_group_popup .frm_grid_container input', focusFieldGroupInputOnClick); + jQuery(document).on('click', '.frm-cancel-custom-field-group-layout', cancelCustomFieldGroupClick); + jQuery(document).on('click', '.frm-save-custom-field-group-layout', saveCustomFieldGroupClick); + $newFields.on('click', 'ul.frm_sorting', fieldGroupClick); + jQuery(document).on('click', '.frm-merge-fields-into-row', mergeFieldsIntoRowClick); + jQuery(document).on('click', '.frm-delete-field-groups', deleteFieldGroupsClick); + $newFields.on('click', '.frm-field-action-icons [data-toggle="dropdown"]', function () { + this.closest('li.form-field').classList.add('frm-field-settings-open'); + jQuery(document).on('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); + }); + $newFields.on('mousemove', 'ul.frm_sorting', checkForMultiselectKeysOnMouseMove); + $newFields.on('show.bs.dropdown', '.frm-field-action-icons', onFieldActionDropdownShow); + jQuery(document).on('show.bs.dropdown', '#frm_field_group_controls', onFieldGroupActionDropdownShow); + $builderForm.on('click', '.frm_single_option a[data-removeid]', deleteFieldOption); + $builderForm.on('mousedown', '.frm_single_option input[type=radio]', maybeUncheckRadio); + $builderForm.on('focusin', '.frm_single_option input[type=text]', maybeClearOptText); + $builderForm.on('click', '.frm_add_opt', addFieldOption); + $builderForm.on('change', '.frm_single_option input', resetOptOnChange); + $builderForm.on('change', '.frm_image_id', resetOptOnChange); + $builderForm.on('change', '.frm_toggle_mult_sel', toggleMultSel); + $newFields.on('click', '.frm_primary_label', clickLabel); + $newFields.on('click', '.frm_description', clickDescription); + $newFields.on('click', 'li.ui-state-default:not(.frm_noallow)', clickVis); + $newFields.on('dblclick', 'li.ui-state-default', openAdvanced); + $builderForm.on('change', '.frm_tax_form_select', toggleFormTax); + $builderForm.on('change', 'select.conf_field', addConf); + $builderForm.on('change', '.frm_get_field_selection', getFieldSelection); + $builderForm.on('click', '.frm-show-inline-modal', maybeShowInlineModal); + $builderForm.on('keydown', '.frm-show-inline-modal', function (event) { + var key = event.key; + if (key === 'Enter' || key === ' ') { + event.preventDefault(); + maybeShowInlineModal.call(this, event); + } + }); + $builderForm.on('click', '.frm-inline-modal .dismiss', dismissInlineModal); + jQuery(document).on('change', '[data-frmchange]', changeInputtedValue); + document.addEventListener('click', closeModalOnOutsideClick); + $builderForm.on('change', '.frm_include_extras_field', rePopCalcFieldsForSummary); + $builderForm.on('change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg); + jQuery(document).on('submit', '#frm_js_build_form', buildSubmittedNoAjax); + jQuery(document).on('change', '#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea', fieldUpdated); + popAllProductFields(); + jQuery(document).on('change', '.frmjs_prod_data_type_opt', toggleProductType); + jQuery(document).on('focus', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextFocus); + jQuery(document).on('blur', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextBlur); + frmDom.util.documentOn('click', '.frm-show-field-settings', clickVis); + frmDom.util.documentOn('change', 'select.frm_format_dropdown, select.frm_phone_type_dropdown', maybeUpdateFormatInput); + + // Navigate to the next input field on pressing Enter in a single option field + $builderForm.on('keydown', '.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]', function (event) { + if ('Enter' === event.key) { + focusNextSingleOptionInput(event.currentTarget); + } + }); + initBulkOptionsOverlay(); + hideEmptyEle(); + document.addEventListener('frm_added_field', hideEmptyEle); + maybeHideQuantityProductFieldOption(); + handleNameFieldOnFormBuilder(); + toggleSectionHolder(); + handleShowPasswordLiveUpdate(); + document.addEventListener('scroll', updateShortcodesPopupPosition, true); + document.addEventListener('change', handleBuilderChangeEvent); + document.querySelector('.frm_form_builder').addEventListener('mousedown', function (event) { + if (event.shiftKey) { + event.preventDefault(); + } + }); + wp.hooks.addAction('frmShowedFieldSettings', 'formidableAdmin', function (showBtn, fieldSettingsEl) { + fieldSettingsEl.querySelectorAll('.frm-collapse-me').forEach(addSlideAnimationCssVars); + }, 9999); + }, + settingsInit: function settingsInit() { + var $formActions = jQuery(document.getElementById('frm_notification_settings')); + var formSettings, $loggedIn, $cookieExp, $editable; + + // BCC, CC, and Reply To button functionality + $formActions.on('click', '.frm_email_buttons', showEmailRow); + $formActions.on('click', '.frm_remove_field', hideEmailRow); + $formActions.on('change', '.frm_to_row, .frm_from_row', showEmailWarning); + $formActions.on('change', '.frm_tax_selector', changePosttaxRow); + $formActions.on('change', 'select.frm_single_post_field', checkDupPost); + $formActions.on('change', 'select.frm_toggle_post_content', togglePostContent); + $formActions.on('change', 'select.frm_dyncontent_opt', fillDyncontent); + $formActions.on('change', '.frm_post_type', switchPostType); + $formActions.on('click', '.frm_add_postmeta_row', addPostmetaRow); + $formActions.on('click', '.frm_add_posttax_row', addPosttaxRow); + $formActions.on('click', '.frm_toggle_cf_opts', toggleCfOpts); + $formActions.on('click', '.frm_duplicate_form_action', copyFormAction); + jQuery('.frm_actions_list').on('click', '.frm_active_action', addFormAction); + jQuery('#frm-show-groups, #frm-hide-groups').on('click', toggleActionGroups); + initiateMultiselect(); + + //set actions icons to inactive + jQuery('ul.frm_actions_list li').each(function () { + checkActiveAction(jQuery(this).children('a').data('actiontype')); + + // If the icon is a background image, don't add BG color. + var icon = jQuery(this).find('i'); + if (icon.css('background-image') !== 'none') { + icon.addClass('frm-inverse'); + } + }); + jQuery('.frm_submit_settings_btn').on('click', submitSettings); + addFormNameModalEvents(); + formSettings = jQuery('.frm_form_settings'); + formSettings.on('click', '.frm_add_form_logic', addFormLogicRow); + formSettings.on('click', '.frm_already_used', actionLimitMessage); + document.addEventListener('click', function handleImageUploadClickEvents(event) { + var target = event.target; + if (!target.closest('.frm_image_preview_wrapper')) { + return; + } + if (target.closest('.frm_choose_image_box')) { + addImageToOption.bind(target)(event); + return; + } + if (target.closest('.frm_remove_image_option')) { + removeImageFromOption.bind(target)(event); + } + }); + + // Close shortcode modal on click. + formSettings.on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); + + //Warning when user selects "Do not store entries ..." + jQuery(document.getElementById('no_save')).on('change', function () { + if (this.checked) { + if (confirm(frmAdminJs.no_save_warning) !== true) { + // Uncheck box if user hits "Cancel" + jQuery(this).attr('checked', false); + } + } + }); + jQuery('select[name="options[edit_action]"]').on('change', showSuccessOpt); + $loggedIn = document.getElementById('logged_in'); + jQuery($loggedIn).on('change', function () { + if (this.checked) { + visible('.hide_logged_in'); + } else { + invisible('.hide_logged_in'); + } + }); + $cookieExp = jQuery(document.getElementById('frm_cookie_expiration')); + jQuery(document.getElementById('frm_single_entry_type')).on('change', function () { + if (this.value === 'cookie') { + $cookieExp.fadeIn('slow'); + } else { + $cookieExp.fadeOut('slow'); + } + }); + var $singleEntry = document.getElementById('single_entry'); + jQuery($singleEntry).on('change', function () { + if (this.checked) { + visible('.hide_single_entry'); + } else { + invisible('.hide_single_entry'); + } + if (this.checked && jQuery(document.getElementById('frm_single_entry_type')).val() === 'cookie') { + $cookieExp.fadeIn('slow'); + } else { + $cookieExp.fadeOut('slow'); + } + }); + jQuery('.hide_save_draft').hide(); + var $saveDraft = jQuery(document.getElementById('save_draft')); + $saveDraft.on('change', function () { + if (this.checked) { + jQuery('.hide_save_draft').fadeIn('slow'); + } else { + jQuery('.hide_save_draft').fadeOut('slow'); + } + }); + triggerChange($saveDraft); + + //If Allow editing is checked/unchecked + $editable = document.getElementById('editable'); + jQuery($editable).on('change', function () { + if (this.checked) { + jQuery('.hide_editable').fadeIn('slow'); + triggerChange(document.getElementById('edit_action')); + } else { + jQuery('.hide_editable').fadeOut('slow'); + jQuery('.edit_action_message_box').fadeOut('slow'); //Hide On Update message box + } + }); + + //If File Protection is checked/unchecked + jQuery(document).on('change', '#protect_files', function () { + if (this.checked) { + jQuery('.hide_protect_files').fadeIn('slow'); + } else { + jQuery('.hide_protect_files').fadeOut('slow'); + } + }); + jQuery(document).on('frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues); + jQuery(document).on('submit', '.frm_form_settings', settingsSubmitted); + jQuery(document).on('change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated); + + // Page Selection Autocomplete + initAutocomplete(); + jQuery(document).on('frm-action-loaded', onActionLoaded); + initOnSubmitAction(); + }, + panelInit: function panelInit() { + var customPanel, settingsPage, viewPage, insertFieldsTab; + jQuery('.frm_wrap, #postbox-container-1').on('click', '.frm_insert_code', insertCode); + jQuery(document).on('change', '.frm_insert_val', function () { + insertFieldCode(jQuery(this).data('target'), jQuery(this).val()); + jQuery(this).val(''); + }); + jQuery(document).on('click change', '[name="frm-id-key-condition"]', resetLogicBuilder); + jQuery(document).on('keyup change', '.frm-build-logic', setLogicExample); + showInputIcon(); + jQuery(document).on('frmElementAdded', function (event, parentEle) { + /* This is here for add-ons to trigger */ + showInputIcon(parentEle); + }); + jQuery(document).on('mousedown', '.frm-show-box', showShortcodes); + settingsPage = document.getElementById('form_settings_page'); + viewPage = document.body.classList.contains('post-type-frm_display'); + insertFieldsTab = document.getElementById('frm_insert_fields_tab'); + if (settingsPage !== null || viewPage || builderPage) { + jQuery(document).on('focusin', 'form input, form textarea', function (e) { + var htmlTab; + e.stopPropagation(); + maybeShowModal(this); + if (jQuery(this).is(':not(:submit, input[type=button], .frm-search-input, input[type=checkbox])')) { + if (jQuery(e.target).closest('#frm_adv_info').length) { + // Don't trigger for fields inside of the modal. + return; + } + if (settingsPage !== null || builderPage) { + /* form settings page */ + htmlTab = jQuery('#frm_html_tab'); + if (jQuery(this).closest('#html_settings').length > 0) { + htmlTab.show(); + htmlTab.siblings().hide(); + jQuery('#frm_html_tab a').trigger('click'); + toggleAllowedHTML(this); + } else { + showElement(jQuery('.frm-category-tabs li')); + insertFieldsTab.click(); + htmlTab.hide(); + htmlTab.siblings().show(); + } + } else if (viewPage) { + var event = new CustomEvent('frm_legacy_views_handle_field_focus'); + event.frmData = { + idAttrValue: this.id + }; + document.dispatchEvent(event); + } + } + }); + } + jQuery('.frm_wrap, #postbox-container-1').on('mousedown', '#frm_adv_info a, .frm_field_list a', function (e) { + e.preventDefault(); + }); + customPanel = jQuery('#frm_adv_info'); + customPanel.on('click', '.subsubsub a.frmids', function (e) { + toggleKeyID('frmids', e); + }); + customPanel.on('click', '.subsubsub a.frmkeys', function (e) { + toggleKeyID('frmkeys', e); + }); + }, + inboxInit: function inboxInit() { + var _document$getElementB6; + jQuery('.frm_inbox_dismiss').on('click', function (e) { + var message = this.parentNode.parentNode; + var key = message.getAttribute('data-message'); + var href = this.getAttribute('href'); + var dismissedMessage = message.cloneNode(true); + var dismissedMessagesWrapper = document.querySelector('.frm-dismissed-inbox-messages'); + if ('free_templates' === key && !this.classList.contains('frm_inbox_dismiss')) { + return; + } + e.preventDefault(); + data = { + action: 'frm_inbox_dismiss', + key: key, + nonce: frmGlobal.nonce + }; + var isInboxSlideIn = 'frm_inbox_slide_in' === message.id; + if (isInboxSlideIn) { + message.classList.remove('s11-fadein'); + message.classList.add('s11-fadeout'); + message.addEventListener('animationend', function () { + return message.remove(); + }, { + once: true + }); + } + postAjax(data, function () { + if (isInboxSlideIn) { + return; + } + if (href !== '#') { + window.location = href; + return true; + } + fadeOut(message, function () { + if (null !== dismissedMessagesWrapper) { + var _dismissedMessage$que; + dismissedMessage.classList.remove('frm-fade'); + (_dismissedMessage$que = dismissedMessage.querySelector('.frm-inbox-message-heading')) === null || _dismissedMessage$que === void 0 || _dismissedMessage$que.removeChild(dismissedMessage.querySelector('.frm-inbox-message-heading .frm_inbox_dismiss')); + dismissedMessagesWrapper.append(dismissedMessage); + } + if (1 === message.parentNode.querySelectorAll('.frm-inbox-message-container').length) { + document.getElementById('frm_empty_inbox').classList.remove('frm_hidden'); + message.parentNode.closest('.frm-active').classList.add('frm-empty-inbox'); + showActiveCampaignForm(); + } + message.parentNode.removeChild(message); + }); + }); + }); + if (false === ((_document$getElementB6 = document.getElementById('frm_empty_inbox')) === null || _document$getElementB6 === void 0 ? void 0 : _document$getElementB6.classList.contains('frm_hidden'))) { + showActiveCampaignForm(); + } + }, + solutionInit: function solutionInit() { + jQuery(document).on('submit', '#frm-new-template', installTemplate); + }, + styleInit: function styleInit() { + var $previewWrapper = jQuery('.frm_image_preview_wrapper'); + $previewWrapper.on('click', '.frm_choose_image_box', addImageToOption); + $previewWrapper.on('click', '.frm_remove_image_option', removeImageFromOption); + wp.hooks.doAction('frm_style_editor_init'); + }, + customCSSInit: function customCSSInit() { + console.warn('Calling frmAdminBuild.customCSSInit is deprecated.'); + }, + globalSettingsInit: function globalSettingsInit() { + var licenseTab; + jQuery(document).on('click', '[data-frmuninstall]', uninstallNow); + initiateMultiselect(); + + // activate addon licenses + licenseTab = document.getElementById('licenses_settings'); + if (licenseTab !== null) { + jQuery(licenseTab).on('click', '.edd_frm_save_license', saveAddonLicense); + } + + // Solution install page + jQuery(document).on('click', '#frm-new-template button', installTemplateFieldset); + jQuery('#frm-dismissable-cta .dismiss').on('click', function (event) { + event.preventDefault(); + jQuery.post(ajaxurl, { + action: 'frm_lite_settings_upgrade', + nonce: frmGlobal.nonce + }); + jQuery('.settings-lite-cta').remove(); + }); + var captchaType = document.getElementById('frm_re_type'); + if (captchaType) { + captchaType.addEventListener('change', handleCaptchaTypeChange); + } + document.querySelector('.frm_captchas').addEventListener('change', function (event) { + var _document$querySelect8; + var captchaValueOnLoad = (_document$querySelect8 = document.querySelector('.frm_captchas input[checked="checked"]')) === null || _document$querySelect8 === void 0 ? void 0 : _document$querySelect8.value; + var showNote = event.target.value !== captchaValueOnLoad; + document.querySelector('.captcha_settings .frm_note_style').classList.toggle('frm_hidden', !showNote); + }); + + // Set fieldsUpdated to 0 to avoid the unsaved changes pop up. + frmDom.util.documentOn('submit', '.frm_settings_form', function () { + return fieldsUpdated = 0; + }); + var manageStyleSettings = document.getElementById('manage_styles_settings'); + if (manageStyleSettings) { + manageStyleSettings.addEventListener('change', function (event) { + var target = event.target; + if ('SELECT' !== target.nodeName || !target.dataset.name || target.getAttribute('name')) { + return; + } + target.setAttribute('name', target.dataset.name); + }); + } + var paymentsSettings = document.getElementById('payments_settings'); + var paymentSettingsTabs = paymentsSettings === null || paymentsSettings === void 0 ? void 0 : paymentsSettings.querySelectorAll('[name="frm_payment_section"]'); + if (paymentSettingsTabs) { + paymentSettingsTabs.forEach(function (element) { + element.addEventListener('change', function () { + if (!element.checked) { + return; + } + var label = paymentsSettings.querySelector("label[for=\"".concat(element.id, "\"]")); + if (label) { + label.setAttribute('aria-selected', 'true'); + } + paymentSettingsTabs.forEach(function (tab) { + if (tab === element) { + return; + } + var label = paymentsSettings.querySelector("label[for=\"".concat(tab.id, "\"]")); + if (label) { + label.setAttribute('aria-selected', 'false'); + } + }); + }); + }); + } + }, + exportInit: function exportInit() { + jQuery('.frm_form_importer').on('submit', startFormMigration); + jQuery(document.getElementById('frm_export_xml')).on('submit', validateExport); + jQuery('#frm_export_xml input, #frm_export_xml select').on('change', removeExportError); + jQuery('input[name="frm_import_file"]').on('change', checkCSVExtension); + document.querySelector('select[name="format"]').addEventListener('change', exportTypeChanged); + jQuery('input[name="frm_export_forms[]"]').on('click', preventMultipleExport); + initiateMultiselect(); + jQuery('.frm-feature-banner .dismiss').on('click', function (event) { + event.preventDefault(); + jQuery.post(ajaxurl, { + action: 'frm_dismiss_migrator', + plugin: this.id, + nonce: frmGlobal.nonce + }); + this.parentElement.remove(); + }); + showOrHideRepeaters(getExportOption()); + document.querySelector('#frm-export-select-all').addEventListener('change', function (event) { + document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function (cb) { + return cb.checked = event.target.checked; + }); + }); + }, + inboxBannerInit: function inboxBannerInit() { + var banner = document.getElementById('frm_banner'); + if (!banner) { + return; + } + var dismissButton = banner.querySelector('.frm-banner-dismiss'); + document.addEventListener('click', function (event) { + if (event.target !== dismissButton) { + return; + } + var data = { + action: 'frm_inbox_dismiss', + key: banner.dataset.key, + nonce: frmGlobal.nonce + }; + postAjax(data, function () { + jQuery(banner).fadeOut(400, function () { + banner.remove(); + }); + }); + }); + }, + updateOpts: function updateOpts(fieldId, opts, modal) { + var separate = usingSeparateValues(fieldId), + action = isProductField(fieldId) ? 'frm_bulk_products' : 'frm_import_options'; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: action, + field_id: fieldId, + opts: opts, + separate: separate, + nonce: frmGlobal.nonce + }, + success: function success(html) { + document.getElementById('frm_field_' + fieldId + '_opts').innerHTML = html; + wp.hooks.doAction('frm_after_bulk_edit_opts', fieldId); + resetDisplayedOpts(fieldId); + if (typeof modal !== 'undefined') { + modal.dialog('close'); + document.getElementById('frm-update-bulk-opts').classList.remove('frm_loading_button'); + } + } + }); + }, + /* remove conditional logic if the field doesn't exist */ + triggerRemoveLogic: function triggerRemoveLogic(fieldID, metaName) { + jQuery('#frm_logic_' + fieldID + '_' + metaName + ' .frm_remove_tag').trigger('click'); + }, + downloadXML: function downloadXML(controller, ids, isTemplate) { + var url = ajaxurl + '?action=frm_' + controller + '_xml&ids=' + ids; + if (isTemplate !== null) { + url = url + '&is_template=' + isTemplate; + } + location.href = url; + }, + /** + * @since 5.0.04 + */ + hooks: { + applyFilters: function applyFilters(hookName) { + var _wp$hooks; + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + return (_wp$hooks = wp.hooks).applyFilters.apply(_wp$hooks, [hookName].concat(args)); + }, + addFilter: function addFilter(hookName, callback, priority) { + return wp.hooks.addFilter(hookName, 'formidable', callback, priority); + }, + doAction: function doAction(hookName) { + var _wp$hooks2; + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key3 = 1; _key3 < _len2; _key3++) { + args[_key3 - 1] = arguments[_key3]; + } + return (_wp$hooks2 = wp.hooks).doAction.apply(_wp$hooks2, [hookName].concat(args)); + }, + addAction: function addAction(hookName, callback, priority) { + return wp.hooks.addAction(hookName, 'formidable', callback, priority); + } + }, + applyZebraStriping: applyZebraStriping, + initModal: initModal, + infoModal: infoModal, + offsetModalY: offsetModalY, + adjustConditionalLogicOptionOrders: adjustConditionalLogicOptionOrders, + addRadioCheckboxOpt: addRadioCheckboxOpt, + installNewForm: installNewForm, + toggleAddonState: toggleAddonState, + purifyHtml: purifyHtml, + loadApiEmailForm: loadApiEmailForm, + addMyEmailAddress: addMyEmailAddress, + fillDropdownOpts: fillDropdownOpts, + showSaveAndReloadModal: showSaveAndReloadModal, + clearSettingsBox: clearSettingsBox, + deleteField: deleteField, + insertFormField: insertFormField, + confirmLinkClick: confirmLinkClick, + handleInsertFieldByDraggingResponse: handleInsertFieldByDraggingResponse, + handleAddFieldClickResponse: handleAddFieldClickResponse, + syncLayoutClasses: syncLayoutClasses, + moveFieldSettings: moveFieldSettings + }; +}; +window.frmAdminBuild = frmAdminBuildJS(); +jQuery(document).ready(function () { + var _document$querySelect9; + frmAdminBuild.init(); + frmDom.bootstrap.setupBootstrapDropdowns(convertOldBootstrapDropdownsToBootstrap4); + (_document$querySelect9 = document.querySelector('.preview.dropdown .frm-dropdown-toggle')) === null || _document$querySelect9 === void 0 || _document$querySelect9.setAttribute('data-toggle', 'dropdown'); + function convertOldBootstrapDropdownsToBootstrap4(frmDropdownMenu) { + var toggle = frmDropdownMenu.querySelector('.frm-dropdown-toggle'); + if (toggle) { + if (!toggle.hasAttribute('role')) { + toggle.setAttribute('role', 'button'); + } + if (!toggle.hasAttribute('tabindex')) { + toggle.setAttribute('tabindex', 0); + } + } + + // Convert
        • and
            tags. + if ('UL' === frmDropdownMenu.tagName) { + convertBootstrapUl(frmDropdownMenu); + } + } + function convertBootstrapUl(ul) { + var html = ul.outerHTML; + html = html.replace('
              ', ''); + html = html.replaceAll('
            • ', '
            • ', ''); + ul.outerHTML = html; + } +}); +window.frm_show_div = function (div, value, showIf, classId) { + // eslint-disable-line camelcase + if (value == showIf) { + jQuery(classId + div).fadeIn('slow').css('visibility', 'visible'); + } else { + jQuery(classId + div).fadeOut('slow'); + } +}; +window.frmCheckAll = function (checked, n) { + jQuery('input[name^="' + n + '"]').prop('checked', !!checked); +}; +window.frmCheckAllLevel = function (checked, n, level) { + var $kids = jQuery('.frm_catlevel_' + level).children('.frm_checkbox').children('label'); + $kids.children('input[name^="' + n + '"]').prop('checked', !!checked); +}; +window.frmGetFieldValues = function (fieldId, cur, rowNumber, fieldType, htmlName, callback) { + if (!fieldId) { + return; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: 'action=frm_get_field_values¤t_field=' + cur + '&field_id=' + fieldId + '&name=' + htmlName + '&t=' + fieldType + '&form_action=' + jQuery('input[name="frm_action"]').val() + '&nonce=' + frmGlobal.nonce, + success: function success(msg) { + document.getElementById('frm_show_selected_values_' + cur + '_' + rowNumber).innerHTML = msg; + if ('function' === typeof callback) { + callback(); + } + } + }); +}; +window.frmImportCsv = function (formID) { + var urlVars = ''; + if (typeof __FRMURLVARS !== 'undefined') { + urlVars = __FRMURLVARS; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: 'action=frm_import_csv&nonce=' + frmGlobal.nonce + '&frm_skip_cookie=1' + urlVars, + success: function success(count) { + var max = jQuery('.frm_admin_progress_bar').attr('aria-valuemax'); + var imported = max - count; + var percent = imported / max * 100; + jQuery('.frm_admin_progress_bar').css('width', percent + '%').attr('aria-valuenow', imported); + if (parseInt(count, 10) > 0) { + jQuery('.frm_csv_remaining').html(count); + frmImportCsv(formID); + } else { + jQuery(document.getElementById('frm_import_message')).html(frm_admin_js.import_complete); // eslint-disable-line camelcase + setTimeout(function () { + location.href = '?page=formidable-entries&frm_action=list&form=' + formID + '&import-message=1'; + }, 2000); + } + } + }); +}; +/******/ })() +; +//# sourceMappingURL=formidable_admin.js.map \ No newline at end of file diff --git a/js/formidable_blocks.js b/js/formidable_blocks.js index 954846e136..f6a7dd57bb 100644 --- a/js/formidable_blocks.js +++ b/js/formidable_blocks.js @@ -1 +1,2718 @@ -(()=>{var e={532:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l});var n=r(601),o=r.n(n),i=r(314),a=r.n(i)()(o());a.push([e.id,"button.t3RQZV1ZQbHGYyQUnhIY {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.t3RQZV1ZQbHGYyQUnhIY:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: Ts7haRQUDk0YMfLiQW00 2s linear infinite;\n}",""]);const l=a},314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var l=0;l0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},601:e=>{"use strict";e.exports=function(e){return e[1]}},694:(e,t,r)=>{"use strict";var n=r(925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,a){if(a!==n){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},556:(e,t,r)=>{e.exports=r(694)()},925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},72:e=>{"use strict";var t=[];function r(e){for(var r=-1,n=0;n{"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,r)=>{"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nc=void 0,(()=>{"use strict";function e(t){return e="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},e(t)}function t(t,r,n){var o,i,a;n((o={},a=r,(i=function(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}(i=t))in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,o))}function n(e,t){return e?" ".concat(t,'="').concat(e,'"'):""}function o(e){return o="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},o(e)}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r-1&&(n=e.substr(0,r)),n+"wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(c))},V("Go to form","formidable")))),wp.element.createElement(W,{title:V("Options","formidable"),initialOpen:!1},wp.element.createElement(Y,{label:V("Show Form Title","formidable"),checked:s,onChange:function(e){t("title",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Show Form Description","formidable"),checked:m,onChange:function(e){t("description",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Minimize HTML","formidable"),checked:f,onChange:function(e){t("minimize",e?"1":"",i)}})),wp.element.createElement(W,{title:V("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(Q,null,wp.element.createElement(u,this.props.attributes))))}}])&&z(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(B);function q(e){return q="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},q(e)}function $(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./js/src/api/class-addon-api.js": +/*!***************************************!*\ + !*** ./js/src/api/class-addon-api.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAddonAPI: () => (/* binding */ frmAddonAPI) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAddonAPI = /*#__PURE__*/function () { + function frmAddonAPI() { + _classCallCheck(this, frmAddonAPI); + } + return _createClass(frmAddonAPI, null, [{ + key: "toggleAddonState", + value: + /** + * A function designed to toggle different addon states. + * + * @param {'frm_install_addon'|'frm_activate_addon'|'frm_multiple_addons'} action The addon state action type. + * @param {string} addon The addon path. Ex: formidable-views/formidable-views.php + * + * @return {Promise} The response from the server. + */ + function toggleAddonState(action, addon) { + return fetch(ajaxurl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + action: action, + nonce: frmGlobal.nonce, + plugin: addon + }) + }).then(function (response) { + return response.json(); + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/api/index.js": +/*!*****************************!*\ + !*** ./js/src/api/index.js ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAddonAPI: () => (/* reexport safe */ _class_addon_api__WEBPACK_IMPORTED_MODULE_0__.frmAddonAPI) +/* harmony export */ }); +/* harmony import */ var _class_addon_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./class-addon-api */ "./js/src/api/class-addon-api.js"); + + +/***/ }), + +/***/ "./js/src/common/components/icon.js": +/*!******************************************!*\ + !*** ./js/src/common/components/icon.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormidableIcon) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Formidable Forms icon + */ +var Component = wp.element.Component; +var Dashicon = wp.components.Dashicon; +var FormidableIcon = /*#__PURE__*/function (_Component) { + function FormidableIcon() { + _classCallCheck(this, FormidableIcon); + return _callSuper(this, FormidableIcon, arguments); + } + _inherits(FormidableIcon, _Component); + return _createClass(FormidableIcon, [{ + key: "loadCustomSvgIcon", + value: function loadCustomSvgIcon() { + var icon = formidable_form_selector.icon; + if (icon.match(/frm_white_label_icon/)) { + return wp.element.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 20 20", + width: "120", + height: "120" + }, wp.element.createElement("path", { + d: "M18.1 1.3H2C.9 1.3 0 2 0 3V17c0 1 .8 1.9 1.9 1.9H18c1 0 1.9-.9 1.9-2V3.2c0-1-.8-1.9-1.9-1.9zM18 16.9H2a.2.2 0 0 1-.2-.3V3.4c0-.2 0-.3.2-.3H18c.1 0 .2.1.2.3v13.2c0 .2 0 .3-.2.3zm-1.6-3.6v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm0-3.8v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.4v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.4zm0-3.7v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm-9.9.5a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.7a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.8a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0z" + })); + } + return false; + } + }, { + key: "render", + value: function render() { + if (false !== this.loadCustomSvgIcon()) { + return this.loadCustomSvgIcon(); + } + if (formidable_form_selector.icon !== 'svg') { + return wp.element.createElement(Dashicon, { + icon: formidable_form_selector.icon + }); + } + return wp.element.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 599.68 601.37", + width: "120", + height: "120" + }, wp.element.createElement("path", { + className: "cls-1 orange", + d: "M289.6 384h140v76h-140z" + }), wp.element.createElement("path", { + className: "cls-1", + d: "M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z" + }), wp.element.createElement("path", { + className: "cls-1", + d: "M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z" + })); + } + }]); +}(Component); + + +/***/ }), + +/***/ "./js/src/common/components/itemselect.js": +/*!************************************************!*\ + !*** ./js/src/common/components/itemselect.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ ItemSelect) +/* harmony export */ }); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +var _wp$i18n = wp.i18n, + __ = _wp$i18n.__, + sprintf = _wp$i18n.sprintf; + +var Component = wp.element.Component; +var SelectControl = wp.components.SelectControl; + +/** + * Displays a Select control with the specified items as options + * + */ +var ItemSelect = /*#__PURE__*/function (_Component) { + function ItemSelect() { + _classCallCheck(this, ItemSelect); + return _callSuper(this, ItemSelect, arguments); + } + _inherits(ItemSelect, _Component); + return _createClass(ItemSelect, [{ + key: "createOptions", + value: function createOptions(items, itemName) { + var options = items.map(function (item) { + return { + label: item.label, + value: item.value + }; + }); + return [{ + // translators: %s is the name of the item + label: sprintf(__('Select a %s', 'formidable'), itemName), + value: '' + }].concat(_toConsumableArray(options)); + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selected = _this$props.selected, + items = _this$props.items, + onChange = _this$props.onChange, + itemName = _this$props.itemName, + itemNamePlural = _this$props.itemNamePlural, + label = _this$props.label, + help = _this$props.help; + if (!items || items.length === 0) { + return wp.element.createElement("p", { + className: "frm-block-select-no-items" + }, sprintf( + // translators: %s is the name of the item + __('Currently, there are no %s', 'formidable'), itemNamePlural)); + } + return wp.element.createElement(SelectControl, { + value: selected, + options: this.createOptions(items, itemName), + label: label, + help: help, + onChange: onChange + }); + } + }]); +}(Component); + +ItemSelect.defaultProps = { + itemName: 'item', + itemNamePlural: 'items' +}; +ItemSelect.propTypes = { + selected: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number)]), + //selected item + items: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().array), + //list of possible items + onChange: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func), + itemName: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), + //name for item in select label + itemNamePlural: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), + //plural of items, used in some labels + label: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), + help: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string) +}; + +/***/ }), + +/***/ "./js/src/common/utilities/values.js": +/*!*******************************************!*\ + !*** ./js/src/common/utilities/values.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ cssHideAdvancedSettings: () => (/* binding */ cssHideAdvancedSettings), +/* harmony export */ getSubDir: () => (/* binding */ getSubDir), +/* harmony export */ setTextAttribute: () => (/* binding */ setTextAttribute), +/* harmony export */ updateAttribute: () => (/* binding */ updateAttribute) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Updates an attribute with the specified new value + * + * @param {string} attributeName Name of block attribute to be updated + * @param {*} attributeValue Value of block attribute to be updated + * @param {Function} setAttributes Function to set the block attribute to be updated + */ +function updateAttribute(attributeName, attributeValue, setAttributes) { + setAttributes(_defineProperty({}, attributeName, attributeValue)); +} + +/** + * Sets text attribute for a shortcode from a key value pair + * + * @param {*} value Value of text attribute to be set + * @param {string} attributeName Name of text attribute to be set + * @return {string} String of the text attribute in the format " id=10" + */ +function setTextAttribute(value, attributeName) { + if (value) { + return " ".concat(attributeName, "=\"").concat(value, "\""); + } + return ''; +} + +/** + * Gets subdirectory of current site, if the site isn't on the top level of the domain + * + * @return {string} The subdirectory of the current site + */ +function getSubDir() { + var page = window.location.pathname; + var index = page.indexOf('wp-admin'); + var subDir = '/'; + if (index > -1) { + subDir = page.substr(0, index); + } + return subDir; +} +var cssHideAdvancedSettings = "\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"; + +/***/ }), + +/***/ "./js/src/form/block.js": +/*!******************************!*\ + !*** ./js/src/form/block.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); +/* harmony import */ var _inspector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inspector */ "./js/src/form/inspector.js"); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); +/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); +/** + * BLOCK: formidable/simple-form + * + * Block to display selected Formidable form with limited setting options + */ + + + + + +var Fragment = wp.element.Fragment; +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var _wp = wp, + ServerSideRender = _wp.serverSideRender; +registerBlockType('formidable/simple-form', { + title: formidable_form_selector.name, + description: __('Display a Form', 'formidable'), + icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], + category: 'widgets', + keywords: [__('contact forms', 'formidable'), 'formidable'], + edit: function edit(_ref) { + var setAttributes = _ref.setAttributes, + attributes = _ref.attributes, + isSelected = _ref.isSelected; + var formId = attributes.formId; + var forms = formidable_form_selector.forms; + if (forms.length === 0) { + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, __('This site does not have any forms.', 'formidable')); + } + if (!formId) { + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, formidable_form_selector.name), wp.element.createElement("div", { + className: "frm-block-selector-screen" + }, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_3__["default"], { + formId: formId, + setAttributes: setAttributes, + forms: forms + })))); + } + return wp.element.createElement(Fragment, null, wp.element.createElement(_inspector__WEBPACK_IMPORTED_MODULE_1__["default"], { + attributes: attributes, + setAttributes: setAttributes, + forms: forms + }), isSelected && wp.element.createElement("style", null, _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__.cssHideAdvancedSettings), wp.element.createElement(ServerSideRender, { + block: "formidable/simple-form", + attributes: attributes + })); + }, + save: function save(props) { + var attributes = props.attributes; + var formId = attributes.formId; + return formId === undefined ? '' : wp.element.createElement(Fragment, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_0__["default"], attributes)); + } +}); + +/***/ }), + +/***/ "./js/src/form/calculator.js": +/*!***********************************!*\ + !*** ./js/src/form/calculator.js ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/** + * BLOCK: formidable/calculator + * + * Block to display selected Formidable calculator form + */ + +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var FrmCalcIcon = wp.element.createElement('svg', { + width: 20, + height: 20 +}, wp.element.createElement('path', { + d: 'M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z' +})); +registerBlockType('formidable/calculator', { + title: __('Calculator Form', 'formidable'), + description: __('Display a Calculator Form', 'formidable'), + icon: FrmCalcIcon, + category: 'widgets', + keywords: ['calculation', 'formidable'], + edit: function edit(_ref) { + var setAttributes = _ref.setAttributes, + attributes = _ref.attributes; + var formId = attributes.formId; + var forms = formidable_form_selector.forms; + if (forms.length === 0) { + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, __('This site does not have any forms.', 'formidable')); + } + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, __('Calculator Form', 'formidable')), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip" + }, wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, __('This site does not have any calculator forms.', 'formidable'), wp.element.createElement("br", null), wp.element.createElement("a", { + href: formidable_form_selector.link, + target: "_blank" + }, __('Upgrade Formidable Forms.', 'formidable'))), wp.element.createElement("img", { + src: formidable_form_selector.url + '/images/conversion-calc.jpg', + alt: __('Calculator Form', 'formidable') + })))); + } +}); + +/***/ }), + +/***/ "./js/src/form/formselect.js": +/*!***********************************!*\ + !*** ./js/src/form/formselect.js ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormSelect) +/* harmony export */ }); +/* harmony import */ var _common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/itemselect */ "./js/src/common/components/itemselect.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Form selector + */ + + +var __ = wp.i18n.__; +var Component = wp.element.Component; +var FormSelect = /*#__PURE__*/function (_Component) { + function FormSelect() { + _classCallCheck(this, FormSelect); + return _callSuper(this, FormSelect, arguments); + } + _inherits(FormSelect, _Component); + return _createClass(FormSelect, [{ + key: "render", + value: function render() { + var _this$props = this.props, + formId = _this$props.formId, + setAttributes = _this$props.setAttributes, + forms = _this$props.forms; + return wp.element.createElement(_common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__["default"], { + selected: formId, + itemName: __('form', 'formidable'), + itemNamePlural: __('forms', 'formidable'), + items: forms, + onChange: function onChange(newFormId) { + setAttributes({ + formId: newFormId + }); + } + }); + } + }]); +}(Component); + +FormSelect.propTypes = { + formId: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string), + //current formId + setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func).isRequired //setAttributes of block +}; + +/***/ }), + +/***/ "./js/src/form/formshortcode.js": +/*!**************************************!*\ + !*** ./js/src/form/formshortcode.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormShortcode) +/* harmony export */ }); +/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Form shortcode of current form + */ +var Component = wp.element.Component; + +function createParamsText(atts) { + var formId = atts.formId, + title = atts.title, + description = atts.description, + minimize = atts.minimize; + var paramsText = ''; + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(formId, 'id'); + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(title, 'title'); + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(description, 'description'); + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(minimize, 'minimize'); + return paramsText; +} +var FormShortcode = /*#__PURE__*/function (_Component) { + function FormShortcode() { + _classCallCheck(this, FormShortcode); + return _callSuper(this, FormShortcode, arguments); + } + _inherits(FormShortcode, _Component); + return _createClass(FormShortcode, [{ + key: "render", + value: function render() { + return wp.element.createElement("div", null, "[formidable", createParamsText(this.props), "]"); + } + }]); +}(Component); + + +/***/ }), + +/***/ "./js/src/form/graph.js": +/*!******************************!*\ + !*** ./js/src/form/graph.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* global formidable_form_selector */ + + +(function () { + 'use strict'; + + if (formidable_form_selector.chartsAddon.installed) { + return; + } + var __ = wp.i18n.__; + var registerBlockType = wp.blocks.registerBlockType; + var Notice = wp.components.Notice; + var UpgradeNotice = function UpgradeNotice(_ref) { + var text = _ref.text, + buttonText = _ref.buttonText, + link = _ref.link; + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, text, wp.element.createElement("br", null), wp.element.createElement("a", { + href: link, + target: "_blank" + }, buttonText)); + }; + var blockName = __('Formidable Chart', 'formidable'); + registerBlockType('frm-charts/graph', { + title: blockName, + description: __('Display a chart or graph', 'formidable'), + icon: wp.element.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + fill: "none", + viewBox: "0 0 25 23" + }, wp.element.createElement("path", { + stroke: "currentColor", + strokeLinecap: "round", + strokeWidth: "2.5", + d: "M23 2v19m-7-7.5V21M9 10.8V21m-7-2.9V21" + })), + category: 'design', + edit: function edit() { + var imageWrapperStyles = { + padding: '38px', + margin: '0 auto', + maxWidth: '600px' + }; + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, blockName), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip", + style: { + alignSelf: 'stretch' + } + }, formidable_form_selector.chartsAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { + text: __('This site does not have Formidable Charts active.', 'formidable'), + buttonText: __('Install Formidable Charts', 'formidable'), + link: formidable_form_selector.chartsAddon.link + }) : wp.element.createElement(UpgradeNotice, { + text: __('This site does not have Formidable Charts installed.', 'formidable'), + buttonText: __('Upgrade Formidable Forms', 'formidable'), + link: formidable_form_selector.link + }), wp.element.createElement("div", { + style: imageWrapperStyles + }, wp.element.createElement("img", { + src: formidable_form_selector.url + '/images/demo-graph.svg', + alt: blockName + }))))); + } + }); +})(); + +/***/ }), + +/***/ "./js/src/form/inspector.js": +/*!**********************************!*\ + !*** ./js/src/form/inspector.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Inspector) +/* harmony export */ }); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); +/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); +/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Inspector controls for Formidable Simple Form block + */ + +var __ = wp.i18n.__; +var Component = wp.element.Component; +var InspectorControls = wp.blockEditor.InspectorControls; +var _wp$components = wp.components, + PanelBody = _wp$components.PanelBody, + PanelRow = _wp$components.PanelRow, + ToggleControl = _wp$components.ToggleControl, + ExternalLink = _wp$components.ExternalLink; + + + + +var Inspector = /*#__PURE__*/function (_Component) { + function Inspector() { + _classCallCheck(this, Inspector); + return _callSuper(this, Inspector, arguments); + } + _inherits(Inspector, _Component); + return _createClass(Inspector, [{ + key: "render", + value: function render() { + var _this$props = this.props, + setAttributes = _this$props.setAttributes, + attributes = _this$props.attributes, + forms = _this$props.forms; + var formId = attributes.formId, + title = attributes.title, + description = attributes.description, + minimize = attributes.minimize; + return wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, { + title: __('Select Form', 'formidable'), + initialOpen: true + }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_0__["default"], { + formId: formId, + setAttributes: setAttributes, + forms: forms + })), formId && wp.element.createElement(PanelRow, null, wp.element.createElement(ExternalLink, { + href: (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.getSubDir)() + "wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(formId) + }, __('Go to form', 'formidable')))), wp.element.createElement(PanelBody, { + title: __('Options', 'formidable'), + initialOpen: false + }, wp.element.createElement(ToggleControl, { + label: __('Show Form Title', 'formidable'), + checked: title, + onChange: function onChange(response) { + (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('title', response ? '1' : '', setAttributes); + } + }), wp.element.createElement(ToggleControl, { + label: __('Show Form Description', 'formidable'), + checked: description, + onChange: function onChange(response) { + (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('description', response ? '1' : '', setAttributes); + } + }), wp.element.createElement(ToggleControl, { + label: __('Minimize HTML', 'formidable'), + checked: minimize, + onChange: function onChange(response) { + (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('minimize', response ? '1' : '', setAttributes); + } + })), wp.element.createElement(PanelBody, { + title: __('Shortcode', 'formidable'), + initialOpen: false + }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_1__["default"], this.props.attributes)))); + } + }]); +}(Component); + +Inspector.propTypes = { + attributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object), + //block attributes + setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func) //setAttributes of block +}; + +/***/ }), + +/***/ "./js/src/form/modal.js": +/*!******************************!*\ + !*** ./js/src/form/modal.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* global formidable_form_selector */ + + +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var UpgradeNotice = function UpgradeNotice(_ref) { + var text = _ref.text, + buttonText = _ref.buttonText, + link = _ref.link; + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, text, wp.element.createElement("br", null), wp.element.createElement("a", { + href: link, + target: "_blank" + }, buttonText)); +}; +registerBlockType('frm-modal/modal', { + title: formidable_form_selector.name + ' ' + __('Modal', 'formidable'), + description: __('Display a modal', 'formidable'), + icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], + category: 'widgets', + keywords: ['modal', 'formidable'], + edit: function edit(_ref2) { + var setAttributes = _ref2.setAttributes, + attributes = _ref2.attributes; + var blockName = __('Bootstrap modal popup', 'formidable'); + var imageStyles = { + maxWidth: '504px', + height: 'auto', + borderRadius: '12px' + }; + var imageWrapperStyles = { + padding: '38px', + textAlign: 'center', + backgroundColor: '#f2f4f7', + marginTop: '24px' + }; + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, blockName), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip", + style: { + alignSelf: 'stretch' + } + }, formidable_form_selector.modalAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { + text: __('This site does not have popup modals active.', 'formidable'), + buttonText: __('Install Formidable Modals', 'formidable'), + link: formidable_form_selector.modalAddon.link + }) : wp.element.createElement(UpgradeNotice, { + text: __('This site does not have popup modals.', 'formidable'), + buttonText: __('Upgrade Formidable Forms', 'formidable'), + link: formidable_form_selector.link + }), wp.element.createElement("div", { + style: imageWrapperStyles + }, wp.element.createElement("img", { + src: formidable_form_selector.url + '/images/modal.png', + alt: blockName, + style: imageStyles + }))))); + } +}); + +/***/ }), + +/***/ "./js/src/form/views.js": +/*!******************************!*\ + !*** ./js/src/form/views.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* harmony import */ var _api_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api/index */ "./js/src/api/index.js"); +/* harmony import */ var _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./css/button.module.css */ "./js/src/form/css/button.module.css"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +/* global formidable_form_selector */ + + + +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var _wp$element = wp.element, + useState = _wp$element.useState, + useEffect = _wp$element.useEffect; +var blockData = formidable_form_selector; // eslint-disable-line camelcase +var upgradeLink = blockData.viewsAddon.hasAccess ? blockData.viewsAddon.link : blockData.link; +registerBlockType('formidable/simple-view', { + title: __('Formidable Views', 'formidable'), + description: __('Display a Visual View', 'formidable'), + icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], + category: 'widgets', + keywords: ['views', 'formidable'], + edit: function edit() { + var _useState = useState({ + // eslint-disable-line react-hooks/rules-of-hooks + defaultClassname: 'frm-activate-addon frm-button-primary button button-primary', + loadingClassname: _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__["default"]["frm-loading"], + classnames: 'frm-activate-addon frm-button-primary button button-primary', + label: !blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess ? __('Install', 'formidable') : __('Activate', 'formidable'), + isLoading: false + }), + _useState2 = _slicedToArray(_useState, 2), + addonActivateButton = _useState2[0], + updateAddonActivateButton = _useState2[1]; + var activateViewsAddon = function activateViewsAddon() { + if (true === addonActivateButton.isLoading) { + return; + } + updateAddonActivateButton(_objectSpread(_objectSpread({}, addonActivateButton), {}, { + isLoading: true, + classnames: addonActivateButton.defaultClassname + ' ' + addonActivateButton.loadingClassname + })); + if (!blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess) { + _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_install_addon', blockData.viewsAddon.url).then(function () { + window.location.reload(); + }); + return; + } + _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_activate_addon', 'formidable-views/formidable-views.php').then(function () { + window.location.reload(); + }); + }; + var blockName = __('Formidable Views', 'formidable'); + var imageStyles = { + maxWidth: '504px', + height: 'auto', + borderRadius: '12px' + }; + var imageWrapperStyles = { + padding: '38px', + textAlign: 'center', + backgroundColor: '#f2f4f7', + marginTop: '24px' + }; + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, blockName), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip", + style: { + alignSelf: 'stretch' + } + }, !blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, wp.element.createElement("div", { + style: { + maxWidth: '500px', + margin: 'auto' + } + }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("a", { + href: upgradeLink, + rel: "noreferrer", + target: "_blank" + }, __('Upgrade Formidable Forms', 'formidable'))), blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, wp.element.createElement("div", { + style: { + maxWidth: '500px', + margin: 'auto' + } + }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("button", { + className: addonActivateButton.classnames, + onClick: activateViewsAddon, + type: "button" + }, " ", addonActivateButton.label, " ")), wp.element.createElement("div", { + style: imageWrapperStyles + }, wp.element.createElement("img", { + src: blockData.url + '/images/blocks/views-block-placeholder.jpg', + alt: blockName, + style: imageStyles + }))))); + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css": +/*!*********************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css ***! + \*********************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ "frm-loading": () => (/* binding */ _1), +/* harmony export */ spin: () => (/* binding */ spin) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `button.t3RQZV1ZQbHGYyQUnhIY { + cursor: progress; + opacity: 0.7; + position: relative; + text-indent: -999px; + min-width: 70px; + overflow: hidden; +} +button.t3RQZV1ZQbHGYyQUnhIY:before { + content: ''; + display: inline-block; + position: absolute; + background: transparent; + border: 1px solid #fff; + border-top-color: transparent; + border-left-color: transparent; + border-radius: 50%; + + box-sizing: border-box; + top: 50%; + left: 50%; + margin-top: -10px; + margin-left: -10px; + width: 20px; + height: 20px; + + animation: Ts7haRQUDk0YMfLiQW00 2s linear infinite; +}`, "",{"version":3,"sources":["webpack://./js/src/form/css/button.module.css"],"names":[],"mappings":"AAAA;CACC,gBAAgB;CAChB,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB,eAAe;CACf,gBAAgB;AACjB;AACA;CACC,WAAW;CACX,qBAAqB;CACrB,kBAAkB;CAClB,uBAAuB;CACvB,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,kBAAkB;;CAElB,sBAAsB;CACtB,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,kBAAkB;CAClB,WAAW;CACX,YAAY;;CAEZ,kDAAkC;AACnC","sourcesContent":["button.frm-loading {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.frm-loading:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: spin 2s linear infinite;\n}"],"sourceRoot":""}]); +// Exports +var _1 = `t3RQZV1ZQbHGYyQUnhIY`; + +var spin = `Ts7haRQUDk0YMfLiQW00`; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function (cssWithMappingToString) { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + return this.map(function (item) { + var content = ""; + var needLayer = typeof item[5] !== "undefined"; + if (item[4]) { + content += "@supports (".concat(item[4], ") {"); + } + if (item[2]) { + content += "@media ".concat(item[2], " {"); + } + if (needLayer) { + content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); + } + content += cssWithMappingToString(item); + if (needLayer) { + content += "}"; + } + if (item[2]) { + content += "}"; + } + if (item[4]) { + content += "}"; + } + return content; + }).join(""); + }; + + // import a list of modules into the list + list.i = function i(modules, media, dedupe, supports, layer) { + if (typeof modules === "string") { + modules = [[null, modules, undefined]]; + } + var alreadyImportedModules = {}; + if (dedupe) { + for (var k = 0; k < this.length; k++) { + var id = this[k][0]; + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + for (var _k = 0; _k < modules.length; _k++) { + var item = [].concat(modules[_k]); + if (dedupe && alreadyImportedModules[item[0]]) { + continue; + } + if (typeof layer !== "undefined") { + if (typeof item[5] === "undefined") { + item[5] = layer; + } else { + item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); + item[5] = layer; + } + } + if (media) { + if (!item[2]) { + item[2] = media; + } else { + item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); + item[2] = media; + } + } + if (supports) { + if (!item[4]) { + item[4] = "".concat(supports); + } else { + item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); + item[4] = supports; + } + } + list.push(item); + } + }; + return list; +}; + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": +/*!************************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = function (item) { + var content = item[1]; + var cssMapping = item[3]; + if (!cssMapping) { + return content; + } + if (typeof btoa === "function") { + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); + var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); + var sourceMapping = "/*# ".concat(data, " */"); + return [content].concat([sourceMapping]).join("\n"); + } + return [content].join("\n"); +}; + +/***/ }), + +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/***/ ((module) => { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var printWarning = function() {}; + +if (true) { + var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); + var loggedTypeFailures = {}; + var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) { /**/ } + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (true) { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (true) { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; + + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); +var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); + +var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); +var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); +var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js"); + +var printWarning = function() {}; + +if (true) { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bigint: createPrimitiveTypeChecker('bigint'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message, data) { + this.message = message; + this.data = data && typeof data === 'object' ? data: {}; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (true) { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if ( true && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), + {expectedType: expectedType} + ); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (true) { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + var expectedTypes = []; + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); + if (checkerResult == null) { + return null; + } + if (checkerResult.data && has(checkerResult.data, 'expectedType')) { + expectedTypes.push(checkerResult.data.expectedType); + } + } + var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function invalidValidatorError(componentName, location, propFullName, key, type) { + return new PropTypeError( + (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' + ); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (has(shapeTypes, key) && typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (true) { + var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess); +} else {} + + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + + +/***/ }), + +/***/ "./node_modules/prop-types/lib/has.js": +/*!********************************************!*\ + !*** ./node_modules/prop-types/lib/has.js ***! + \********************************************/ +/***/ ((module) => { + +module.exports = Function.call.bind(Object.prototype.hasOwnProperty); + + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + + +if (true) { + (function() { +'use strict'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} + + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +if (false) {} else { + module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js"); +} + + +/***/ }), + +/***/ "./js/src/form/css/button.module.css": +/*!*******************************************!*\ + !*** ./js/src/form/css/button.module.css ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ "frm-loading": () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["frm-loading"]), +/* harmony export */ spin: () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__.spin) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!./button.module.css */ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": +/*!****************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +var stylesInDOM = []; +function getIndexByIdentifier(identifier) { + var result = -1; + for (var i = 0; i < stylesInDOM.length; i++) { + if (stylesInDOM[i].identifier === identifier) { + result = i; + break; + } + } + return result; +} +function modulesToDom(list, options) { + var idCountMap = {}; + var identifiers = []; + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var id = options.base ? item[0] + options.base : item[0]; + var count = idCountMap[id] || 0; + var identifier = "".concat(id, " ").concat(count); + idCountMap[id] = count + 1; + var indexByIdentifier = getIndexByIdentifier(identifier); + var obj = { + css: item[1], + media: item[2], + sourceMap: item[3], + supports: item[4], + layer: item[5] + }; + if (indexByIdentifier !== -1) { + stylesInDOM[indexByIdentifier].references++; + stylesInDOM[indexByIdentifier].updater(obj); + } else { + var updater = addElementStyle(obj, options); + options.byIndex = i; + stylesInDOM.splice(i, 0, { + identifier: identifier, + updater: updater, + references: 1 + }); + } + identifiers.push(identifier); + } + return identifiers; +} +function addElementStyle(obj, options) { + var api = options.domAPI(options); + api.update(obj); + var updater = function updater(newObj) { + if (newObj) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { + return; + } + api.update(obj = newObj); + } else { + api.remove(); + } + }; + return updater; +} +module.exports = function (list, options) { + options = options || {}; + list = list || []; + var lastIdentifiers = modulesToDom(list, options); + return function update(newList) { + newList = newList || []; + for (var i = 0; i < lastIdentifiers.length; i++) { + var identifier = lastIdentifiers[i]; + var index = getIndexByIdentifier(identifier); + stylesInDOM[index].references--; + } + var newLastIdentifiers = modulesToDom(newList, options); + for (var _i = 0; _i < lastIdentifiers.length; _i++) { + var _identifier = lastIdentifiers[_i]; + var _index = getIndexByIdentifier(_identifier); + if (stylesInDOM[_index].references === 0) { + stylesInDOM[_index].updater(); + stylesInDOM.splice(_index, 1); + } + } + lastIdentifiers = newLastIdentifiers; + }; +}; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": +/*!********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! + \********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +var memo = {}; + +/* istanbul ignore next */ +function getTarget(target) { + if (typeof memo[target] === "undefined") { + var styleTarget = document.querySelector(target); + + // Special case to return head of iframe instead of iframe itself + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch (e) { + // istanbul ignore next + styleTarget = null; + } + } + memo[target] = styleTarget; + } + return memo[target]; +} + +/* istanbul ignore next */ +function insertBySelector(insert, style) { + var target = getTarget(insert); + if (!target) { + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); + } + target.appendChild(style); +} +module.exports = insertBySelector; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": +/*!**********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! + \**********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* istanbul ignore next */ +function insertStyleElement(options) { + var element = document.createElement("style"); + options.setAttributes(element, options.attributes); + options.insert(element, options.options); + return element; +} +module.exports = insertStyleElement; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +/* istanbul ignore next */ +function setAttributesWithoutAttributes(styleElement) { + var nonce = true ? __webpack_require__.nc : 0; + if (nonce) { + styleElement.setAttribute("nonce", nonce); + } +} +module.exports = setAttributesWithoutAttributes; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": +/*!***************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* istanbul ignore next */ +function apply(styleElement, options, obj) { + var css = ""; + if (obj.supports) { + css += "@supports (".concat(obj.supports, ") {"); + } + if (obj.media) { + css += "@media ".concat(obj.media, " {"); + } + var needLayer = typeof obj.layer !== "undefined"; + if (needLayer) { + css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); + } + css += obj.css; + if (needLayer) { + css += "}"; + } + if (obj.media) { + css += "}"; + } + if (obj.supports) { + css += "}"; + } + var sourceMap = obj.sourceMap; + if (sourceMap && typeof btoa !== "undefined") { + css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); + } + + // For old IE + /* istanbul ignore if */ + options.styleTagTransform(css, styleElement, options.options); +} +function removeStyleElement(styleElement) { + // istanbul ignore if + if (styleElement.parentNode === null) { + return false; + } + styleElement.parentNode.removeChild(styleElement); +} + +/* istanbul ignore next */ +function domAPI(options) { + if (typeof document === "undefined") { + return { + update: function update() {}, + remove: function remove() {} + }; + } + var styleElement = options.insertStyleElement(options); + return { + update: function update(obj) { + apply(styleElement, options, obj); + }, + remove: function remove() { + removeStyleElement(styleElement); + } + }; +} +module.exports = domAPI; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": +/*!*********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* istanbul ignore next */ +function styleTagTransform(css, styleElement) { + if (styleElement.styleSheet) { + styleElement.styleSheet.cssText = css; + } else { + while (styleElement.firstChild) { + styleElement.removeChild(styleElement.firstChild); + } + styleElement.appendChild(document.createTextNode(css)); + } +} +module.exports = styleTagTransform; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/nonce */ +/******/ (() => { +/******/ __webpack_require__.nc = undefined; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!**************************!*\ + !*** ./js/src/blocks.js ***! + \**************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _form_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form/block */ "./js/src/form/block.js"); +/* harmony import */ var _form_calculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form/calculator */ "./js/src/form/calculator.js"); +/* harmony import */ var _form_modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./form/modal */ "./js/src/form/modal.js"); +/* harmony import */ var _form_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./form/graph */ "./js/src/form/graph.js"); +/* harmony import */ var _form_views__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form/views */ "./js/src/form/views.js"); +/** + * Formidable Simple Blocks + * + */ + + + + + + +})(); + +/******/ })() +; +//# sourceMappingURL=formidable_blocks.js.map \ No newline at end of file diff --git a/js/formidable_dashboard.js b/js/formidable_dashboard.js index b275064174..c73f4ead92 100644 --- a/js/formidable_dashboard.js +++ b/js/formidable_dashboard.js @@ -1 +1,905 @@ -(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=i,this.prepareElements()},i=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,i){e.classList.remove("frm-animate"),e.style.transitionDelay=(i+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,i){t.addEventListener("click",(function(t){return e.onNavClick(t,i)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var i=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),i.classList.add("frm-active"),this.initSlideTrackUnderline(i,t),this.changeSlide(t);var n,r,o=i.querySelector("a");o&&"frm_insert_fields_tab"===o.id&&!o.closest("#frm_adv_info")&&(null===(n=window.frmAdminBuild)||void 0===n||null===(r=n.clearSettingsBox)||void 0===r||r.call(n))}},{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 i=void 0!==e?e:this.navs.filter((function(e){return e.classList.contains("frm-active")}));this.positionUnderlineIndicator(i)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var i=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(i,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function u(e){return u="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},u(e)}function f(e,t){for(var i=0;i { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./js/src/components/class-counter.js": +/*!********************************************!*\ + !*** ./js/src/components/class-counter.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmCounter: () => (/* binding */ frmCounter) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmCounter = /*#__PURE__*/function () { + /** + * Init frmCounter + * + * @param {Element} element + * @param {Object} options + * @param {number} options.timetoFinish Max time in mileseconds for counter to complete the animation. + */ + function frmCounter(element, options) { + _classCallCheck(this, frmCounter); + if (!(element instanceof Element) || !element.dataset.counter) { + return; + } + this.template = element.dataset.type || 'default'; + this.element = element; + this.value = parseInt(element.dataset.counter, 10); + this.activeCounter = 0; + this.locale = element.dataset.locale ? element.dataset.locale.replace('_', '-') : 'en-US'; + this.timeoutInterval = 50; + this.timeToFinish = 'undefined' !== typeof options && 'undefined' !== typeof options.timetoFinish ? options.timetoFinish : 1400; + this.valueStep = this.value / Math.ceil(this.timeToFinish / this.timeoutInterval); + if (0 === this.value) { + return; + } + this.animate(); + } + return _createClass(frmCounter, [{ + key: "formatNumber", + value: function formatNumber(number) { + if ('currency' === this.template) { + return number.toLocaleString(this.locale, { + minimumFractionDigits: 2 + }); + } + return number; + } + }, { + key: "animate", + value: function animate() { + if (Math.round(this.activeCounter) < this.value) { + this.activeCounter += this.valueStep; + this.element.innerText = this.formatNumber(Math.round(this.activeCounter)); + setTimeout(this.animate.bind(this), this.timeoutInterval); + } else { + this.element.innerText = this.formatNumber(this.value); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/components/class-tabs-navigator.js": +/*!***************************************************!*\ + !*** ./js/src/components/class-tabs-navigator.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmTabsNavigator = /*#__PURE__*/function () { + function frmTabsNavigator(wrapper) { + _classCallCheck(this, frmTabsNavigator); + if ('undefined' === typeof wrapper) { + return; + } + this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); + if (null === this.wrapper) { + return; + } + this.flexboxSlidesGap = '16px'; + this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; + this.resizeObserver = null; + this.init(); + } + return _createClass(frmTabsNavigator, [{ + key: "init", + value: function init() { + var _this = this; + if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { + return; + } + this.initDefaultSlideTrackerWidth(); + this.navs.forEach(function (nav, index) { + nav.addEventListener('click', function (event) { + return _this.onNavClick(event, index); + }); + }); + this.setupScrollbarObserver(); + // Cleanup observers when page unloads to prevent memory leaks + window.addEventListener('beforeunload', this.cleanupObservers); + } + }, { + key: "onNavClick", + value: function onNavClick(event, index) { + var navItem = event.currentTarget; + event.preventDefault(); + this.removeActiveClassnameFromNavs(); + navItem.classList.add('frm-active'); + this.initSlideTrackUnderline(navItem, index); + this.changeSlide(index); + + // Handle special case for frm_insert_fields_tab + var navLink = navItem.querySelector('a'); + if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { + var _window$frmAdminBuild, _window$frmAdminBuild2; + (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); + } + } + }, { + key: "initDefaultSlideTrackerWidth", + value: function initDefaultSlideTrackerWidth() { + if (!this.slideTrackLine.dataset.initialWidth) { + return; + } + this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); + } + }, { + key: "initSlideTrackUnderline", + value: function initSlideTrackUnderline(nav, index) { + this.slideTrackLine.classList.remove('frm-first', 'frm-last'); + var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { + return nav.classList.contains('frm-active'); + }); + this.positionUnderlineIndicator(activeNav); + } + + /** + * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. + * Automatically repositions the underline indicator when layout changes occur. + */ + }, { + key: "setupScrollbarObserver", + value: function setupScrollbarObserver() { + var _this2 = this; + var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); + if (!scrollbarWrapper || !('ResizeObserver' in window)) { + return; + } + this.resizeObserver = new ResizeObserver(function () { + var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); + if (activeNav) { + _this2.positionUnderlineIndicator(activeNav); + } + }); + this.resizeObserver.observe(scrollbarWrapper); + } + + /** + * Cleans up observers to prevent memory leaks. + */ + }, { + key: "cleanupObservers", + value: function cleanupObservers() { + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + } + } + + /** + * Positions the underline indicator based on the active navigation element. + * + * @param {HTMLElement} activeNav The active navigation element to position the underline under + */ + }, { + key: "positionUnderlineIndicator", + value: function positionUnderlineIndicator(activeNav) { + var _this3 = this; + requestAnimationFrame(function () { + var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; + _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); + _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; + }); + } + }, { + key: "changeSlide", + value: function changeSlide(index) { + this.removeActiveClassnameFromSlides(); + var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); + if ('0px' !== translate) { + this.slideTrack.style.transform = "translateX(".concat(translate, ")"); + } else { + this.slideTrack.style.removeProperty('transform'); + } + if (index in this.slides) { + this.slides[index].classList.add('frm-active'); + } + } + }, { + key: "removeActiveClassnameFromSlides", + value: function removeActiveClassnameFromSlides() { + this.slides.forEach(function (slide) { + return slide.classList.remove('frm-active'); + }); + } + }, { + key: "removeActiveClassnameFromNavs", + value: function removeActiveClassnameFromNavs() { + this.navs.forEach(function (nav) { + return nav.classList.remove('frm-active'); + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!*****************************!*\ + !*** ./js/src/dashboard.js ***! + \*****************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); +/* harmony import */ var _components_class_counter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/class-counter */ "./js/src/components/class-counter.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + + + +var frmDashboard = /*#__PURE__*/function () { + function frmDashboard() { + _classCallCheck(this, frmDashboard); + this.options = { + ajax: { + action: 'dashboard_ajax_action', + dashboardActions: { + welcomeBanner: 'welcome-banner-has-closed', + checkEmailIfSubscribed: 'email-has-subscribed', + saveSubscribedEmail: 'save-subscribed-email' + } + } + }; + this.widgetsAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(document.querySelectorAll('.frm-dashboard-widget'), 'cascade'); + } + return _createClass(frmDashboard, [{ + key: "init", + value: function init() { + this.initInbox(); + this.initCounters(); + this.initCloseWelcomeBanner(); + this.widgetsAnimate.cascadeFadeIn(); + } + }, { + key: "initInbox", + value: function initInbox() { + var _this = this; + new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__.frmTabsNavigator('.frm-inbox-wrapper'); + var userEmailInput = document.querySelector('#frm_leave_email'); + var subscribeButton = document.querySelector('#frm-add-my-email-address'); + subscribeButton.addEventListener('click', function () { + _this.saveSubscribedEmail(userEmailInput.value).then(); + }); + } + }, { + key: "initCounters", + value: function initCounters() { + var counters = document.querySelectorAll('.frm-counter'); + counters.forEach(function (counter) { + return new _components_class_counter__WEBPACK_IMPORTED_MODULE_2__.frmCounter(counter); + }); + } + }, { + key: "initCloseWelcomeBanner", + value: function initCloseWelcomeBanner() { + var _this2 = this; + var closeButton = document.querySelector('.frm-dashboard-banner-close'); + var dashboardBanner = document.querySelector('.frm-dashboard-banner'); + if (!closeButton || !dashboardBanner) { + return; + } + closeButton.addEventListener('click', function () { + _this2.closeWelcomeBannerSaveCookieRequest().then(function (data) { + if (true === data.success) { + dashboardBanner.remove(); + } + }); + }); + } + }, { + key: "saveSubscribedEmail", + value: function saveSubscribedEmail(email) { + return fetch(window.ajaxurl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + action: this.options.ajax.action, + dashboard_action: this.options.ajax.dashboardActions.saveSubscribedEmail, + email: email + }) + }).then(function (result) { + return result.json(); + }); + } + }, { + key: "closeWelcomeBannerSaveCookieRequest", + value: function closeWelcomeBannerSaveCookieRequest() { + return fetch(window.ajaxurl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + action: this.options.ajax.action, + dashboard_action: this.options.ajax.dashboardActions.welcomeBanner, + banner_has_closed: 1 + }) + }).then(function (result) { + return result.json(); + }); + } + }]); +}(); +var frmDashboardClass = new frmDashboard(); +document.addEventListener('DOMContentLoaded', function () { + frmDashboardClass.init(); +}); +/******/ })() +; +//# sourceMappingURL=formidable_dashboard.js.map \ No newline at end of file diff --git a/js/formidable_dashboard.js.map b/js/formidable_dashboard.js.map index 2e5839687f..4460de853f 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/components/class-counter.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.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 frmCounter {\n\t/**\n\t * Init frmCounter\n\t *\n\t * @param {Element} element\n\t * @param {Object} options\n\t * @param {number} 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\t}\n}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","// 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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\nimport { frmTabsNavigator } from './components/class-tabs-navigator';\nimport { frmCounter } from './components/class-counter';\nclass frmDashboard {\n\tconstructor() {\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":["frmCounter","element","options","_classCallCheck","Element","dataset","counter","template","type","value","parseInt","activeCounter","locale","replace","timeoutInterval","timeToFinish","timetoFinish","valueStep","Math","ceil","animate","_createClass","key","formatNumber","number","toLocaleString","minimumFractionDigits","round","innerText","setTimeout","bind","frmTabsNavigator","wrapper","document","querySelector","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","forEach","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","concat","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","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","frmDashboard","ajax","action","dashboardActions","welcomeBanner","checkEmailIfSubscribed","saveSubscribedEmail","widgetsAnimate","initInbox","initCounters","initCloseWelcomeBanner","userEmailInput","subscribeButton","counters","closeButton","dashboardBanner","closeWelcomeBannerSaveCookieRequest","data","success","fetch","ajaxurl","method","headers","URLSearchParams","dashboard_action","result","json","banner_has_closed","frmDashboardClass"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"formidable_dashboard.js","mappings":"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","sources":["webpack://formidable/./js/src/components/class-counter.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.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 frmCounter {\n\t/**\n\t * Init frmCounter\n\t *\n\t * @param {Element} element\n\t * @param {Object} options\n\t * @param {number} 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\t}\n}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', this.cleanupObservers );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","// 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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\nimport { frmTabsNavigator } from './components/class-tabs-navigator';\nimport { frmCounter } from './components/class-counter';\nclass frmDashboard {\n\tconstructor() {\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":["frmCounter","element","options","_classCallCheck","Element","dataset","counter","template","type","value","parseInt","activeCounter","locale","replace","timeoutInterval","timeToFinish","timetoFinish","valueStep","Math","ceil","animate","_createClass","key","formatNumber","number","toLocaleString","minimumFractionDigits","round","innerText","setTimeout","bind","frmTabsNavigator","wrapper","document","querySelector","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","forEach","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","concat","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","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","frmDashboard","ajax","action","dashboardActions","welcomeBanner","checkEmailIfSubscribed","saveSubscribedEmail","widgetsAnimate","initInbox","initCounters","initCloseWelcomeBanner","userEmailInput","subscribeButton","counters","closeButton","dashboardBanner","closeWelcomeBannerSaveCookieRequest","data","success","fetch","ajaxurl","method","headers","URLSearchParams","dashboard_action","result","json","banner_has_closed","frmDashboardClass"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable_overlay.js b/js/formidable_overlay.js index dfe0f80f4e..421e7e66b4 100644 --- a/js/formidable_overlay.js +++ b/js/formidable_overlay.js @@ -1 +1,733 @@ -(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,r){e.classList.remove("frm-animate"),e.style.transitionDelay=(r+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./js/src/components/class-overlay.js": +/*!********************************************!*\ + !*** ./js/src/components/class-overlay.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmOverlay: () => (/* binding */ frmOverlay) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + +var frmOverlay = /*#__PURE__*/function () { + function frmOverlay() { + _classCallCheck(this, frmOverlay); + this.body = document.body; + } + + /** + * Open overlay + * + * @param {Object} overlayData An object containing data for the overlay. + * @param {string} overlayData.hero_image URL of the hero image. + * @param {string} overlayData.heading Heading of the overlay. + * @param {string} overlayData.copy Copy/content of the overlay. + * @param {Array} overlayData.buttons Array of button objects. + * @param {string} overlayData.buttons[].url URL for the button. + * @param {string} overlayData.buttons[].target Target attribute for the button link. + * @param {string} overlayData.buttons[].label Label/text of the button. + */ + return _createClass(frmOverlay, [{ + key: "open", + value: function open(overlayData) { + this.overlayData = { + hero_image: null, + heading: null, + copy: null, + buttons: [] + }; + this.overlayData = _objectSpread(_objectSpread({}, this.overlayData), overlayData); + this.bodyAddOverflowHidden(); + this.body.insertBefore(this.buildOverlay(), this.body.firstChild); + this.initCloseButton(); + this.initOverlayIntroAnimation(200); + } + }, { + key: "bodyAddOverflowHidden", + value: function bodyAddOverflowHidden() { + this.body.classList.add('frm-hidden-overflow'); + setTimeout(function () { + document.body.scrollTop = 0; + document.documentElement.scrollTop = 0; + }, 80); + } + }, { + key: "close", + value: function close() { + var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); + if (overlayWrapper) { + document.body.classList.remove('frm-hidden-overflow'); + overlayWrapper.remove(); + } + } + }, { + key: "initCloseButton", + value: function initCloseButton() { + var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); + if (overlayWrapper) { + var closeButton = document.createElement('span'); + closeButton.classList.add('frm-overlay--close'); + closeButton.addEventListener('click', this.close); + overlayWrapper.prepend(closeButton); + } + } + }, { + key: "getHeroImage", + value: function getHeroImage() { + if (this.overlayData.hero_image) { + return frmDom.img({ + src: this.overlayData.hero_image + }); + } + return ''; + } + }, { + key: "getButtons", + value: function getButtons() { + var buttons = this.overlayData.buttons.map(function (button, index) { + if (!button.url || '' === button.url) { + return ''; + } + var buttonTypeClassname = 1 === index ? 'frm-button-primary' : 'frm-button-secondary'; + var options = { + href: button.url, + text: button.label, + className: 'button frm_animate_bg ' + buttonTypeClassname + }; + if (button.target) { + options.target = button.target; + } + return frmDom.a(options); + }); + if (buttons) { + var buttonsWrapperElementOptions = { + className: 'frm-overlay--cta frm-flex-box', + children: buttons + }; + return frmDom.div(buttonsWrapperElementOptions); + } + return ''; + } + }, { + key: "getHeading", + value: function getHeading() { + if (this.overlayData.heading) { + return frmDom.tag('h2', { + className: 'frm-overlay--heading frm-text-xl', + text: this.overlayData.heading + }); + } + return ''; + } + }, { + key: "getCopy", + value: function getCopy() { + if (this.overlayData.copy) { + var copy = frmDom.tag('div'); + copy.innerHTML = this.overlayData.copy; + return frmDom.div({ + className: 'frm-overlay--copy', + child: copy + }); + } + return ''; + } + }, { + key: "initOverlayIntroAnimation", + value: function initOverlayIntroAnimation(delay) { + setTimeout(function () { + var elements = document.querySelectorAll('.frm-overlay--hero-image, .frm-overlay--heading, .frm-overlay--copy, .frm-overlay--cta a'); + new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(elements, 'cascade-3d').cascadeFadeIn(0.07); + }, delay); + } + }, { + key: "buildOverlay", + value: function buildOverlay() { + var container = frmDom.div({ + className: 'frm-overlay--container', + children: [frmDom.div({ + className: 'frm-overlay--hero-image frm-mb-md', + children: [this.getHeroImage()] + }), this.getHeading(), this.getCopy(), this.getButtons()] + }); + return frmDom.div({ + className: 'frm-overlay--wrapper frm_wrap', + children: [container] + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!***************************!*\ + !*** ./js/src/overlay.js ***! + \***************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/class-overlay */ "./js/src/components/class-overlay.js"); + +window.frmOverlay = new _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__.frmOverlay(); +/******/ })() +; +//# sourceMappingURL=formidable_overlay.js.map \ No newline at end of file diff --git a/js/formidable_styles.js b/js/formidable_styles.js index 76a6b9259d..bdfd17208d 100644 --- a/js/formidable_styles.js +++ b/js/formidable_styles.js @@ -1 +1,3022 @@ -(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,i=0;function o(){var o,a,s=n,c=arguments.length;t:for(;s;){if(s.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(t){return function(t,e){var n,r,a,s,c,u,l,f,p,d=1,h=t.length,v="";for(r=0;r=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?p="":(p=f?"+":"-",n=n.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",l=s.width-(p+n).length,c=s.width&&l>0?u.repeat(l):"",v+=s.align?p+n+c:"0"===u?p+c+n:c+p+n)}return v}(function(t){if(s[t])return s[t];for(var e,n=t,r=[],o=0;n;){if(null!==(e=i.text.exec(n)))r.push(e[0]);else if(null!==(e=i.modulo.exec(n)))r.push("%");else{if(null===(e=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){o|=1;var a=[],c=e[2],u=[];if(null===(u=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=i.key_access.exec(c)))a.push(u[1]);else{if(null===(u=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(u[1])}e[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return s[t]=r}(t),arguments)}function a(t,e){return o.apply(null,[t].concat(e||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(r=function(){return{sprintf:o,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t,e,r,i,o=n(616),a=n.n(o);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}n(604),a()(console.error),t={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},e=["(","?"],r={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var u={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var l={contextDelimiter:"",onMissingKey:null};function f(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},l)this.options[n]=void 0!==e&&n in e?e[n]:l[n]}function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e=0||t[c]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(m(n)&&y(r))if("function"==typeof i)if("number"==typeof o){var s={callback:i,priority:o,namespace:r};if(a[n]){var c,u=a[n].handlers;for(c=u.length;c>0&&!(o>=u[c-1].priority);c--);c===u.length?u[c]=s:u.splice(c,0,s),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=c&&t.currentIndex++}))}else a[n]={handlers:[s],runs:0};"hookAdded"!==n&&t.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.")}},g=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,i){var o=t[e];if(m(r)&&(n||y(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,c=function(t){s[t].namespace===i&&(s.splice(t,1),a++,o.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},u=s.length-1;u>=0;u--)c(u);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,i),a}}},_=function(t,e){return function(n,r){var i=t[e];return void 0!==r?n in i&&i[n].handlers.some((function(t){return t.namespace===r})):n in i}},x=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var i=t[e];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),c=1;c1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=d(d(d({},h),r.data[e]),t),r.data[e][""]=d(d({},h[""]),r.data[e][""])},s=function(t,e){a(t,e),o()},c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=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[t]||a(void 0,t),r.dcnpgettext(t,e,n,i,o)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},l=function(t,e,r){var i=c(r,e,t);return n?(i=n.applyFilters("i18n.gettext_with_context",i,t,e,r),n.applyFilters("i18n.gettext_with_context_"+u(r),i,t,e,r)):i};if(n){var p=function(t){v.test(t)&&o()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:s,resetLocaleData:function(t,e){r.data={},r.pluralForms={},s(t,e)},subscribe:function(t){return i.add(t),function(){return i.delete(t)}},__:function(t,e){var r=c(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+u(e),r,t,e)):r},_x:l,_n:function(t,e,r,i){var o=c(i,void 0,t,e,r);return n?(o=n.applyFilters("i18n.ngettext",o,t,e,r,i),n.applyFilters("i18n.ngettext_"+u(i),o,t,e,r,i)):o},_nx:function(t,e,r,i,o){var a=c(o,i,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,i,o),n.applyFilters("i18n.ngettext_with_context_"+u(o),a,t,e,r,i,o)):a},isRTL:function(){return"rtl"===l("ltr","text direction")},hasTranslation:function(t,e,i){var o,a,s=e?e+""+t:t,c=!(null===(o=r.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[s]);return n&&(c=n.applyFilters("i18n.has_translation",c,t,e,i),c=n.applyFilters("i18n.has_translation_"+u(i),c,t,e,i)),c}}}(0,0,A));F.getLocaleData.bind(F),F.setLocaleData.bind(F),F.resetLocaleData.bind(F),F.subscribe.bind(F);var j=F.__.bind(F);function E(t){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function O(t,e){for(var n=0;n ul").querySelectorAll(":scope > li").forEach((function(t){t.querySelector("h3").addEventListener("mouseover",(function(t){e.style.transform="translateY(".concat(t.target.closest("li").offsetTop,"px)"),e.classList.add("frm-animating"),e.classList.remove("frm_hidden"),setTimeout((function(){e.classList.remove("frm-animating")}),250)}))})),document.querySelectorAll("#frm_style_sidebar .accordion-section h3").forEach((function(t){t.addEventListener("click",(function(){e.classList.add("frm_hidden")}))}))}}},{key:"initStyleClassCopyToClipboard",value:function(t){var e=this;document.querySelector(".frm-copy-text").addEventListener("click",(function(n){var r=n.currentTarget.innerText;navigator.clipboard.writeText(r).then((function(){e.success(t)}))}))}}])&&I(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}())})()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@tannin/compile/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/compile/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compile) +/* harmony export */ }); +/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); +/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); + + + +/** + * Given a C expression, returns a function which can be called to evaluate its + * result. + * + * @example + * + * ```js + * import compile from '@tannin/compile'; + * + * const evaluate = compile( 'n > 1' ); + * + * evaluate( { n: 2 } ); + * // ⇒ true + * ``` + * + * @param {string} expression C expression. + * + * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. + */ +function compile( expression ) { + var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( variables ) { + return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/evaluate/index.js": +/*!************************************************!*\ + !*** ./node_modules/@tannin/evaluate/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ evaluate) +/* harmony export */ }); +/** + * Operator callback functions. + * + * @type {Object} + */ +var OPERATORS = { + '!': function( a ) { + return ! a; + }, + '*': function( a, b ) { + return a * b; + }, + '/': function( a, b ) { + return a / b; + }, + '%': function( a, b ) { + return a % b; + }, + '+': function( a, b ) { + return a + b; + }, + '-': function( a, b ) { + return a - b; + }, + '<': function( a, b ) { + return a < b; + }, + '<=': function( a, b ) { + return a <= b; + }, + '>': function( a, b ) { + return a > b; + }, + '>=': function( a, b ) { + return a >= b; + }, + '==': function( a, b ) { + return a === b; + }, + '!=': function( a, b ) { + return a !== b; + }, + '&&': function( a, b ) { + return a && b; + }, + '||': function( a, b ) { + return a || b; + }, + '?:': function( a, b, c ) { + if ( a ) { + throw b; + } + + return c; + }, +}; + +/** + * Given an array of postfix terms and operand variables, returns the result of + * the postfix evaluation. + * + * @example + * + * ```js + * import evaluate from '@tannin/evaluate'; + * + * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' + * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; + * + * evaluate( terms, {} ); + * // ⇒ 6.333333333333334 + * ``` + * + * @param {string[]} postfix Postfix terms. + * @param {Object} variables Operand variables. + * + * @return {*} Result of evaluation. + */ +function evaluate( postfix, variables ) { + var stack = [], + i, j, args, getOperatorResult, term, value; + + for ( i = 0; i < postfix.length; i++ ) { + term = postfix[ i ]; + + getOperatorResult = OPERATORS[ term ]; + if ( getOperatorResult ) { + // Pop from stack by number of function arguments. + j = getOperatorResult.length; + args = Array( j ); + while ( j-- ) { + args[ j ] = stack.pop(); + } + + try { + value = getOperatorResult.apply( null, args ); + } catch ( earlyReturn ) { + return earlyReturn; + } + } else if ( variables.hasOwnProperty( term ) ) { + value = variables[ term ]; + } else { + value = +term; + } + + stack.push( value ); + } + + return stack[ 0 ]; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/plural-forms/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@tannin/plural-forms/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluralForms) +/* harmony export */ }); +/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); + + +/** + * Given a C expression, returns a function which, when called with a value, + * evaluates the result with the value assumed to be the "n" variable of the + * expression. The result will be coerced to its numeric equivalent. + * + * @param {string} expression C expression. + * + * @return {Function} Evaluator function. + */ +function pluralForms( expression ) { + var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( n ) { + return +evaluate( { n: n } ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/postfix/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/postfix/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ postfix) +/* harmony export */ }); +var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + +/** + * Operator precedence mapping. + * + * @type {Object} + */ +PRECEDENCE = { + '(': 9, + '!': 8, + '*': 7, + '/': 7, + '%': 7, + '+': 6, + '-': 6, + '<': 5, + '<=': 5, + '>': 5, + '>=': 5, + '==': 4, + '!=': 4, + '&&': 3, + '||': 2, + '?': 1, + '?:': 1, +}; + +/** + * Characters which signal pair opening, to be terminated by terminators. + * + * @type {string[]} + */ +OPENERS = [ '(', '?' ]; + +/** + * Characters which signal pair termination, the value an array with the + * opener as its first member. The second member is an optional operator + * replacement to push to the stack. + * + * @type {string[]} + */ +TERMINATORS = { + ')': [ '(' ], + ':': [ '?', '?:' ], +}; + +/** + * Pattern matching operators and openers. + * + * @type {RegExp} + */ +PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + +/** + * Given a C expression, returns the equivalent postfix (Reverse Polish) + * notation terms as an array. + * + * If a postfix string is desired, simply `.join( ' ' )` the result. + * + * @example + * + * ```js + * import postfix from '@tannin/postfix'; + * + * postfix( 'n > 1' ); + * // ⇒ [ 'n', '1', '>' ] + * ``` + * + * @param {string} expression C expression. + * + * @return {string[]} Postfix terms. + */ +function postfix( expression ) { + var terms = [], + stack = [], + match, operator, term, element; + + while ( ( match = expression.match( PATTERN ) ) ) { + operator = match[ 0 ]; + + // Term is the string preceding the operator match. It may contain + // whitespace, and may be empty (if operator is at beginning). + term = expression.substr( 0, match.index ).trim(); + if ( term ) { + terms.push( term ); + } + + while ( ( element = stack.pop() ) ) { + if ( TERMINATORS[ operator ] ) { + if ( TERMINATORS[ operator ][ 0 ] === element ) { + // Substitution works here under assumption that because + // the assigned operator will no longer be a terminator, it + // will be pushed to the stack during the condition below. + operator = TERMINATORS[ operator ][ 1 ] || operator; + break; + } + } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { + // Push to stack if either an opener or when pop reveals an + // element of lower precedence. + stack.push( element ); + break; + } + + // For each popped from stack, push to terms. + terms.push( element ); + } + + if ( ! TERMINATORS[ operator ] ) { + stack.push( operator ); + } + + // Slice matched fragment from expression to continue match. + expression = expression.substr( match.index + operator.length ); + } + + // Push remainder of operand, if exists, to terms. + expression = expression.trim(); + if ( expression ) { + terms.push( expression ); + } + + // Pop remaining items from stack into terms. + return terms.concat( stack.reverse() ); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback AddHook + * + * Adds the hook to the appropriate hooks container. + * + * @param {string} hookName Name of hook to add + * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. + * @param {import('.').Callback} callback Function to call when the hook is run + * @param {number} [priority=10] Priority of this hook + */ + +/** + * Returns a function which, when invoked, will add a hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {AddHook} Function that adds a new hook. + */ + +function createAddHook(hooks, storeKey) { + return function addHook(hookName, namespace, callback) { + var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } + + if ('function' !== typeof callback) { + // eslint-disable-next-line no-console + console.error('The hook callback must be a function.'); + return; + } // Validate numeric priority + + + if ('number' !== typeof priority) { + // eslint-disable-next-line no-console + console.error('If specified, the hook priority must be a number.'); + return; + } + + var handler = { + callback: callback, + priority: priority, + namespace: namespace + }; + + if (hooksStore[hookName]) { + // Find the correct insert index of the new hook. + var handlers = hooksStore[hookName].handlers; + /** @type {number} */ + + var i; + + for (i = handlers.length; i > 0; i--) { + if (priority >= handlers[i - 1].priority) { + break; + } + } + + if (i === handlers.length) { + // If append, operate via direct assignment. + handlers[i] = handler; + } else { + // Otherwise, insert before index via splice. + handlers.splice(i, 0, handler); + } // We may also be currently executing this hook. If the callback + // we're adding would come after the current callback, there's no + // problem; otherwise we need to increase the execution index of + // any other runs by 1 to account for the added element. + + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex++; + } + }); + } else { + // This is the first hook of its type. + hooksStore[hookName] = { + handlers: [handler], + runs: 0 + }; + } + + if (hookName !== 'hookAdded') { + hooks.doAction('hookAdded', hookName, namespace, callback, priority); + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); +//# sourceMappingURL=createAddHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Returns a function which, when invoked, will return the name of the + * currently running hook, or `null` if no hook of the given type is currently + * running. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {() => string | null} Function that returns the current hook name or null. + */ +function createCurrentHook(hooks, storeKey) { + return function currentHook() { + var _hooksStore$__current, _hooksStore$__current2; + + var hooksStore = hooks[storeKey]; + 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; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); +//# sourceMappingURL=createCurrentHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + +/** + * @callback DidHook + * + * Returns the number of times an action has been fired. + * + * @param {string} hookName The hook name to check. + * + * @return {number | undefined} The number of times the hook has run. + */ + +/** + * Returns a function which, when invoked, will return the number of times a + * hook has been called. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DidHook} Function that returns a hook's call count. + */ + +function createDidHook(hooks, storeKey) { + return function didHook(hookName) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { + return; + } + + return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); +//# sourceMappingURL=createDidHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback DoingHook + * Returns whether a hook is currently being executed. + * + * @param {string} [hookName] The name of the hook to check for. If + * omitted, will check for any hook being executed. + * + * @return {boolean} Whether the hook is being executed. + */ + +/** + * Returns a function which, when invoked, will return whether a hook is + * currently being executed. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DoingHook} Function that returns whether a hook is currently + * being executed. + */ +function createDoingHook(hooks, storeKey) { + return function doingHook(hookName) { + var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. + + if ('undefined' === typeof hookName) { + return 'undefined' !== typeof hooksStore.__current[0]; + } // Return the __current hook. + + + return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); +//# sourceMappingURL=createDoingHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback HasHook + * + * Returns whether any handlers are attached for the given hookName and optional namespace. + * + * @param {string} hookName The name of the hook to check for. + * @param {string} [namespace] Optional. The unique namespace identifying the callback + * in the form `vendor/plugin/function`. + * + * @return {boolean} Whether there are handlers that are attached to the given hook. + */ + +/** + * Returns a function which, when invoked, will return whether any handlers are + * attached to a particular hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {HasHook} Function that returns whether any handlers are + * attached to a particular hook and optional namespace. + */ +function createHasHook(hooks, storeKey) { + return function hasHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; // Use the namespace if provided. + + if ('undefined' !== typeof namespace) { + return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { + return hook.namespace === namespace; + }); + } + + return hookName in hooksStore; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); +//# sourceMappingURL=createHasHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _Hooks: () => (/* binding */ _Hooks), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); +/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); +/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); +/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); +/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); +/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); +/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Internal class for constructing hooks. Use `createHooks()` function + * + * Note, it is necessary to expose this class to make its type public. + * + * @private + */ + +var _Hooks = function _Hooks() { + (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); + + /** @type {import('.').Store} actions */ + this.actions = Object.create(null); + this.actions.__current = []; + /** @type {import('.').Store} filters */ + + this.filters = Object.create(null); + this.filters.__current = []; + this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); + this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); + this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); + this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); + this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); + this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); + this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); + this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); + this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); + this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); + this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); + this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); + this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); + this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); + this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); + this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); +}; +/** @typedef {_Hooks} Hooks */ + +/** + * Returns an instance of the hooks object. + * + * @return {Hooks} A Hooks instance. + */ + +function createHooks() { + return new _Hooks(); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); +//# sourceMappingURL=createHooks.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback RemoveHook + * Removes the specified callback (or all callbacks) from the hook with a given hookName + * and namespace. + * + * @param {string} hookName The name of the hook to modify. + * @param {string} namespace The unique namespace identifying the callback in the + * form `vendor/plugin/function`. + * + * @return {number | undefined} The number of callbacks removed. + */ + +/** + * Returns a function which, when invoked, will remove a specified hook or all + * hooks by the given name. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, + * without regard to namespace. Used to create + * `removeAll*` functions. + * + * @return {RemoveHook} Function that removes hooks. + */ + +function createRemoveHook(hooks, storeKey) { + var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function removeHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } // Bail if no hooks exist by this name + + + if (!hooksStore[hookName]) { + return 0; + } + + var handlersRemoved = 0; + + if (removeAll) { + handlersRemoved = hooksStore[hookName].handlers.length; + hooksStore[hookName] = { + runs: hooksStore[hookName].runs, + handlers: [] + }; + } else { + // Try to find the specified callback to remove. + var handlers = hooksStore[hookName].handlers; + + var _loop = function _loop(i) { + if (handlers[i].namespace === namespace) { + handlers.splice(i, 1); + handlersRemoved++; // This callback may also be part of a hook that is + // currently executing. If the callback we're removing + // comes after the current callback, there's no problem; + // otherwise we need to decrease the execution index of any + // other runs by 1 to account for the removed element. + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex--; + } + }); + } + }; + + for (var i = handlers.length - 1; i >= 0; i--) { + _loop(i); + } + } + + if (hookName !== 'hookRemoved') { + hooks.doAction('hookRemoved', hookName, namespace); + } + + return handlersRemoved; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); +//# sourceMappingURL=createRemoveHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); + + +/** + * Returns a function which, when invoked, will execute all callbacks + * registered to a hook of the specified type, optionally returning the final + * value of the call chain. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to + * return its first argument. + * + * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. + */ +function createRunHook(hooks, storeKey) { + var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function runHooks(hookName) { + var hooksStore = hooks[storeKey]; + + if (!hooksStore[hookName]) { + hooksStore[hookName] = { + handlers: [], + runs: 0 + }; + } + + hooksStore[hookName].runs++; + var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. + + if (true) { + // Handle any 'all' hooks registered. + if ('hookAdded' !== hookName && hooksStore.all) { + handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); + } + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!handlers || !handlers.length) { + return returnFirstArg ? args[0] : undefined; + } + + var hookInfo = { + name: hookName, + currentIndex: 0 + }; + + hooksStore.__current.push(hookInfo); + + while (hookInfo.currentIndex < handlers.length) { + var handler = handlers[hookInfo.currentIndex]; + var result = handler.callback.apply(null, args); + + if (returnFirstArg) { + args[0] = result; + } + + hookInfo.currentIndex++; + } + + hooksStore.__current.pop(); + + if (returnFirstArg) { + return args[0]; + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); +//# sourceMappingURL=createRunHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ actions: () => (/* binding */ actions), +/* harmony export */ addAction: () => (/* binding */ addAction), +/* harmony export */ addFilter: () => (/* binding */ addFilter), +/* harmony export */ applyFilters: () => (/* binding */ applyFilters), +/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ currentAction: () => (/* binding */ currentAction), +/* harmony export */ currentFilter: () => (/* binding */ currentFilter), +/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), +/* harmony export */ didAction: () => (/* binding */ didAction), +/* harmony export */ didFilter: () => (/* binding */ didFilter), +/* harmony export */ doAction: () => (/* binding */ doAction), +/* harmony export */ doingAction: () => (/* binding */ doingAction), +/* harmony export */ doingFilter: () => (/* binding */ doingFilter), +/* harmony export */ filters: () => (/* binding */ filters), +/* harmony export */ hasAction: () => (/* binding */ hasAction), +/* harmony export */ hasFilter: () => (/* binding */ hasFilter), +/* harmony export */ removeAction: () => (/* binding */ removeAction), +/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), +/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), +/* harmony export */ removeFilter: () => (/* binding */ removeFilter) +/* harmony export */ }); +/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); +/** + * Internal dependencies + */ + +/** @typedef {(...args: any[])=>any} Callback */ + +/** + * @typedef Handler + * @property {Callback} callback The callback + * @property {string} namespace The namespace + * @property {number} priority The namespace + */ + +/** + * @typedef Hook + * @property {Handler[]} handlers Array of handlers + * @property {number} runs Run counter + */ + +/** + * @typedef Current + * @property {string} name Hook name + * @property {number} currentIndex The index + */ + +/** + * @typedef {Record & {__current: Current[]}} Store + */ + +/** + * @typedef {'actions' | 'filters'} StoreKey + */ + +/** + * @typedef {import('./createHooks').Hooks} Hooks + */ + +var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); +var addAction = defaultHooks.addAction, + addFilter = defaultHooks.addFilter, + removeAction = defaultHooks.removeAction, + removeFilter = defaultHooks.removeFilter, + hasAction = defaultHooks.hasAction, + hasFilter = defaultHooks.hasFilter, + removeAllActions = defaultHooks.removeAllActions, + removeAllFilters = defaultHooks.removeAllFilters, + doAction = defaultHooks.doAction, + applyFilters = defaultHooks.applyFilters, + currentAction = defaultHooks.currentAction, + currentFilter = defaultHooks.currentFilter, + doingAction = defaultHooks.doingAction, + doingFilter = defaultHooks.doingFilter, + didAction = defaultHooks.didAction, + didFilter = defaultHooks.didFilter, + actions = defaultHooks.actions, + filters = defaultHooks.filters; + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a hookName string. + * + * @param {string} hookName The hook name to validate. Should be a non empty string containing + * only numbers, letters, dashes, periods and underscores. Also, + * the hook name cannot begin with `__`. + * + * @return {boolean} Whether the hook name is valid. + */ +function validateHookName(hookName) { + if ('string' !== typeof hookName || '' === hookName) { + // eslint-disable-next-line no-console + console.error('The hook name must be a non-empty string.'); + return false; + } + + if (/^__/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name cannot begin with `__`.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); +//# sourceMappingURL=validateHookName.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a namespace string. + * + * @param {string} namespace The namespace to validate - should take the form + * `vendor/plugin/function`. + * + * @return {boolean} Whether the namespace is valid. + */ +function validateNamespace(namespace) { + if ('string' !== typeof namespace || '' === namespace) { + // eslint-disable-next-line no-console + console.error('The namespace must be a non-empty string.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { + // eslint-disable-next-line no-console + console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); +//# sourceMappingURL=validateNamespace.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": +/*!******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createI18n: () => (/* binding */ createI18n) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); + + +function 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; } + +function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } + +/** + * External dependencies + */ + +/** + * @typedef {Record} LocaleData + */ + +/** + * Default locale data to use for Tannin domain when not otherwise provided. + * Assumes an English plural forms expression. + * + * @type {LocaleData} + */ + +var DEFAULT_LOCALE_DATA = { + '': { + /** @param {number} n */ + plural_forms: function plural_forms(n) { + return n === 1 ? 0 : 1; + } + } +}; +/* + * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, + * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. + */ + +var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; +/** + * @typedef {(domain?: string) => LocaleData} GetLocaleData + * + * Returns locale data by domain in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData + * + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData + * + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** @typedef {() => void} SubscribeCallback */ + +/** @typedef {() => void} UnsubscribeCallback */ + +/** + * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe + * + * Subscribes to changes of locale data + */ + +/** + * @typedef {(domain?: string) => string} GetFilterDomain + * Retrieve the domain to use when calling domain-specific filters. + */ + +/** + * @typedef {(text: string, domain?: string) => string} __ + * + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + */ + +/** + * @typedef {(text: string, context: string, domain?: string) => string} _x + * + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n + * + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx + * + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + */ + +/** + * @typedef {() => boolean} IsRtl + * + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + */ + +/** + * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation + * + * Check if there is a translation for a given string in singular form. + */ + +/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ + +/** + * An i18n instance + * + * @typedef I18n + * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. + * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. + * @property {__} __ Retrieve the translation of text. + * @property {_x} _x Retrieve translated string with gettext context. + * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied + * number. + * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * @property {IsRtl} isRTL Check if current locale is RTL. + * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. + */ + +/** + * Create an i18n instance + * + * @param {LocaleData} [initialData] Locale data configuration. + * @param {string} [initialDomain] Domain for which configuration applies. + * @param {Hooks} [hooks] Hooks implementation. + * @return {I18n} I18n instance + */ + +var createI18n = function createI18n(initialData, initialDomain, hooks) { + /** + * The underlying instance of Tannin to which exported functions interface. + * + * @type {Tannin} + */ + var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); + var listeners = new Set(); + + var notifyListeners = function notifyListeners() { + listeners.forEach(function (listener) { + return listener(); + }); + }; + /** + * Subscribe to changes of locale data. + * + * @param {SubscribeCallback} callback Subscription callback. + * @return {UnsubscribeCallback} Unsubscribe callback. + */ + + + var subscribe = function subscribe(callback) { + listeners.add(callback); + return function () { + return listeners.delete(callback); + }; + }; + /** @type {GetLocaleData} */ + + + var getLocaleData = function getLocaleData() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return tannin.data[domain]; + }; + /** + * @param {LocaleData} [data] + * @param {string} [domain] + */ + + + var doSetLocaleData = function doSetLocaleData(data) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits + // a plural forms expression). + + tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); + }; + /** @type {SetLocaleData} */ + + + var setLocaleData = function setLocaleData(data, domain) { + doSetLocaleData(data, domain); + notifyListeners(); + }; + /** @type {ResetLocaleData} */ + + + var resetLocaleData = function resetLocaleData(data, domain) { + // Reset all current Tannin locale data. + tannin.data = {}; // Reset cached plural forms functions cache. + + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + /** + * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not + * otherwise previously assigned. + * + * @param {string|undefined} domain Domain to retrieve the translated text. + * @param {string|undefined} context Context information for the translators. + * @param {string} single Text to translate if non-plural. Used as + * fallback return value on a caught error. + * @param {string} [plural] The text to be used if the number is + * plural. + * @param {number} [number] The number to compare against to use + * either the singular or plural form. + * + * @return {string} The translated string. + */ + + + var dcnpgettext = function dcnpgettext() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + var context = arguments.length > 1 ? arguments[1] : undefined; + var single = arguments.length > 2 ? arguments[2] : undefined; + var plural = arguments.length > 3 ? arguments[3] : undefined; + var number = arguments.length > 4 ? arguments[4] : undefined; + + if (!tannin.data[domain]) { + // use `doSetLocaleData` to set silently, without notifying listeners + doSetLocaleData(undefined, domain); + } + + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + /** @type {GetFilterDomain} */ + + + var getFilterDomain = function getFilterDomain() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return domain; + }; + /** @type {__} */ + + + var __ = function __(text, domain) { + var translation = dcnpgettext(domain, undefined, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext', translation, text, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) + ); + }; + /** @type {_x} */ + + + var _x = function _x(text, context, domain) { + var translation = dcnpgettext(domain, context, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation based on context information. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) + ); + }; + /** @type {_n} */ + + + var _n = function _n(single, plural, number, domain) { + var translation = dcnpgettext(domain, undefined, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) + ); + }; + /** @type {_nx} */ + + + var _nx = function _nx(single, plural, number, context, domain) { + var translation = dcnpgettext(domain, context, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string with gettext context. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) + ); + }; + /** @type {IsRtl} */ + + + var isRTL = function isRTL() { + return 'rtl' === _x('ltr', 'text direction'); + }; + /** @type {HasTranslation} */ + + + var hasTranslation = function hasTranslation(single, context, domain) { + var _tannin$data, _tannin$data2; + + var key = context ? context + "\x04" + single : single; + 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]); + + if (hooks) { + /** + * Filters the presence of a translation in the locale data. + * + * @param {boolean} hasTranslation Whether the translation is present or not.. + * @param {string} single The singular form of the translated text (used as key in locale data) + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation', result, single, context, domain); + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); + } + + return result; + }; + + if (initialData) { + setLocaleData(initialData, initialDomain); + } + + if (hooks) { + /** + * @param {string} hookName + */ + var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + + hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); + hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); + } + + return { + getLocaleData: getLocaleData, + setLocaleData: setLocaleData, + resetLocaleData: resetLocaleData, + subscribe: subscribe, + __: __, + _x: _x, + _n: _n, + _nx: _nx, + isRTL: isRTL, + hasTranslation: hasTranslation + }; +}; +//# sourceMappingURL=create-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* binding */ __), +/* harmony export */ _n: () => (/* binding */ _n), +/* harmony export */ _nx: () => (/* binding */ _nx), +/* harmony export */ _x: () => (/* binding */ _x), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), +/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), +/* harmony export */ isRTL: () => (/* binding */ isRTL), +/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), +/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), +/* harmony export */ subscribe: () => (/* binding */ subscribe) +/* harmony export */ }); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); +/** + * Internal dependencies + */ + +/** + * WordPress dependencies + */ + + +var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); +/** + * Default, singleton instance of `I18n`. + */ + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); +/* + * Comments in this file are duplicated from ./i18n due to + * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 + */ + +/** + * @typedef {import('./create-i18n').LocaleData} LocaleData + * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback + * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback + */ + +/** + * Returns locale data by domain in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {string} [domain] Domain for which to get the data. + * @return {LocaleData} Locale data. + */ + +var getLocaleData = i18n.getLocaleData.bind(i18n); +/** + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var setLocaleData = i18n.setLocaleData.bind(i18n); +/** + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var resetLocaleData = i18n.resetLocaleData.bind(i18n); +/** + * Subscribes to changes of locale data + * + * @param {SubscribeCallback} callback Subscription callback + * @return {UnsubscribeCallback} Unsubscribe callback + */ + +var subscribe = i18n.subscribe.bind(i18n); +/** + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + * + * @param {string} text Text to translate. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated text. + */ + +var __ = i18n.__.bind(i18n); +/** + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + * + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated context string without pipe. + */ + +var _x = i18n._x.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _n = i18n._n.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _nx = i18n._nx.bind(i18n); +/** + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + * + * @return {boolean} Whether locale is RTL. + */ + +var isRTL = i18n.isRTL.bind(i18n); +/** + * Check if there is a translation for a given string (in singular form). + * + * @param {string} single Singular form of the string to look up. + * @param {string} [context] Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * @return {boolean} Whether the translation exists or not. + */ + +var hasTranslation = i18n.hasTranslation.bind(i18n); +//# sourceMappingURL=default-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), +/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), +/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), +/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), +/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), +/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), +/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), +/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), +/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), +/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), +/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), +/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) +/* harmony export */ }); +/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": +/*!**************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ sprintf: () => (/* binding */ sprintf) +/* harmony export */ }); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); +/** + * External dependencies + */ + + +/** + * Log to console, once per message; or more precisely, per referentially equal + * argument set. Because Jed throws errors, we log these to the console instead + * to avoid crashing the application. + * + * @param {...*} args Arguments to pass to `console.error` + */ + +var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console + +/** + * Returns a formatted string. If an error occurs in applying the format, the + * original format string is returned. + * + * @param {string} format The format of the string to generate. + * @param {...*} args Arguments to apply to the format. + * + * @see https://www.npmjs.com/package/sprintf-js + * + * @return {string} The formatted string. + */ + +function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); + } catch (error) { + logErrorOnce('sprintf error: \n\n' + error.toString()); + return format; + } +} +//# sourceMappingURL=sprintf.js.map + +/***/ }), + +/***/ "./js/src/admin/components/dependent-updater-component.js": +/*!****************************************************************!*\ + !*** ./js/src/admin/components/dependent-updater-component.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. + * The names of the elements that will be updated are specified using the "will-change" attribute. + * It is primarily used in components from Style/Quick Settings. + * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. + */ +var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { + /** + * Creates an instance of frmStyleDependentUpdaterComponent. + * @param {HTMLElement} component - The component element. + */ + function frmStyleDependentUpdaterComponent(component) { + _classCallCheck(this, frmStyleDependentUpdaterComponent); + this.component = component; + try { + var willChangeData = JSON.parse(this.component.dataset.willChange); + this.data = { + propagateInputs: this.initPropagationList(willChangeData), + changeEvent: new Event('change', { + bubbles: true + }) + }; + } catch (error) { + console.error('Error parsing JSON data from "will-change" attribute.', error); + } + } + + /** + * Initializes the list of inputs to propagate changes to. + * The selection is made by provided input's names list in "will-change" attribute. + * @param {string[]} inputNames - The names of the inputs to propagate changes to. + * @return {HTMLElement[]} - The list of inputs to propagate changes to. + */ + return _createClass(frmStyleDependentUpdaterComponent, [{ + key: "initPropagationList", + value: function initPropagationList(inputNames) { + var list = []; + inputNames.forEach(function (name) { + var input = document.querySelector("input[name=\"".concat(name, "\"]")); + if (null !== input) { + list.push(input); + } + }); + return list; + } + + /** + * Updates all dependent elements with the given value. + * @param {string} value - The value to update the dependent elements with. + */ + }, { + key: "updateAllDependentElements", + value: function updateAllDependentElements(value) { + this.data.propagateInputs.forEach(function (input) { + input.value = value; + }); + this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); + } + }]); +}(); + + +/***/ }), + +/***/ "./node_modules/memize/index.js": +/*!**************************************!*\ + !*** ./node_modules/memize/index.js ***! + \**************************************/ +/***/ ((module) => { + +/** + * Memize options object. + * + * @typedef MemizeOptions + * + * @property {number} [maxSize] Maximum size of the cache. + */ + +/** + * Internal cache entry. + * + * @typedef MemizeCacheNode + * + * @property {?MemizeCacheNode|undefined} [prev] Previous node. + * @property {?MemizeCacheNode|undefined} [next] Next node. + * @property {Array<*>} args Function arguments for cache + * entry. + * @property {*} val Function result. + */ + +/** + * Properties of the enhanced function for controlling cache. + * + * @typedef MemizeMemoizedFunction + * + * @property {()=>void} clear Clear the cache. + */ + +/** + * Accepts a function to be memoized, and returns a new memoized function, with + * optional options. + * + * @template {Function} F + * + * @param {F} fn Function to memoize. + * @param {MemizeOptions} [options] Options object. + * + * @return {F & MemizeMemoizedFunction} Memoized function. + */ +function memize( fn, options ) { + var size = 0; + + /** @type {?MemizeCacheNode|undefined} */ + var head; + + /** @type {?MemizeCacheNode|undefined} */ + var tail; + + options = options || {}; + + function memoized( /* ...args */ ) { + var node = head, + len = arguments.length, + args, i; + + searchCache: while ( node ) { + // Perform a shallow equality test to confirm that whether the node + // under test is a candidate for the arguments passed. Two arrays + // are shallowly equal if their length matches and each entry is + // strictly equal between the two sets. Avoid abstracting to a + // function which could incur an arguments leaking deoptimization. + + // Check whether node arguments match arguments length + if ( node.args.length !== arguments.length ) { + node = node.next; + continue; + } + + // Check whether node arguments match arguments values + for ( i = 0; i < len; i++ ) { + if ( node.args[ i ] !== arguments[ i ] ) { + node = node.next; + continue searchCache; + } + } + + // At this point we can assume we've found a match + + // Surface matched node to head if not already + if ( node !== head ) { + // As tail, shift to previous. Must only shift if not also + // head, since if both head and tail, there is no previous. + if ( node === tail ) { + tail = node.prev; + } + + // Adjust siblings to point to each other. If node was tail, + // this also handles new tail's empty `next` assignment. + /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; + if ( node.next ) { + node.next.prev = node.prev; + } + + node.next = head; + node.prev = null; + /** @type {MemizeCacheNode} */ ( head ).prev = node; + head = node; + } + + // Return immediately + return node.val; + } + + // No cached value found. Continue to insertion phase: + + // Create a copy of arguments (avoid leaking deoptimization) + args = new Array( len ); + for ( i = 0; i < len; i++ ) { + args[ i ] = arguments[ i ]; + } + + node = { + args: args, + + // Generate the result from original function + val: fn.apply( null, args ), + }; + + // Don't need to check whether node is already head, since it would + // have been returned above already if it was + + // Shift existing head down list + if ( head ) { + head.prev = node; + node.next = head; + } else { + // If no head, follows that there's no tail (at initial or reset) + tail = node; + } + + // Trim tail if we're reached max size and are pending cache insertion + if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { + tail = /** @type {MemizeCacheNode} */ ( tail ).prev; + /** @type {MemizeCacheNode} */ ( tail ).next = null; + } else { + size++; + } + + head = node; + + return node.val; + } + + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + + if ( false ) {} + + // Ignore reason: There's not a clear solution to create an intersection of + // the function with additional properties, where the goal is to retain the + // function signature of the incoming argument and add control properties + // on the return value. + + // @ts-ignore + return memoized; +} + +module.exports = memize; + + +/***/ }), + +/***/ "./node_modules/sprintf-js/src/sprintf.js": +/*!************************************************!*\ + !*** ./node_modules/sprintf-js/src/sprintf.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports.sprintf = sprintf + exports.vsprintf = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line + + +/***/ }), + +/***/ "./node_modules/tannin/index.js": +/*!**************************************!*\ + !*** ./node_modules/tannin/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Tannin) +/* harmony export */ }); +/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); + + +/** + * Tannin constructor options. + * + * @typedef {Object} TanninOptions + * + * @property {string} [contextDelimiter] Joiner in string lookup with context. + * @property {Function} [onMissingKey] Callback to invoke when key missing. + */ + +/** + * Domain metadata. + * + * @typedef {Object} TanninDomainMetadata + * + * @property {string} [domain] Domain name. + * @property {string} [lang] Language code. + * @property {(string|Function)} [plural_forms] Plural forms expression or + * function evaluator. + */ + +/** + * Domain translation pair respectively representing the singular and plural + * translation. + * + * @typedef {[string,string]} TanninTranslation + */ + +/** + * Locale data domain. The key is used as reference for lookup, the value an + * array of two string entries respectively representing the singular and plural + * translation. + * + * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain + */ + +/** + * Jed-formatted locale data. + * + * @see http://messageformat.github.io/Jed/ + * + * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData + */ + +/** + * Default Tannin constructor options. + * + * @type {TanninOptions} + */ +var DEFAULT_OPTIONS = { + contextDelimiter: '\u0004', + onMissingKey: null, +}; + +/** + * Given a specific locale data's config `plural_forms` value, returns the + * expression. + * + * @example + * + * ``` + * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' + * ``` + * + * @param {string} pf Locale data plural forms. + * + * @return {string} Plural forms expression. + */ +function getPluralExpression( pf ) { + var parts, i, part; + + parts = pf.split( ';' ); + + for ( i = 0; i < parts.length; i++ ) { + part = parts[ i ].trim(); + if ( part.indexOf( 'plural=' ) === 0 ) { + return part.substr( 7 ); + } + } +} + +/** + * Tannin constructor. + * + * @class + * + * @param {TanninLocaleData} data Jed-formatted locale data. + * @param {TanninOptions} [options] Tannin options. + */ +function Tannin( data, options ) { + var key; + + /** + * Jed-formatted locale data. + * + * @name Tannin#data + * @type {TanninLocaleData} + */ + this.data = data; + + /** + * Plural forms function cache, keyed by plural forms string. + * + * @name Tannin#pluralForms + * @type {Object} + */ + this.pluralForms = {}; + + /** + * Effective options for instance, including defaults. + * + * @name Tannin#options + * @type {TanninOptions} + */ + this.options = {}; + + for ( key in DEFAULT_OPTIONS ) { + this.options[ key ] = options !== undefined && key in options + ? options[ key ] + : DEFAULT_OPTIONS[ key ]; + } +} + +/** + * Returns the plural form index for the given domain and value. + * + * @param {string} domain Domain on which to calculate plural form. + * @param {number} n Value for which plural form is to be calculated. + * + * @return {number} Plural form index. + */ +Tannin.prototype.getPluralForm = function( domain, n ) { + var getPluralForm = this.pluralForms[ domain ], + config, plural, pf; + + if ( ! getPluralForm ) { + config = this.data[ domain ][ '' ]; + + pf = ( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + if ( typeof pf !== 'function' ) { + plural = getPluralExpression( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); + } + + getPluralForm = this.pluralForms[ domain ] = pf; + } + + return getPluralForm( n ); +}; + +/** + * Translate a string. + * + * @param {string} domain Translation domain. + * @param {string|void} context Context distinguishing terms of the same name. + * @param {string} singular Primary key for translation lookup. + * @param {string=} plural Fallback value used for non-zero plural + * form index. + * @param {number=} n Value to use in calculating plural form. + * + * @return {string} Translated string. + */ +Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { + var index, key, entry; + + if ( n === undefined ) { + // Default to singular. + index = 0; + } else { + // Find index by evaluating plural form for value. + index = this.getPluralForm( domain, n ); + } + + key = singular; + + // If provided, context is prepended to key with delimiter. + if ( context ) { + key = context + this.options.contextDelimiter + singular; + } + + entry = this.data[ domain ][ key ]; + + // Verify not only that entry exists, but that the intended index is within + // range and non-empty. + if ( entry && entry[ index ] ) { + return entry[ index ]; + } + + if ( this.options.onMissingKey ) { + this.options.onMissingKey( singular, domain ); + } + + // If entry not found, fall back to singular vs. plural with zero index + // representing the singular value. + return index === 0 ? singular : plural; +}; + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) +/* harmony export */ }); +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _classCallCheck) +/* harmony export */ }); +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _iterableToArray) +/* harmony export */ }); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) +/* harmony export */ }); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _toConsumableArray) +/* harmony export */ }); +/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); +/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); + + + + +function _toConsumableArray(r) { + return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; + } +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _defineProperty) +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(e, r, t) { + return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPrimitive) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function toPrimitive(t, r) { + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPropertyKey) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function toPropertyKey(t) { + var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); + return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!********************************!*\ + !*** ./js/src/admin/styles.js ***! + \********************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + + + +/** + * Represents the frmStyleOptions class. + * @class + */ +var frmStyleOptions = /*#__PURE__*/function () { + function frmStyleOptions() { + _classCallCheck(this, frmStyleOptions); + this.success = frmDom.success; + this.init(); + this.initHover(); + } + + /** + * Init the dependent + */ + return _createClass(frmStyleOptions, [{ + key: "init", + value: function init() { + this.initColorPickerDependentUpdaterComponents(); + this.initStyleClassCopyToClipboard((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The class name has been copied.', 'formidable')); + } + + /** + * Initializes the color picker dependent updater components. + * Retrieves the components and elements, and adds them to the elements array. + * Adds an action hook for the frm_style_options_color_change event. + */ + }, { + key: "initColorPickerDependentUpdaterComponents", + value: function initColorPickerDependentUpdaterComponents() { + var components = document.querySelectorAll('.frm-style-dependent-updater-component.frm-colorpicker'); + var elements = []; + components.forEach(function (component) { + var element = component.querySelector('input.hex'); + var id = 'undefined' !== typeof element ? element.getAttribute('id') : null; + if (null !== id) { + elements.push({ + id: id, + dependentUpdaterClass: new _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](component, 'colorpicker') + }); + } + }); + wp.hooks.addAction('frm_style_options_color_change', 'formidable', function (_ref) { + var event = _ref.event, + value = _ref.value; + var container = event.target.closest('.wp-picker-container'); + var id = event.target.getAttribute('id'); + container.querySelector('.wp-color-result-text').innerText = value; + elements.forEach(function (element) { + if (element.id === id) { + element.dependentUpdaterClass.updateAllDependentElements(value); + } + }); + }); + } + + /** + * Initializes the hover functionality for the style options. + * Creates a hover element and appends it to the settingsWrapper. + * Adds event listeners for mouseover and click events. + */ + }, { + key: "initHover", + value: function initHover() { + var settingsWrapper = document.querySelector('.frm-right-panel .styling_settings .accordion-container'); + if (null === settingsWrapper) { + return; + } + var hoverElement = document.createElement('div'); + hoverElement.classList.add('frm_hidden'); + hoverElement.classList.add('frm-style-settings-hover'); + settingsWrapper.appendChild(hoverElement); + var styleOptionsMenu = settingsWrapper.querySelector(':scope > ul'); + styleOptionsMenu.querySelectorAll(':scope > li').forEach(function (item) { + item.querySelector('h3').addEventListener('mouseover', function (event) { + hoverElement.style.transform = "translateY(".concat(event.target.closest('li').offsetTop, "px)"); + hoverElement.classList.add('frm-animating'); + hoverElement.classList.remove('frm_hidden'); + setTimeout(function () { + hoverElement.classList.remove('frm-animating'); + }, 250); + }); + }); + var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); + accordionitems.forEach(function (item) { + item.addEventListener('click', function () { + hoverElement.classList.add('frm_hidden'); + }); + }); + } + + /** + * Initializes the copy to clipboard functionality for style classes. + * Adds a click event listener to the copyLabel element. + * Copies the class name to the clipboard and displays a success message. + * @param {string} successMessage - The success message to display. + */ + }, { + key: "initStyleClassCopyToClipboard", + value: function initStyleClassCopyToClipboard(successMessage) { + var _this = this; + var copyLabel = document.querySelector('.frm-copy-text'); + copyLabel.addEventListener('click', function (event) { + var className = event.currentTarget.innerText; + navigator.clipboard.writeText(className).then(function () { + _this.success(successMessage); + }); + }); + } + }]); +}(); +new frmStyleOptions(); +})(); + +/******/ })() +; +//# sourceMappingURL=formidable_styles.js.map \ No newline at end of file diff --git a/js/formidable_styles.js.map b/js/formidable_styles.js.map index f4129f4d61..52627d0e52 100644 --- a/js/formidable_styles.js.map +++ b/js/formidable_styles.js.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"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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ACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;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/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.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 'core/utils';\n\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}\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.options[ index ].fullValue = this.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 ( '' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled', 'frm-empty' );\n\t\t\t\treturn;\n\t\t\t}\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\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled', 'frm-empty' );\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\tif ( slider.classList.contains( 'frm-disabled' ) ) {\n\t\t\treturn;\n\t\t}\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\t// When the slider component is used for \"Base Font Size\", we need to update a hidden input field when change happens to indicate that the \"Base Font Size\" has been adjusted.\n\t\t// Used to avoid conflicts with other possible font sizes adjustemnts in \"Advanced Settings\" when moving from \"Quick Settings\" when \"Base Font Size\" is not changed.\n\t\tif ( element.classList.contains( 'frm-base-font-size' ) ) {\n\t\t\tconst userBaseFontSizeInput = document.querySelector( 'input[name=\"frm_style_setting[post_content][use_base_font_size]\"]' );\n\t\t\tif ( null !== userBaseFontSizeInput ) {\n\t\t\t\tuserBaseFontSizeInput.value = 'true';\n\t\t\t}\n\t\t}\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 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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\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","// 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","export const { onClickPreventDefault } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","/**\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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.currentTarget.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","fullValue","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","preventDefault","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","_this4","toLowerCase","_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","userBaseFontSizeInput","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","_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","frmAnimate","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","onClickPreventDefault","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","__","frmStyleOptions","success","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","id","dependentUpdaterClass","_ref","container","settingsWrapper","hoverElement","createElement","appendChild","styleOptionsMenu","offsetTop","successMessage","copyLabel","className","currentTarget","navigator","clipboard","writeText"],"sourceRoot":""} -======= -{"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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YA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DAAiD,mFAAmF,OAAO;;AAEtgB;AACA;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;AACnC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;;;AAG5B;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA,sEAAsE,qDAAqD;AAC3H;;AAEA,4DAA4D;AAC5D;AACA,aAAa,eAAe;;;AAG5B;AACA;AACA;AACA;AACA,aAAa,iBAAiB;;;AAG9B;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,aAAa,kBAAkB;AAC/B,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;;;AAG9B;AACA;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,KAAK;;;AAGlB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,OAAO;;;AAGpB;AACA;AACA;AACA,aAAa,gBAAgB;;;AAG7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,kBAAkB,UAAU;;AAE5B,iBAAiB,GAAG;AACpB;AACA;AACA,kBAAkB,UAAU;;AAE5B,iBAAiB,GAAG;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1cA;AACA;AACA;AAC2C;AAC3C;AACA;AACA;;AAEgD;AAChD,WAAW,wDAAU,uBAAuB,0DAAY;AACxD;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;AACpB;AACA;AACA;AACA;;AAEA;AACA,aAAa,oCAAoC;AACjD,aAAa,2CAA2C;AACxD,aAAa,6CAA6C;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,YAAY;AACxB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;;AAEO;AACP;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,YAAY,qBAAqB;AACjC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;;AAEO;AACP;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;;AAEO;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJoC;AACN;AAC4H;AAC1J;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AAC6B;AACM;AACnC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,WAAW,MAAM;AACjB;;AAEA,mBAAmB,6CAAO,iBAAiB;;AAE3C;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA,2FAA2F,aAAa;AACxG;AACA;;AAEA,WAAW,yDAAiB,OAAO,mDAAS;AAC5C,IAAI;AACJ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AALA,IAMqBA,iCAAiC;EACrD;AACD;AACA;AACA;EACC,SAAAA,kCAAaC,SAAS,EAAG;IAAAC,eAAA,OAAAF,iCAAA;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI;MACH,IAAME,cAAc,GAAGC,IAAI,CAACC,KAAK,CAAE,IAAI,CAACJ,SAAS,CAACK,OAAO,CAACC,UAAW,CAAC;MACtE,IAAI,CAACC,IAAI,GAAG;QACXC,eAAe,EAAE,IAAI,CAACC,mBAAmB,CAAEP,cAAe,CAAC;QAC3DQ,WAAW,EAAE,IAAIC,KAAK,CAAE,QAAQ,EAAE;UAAEC,OAAO,EAAE;QAAK,CAAE;MACrD,CAAC;IACF,CAAC,CAAC,OAAQC,KAAK,EAAG;MACjBC,OAAO,CAACD,KAAK,CAAE,uDAAuD,EAAEA,KAAM,CAAC;IAChF;EACD;;EAEA;AACD;AACA;AACA;AACA;AACA;EALC,OAAAE,YAAA,CAAAhB,iCAAA;IAAAiB,GAAA;IAAAC,KAAA,EAMA,SAAAR,mBAAmBA,CAAES,UAAU,EAAG;MACjC,IAAMC,IAAI,GAAG,EAAE;MACfD,UAAU,CAACE,OAAO,CAAE,UAAAC,IAAI,EAAI;QAC3B,IAAMC,KAAK,GAAGC,QAAQ,CAACC,aAAa,iBAAAC,MAAA,CAAkBJ,IAAI,QAAM,CAAC;QACjE,IAAK,IAAI,KAAKC,KAAK,EAAG;UACrBH,IAAI,CAACO,IAAI,CAAEJ,KAAM,CAAC;QACnB;MACD,CAAE,CAAC;MACH,OAAOH,IAAI;IACZ;;IAEA;AACD;AACA;AACA;EAHC;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAU,0BAA0BA,CAAEV,KAAK,EAAG;MACnC,IAAI,CAACV,IAAI,CAACC,eAAe,CAACY,OAAO,CAAE,UAAAE,KAAK,EAAI;QAC3CA,KAAK,CAACL,KAAK,GAAGA,KAAK;MACpB,CAAE,CAAC;MACH,IAAI,CAACV,IAAI,CAACC,eAAe,CAAE,CAAC,CAAE,CAACoB,aAAa,CAAE,IAAI,CAACrB,IAAI,CAACG,WAAY,CAAC;IACtE;EAAC;AAAA;;;;;;;;;;;AClDF;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;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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/components/dependent-updater-component.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\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}\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 frmStyleDependentUpdaterComponent from './components/dependent-updater-component';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Init the dependent\n\t */\n\tinit() {\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( () => {\n\t\t\t\t\thoverElement.classList.remove( 'frm-animating' );\n\t\t\t\t}, 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.currentTarget.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","__","frmStyleOptions","success","frmDom","init","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","querySelectorAll","elements","element","id","getAttribute","dependentUpdaterClass","wp","hooks","addAction","_ref","event","container","target","closest","innerText","settingsWrapper","hoverElement","createElement","classList","add","appendChild","styleOptionsMenu","item","addEventListener","style","transform","offsetTop","remove","setTimeout","accordionitems","successMessage","_this","copyLabel","className","currentTarget","navigator","clipboard","writeText","then"],"sourceRoot":""} ->>>>>>> master +{"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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YA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DAAiD,mFAAmF,OAAO;;AAEtgB;AACA;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,m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;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;ACNqC;AACoD;;AAEzF;AACA;AACA;AACA;AAHA,IAIMqB,eAAe;EACpB,SAAAA,gBAAA,EAAc;IAAA9B,eAAA,OAAA8B,eAAA;IACb,IAAI,CAACC,OAAO,GAAGC,MAAM,CAACD,OAAO;IAC7B,IAAI,CAACE,IAAI,CAAC,CAAC;IACX,IAAI,CAACC,SAAS,CAAC,CAAC;EACjB;;EAEA;AACD;AACA;EAFC,OAAApB,YAAA,CAAAgB,eAAA;IAAAf,GAAA;IAAAC,KAAA,EAGA,SAAAiB,IAAIA,CAAA,EAAG;MACN,IAAI,CAACE,yCAAyC,CAAC,CAAC;MAChD,IAAI,CAACC,6BAA6B,CAAEP,mDAAE,CAAE,iCAAiC,EAAE,YAAa,CAAE,CAAC;IAC5F;;IAEA;AACD;AACA;AACA;AACA;EAJC;IAAAd,GAAA;IAAAC,KAAA,EAKA,SAAAmB,yCAAyCA,CAAA,EAAG;MAC3C,IAAME,UAAU,GAAGf,QAAQ,CAACgB,gBAAgB,CAAE,wDAAyD,CAAC;MACxG,IAAMC,QAAQ,GAAG,EAAE;MAEnBF,UAAU,CAAClB,OAAO,CAAE,UAAApB,SAAS,EAAI;QAChC,IAAMyC,OAAO,GAAGzC,SAAS,CAACwB,aAAa,CAAE,WAAY,CAAC;QACtD,IAAMkB,EAAE,GAAG,WAAW,KAAK,OAAOD,OAAO,GAAGA,OAAO,CAACE,YAAY,CAAE,IAAK,CAAC,GAAG,IAAI;QAE/E,IAAK,IAAI,KAAKD,EAAE,EAAG;UAClBF,QAAQ,CAACd,IAAI,CAAE;YACdgB,EAAE,EAAEA,EAAE;YACNE,qBAAqB,EAAE,IAAI7C,+EAAiC,CAAEC,SAAS,EAAE,aAAc;UACxF,CAAE,CAAC;QACJ;MACD,CAAE,CAAC;MAEH6C,EAAE,CAACC,KAAK,CAACC,SAAS,CAAE,gCAAgC,EAAE,YAAY,EAAE,UAAAC,IAAA,EAAwB;QAAA,IAApBC,KAAK,GAAAD,IAAA,CAALC,KAAK;UAAEhC,KAAK,GAAA+B,IAAA,CAAL/B,KAAK;QACnF,IAAMiC,SAAS,GAAGD,KAAK,CAACE,MAAM,CAACC,OAAO,CAAE,sBAAuB,CAAC;QAChE,IAAMV,EAAE,GAAGO,KAAK,CAACE,MAAM,CAACR,YAAY,CAAE,IAAK,CAAC;QAE5CO,SAAS,CAAC1B,aAAa,CAAE,uBAAwB,CAAC,CAAC6B,SAAS,GAAGpC,KAAK;QAEpEuB,QAAQ,CAACpB,OAAO,CAAE,UAAAqB,OAAO,EAAI;UAC5B,IAAKA,OAAO,CAACC,EAAE,KAAKA,EAAE,EAAG;YACxBD,OAAO,CAACG,qBAAqB,CAACjB,0BAA0B,CAAEV,KAAM,CAAC;UAClE;QACD,CAAE,CAAC;MACJ,CAAE,CAAC;IACJ;;IAEA;AACD;AACA;AACA;AACA;EAJC;IAAAD,GAAA;IAAAC,KAAA,EAKA,SAAAkB,SAASA,CAAA,EAAG;MACX,IAAMmB,eAAe,GAAG/B,QAAQ,CAACC,aAAa,CAAE,yDAA0D,CAAC;MAC3G,IAAK,IAAI,KAAK8B,eAAe,EAAG;QAC/B;MACD;MACA,IAAMC,YAAY,GAAGhC,QAAQ,CAACiC,aAAa,CAAE,KAAM,CAAC;MACpDD,YAAY,CAACE,SAAS,CAACC,GAAG,CAAE,YAAa,CAAC;MAC1CH,YAAY,CAACE,SAAS,CAACC,GAAG,CAAE,0BAA2B,CAAC;MACxDJ,eAAe,CAACK,WAAW,CAAEJ,YAAa,CAAC;MAE3C,IAAMK,gBAAgB,GAAGN,eAAe,CAAC9B,aAAa,CAAE,aAAc,CAAC;MAEvEoC,gBAAgB,CAACrB,gBAAgB,CAAE,aAAc,CAAC,CAACnB,OAAO,CAAE,UAAAyC,IAAI,EAAI;QACnEA,IAAI,CAACrC,aAAa,CAAE,IAAK,CAAC,CAACsC,gBAAgB,CAAE,WAAW,EAAE,UAAAb,KAAK,EAAI;UAClEM,YAAY,CAACQ,KAAK,CAACC,SAAS,iBAAAvC,MAAA,CAAkBwB,KAAK,CAACE,MAAM,CAACC,OAAO,CAAE,IAAK,CAAC,CAACa,SAAS,QAAM;UAC1FV,YAAY,CAACE,SAAS,CAACC,GAAG,CAAE,eAAgB,CAAC;UAC7CH,YAAY,CAACE,SAAS,CAACS,MAAM,CAAE,YAAa,CAAC;UAC7CC,UAAU,CAAE,YAAM;YACjBZ,YAAY,CAACE,SAAS,CAACS,MAAM,CAAE,eAAgB,CAAC;UACjD,CAAC,EAAE,GAAI,CAAC;QACT,CAAE,CAAC;MACJ,CAAE,CAAC;MAEH,IAAME,cAAc,GAAG7C,QAAQ,CAACgB,gBAAgB,CAAE,0CAA2C,CAAC;MAC9F6B,cAAc,CAAChD,OAAO,CAAE,UAAAyC,IAAI,EAAI;QAC/BA,IAAI,CAACC,gBAAgB,CAAE,OAAO,EAAE,YAAM;UACrCP,YAAY,CAACE,SAAS,CAACC,GAAG,CAAE,YAAa,CAAC;QAC3C,CAAE,CAAC;MACJ,CAAE,CAAC;IACJ;;IAEA;AACD;AACA;AACA;AACA;AACA;EALC;IAAA1C,GAAA;IAAAC,KAAA,EAMA,SAAAoB,6BAA6BA,CAAEgC,cAAc,EAAG;MAAA,IAAAC,KAAA;MAC/C,IAAMC,SAAS,GAAGhD,QAAQ,CAACC,aAAa,CAAE,gBAAiB,CAAC;MAC5D+C,SAAS,CAACT,gBAAgB,CAAE,OAAO,EAAE,UAAAb,KAAK,EAAI;QAC7C,IAAMuB,SAAS,GAAGvB,KAAK,CAACwB,aAAa,CAACpB,SAAS;QAC/CqB,SAAS,CAACC,SAAS,CAACC,SAAS,CAAEJ,SAAU,CAAC,CAACK,IAAI,CAAE,YAAM;UACtDP,KAAI,CAACtC,OAAO,CAAEqC,cAAe,CAAC;QAC/B,CAAE,CAAC;MACJ,CAAE,CAAC;IACJ;EAAC;AAAA;AAGF,IAAItC,eAAe,CAAC,CAAC,C","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/components/dependent-updater-component.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\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}\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 frmStyleDependentUpdaterComponent from './components/dependent-updater-component';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Init the dependent\n\t */\n\tinit() {\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( () => {\n\t\t\t\t\thoverElement.classList.remove( 'frm-animating' );\n\t\t\t\t}, 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.currentTarget.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","__","frmStyleOptions","success","frmDom","init","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","querySelectorAll","elements","element","id","getAttribute","dependentUpdaterClass","wp","hooks","addAction","_ref","event","container","target","closest","innerText","settingsWrapper","hoverElement","createElement","classList","add","appendChild","styleOptionsMenu","item","addEventListener","style","transform","offsetTop","remove","setTimeout","accordionitems","successMessage","_this","copyLabel","className","currentTarget","navigator","clipboard","writeText","then"],"sourceRoot":""} \ No newline at end of file diff --git a/js/onboarding-wizard.js b/js/onboarding-wizard.js index 29de947775..a9dfab40d3 100644 --- a/js/onboarding-wizard.js +++ b/js/onboarding-wizard.js @@ -1,2 +1,1842 @@ -/*! For license information please see onboarding-wizard.js.LICENSE.txt */ -(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):00&&void 0!==arguments[0]?arguments[0]:{};if("object"!==x(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==x(t)||null===t)throw new Error("setState: newState must be a non-null object");e=j(j({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({processedSteps:[],installedAddons:[]}),_=P.getState,k=(P.getSingleState,P.setState,P.setSingleState),T=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==b(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==b(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=m(m({},e),t)}}}({onboardingWizardPage:document.getElementById("".concat(S,"-wizard-page")),container:document.getElementById("".concat(S,"-container")),rootline:document.getElementById("".concat(S,"-rootline")),steps:document.querySelectorAll(".".concat(S,"-step")),skipStepButtons:document.querySelectorAll(".".concat(S,"-skip-step")),backButtons:document.querySelectorAll(".".concat(S,"-back-button")),consentTrackingButton:document.getElementById("".concat(S,"-consent-tracking")),installAddonsButton:document.getElementById("".concat(S,"-install-addons-button")),hiddenLicenseKeyInput:document.getElementById("frm-license-key")}),A=T.getElements;T.addElements;var I=function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pushState",o=document.querySelector(".".concat(S,'-step[data-step-name="').concat(t,'"]'));if(o){var i=document.querySelector(".".concat(S,"-step.").concat(d));i&&(i.classList.remove(d),null==(e=i)||e.classList.add(y)),o.classList.add(d),function(t){null==t||t.classList.remove(y)}(o),new n(o).fadeIn(),A().onboardingWizardPage.setAttribute("data-current-step",t),function(t,e){var r,n,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pushState";if(l.set(t,e),u.search=l.toString(),["pushState","replaceState"].includes(i)){var a=(r={},o=e,(n=function(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[i](a,"",u)}u.toString()}("step",t,r),function(t){t===E.UNSUCCESSFUL&&(t=E.SUCCESS);var e=A().rootline,r=e.querySelector('.frm-rootline-item[data-step="'.concat(t,'"]'));e.querySelectorAll(".frm-rootline-item").forEach((function(t){t.classList.remove(D),t.classList.remove(d)}));var n=r.previousElementSibling;if(n)for(;n;)n.classList.add(D),n=n.previousElementSibling;t===E.SUCCESS?r.classList.add(D):r.classList.add(d)}(t)}},N=function(){var t=document.querySelector(".".concat(S,"-step.").concat(d)),e=null==t?void 0:t.nextElementSibling;if(e){var r=t.dataset.stepName,n=e.dataset.stepName,o=_().processedSteps;o.includes(r)||(o.push(r),k("processedSteps",o)),function(t,e){var r=function(t,e){var r;if(E.SUCCESS===e||E.UNSUCCESSFUL===e){var n=_().processedSteps;n.length>1&&(n.includes(e)||n.push(e),(r=new FormData).append("processed_steps",n.join(",")),r.append("completed_steps",!0))}if(E.INSTALL_ADDONS===t){var o,i=_().installedAddons;i.length>0&&(r=null!==(o=r)&&void 0!==o?o:new FormData).append("installed_addons",i.join(","))}return r}(t,e);r&&(0,frmDom.ajax.doJsonPost)("onboarding_setup_usage_data",r)}(r,n),I(n)}};var D="frm-completed-step",C=".frm-option-box";function F(t){"input"===t.target.tagName.toLowerCase()&&t.currentTarget.closest(C).classList.toggle("frm-checked")}var U=function(){N()};var G=function(){var t,e;(e=null==(t=document.querySelector(".".concat(S,"-step.").concat(d)))?void 0:t.previousElementSibling)&&I(e.dataset.stepName)};function B(t){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(t)}function q(){q=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==B(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Y(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}var z=function(){var t,e=(t=q().mark((function t(){return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(0,frmDom.ajax.doJsonPost)("onboarding_consent_tracking",new FormData).then(N);case 2:case"end":return t.stop()}}),t)})),function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){Y(i,n,o,a,c,"next",t)}function c(t){Y(i,n,o,a,c,"throw",t)}a(void 0)}))});return function(){return e.apply(this,arguments)}}();function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function W(){W=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==R(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function J(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return K(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/events/index.js": +/*!*************************************!*\ + !*** ./js/src/core/events/index.js ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addOptionBoxEvents: () => (/* reexport safe */ _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents) +/* harmony export */ }); +/* harmony import */ var _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./optionBoxListener */ "./js/src/core/events/optionBoxListener.js"); + + +/***/ }), + +/***/ "./js/src/core/events/optionBoxListener.js": +/*!*************************************************!*\ + !*** ./js/src/core/events/optionBoxListener.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addOptionBoxEvents: () => (/* binding */ addOptionBoxEvents) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + +var OPTION_BOX_CLASS = '.frm-option-box'; + +/** + * Manages event handling for an option-box. + * + * @return {void} + */ +function addOptionBoxEvents() { + var optionBoxes = document.querySelectorAll(OPTION_BOX_CLASS); + optionBoxes.forEach(function (optionBox) { + optionBox.addEventListener('click', onOptionBoxClick); + }); +} + +/** + * Handles the click event on a option box item. + * + * @private + * @param {Event} event The click event object. + */ +function onOptionBoxClick(event) { + if (event.target.tagName.toLowerCase() !== 'input') { + return; + } + var optionBox = event.currentTarget.closest(OPTION_BOX_CLASS); + optionBox.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.CHECKED_CLASS); +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageElements.js": +/*!***************************************************!*\ + !*** ./js/src/core/factory/createPageElements.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* binding */ createPageElements) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page elements manager. + * + * @param {Object} [initialElements={}] An object containing initial DOM elements. + * @throws {Error} Throws an error if the `initialElements` is not an object. + * @return {Object} An object with methods to get and add elements. + */ +function createPageElements() { + var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialElements) !== 'object' || initialElements === null) { + throw new Error('createPageElements: initialElements must be a non-null object'); + } + var elements = initialElements; + + /** + * Retrieve the initialized essential DOM elements. + * + * @return {Object} The initialized elements object. + */ + function getElements() { + return elements; + } + + /** + * Add new elements to the elements object. + * + * @param {Object} newElements An object containing new elements to be added. + * @throws {Error} Throws an error if the `newElements` is not a non-null object. + * @return {void} Updates the elements object by merging the new elements into it. + */ + function addElements(newElements) { + if (_typeof(newElements) !== 'object' || newElements === null) { + throw new Error('addElements: newElements must be a non-null object'); + } + elements = _objectSpread(_objectSpread({}, elements), newElements); + } + return { + getElements: getElements, + addElements: addElements + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageState.js": +/*!************************************************!*\ + !*** ./js/src/core/factory/createPageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageState: () => (/* binding */ createPageState) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page state manager. + * + * @param {Object} [initialState={}] An object containing the initial state. + * @throws {Error} Throws an error if the `initialState` is not a plain object. + * @return {Object} An object with methods to initialize, get, and set the page state. + */ +function createPageState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialState) !== 'object' || initialState === null) { + throw new Error('createPageState: initialState must be a non-null object'); + } + var state = initialState; + + /** + * Returns the current page state. + * + * @return {Object|null} The current state of the page or null if not initialized. + */ + var getState = function getState() { + return state; + }; + + /** + * Returns a specific property from the current page state. + * + * @param {string} propertyName The name of the property to retrieve. + * @return {*} The value of the specified property, or null if it doesn't exist. + */ + var getSingleState = function getSingleState(propertyName) { + var value = Reflect.get(state, propertyName); + + // We convert `undefined` to `null` for a consistent API. + // This makes it easier for users to handle the results since all missing properties return `null`. + return value === undefined ? null : value; + }; + + /** + * Updates the page state with new values. + * + * @param {Object} newState The new values to update the state with. + * @throws {Error} Throws an error if `newState` is not a plain object. + * @return {void} + */ + var setState = function setState(newState) { + if (_typeof(newState) !== 'object' || newState === null) { + throw new Error('setState: newState must be a non-null object'); + } + state = _objectSpread(_objectSpread({}, state), newState); + }; + + /** + * Updates a specific property in the page state with a new value. + * + * @param {string} propertyName The name of the property to update. + * @param {*} value The new value to set for the property. + * @return {void} + */ + var setSingleState = function setSingleState(propertyName, value) { + if (Reflect.has(state, propertyName)) { + Reflect.set(state, propertyName, value); + } + }; + return { + getState: getState, + getSingleState: getSingleState, + setState: setState, + setSingleState: setSingleState + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/index.js": +/*!**************************************!*\ + !*** ./js/src/core/factory/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), +/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) +/* harmony export */ }); +/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); +/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); + + + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./js/src/onboarding-wizard/dataUtils/index.js": +/*!*****************************************************!*\ + !*** ./js/src/onboarding-wizard/dataUtils/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupUsageData: () => (/* reexport safe */ _setupUsageData__WEBPACK_IMPORTED_MODULE_0__["default"]) +/* harmony export */ }); +/* harmony import */ var _setupUsageData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupUsageData */ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js"); + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js": +/*!**************************************************************!*\ + !*** ./js/src/onboarding-wizard/dataUtils/setupUsageData.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/** + * Internal Dependencies + */ + + +/** + * Processes and submits usage data for the specified onboarding step. + * + * @param {string} processedStep The name of the step that has just been processed. + * @param {string} nextStepName The name of the next step in the onboarding process. + * @return {void} + */ +function setupUsageData(processedStep, nextStepName) { + var formData = processDataForStep(processedStep, nextStepName); + if (!formData) { + return; + } + + // Send the POST request + var doJsonPost = frmDom.ajax.doJsonPost; + doJsonPost('onboarding_setup_usage_data', formData); +} + +/** + * Processes onboarding step data and returns the corresponding FormData. + * + * @private + * @param {string} processedStep The name of the step that has just been processed. + * @param {string} nextStepName The name of the next step in the onboarding process. + * @return {FormData|null} The FormData to be submitted for the step, or null if there's no data. + */ +function processDataForStep(processedStep, nextStepName) { + var formData; + + // Append completed steps if moving to the success step + if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.SUCCESS === nextStepName || _shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.UNSUCCESSFUL === nextStepName) { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), + processedSteps = _getState.processedSteps; + if (processedSteps.length > 1) { + if (!processedSteps.includes(nextStepName)) { + processedSteps.push(nextStepName); + } + formData = new FormData(); + formData.append('processed_steps', processedSteps.join(',')); + formData.append('completed_steps', true); + } + } + + // Append installed addons for the addon installation step + if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.INSTALL_ADDONS === processedStep) { + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), + installedAddons = _getState2.installedAddons; + if (installedAddons.length > 0) { + var _formData; + formData = (_formData = formData) !== null && _formData !== void 0 ? _formData : new FormData(); + formData.append('installed_addons', installedAddons.join(',')); + } + } + return formData; +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupUsageData); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/elements/elements.js": +/*!*******************************************************!*\ + !*** ./js/src/onboarding-wizard/elements/elements.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* binding */ addElements), +/* harmony export */ getElements: () => (/* binding */ getElements) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)({ + onboardingWizardPage: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-wizard-page")), + container: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-container")), + rootline: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-rootline")), + steps: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-step")), + skipStepButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-skip-step")), + backButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-back-button")), + consentTrackingButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-consent-tracking")), + installAddonsButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-install-addons-button")), + hiddenLicenseKeyInput: document.getElementById('frm-license-key') + }), + getElements = _createPageElements.getElements, + addElements = _createPageElements.addElements; + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/elements/index.js": +/*!****************************************************!*\ + !*** ./js/src/onboarding-wizard/elements/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/onboarding-wizard/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/backButtonListener.js": +/*!***************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/backButtonListener.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Back" button. + * + * @return {void} + */ +function addBackButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + backButtons = _getElements.backButtons; + + // Attach click event listeners to each back buttons + backButtons.forEach(function (backButton) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(backButton, onBackButtonClick); + }); +} + +/** + * Handles the click event on a "Back" button. + * + * @private + * @return {void} + */ +var onBackButtonClick = function onBackButtonClick() { + (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToPrevStep)(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addBackButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js": +/*!**************************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/consentTrackingButtonListener.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Allow & Continue" button in the "Never miss an important update" step. + * + * @return {void} + */ +function addConsentTrackingButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + consentTrackingButton = _getElements.consentTrackingButton; + + // Attach click event listener + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(consentTrackingButton, onConsentTrackingButtonClick); +} + +/** + * Handles the click event on the "Allow & Continue" button in the "Never miss an important update" step. + * + * @private + * @return {void} + */ +var onConsentTrackingButtonClick = /*#__PURE__*/function () { + var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var doJsonPost; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + doJsonPost = frmDom.ajax.doJsonPost; + doJsonPost('onboarding_consent_tracking', new FormData()).then(_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep); + case 2: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function onConsentTrackingButtonClick() { + return _ref.apply(this, arguments); + }; +}(); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addConsentTrackingButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/index.js": +/*!**************************************************!*\ + !*** ./js/src/onboarding-wizard/events/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var core_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/events */ "./js/src/core/events/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./skipStepButtonListener */ "./js/src/onboarding-wizard/events/skipStepButtonListener.js"); +/* harmony import */ var _backButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backButtonListener */ "./js/src/onboarding-wizard/events/backButtonListener.js"); +/* harmony import */ var _consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./consentTrackingButtonListener */ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js"); +/* harmony import */ var _installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./installAddonsButtonListener */ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + + +/** + * Attaches event listeners for handling user interactions. + * + * @return {void} + */ +function addEventListeners() { + // Add event handling for the "Skip" and "Back" buttons + (0,_skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_backButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); + (0,_consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); + + // Add event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step + (0,_installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__["default"])(); + // Add event handling for an option-box + (0,core_events__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents)(); +} + +/** + * Responds to browser navigation events (back/forward) by updating the UI to match the step indicated in the URL or history state. + * + * @param {PopStateEvent} event The event object associated with the navigation action. + * @return {void} + */ +window.addEventListener('popstate', function (event) { + var _event$state; + var stepName = ((_event$state = event.state) === null || _event$state === void 0 ? void 0 : _event$state.step) || (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.getQueryParam)('step'); + // Navigate to the specified step without adding to browser history + (0,_utils__WEBPACK_IMPORTED_MODULE_6__.navigateToStep)(stepName, 'replaceState'); +}); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js": +/*!************************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/installAddonsButtonListener.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Manages event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. + * + * @return {void} + */ +function addInstallAddonsButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + installAddonsButton = _getElements.installAddonsButton; + + // Attach click event listener + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(installAddonsButton, onInstallAddonsButtonClick); +} + +/** + * Handles the click event on the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onInstallAddonsButtonClick = /*#__PURE__*/function () { + var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) { + var addons, _getState, installedAddons, installAddonsButton, _iterator, _step, _loop; + return _regeneratorRuntime().wrap(function _callee$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + addons = document.querySelectorAll('.frm-option-box.frm-checked:not(.frm-disabled)'); + _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), installedAddons = _getState.installedAddons; + installAddonsButton = event.currentTarget; + installAddonsButton.classList.add('frm_loading_button'); + _iterator = _createForOfIteratorHelper(addons); + _context2.prev = 5; + _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() { + var addon, addonTitle; + return _regeneratorRuntime().wrap(function _loop$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + addon = _step.value; + _context.prev = 1; + _context.next = 4; + return (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue)(function () { + return installAddon(addon.getAttribute('rel'), addon.dataset); + }); + case 4: + // Capture addon title + addonTitle = addon.dataset.title; + if (!installedAddons.includes(addonTitle)) { + installedAddons.push(addonTitle); + } + _context.next = 11; + break; + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](1); + console.error('An error occurred:', _context.t0); + case 11: + case "end": + return _context.stop(); + } + }, _loop, null, [[1, 8]]); + }); + _iterator.s(); + case 8: + if ((_step = _iterator.n()).done) { + _context2.next = 12; + break; + } + return _context2.delegateYield(_loop(), "t0", 10); + case 10: + _context2.next = 8; + break; + case 12: + _context2.next = 17; + break; + case 14: + _context2.prev = 14; + _context2.t1 = _context2["catch"](5); + _iterator.e(_context2.t1); + case 17: + _context2.prev = 17; + _iterator.f(); + return _context2.finish(17); + case 20: + installAddonsButton.classList.remove('frm_loading_button'); + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('installedAddons', installedAddons); + (0,_utils__WEBPACK_IMPORTED_MODULE_4__.navigateToNextStep)(); + case 23: + case "end": + return _context2.stop(); + } + }, _callee, null, [[5, 14, 17, 20]]); + })); + return function onInstallAddonsButtonClick(_x) { + return _ref.apply(this, arguments); + }; +}(); + +/** + * Installs an add-on or plugin based on the provided plugin name and vendor status. + * + * @private + * @param {string} plugin The unique identifier or name of the plugin or add-on to be installed. + * @param {Object} options An object containing additional options for the installation. + * @param {boolean} options.isInstalled Indicates whether the plugin is already installed. + * @param {boolean} options.isVendor Indicates whether the plugin is a vendor plugin (true) or a regular add-on (false). + * @return {Promise} A promise that resolves with the JSON response from the server after the installation request is completed. + */ +function installAddon(_x2, _x3) { + return _installAddon.apply(this, arguments); +} +function _installAddon() { + _installAddon = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(plugin, _ref2) { + var isVendor, isInstalled, formData, addonAction, response; + return _regeneratorRuntime().wrap(function _callee2$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + isVendor = _ref2.isVendor, isInstalled = _ref2.isInstalled; + // Prepare FormData for the POST request + formData = new FormData(); + formData.append('nonce', core_constants__WEBPACK_IMPORTED_MODULE_0__.nonce); + formData.append('plugin', plugin); + addonAction = isInstalled ? 'frm_activate_addon' : 'frm_install_addon'; + formData.append('action', isVendor ? 'frm_install_plugin' : addonAction); + _context3.prev = 6; + _context3.next = 9; + return fetch(ajaxurl, { + method: 'POST', + body: formData + }); + case 9: + response = _context3.sent; + if (response.ok) { + _context3.next = 12; + break; + } + throw new Error("Server responded with status ".concat(response.status)); + case 12: + _context3.next = 14; + return response.json(); + case 14: + return _context3.abrupt("return", _context3.sent); + case 17: + _context3.prev = 17; + _context3.t0 = _context3["catch"](6); + console.error('An error occurred:', _context3.t0); + case 20: + case "end": + return _context3.stop(); + } + }, _callee2, null, [[6, 17]]); + })); + return _installAddon.apply(this, arguments); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addInstallAddonsButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/skipStepButtonListener.js": +/*!*******************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/skipStepButtonListener.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Skip" step button. + * + * @return {void} + */ +function addSkipStepButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + skipStepButtons = _getElements.skipStepButtons; + + // Attach click event listeners to each skip buttons + skipStepButtons.forEach(function (skipButton) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(skipButton, onSkipStepButtonClick); + }); +} + +/** + * Handles the click event on a "Skip" step button. + * + * @private + * @return {void} + */ +var onSkipStepButtonClick = function onSkipStepButtonClick() { + (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep)(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSkipStepButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/initializeOnboardingWizard.js": +/*!****************************************************************!*\ + !*** ./js/src/onboarding-wizard/initializeOnboardingWizard.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/onboarding-wizard/ui/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/onboarding-wizard/events/index.js"); +/** + * Internal dependencies + */ + + + +/** + * Initializes Onboarding Wizard. + * + * @return {void} + */ +function initializeOnboardingWizard() { + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); + (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeOnboardingWizard); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/shared/constants.js": +/*!******************************************************!*\ + !*** ./js/src/onboarding-wizard/shared/constants.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ INITIAL_STEP: () => (/* binding */ INITIAL_STEP), +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ STEPS: () => (/* binding */ STEPS) +/* harmony export */ }); +var INITIAL_STEP = window.frmOnboardingWizardVars.INITIAL_STEP; + +var PREFIX = 'frm-onboarding'; +var STEPS = { + INITIAL: INITIAL_STEP, + INSTALL_ADDONS: 'install-addons', + SUCCESS: 'success', + UNSUCCESSFUL: 'unsuccessful' +}; + +/***/ }), + +/***/ "./js/src/onboarding-wizard/shared/index.js": +/*!**************************************************!*\ + !*** ./js/src/onboarding-wizard/shared/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ INITIAL_STEP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.INITIAL_STEP), +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ STEPS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.STEPS), +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/onboarding-wizard/shared/constants.js"); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/onboarding-wizard/shared/pageState.js"); + + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/shared/pageState.js": +/*!******************************************************!*\ + !*** ./js/src/onboarding-wizard/shared/pageState.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* binding */ getSingleState), +/* harmony export */ getState: () => (/* binding */ getState), +/* harmony export */ setSingleState: () => (/* binding */ setSingleState), +/* harmony export */ setState: () => (/* binding */ setState) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/** + * External dependencies + */ + +var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ + processedSteps: [], + installedAddons: [] + }), + getState = _createPageState.getState, + getSingleState = _createPageState.getSingleState, + setState = _createPageState.setState, + setSingleState = _createPageState.setSingleState; + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/ui/index.js": +/*!**********************************************!*\ + !*** ./js/src/onboarding-wizard/ui/index.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ updateRootline: () => (/* reexport safe */ _rootline__WEBPACK_IMPORTED_MODULE_1__.updateRootline) +/* harmony export */ }); +/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/onboarding-wizard/ui/setupInitialView.js"); +/* harmony import */ var _rootline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rootline */ "./js/src/onboarding-wizard/ui/rootline.js"); + + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/ui/rootline.js": +/*!*************************************************!*\ + !*** ./js/src/onboarding-wizard/ui/rootline.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ updateRootline: () => (/* binding */ updateRootline) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var COMPLETED_STEP_CLASS = 'frm-completed-step'; + +/** + * Updates the rootline to reflect the current and completed steps. + * + * - Applies COMPLETED_STEP_CLASS to steps before the current one. + * - Applies CURRENT_CLASS to the current step, unless it is the success step. + * + * @param {string} currentStep The current step in the process. + * @return {void} + */ +function updateRootline(currentStep) { + if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL) { + currentStep = _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS; + } + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + rootline = _getElements.rootline; + var currentItem = rootline.querySelector(".frm-rootline-item[data-step=\"".concat(currentStep, "\"]")); + rootline.querySelectorAll('.frm-rootline-item').forEach(function (item) { + item.classList.remove(COMPLETED_STEP_CLASS); + item.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + }); + var prevItem = currentItem.previousElementSibling; + if (prevItem) { + while (prevItem) { + prevItem.classList.add(COMPLETED_STEP_CLASS); + prevItem = prevItem.previousElementSibling; // move to the previous sibling + } + } + if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS) { + currentItem.classList.add(COMPLETED_STEP_CLASS); + } else { + currentItem.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + } +} + +/***/ }), + +/***/ "./js/src/onboarding-wizard/ui/setupInitialView.js": +/*!*********************************************************!*\ + !*** ./js/src/onboarding-wizard/ui/setupInitialView.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ setupInitialView) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Initializes the onboarding wizard's UI, sets up the initial step based on certain conditions, + * and applies necessary UI enhancements for a smoother user experience. + * + * @return {void} + */ +function setupInitialView() { + navigateToInitialStep(); + fadeInPageElements(); +} + +/** + * Determines the initial step in the onboarding process and navigates to it, considering the installation + * status of Formidable Pro and specific query parameters. + * + * @private + * @return {void} + */ +function navigateToInitialStep() { + var initialStepName = determineInitialStep(); + clearOnboardingQueryParams(); + (0,_utils__WEBPACK_IMPORTED_MODULE_3__.navigateToStep)(initialStepName, 'replaceState'); +} + +/** + * Determines the initial step based on the current state, such as whether Formidable Pro is installed + * and the presence of specific query parameters. Also handles the removal of unnecessary steps. + * + * @private + * @return {string} The name of the initial step to navigate to. + */ +function determineInitialStep() { + var isConnectedAccount = (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('success'); + if (isConnectedAccount === '0') { + return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL; + } + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + hiddenLicenseKeyInput = _getElements.hiddenLicenseKeyInput; + if (hiddenLicenseKeyInput || isConnectedAccount) { + return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INSTALL_ADDONS; + } + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('step') || _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INITIAL; +} + +/** + * Clears specific query parameters related to the onboarding process. + * + * @private + * @return {void} + */ +function clearOnboardingQueryParams() { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('key'); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('success'); +} + +/** + * Smoothly fades in the background and container elements of the page for a more pleasant user experience. + * + * @private + * @return {void} + */ +function fadeInPageElements() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + container = _getElements2.container; + new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(container).fadeIn(); +} + +/***/ }), + +/***/ "./js/src/onboarding-wizard/utils/index.js": +/*!*************************************************!*\ + !*** ./js/src/onboarding-wizard/utils/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ navigateToNextStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToNextStep), +/* harmony export */ navigateToPrevStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToPrevStep), +/* harmony export */ navigateToStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToStep) +/* harmony export */ }); +/* harmony import */ var _navigateToStep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navigateToStep */ "./js/src/onboarding-wizard/utils/navigateToStep.js"); + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/utils/navigateToStep.js": +/*!**********************************************************!*\ + !*** ./js/src/onboarding-wizard/utils/navigateToStep.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ navigateToNextStep: () => (/* binding */ navigateToNextStep), +/* harmony export */ navigateToPrevStep: () => (/* binding */ navigateToPrevStep), +/* harmony export */ navigateToStep: () => (/* binding */ navigateToStep) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _dataUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dataUtils */ "./js/src/onboarding-wizard/dataUtils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui */ "./js/src/onboarding-wizard/ui/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + +/** + * Navigates to the given step in the onboarding sequence. + * Optionally updates the browser's history state to include the current step. + * + * @param {string} stepName The name of the step to navigate to. + * @param {string} [updateMethod='pushState'] Specifies the method to update the browser's history and URL. Accepts 'pushState' or 'replaceState'. If omitted, defaults to 'pushState'. + * @return {void} + */ +var navigateToStep = function navigateToStep(stepName) { + var updateMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'pushState'; + // Find the target step element + var targetStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step[data-step-name=\"").concat(stepName, "\"]")); + if (!targetStep) { + return; + } + + // Find and hide the current step element + var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); + if (currentStep) { + currentStep.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(currentStep); + } + + // Display the target step element + targetStep.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(targetStep); + new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(targetStep).fadeIn(); + + // Update the onboarding wizard's current step attribute + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + onboardingWizardPage = _getElements.onboardingWizardPage; + onboardingWizardPage.setAttribute('data-current-step', stepName); + + // Update the URL query parameter, with control over history update method + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.setQueryParam)('step', stepName, updateMethod); + (0,_ui__WEBPACK_IMPORTED_MODULE_5__.updateRootline)(stepName); +}; + +/** + * Navigates to the next step in the sequence. + * + * The function assumes steps are sequentially ordered in the DOM. + * + * @return {void} + */ +var navigateToNextStep = function navigateToNextStep() { + var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); + var nextStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.nextElementSibling; + if (!nextStep) { + return; + } + var processedStep = currentStep.dataset.stepName; + var nextStepName = nextStep.dataset.stepName; + + // Save processed steps + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), + processedSteps = _getState.processedSteps; + if (!processedSteps.includes(processedStep)) { + processedSteps.push(processedStep); + (0,_shared__WEBPACK_IMPORTED_MODULE_4__.setSingleState)('processedSteps', processedSteps); + } + (0,_dataUtils__WEBPACK_IMPORTED_MODULE_2__.setupUsageData)(processedStep, nextStepName); + navigateToStep(nextStepName); +}; + +/** + * Navigates to the previous step in the sequence. + * + * The function assumes steps are sequentially ordered in the DOM. + * + * @return {void} + */ +var navigateToPrevStep = function navigateToPrevStep() { + var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); + var prevStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.previousElementSibling; + if (!prevStep) { + return; + } + navigateToStep(prevStep.dataset.stepName); +}; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!*******************************************!*\ + !*** ./js/src/onboarding-wizard/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./initializeOnboardingWizard */ "./js/src/onboarding-wizard/initializeOnboardingWizard.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__["default"])(function () { + (0,_initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__["default"])(); +}); +/******/ })() +; +//# sourceMappingURL=onboarding-wizard.js.map \ No newline at end of file diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index f7a76dea05..726d4b20f8 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4571,11 +4571,28 @@ window.frmAdminBuildJS = function() { ++numberOfSelectedGroups; // include the one we're selecting right now. const $firstGroup = $selectedFieldGroups.first(); - let $range; + let $range, targetSection; + const hoverTargetSection = hoverTarget.closest( '.edit_field_type_divider' ); + if ( hoverTargetSection ) { + targetSection = hoverTargetSection.closest( 'ul' ).closest( '.frm_field_box.ui-draggable' ); + } if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { - $range = $firstGroup.parent().nextUntil( hoverTarget.parentNode ); + // If field target field is in a section + if ( hoverTargetSection ) { + $range = $firstGroup.parent().nextUntil( targetSection ); + const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); + $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + } else { + $range = $firstGroup.parent().nextUntil( hoverTarget.parentNode ); + } } else { - $range = $firstGroup.parent().prevUntil( hoverTarget.parentNode ); + if ( hoverTargetSection ) { + $range = $firstGroup.parent().prevUntil( targetSection ); + const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); + $range = $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + } else { + $range = $firstGroup.parent().prevUntil( hoverTarget.parentNode ); + } } $range.each( From fccaddf5ccbb8681363ef2bc70f2258ba6920018 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:01:35 +0300 Subject: [PATCH 02/14] Move code related to getting selected fields DOM reference into a function --- js/src/admin/admin.js | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index 726d4b20f8..229b8a7a4f 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4527,6 +4527,28 @@ window.frmAdminBuildJS = function() { destroyFieldGroupPopup(); } + function getSelectedRange( $firstGroup, hoverTarget ) { + const hoverTargetSection = hoverTarget.closest( '.edit_field_type_divider' ); + if ( hoverTargetSection ) { + targetSection = hoverTargetSection.closest( 'ul' ).closest( '.frm_field_box.ui-draggable' ); + } + if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { + // If field target field is in a section + if ( hoverTargetSection ) { + $range = $firstGroup.parent().nextUntil( targetSection ); + const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); + return $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + } + return $firstGroup.parent().nextUntil( hoverTarget.parentNode ); + } + if ( hoverTargetSection ) { + $range = $firstGroup.parent().prevUntil( targetSection ); + const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); + return $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + } + return $firstGroup.parent().prevUntil( hoverTarget.parentNode ); + } + function fieldGroupClick( e ) { maybeShowFieldGroupMessage(); @@ -4571,29 +4593,7 @@ window.frmAdminBuildJS = function() { ++numberOfSelectedGroups; // include the one we're selecting right now. const $firstGroup = $selectedFieldGroups.first(); - let $range, targetSection; - const hoverTargetSection = hoverTarget.closest( '.edit_field_type_divider' ); - if ( hoverTargetSection ) { - targetSection = hoverTargetSection.closest( 'ul' ).closest( '.frm_field_box.ui-draggable' ); - } - if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { - // If field target field is in a section - if ( hoverTargetSection ) { - $range = $firstGroup.parent().nextUntil( targetSection ); - const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); - $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTarget ) + 1 ) ); - } else { - $range = $firstGroup.parent().nextUntil( hoverTarget.parentNode ); - } - } else { - if ( hoverTargetSection ) { - $range = $firstGroup.parent().prevUntil( targetSection ); - const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); - $range = $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); - } else { - $range = $firstGroup.parent().prevUntil( hoverTarget.parentNode ); - } - } + const $range = getSelectedRange( $firstGroup, hoverTarget ); $range.each( function() { From b190de13d072a47600449148c3e47276af8fb631 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Fri, 3 Oct 2025 21:02:06 +0300 Subject: [PATCH 03/14] Move code related to getting selected fields DOM reference into a function --- js/src/admin/admin.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index 229b8a7a4f..f5ae7d834b 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4546,6 +4546,7 @@ window.frmAdminBuildJS = function() { const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); return $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); } + return $firstGroup.parent().prevUntil( hoverTarget.parentNode ); } From aeff438a3100fd96421a9b2f2bad70efb6863c80 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:43:46 +0300 Subject: [PATCH 04/14] Simplify code --- js/formidable_admin.js | 50 +++++++++++++++++++++++------------------- js/src/admin/admin.js | 40 +++++++++++++++++++++------------ 2 files changed, 53 insertions(+), 37 deletions(-) diff --git a/js/formidable_admin.js b/js/formidable_admin.js index 5519df4253..e8a27ed875 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -3929,6 +3929,32 @@ window.frmAdminBuildJS = function () { } destroyFieldGroupPopup(); } + function getSelectedRange($firstGroup, hoverTarget) { + var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); + var targetSection, $range; + if (hoverTargetSection) { + targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); + } + if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { + // If field target field is in a section. + $range = $firstGroup.parent().nextUntil(targetSection || hoverTarget.parentNode); + if (!hoverTargetSection) { + return $range; + } + var _fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); + $range = $range.add(_fieldsInSection.slice(0, _fieldsInSection.indexOf(hoverTarget) + 1)); + return $range; + } + + // Select fields back to the first group. + $range = $firstGroup.parent().prevUntil(targetSection || hoverTarget.parentNode); + if (!hoverTargetSection) { + return $range; + } + var fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); + $range = $range.add(fieldsInSection.slice(-fieldsInSection.indexOf(hoverTarget) + 1)); + return $range; + } function fieldGroupClick(e) { maybeShowFieldGroupMessage(); if ('ul' !== e.originalEvent.target.nodeName.toLowerCase()) { @@ -3965,29 +3991,7 @@ window.frmAdminBuildJS = function () { } else if (shiftKeyIsDown && !groupIsActive) { ++numberOfSelectedGroups; // include the one we're selecting right now. var $firstGroup = $selectedFieldGroups.first(); - var $range, targetSection; - var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); - if (hoverTargetSection) { - targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); - } - if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { - // If field target field is in a section - if (hoverTargetSection) { - $range = $firstGroup.parent().nextUntil(targetSection); - var _fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); - $range = $range.add(_fieldsInSection.slice(0, _fieldsInSection.indexOf(hoverTarget) + 1)); - } else { - $range = $firstGroup.parent().nextUntil(hoverTarget.parentNode); - } - } else { - if (hoverTargetSection) { - $range = $firstGroup.parent().prevUntil(targetSection); - var _fieldsInSection2 = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); - $range = $range.add(_fieldsInSection2.slice(-_fieldsInSection2.indexOf(hoverTarget) + 1)); - } else { - $range = $firstGroup.parent().prevUntil(hoverTarget.parentNode); - } - } + var $range = getSelectedRange($firstGroup, hoverTarget); $range.each(function () { var $fieldGroup = jQuery(this).closest('li').find('ul.frm_sorting'); if (!$fieldGroup.hasClass('frm-selected-field-group')) { diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index f5ae7d834b..3110bf9045 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4527,27 +4527,41 @@ window.frmAdminBuildJS = function() { destroyFieldGroupPopup(); } + /** + * Get an array of fields that are selected. + * + * @param {Object} $firstGroup + * @param {HTMLElement} hoverTarget + * + * @returns {Object} + */ function getSelectedRange( $firstGroup, hoverTarget ) { const hoverTargetSection = hoverTarget.closest( '.edit_field_type_divider' ); + let targetSection, $range; if ( hoverTargetSection ) { targetSection = hoverTargetSection.closest( 'ul' ).closest( '.frm_field_box.ui-draggable' ); } if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { - // If field target field is in a section - if ( hoverTargetSection ) { - $range = $firstGroup.parent().nextUntil( targetSection ); - const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); - return $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + // If field target field is in a section. + $range = $firstGroup.parent().nextUntil( targetSection || hoverTarget.parentNode ); + + if ( ! hoverTargetSection ) { + return $range; } - return $firstGroup.parent().nextUntil( hoverTarget.parentNode ); - } - if ( hoverTargetSection ) { - $range = $firstGroup.parent().prevUntil( targetSection ); const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); - return $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + return $range; } - return $firstGroup.parent().prevUntil( hoverTarget.parentNode ); + // Select fields back to the first group. + $range = $firstGroup.parent().prevUntil( targetSection || hoverTarget.parentNode ); + if ( ! hoverTargetSection ) { + return $range; + } + const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); + $range = $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + + return $range; } function fieldGroupClick( e ) { @@ -4594,9 +4608,7 @@ window.frmAdminBuildJS = function() { ++numberOfSelectedGroups; // include the one we're selecting right now. const $firstGroup = $selectedFieldGroups.first(); - const $range = getSelectedRange( $firstGroup, hoverTarget ); - - $range.each( + getSelectedRange( $firstGroup, hoverTarget ).each( function() { const $fieldGroup = jQuery( this ).closest( 'li' ).find( 'ul.frm_sorting' ); if ( ! $fieldGroup.hasClass( 'frm-selected-field-group' ) ) { From 4e67aa225f7b916f398060c78e4ebc0c9a2ea5aa Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:48:18 +0300 Subject: [PATCH 05/14] Fix range selection that includes fields in section --- css/admin/frm-settings-components.css | 620 +- css/font_icons.css | 854 +- css/frm_admin.css | 12387 +----------------------- js/addons-page.js | 4788 +-------- js/form-templates.js | 6259 +----------- js/formidable-settings-components.js | 2742 +----- js/formidable_admin.js | 10166 +------------------ js/formidable_blocks.js | 2719 +----- js/formidable_dashboard.js | 906 +- js/formidable_overlay.js | 734 +- js/formidable_styles.js | 3023 +----- js/onboarding-wizard.js | 1844 +--- 12 files changed, 15 insertions(+), 47027 deletions(-) diff --git a/css/admin/frm-settings-components.css b/css/admin/frm-settings-components.css index bd90479bcd..4d0879f684 100644 --- a/css/admin/frm-settings-components.css +++ b/css/admin/frm-settings-components.css @@ -1,619 +1 @@ -/*!***********************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm-settings-components.scss ***! - \***********************************************************************************************************************************************************************************************************************************************/ -/** - * Formidable Forms settings components styles - */ -/** - * Accordion settings component styles - */ -.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus { - background: none; -} -.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover > svg:last-child, -.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:first-child, -.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:last-child { - color: var(--grey-900); -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component { - align-self: center; -} - -/** - * Color picker component styles - */ -.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button, -.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button { - background-color: #fff !important; -} -.frm_settings_form .frm-style-component .wp-picker-container button, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button { - position: relative; - height: 36px !important; - background-image: none !important; - overflow: hidden; - background-color: #fff !important; -} -.frm_settings_form .frm-style-component .wp-picker-container::after, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after { - content: ""; - width: 20px; - height: 20px; - display: block; - position: absolute; - top: 0; - right: 8px; - bottom: 0; - margin: auto; - background: url("../../images/style/small-arrow.svg") no-repeat; - background-position: center; - z-index: 10; -} -.frm_settings_form .frm-style-component .wp-color-result-text, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text { - line-height: 36px !important; - padding: 0 12px; - border: 0; -} -.frm_settings_form .frm-style-component .color-alpha, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha { - width: 20px !important; - height: 20px !important; - border-radius: 50% !important; - border: 1px solid rgb(208, 213, 221); - top: 0; - left: 0; - bottom: 0; - margin: auto; - margin-left: 12px; -} -.frm_settings_form .frm-style-component .wp-picker-input-wrap input, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input { - width: calc(100% - 10px) !important; - margin: 1px 5px; - height: 32px; - line-height: 32px; -} - -/** - * Background image component styles - */ -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component > div { - max-width: 216px; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container { - max-width: calc(100% - 44px); - position: relative; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box { - width: 36px; - height: 36px; - padding: 0; - background: white; - overflow: hidden; - text-indent: -999px; - flex-wrap: wrap; - border: none; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame { - margin-left: 0; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper { - position: relative; - width: 36px; - height: 36px; - margin: 0; - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); - overflow: hidden; - box-sizing: border-box; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame { - max-width: 120%; - height: 120%; - margin: -10%; - position: relative; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow: hidden; - margin: 0; - border-radius: var(--small-radius); -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option { - width: 100%; - height: 100%; - border: 1px solid var(--red-500); - text-indent: -9999px; - position: absolute; - top: 0; - left: 0; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before { - opacity: 0; - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - z-index: 1; - top: 0; - left: 0; - background: rgba(255, 255, 255, 0.8); -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after { - opacity: 0; - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - z-index: 1; - top: 0; - left: 0; - background: url("../../images/style/close.svg") no-repeat; - background-position: center; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after { - opacity: 1; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img { - width: 100%; - height: 100%; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper + *, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option * { - display: none; -} - -/** - * Radio buttons component styles - */ -.frm-style-component .frm-radio-container { - max-width: 216px; - height: 36px; - background: rgb(242, 244, 247); - gap: var(--small-gap); - padding: var(--gap-2xs); - box-sizing: border-box; - border-radius: var(--small-radius); - position: relative; -} -.frm-style-component.frm-field-shape .frm-radio-container { - max-width: unset; -} -.frm-style-component.frm-direction-component .frm-radio-container { - gap: var(--gap-xs); -} -.frm-style-component .frm-radio-container svg { - width: 16px; -} -.frm-style-component .frm-radio-container .frm-radio-active-tracker { - display: block; - width: 28%; - height: calc(100% - 8px); - background: white; - border-radius: var(--small-radius); - box-shadow: var(--button-shadow); - position: absolute; - top: var(--gap-2xs); - bottom: 0; - left: var(--gap-2xs); - z-index: 1; - transition: 0.35s transform cubic-bezier(0.075, 0.82, 0.165, 1); -} -.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker { - width: 23%; -} -.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { - width: calc(50% - var(--gap-xs)); -} -.frm-style-component .frm-radio-container > label { - width: 30%; - height: 100%; - margin: 0; - cursor: pointer; - position: relative; - display: flex; - z-index: 2; -} -.frm-style-component.frm-field-shape .frm-radio-container > label { - width: 23%; -} -.frm-style-component.frm-align-component.frm-2-options .frm-radio-container > label, .frm-style-component.frm-direction-component .frm-radio-container > label, .frm-style-component.frm-text-toggle-component .frm-radio-container > label { - width: 50%; -} -.frm-style-component.frm-text-toggle-component .frm-radio-container { - height: 44px; - max-width: unset; - gap: var(--gap-xs); - padding: var(--gap-xs); -} -.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { - height: calc(100% - var(--gap-sm)); - top: var(--gap-xs); -} - -.frm-style-tabs-wrapper .frm-tabs-navs ul > li:not(.frm-active):hover, -.frm-style-component .frm-radio-container input:not(:checked) + label:hover { - background: rgb(234, 236, 240); - border-radius: var(--small-radius); - box-shadow: var(--button-shadow); -} - -.frm-style-component .frm-radio-container input { - display: none; -} - -/** - * Sliders component styles - */ -.frm-style-component .frm-slider-container { - width: calc(100% - 91px); - display: flex; - align-items: center; - color: rgb(29, 41, 57); -} -.frm-style-component .frm-slider-container svg.frmsvg { - color: currentColor; - margin-right: 8px; - margin-left: -5px; - position: relative; - z-index: 15; -} - -.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover { - color: rgb(65, 153, 253); - cursor: pointer; -} - -.frm-style-component .frm-slider-container .frm-slider-active-track { - display: block; - height: 100%; - width: 0; - position: relative; - border-radius: 200px; -} -.frm-style-component .frm-slider-container .frm-slider-active-track, -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { - background: rgb(65, 153, 253); - box-shadow: 0 1.88px 4px -1px rgba(16, 24, 40, 0.03), 0 6px 8px -2px rgba(16, 24, 40, 0.08); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { - position: absolute; - display: block; - width: 16px; - height: 16px; - border-radius: 50%; - transform: translateX(15px); - cursor: grab; - right: 0; - top: 0; - bottom: 0; - margin: auto; -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label { - position: absolute; - display: block; - width: 48px; - height: 36px; - background: rgb(16, 24, 40); - color: white; - font-weight: 400; - font-size: var(--text-sm); - line-height: 36px; - border-radius: var(--small-radius); - transform: translate(-18px, -42px) scale3d(0.7, 1, 1); - opacity: 0; - z-index: -2; - pointer-events: none; - text-align: center; - user-select: none; -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label { - z-index: 12; - transform: translate(-18px, -42px) scale3d(1, 1, 1); - opacity: 1; - transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before { - content: ""; - display: block; - position: absolute; - width: 18px; - height: 18px; - border-radius: 50%; - left: 0; - top: 0; - transform: translate(-5px, -5px) scale3d(0.7, 0.7, 1); - border: 4px solid rgb(65, 153, 253); - opacity: 0; - transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before { - opacity: 0.5; - transform: translate(-5px, -5px) scale3d(1, 1, 1); - transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after { - content: ""; - position: absolute; - display: block; - width: 180%; - height: 200%; - border-radius: 50%; - left: 0; - top: 0; - transform: translate(-24%, -24%); -} - -.frm-style-component .frm-slider-value { - width: 86px; - height: 36px; - display: flex; - justify-content: center; - box-sizing: border-box; - background: white; - border-radius: var(--small-radius); - border: 1px solid var(--grey-300); -} -.frm-style-component .frm-slider-value > * { - border: none; -} -.frm-style-component .frm-slider-value input { - width: 40px; - height: 100%; - padding: 0; - font-size: var(--text-sm); - color: rgb(16, 24, 40); - padding-left: 12px; - box-sizing: border-box; -} -.frm-style-component .frm-slider-value select { - text-align: right; - padding: 0; - font-size: var(--text-sm); - color: rgb(102, 112, 133); - width: 44px; - background: url("../../images/style/small-arrow.svg") no-repeat; - background-position: center right 12px; - padding-right: 24px !important; -} -.frm-style-component .frm-slider { - display: block; - width: calc(100% - 5px); - height: 4px; - background: rgb(234, 236, 240); - border-radius: 200px; - cursor: pointer; -} - -.frm-slider-component .frm-independent-slider-field { - margin-top: 10px; -} -.frm-slider-component.frm-disabled .frm-slider-container { - pointer-events: none; - opacity: 0.5; -} -.frm-slider-component.frm-disabled .frm-slider-value input[type=text] { - width: 28px; -} -.frm-slider-component.frm-disabled .frm-slider-value select { - width: 56px; -} -.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text] { - width: 56px; -} -.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select { - width: 28px; -} - -.frm-style-component .frm-slider-component.frm-has-multiple-values { - margin-bottom: 10px; -} - -/** - * Tabs component styles - */ -.frm-tabs-wrapper { - position: relative; - overflow: hidden; -} -.frm-tabs-wrapper .frm-tabs-navigator { - margin: 0; - padding: 0; - display: flex; - gap: var(--gap-xs); - justify-content: space-between; - align-items: center; - background: rgb(242, 244, 247); - border-radius: var(--small-radius); - box-sizing: border-box; - height: 44px; - position: relative; - z-index: 2; -} -.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item { - flex: 1; - text-align: center; - cursor: pointer; -} -.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background { - display: block; - height: 100%; - background: white; - position: absolute; - top: 0; - left: 0; - z-index: 1; -} - -.frm-style-tabs-wrapper { - position: relative; -} -.frm-style-tabs-wrapper .frm-tabs-navs { - padding: 0; - min-height: 44px; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul { - margin: 0; - height: var(--h-md); - position: relative; - justify-content: space-between; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li, -.frm-style-tabs-wrapper .frm-tabs-navs ul li a { - color: var(--grey-500); - font-weight: 500; - font-size: var(--text-sm); - line-height: 28px; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li { - flex: 1; - height: 28px; - text-align: center; - margin-top: var(--gap-xs); - margin-bottom: 0; - cursor: pointer; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active, .frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a { - color: var(--grey-900); -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { - margin-left: var(--gap-xs); -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { - margin-right: var(--gap-xs); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter { - position: absolute; - top: 0; - left: 0; - width: 100%; - background: rgb(242, 244, 247); - height: 44px; - margin: 0; - border-radius: var(--small-radius); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline { - height: 28px; - background: white; - position: absolute; - left: 0; - bottom: 8px; - width: 45px; - transition: 0.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); - border-radius: var(--small-radius); - box-shadow: var(--button-shadow); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first { - left: var(--gap-xs); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last { - left: calc(-1 * var(--gap-xs)); -} - -.frm-tabs-container { - position: relative; - overflow: hidden; - margin-top: var(--gap-md); - height: 100%; -} - -.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track { - transition: 0.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-tabs-wrapper .frm-tabs-slide-track > div { - flex: 0 0 100%; - opacity: 0; - transition: 0.25s opacity linear; - position: relative; - height: auto; - max-height: unset; - overflow: hidden; - box-sizing: border-box; -} -.frm-style-tabs-wrapper .frm-tabs-slide-track > div > div { - overflow: auto; - position: relative; - width: 100%; - padding: 0; - box-sizing: border-box; -} - -.frm-tabs-slide-track > div > div:first-child { - height: 100%; -} -.frm-tabs-slide-track > div.frm-active { - opacity: 1; - transition: 0.35s opacity linear; -} - -/** - * Miscellaneous settings component styles - */ -.frm-style-component .frm_toggle_slider { - background: rgb(242, 244, 247); -} - -.frm-style-component label.frm-copy-text { - line-height: 32px; - cursor: pointer; - white-space: nowrap; -} - -.frm-style-component .wp-picker-holder { - right: 0; -} - -.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading { - font-weight: 500; - font-size: var(--text-md); - color: var(--grey-900); -} - -.frm-unit-input { - position: relative; - display: flex; - align-items: center; -} -.frm-unit-input input[type=number]::-webkit-outer-spin-button, -.frm-unit-input input[type=number]::-webkit-inner-spin-button { - -webkit-appearance: none; - appearance: none; -} -.frm-unit-input .frm-input-group-suffix { - position: absolute; - top: 1px; - right: 1px; - display: flex; - align-items: center; - height: calc(100% - 2px); - padding-right: var(--gap-xs); -} -.frm-unit-input .frm-input-group-suffix select { - width: fit-content; - height: 100%; - min-height: unset; - font-size: var(--text-sm); - text-align: right; - color: var(--grey-500) !important; - background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%; - padding-left: var(--gap-2xs); - padding-right: 21px !important; - border: transparent; -} -.frm-unit-input .frm-input-group-suffix select:focus-visible { - outline: 1px solid var(--primary-500); - outline-offset: -2px; -} - -/*# sourceMappingURL=frm-settings-components.css.map*/ \ No newline at end of file +.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} diff --git a/css/font_icons.css b/css/font_icons.css index c25d12cac0..b21fe208ed 100644 --- a/css/font_icons.css +++ b/css/font_icons.css @@ -1,853 +1 @@ -/*!****************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/font_icons.scss ***! - \****************************************************************************************************************************************************************************************************************************/ -@charset "UTF-8"; -/** - * Font Icons - */ -@font-face { - font-family: "s11-fp"; - src: url("../fonts/s11-fp.woff?v=7") format("woff"); - font-weight: 400; - font-style: normal; -} -.frm-submenu-highlight { - background: #1da867; -} - -.frm-submenu-highlight a span { - color: #fff; - font-weight: 600; -} - -.frmfont, -.frm_icon_font { - text-decoration: none; - text-shadow: none; - font-weight: 400; - display: inline-block; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: auto; - line-height: 1.5; - transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; - font-size: 18px; -} - -i.frmfont, -i.frm_icon_font { - font-style: normal; - font-variant: normal; - speak: none; -} - -.frmfont::before, -select.frmfont, -.frm_icon_font::before, -select.frm_icon_font { - font-family: "s11-fp" !important; - text-align: center; -} - -.frmfont, -a.frmfont, -.frmfont:hover, -a.frmfont:hover .frm_icon_font, -a.frm_icon_font, -.frm_icon_font:hover, -a.frm_icon_font:hover { - text-decoration: none !important; - box-shadow: none; -} - -.frmfont:focus, -.frm_icon_font:focus { - box-shadow: none; -} - -.frmfont:active, -.frm_icon_font:active { - outline: none; -} - -.frm_trigger .frm_icon_font { - padding: 0 5px; -} - -.frm_logo_icon::before { - content: "\e601"; -} - -.frm_required_icon::before { - content: "\e612"; -} - -.frm_delete_icon::before { - content: "\e610" !important; -} - -.frm_move_icon::before { - content: "\e61a"; -} - -.frm_drag_icon::before { - content: "\e93b"; -} - -.frm_clear_icon::before { - content: "\e60a"; -} - -.frm_noclear_icon::before { - content: "\e60b"; -} - -.frm_duplicate_icon::before { - content: "\e61b"; -} - -.frm_copy_icon::before { - content: "\f0c5"; -} - -.frm_clone_icon::before { - content: "\f24d"; -} - -.frm_tooltip_icon::before { - content: "\e611"; -} - -.frm_tooltip_solid_icon::before { - content: "\e907"; -} - -.frm_forbid_icon::before { - content: "\e636"; -} - -.frm_checkmark_icon::before { - content: "\e90a"; -} - -.frm_check_icon::before { - content: "\e605"; -} - -.frm_check1_icon::before { - content: "\e606"; -} - -.frm_plus_icon::before { - content: "\e62f"; -} - -.frm_plus1_icon::before { - content: "\e602"; -} - -.frm_plus2_icon::before { - content: "\e603"; -} - -.frm_plus3_icon::before { - content: "\e632"; -} - -.frm_plus4_icon::before { - content: "\e60f"; -} - -.frm_minus_icon::before { - content: "\e62e"; -} - -.frm_minus1_icon::before { - content: "\e600"; -} - -.frm_minus2_icon::before { - content: "\e604"; -} - -.frm_minus3_icon::before { - content: "\e633"; -} - -.frm_minus4_icon::before { - content: "\e613"; -} - -.frm_cancel_icon::before { - content: "\e607"; -} - -.frm_cancel1_icon::before { - content: "\e608"; -} - -.frm_close_icon::before { - content: "\e928"; -} - -.frm_report_problem_solid_icon::before { - content: "\e914"; -} - -.frm_report_problem_icon::before { - content: "\e915"; -} - -.frm_arrowup_icon::before { - content: "\e60d"; -} - -.frm_arrowup1_icon::before { - content: "\e60e"; -} - -.frm_arrowup2_icon::before { - content: "\e630"; -} - -.frm_arrowup3_icon::before { - content: "\e62b"; -} - -.frm_arrowup4_icon::before { - content: "\e62c"; -} - -.frm_arrowup5_icon::before { - content: "\e635"; -} - -.frm_arrowup5_solid_icon::before { - content: "\e9d"; -} - -.frm_arrowup7_icon::before { - content: "\e908"; -} - -.frm_arrowup6_icon::before { - content: "\e62d"; -} - -.frm_arrowdown_icon::before { - content: "\e609"; -} - -.frm_arrowdown1_icon::before { - content: "\e60c"; -} - -.frm_arrowdown2_icon::before { - content: "\e631"; -} - -.frm_arrowdown3_icon::before { - content: "\e628"; -} - -.frm_arrowdown4_icon::before { - content: "\e629"; -} - -.frm_arrowdown5_icon::before { - content: "\e634"; -} - -.frm_arrowdown5_solid_icon::before { - content: "\e905"; -} - -.frm_arrowdown7_icon::before { - content: "\e90b"; -} - -.frm_arrowdown6_icon::before { - content: "\e62a"; -} - -.frm_arrow_left_icon::before { - content: "\e912"; -} - -.frm_arrow_right_icon::before { - content: "\e913"; -} - -.frm_filter_icon::before { - content: "\e90c"; -} - -.frm_download_icon::before { - content: "\e615"; -} - -.frm_upload2_icon::before { - content: "\f093"; -} - -.frm_upload_icon::before { - content: "\e616"; -} - -.frm_download2_icon::before { - content: "\f019"; -} - -.frm_hard_drive_icon::before { - content: "\e916"; -} - -.frm_pencil_solid_icon::before { - content: "\e901"; -} - -.frm_pencil_icon::before { - content: "\e61d"; -} - -.frm_signature_icon::before { - content: "\e919"; -} - -.frm_user_icon::before { - content: "\e7ff"; -} - -.frm_register_icon::before { - content: "\e637"; -} - -.frm_account_circle_solid_icon::before { - content: "\e853"; -} - -.frm_account_circle_icon::before { - content: "\e921"; -} - -.frm_address_card_icon::before { - content: "\e996"; -} - -.frm_paragraph_icon::before { - content: "\f1dd"; -} - -.frm_checkbox_unchecked_icon::before { - content: "\e91e"; -} - -.frm_checkbox_icon::before { - content: "\e922"; -} - -.frm_checkbox_solid_icon::before { - content: "\e91f"; -} - -.frm_dropdown_icon::before { - content: "\e909"; -} - -.frm_caret_square_down_icon::before { - content: "\f150"; -} - -.frm_check_square_icon::before { - content: "\f14a"; -} - -.frm_radio_unchecked_icon::before { - content: "\e971"; -} - -.frm_radio_checked_icon::before { - content: "\ea54"; -} - -.frm_scrubber_icon::before { - content: "\f2f8"; -} - -.frm_location_solid_icon::before { - content: "\e955"; -} - -.frm_location_icon::before { - content: "\e947"; -} - -.frm_toggle_on_icon::before { - content: "\f205"; -} - -.frm_toggle_off_icon::before { - content: "\f204"; -} - -.frm_shield_check_icon::before { - content: "\f2f7"; -} - -.frm_shield_check_solid_icon::before { - content: "\e97d"; -} - -.frm_clock_icon::before { - content: "\e929"; -} - -.frm_clock_solid_icon::before { - content: "\e985"; -} - -.frm_link_icon::before { - content: "\f0c1"; -} - -.frm_email_icon::before { - content: "\e626"; -} - -.frm_email_solid_icon::before { - content: "\f0e0"; -} - -.frm_mail_bulk_icon::before { - content: "\e95c"; -} - -.frm_phone_icon::before { - content: "\e942"; -} - -.frm_calendar_icon::before { - content: "\f073"; -} - -.frm_code_icon::before { - content: "\e90d"; -} - -.frm_tag_icon::before { - content: "\e98b"; -} - -.frm_tag_solid_icon::before { - content: "\e989"; -} - -.frm_price_tags_icon::before { - content: "\e936"; -} - -.frm_search_icon::before { - content: "\e978"; -} - -.frm_sitemap_icon::before { - content: "\f0e8"; -} - -.frm_file_icon::before { - content: "\f15b"; -} - -.frm_file_text_solid_icon::before { - content: "\f15c"; -} - -.frm_file_text_icon::before { - content: "\e923"; -} - -.frm-option-icon::before, -.frm_option_icon::before { - content: "\e904"; -} - -.frm_option_solid_icon::before { - content: "\e906"; -} - -.frm_more_horiz_icon::before { - content: "\e5d3"; -} - -.frm_more_vert_icon::before { - content: "\e5d4"; -} - -.frm_more_horiz_solid_icon { - font-size: 28px !important; - font-weight: 700; - line-height: 18px; -} - -.frm_more_horiz_solid_icon::before { - content: "···"; -} - -.frm_more_vert_solid_icon::before { - content: "\f142"; -} - -.frm_calculator_icon::before { - content: "\f1ec"; -} - -.frm_keyboard_icon::before { - content: "\e924"; -} - -.frm_eye_icon::before { - content: "\f06e"; -} - -.frm_eye_solid_icon::before { - content: "\e945"; -} - -.frm_eye_slash_icon::before { - content: "\f070"; -} - -.frm_eye_slash_solid_icon::before { - content: "\e949"; -} - -.frm_page_break_icon::before { - content: "\e8e9"; -} - -.frm_view_day_icon::before { - content: "\e8ed"; -} - -.frm_attach_file_icon::before { - content: "\e226"; -} - -.frm_printer_icon::before { - content: "\e926"; -} - -.frm_header_icon::before { - content: "\f1dc"; -} - -.frm_h1_icon::before { - content: "\e94c"; -} - -.frm_repeat_icon::before { - content: "\f363"; -} - -.frm_repeater_icon::before { - content: "\e974"; -} - -.frm_hashtag_icon::before { - content: "\e292"; -} - -.frm_save_icon::before { - content: "\e927"; -} - -.frm_sliders_icon::before { - content: "\f1de"; -} - -.frm_code_commit_icon::before { - content: "\f386"; -} - -.frm_star_icon::before { - content: "\e9d7"; -} - -.frm_star_full_icon::before { - content: "\e9d9"; -} - -.frm_star_half_icon::before { - content: "\e9d8"; -} - -.frm_linear_scale_icon::before { - content: "\e260"; -} - -.frm_pie_chart_icon::before { - content: "\e99a"; -} - -.frm_stats_bars_icon::before { - content: "\e99c"; -} - -.frm_sms_icon::before { - content: "\e61c"; -} - -.frm_highrise_icon::before { - content: "\e617"; -} - -.frm_mailchimp_icon::before { - content: "\e622"; -} - -.frm_feed_icon::before { - content: "\e624"; -} - -.frm_align_right_icon::before { - content: "\e90f"; -} - -.frm_align_left_icon::before { - content: "\e910"; -} - -.frm_button_icon::before { - content: "\e911"; -} - -.frm_browser_icon::before { - content: "\e925"; -} - -.frm_cloud_upload_solid_icon::before { - content: "\e92c"; -} - -.frm_shuffle_icon::before { - content: "\e917"; -} - -.frm_swap_icon::before { - content: "\e918"; -} - -.frm_pallet_icon::before { - content: "\e96d"; -} - -.frm_fingerprint_icon::before { - content: "\e94a"; -} - -.frm_ghost_icon::before { - content: "\e94b"; -} - -.frm_heart_solid_icon::before { - content: "\e94d"; -} - -.frm_heart_icon::before { - content: "\e94e"; -} - -.frm_history_icon::before { - content: "\e94f"; -} - -.frm_import_icon::before { - content: "\e91a"; -} - -.frm_export_icon::before { - content: "\e91b"; -} - -.frm_label_solid_icon::before { - content: "\e952"; -} - -.frm_label_icon::before { - content: "\e953"; -} - -.frm_lock_open_icon::before { - content: "\e957"; -} - -.frm_lock_icon::before { - content: "\e959"; -} - -.frm_dollar_sign_icon::before { - content: "\e91c"; -} - -.frm_percent_icon::before { - content: "\e939"; -} - -.frm_external_link_icon::before { - content: "\e966"; -} - -.frm_pageview_solid_icon::before { - content: "\e96a"; -} - -.frm_pageview_icon::before { - content: "\e96b"; -} - -.frm_settings_icon::before { - content: "\e97a"; -} - -.frm_stamp_icon::before { - content: "\e980"; -} - -.frm_support_icon::before { - content: "\f1cd"; -} - -.frm_text_icon::before { - content: "\e98d"; -} - -.frm_text2_icon::before { - content: "\f031"; -} - -.frm_white_label_icon::before { - content: "\e91d" !important; -} - -.frm_authorize_icon::before { - content: "\e903"; -} - -.frm_icon_font.frm_activecampaign_icon { - background-image: none; -} - -.frm_activecampaign_icon::before { - content: "\e930"; -} - -.frm_aweber_icon::before { - content: "\e627"; -} - -.frm_campaignmonitor_icon::before { - content: "\e946"; -} - -.frm_constant_contact_icon::before { - content: "\e931"; -} - -.frm_getresponse_icon::before { - content: "\e932"; -} - -.frm_googlesheets_icon::before { - content: "\e944"; -} - -.frm_building_icon::before { - content: "\e93f"; -} - -.frm_hubspot_icon::before { - content: "\e933"; -} - -.frm_icontact_icon::before { - content: "\e940"; -} - -.frm_icon_font.frm_mailpoet_icon::before { - content: "\e934"; -} - -.frm_paypal_icon::before { - content: "\e61f"; -} - -.frm_sendinblue_icon::before { - content: "\e943"; -} - -.frm_sendy_icon::before { - content: "\e941"; -} - -.frm_salesforce_icon::before { - content: "\e935"; -} - -.frm_salesforcealt_icon::before { - content: "\e937"; -} - -.frm_stripe_icon::before { - content: "\e902"; -} - -.frm_stripealt_icon::before { - content: "\e93d"; -} - -.frm_twilio_icon::before { - content: "\e620"; -} - -.frm_woocommerce_icon::before { - content: "\e90e"; -} - -.frm_wordpress_icon::before { - content: "\f19a"; -} - -.frm_credit_card_icon::before { - content: "\e938"; -} - -.frm_credit-card-alt_icon::before, -.frm_credit_card_alt_icon::before { - content: "\f283"; -} - -.frm_cc_amex_icon::before { - content: "\f1f3"; -} - -.frm_cc_discover_icon::before { - content: "\f1f2"; -} - -.frm_cc_mastercard_icon::before { - content: "\f1f1"; -} - -.frm_cc_visa_icon::before { - content: "\f1f0"; -} - -.frm_cc_paypal_icon::before { - content: "\f1f4"; -} - -.frm_cc_stripe_icon::before { - content: "\f1f5"; -} - -/*# sourceMappingURL=font_icons.css.map*/ \ No newline at end of file +@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"} diff --git a/css/frm_admin.css b/css/frm_admin.css index 4ca2c0dd82..e1a6bbb69a 100644 --- a/css/frm_admin.css +++ b/css/frm_admin.css @@ -1,12386 +1,3 @@ -/*!*********************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm_admin.scss ***! - \*********************************************************************************************************************************************************************************************************************************/ -@charset "UTF-8"; -/** - * Formidable Admin Styles - * - * Note: Do not modify the import order unless the change is part of a deliberate refactor. - */ -/** - * Base & Foundation - * - * Core variables, typography, and essential base styles - */ -/** - * Font Icons - */ -@font-face { - font-family: "s11-fp"; - src: url("../fonts/s11-fp.woff?v=7") format("woff"); - font-weight: 400; - font-style: normal; -} -.frm-submenu-highlight { - background: #1da867; -} - -.frm-submenu-highlight a span { - color: #fff; - font-weight: 600; -} - -.frmfont, -.frm_icon_font { - text-decoration: none; - text-shadow: none; - font-weight: 400; - display: inline-block; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: auto; - line-height: 1.5; - transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; - font-size: 18px; -} - -i.frmfont, -i.frm_icon_font { - font-style: normal; - font-variant: normal; - speak: none; -} - -.frmfont::before, -select.frmfont, -.frm_icon_font::before, -select.frm_icon_font { - font-family: "s11-fp" !important; - text-align: center; -} - -.frmfont, -a.frmfont, -.frmfont:hover, -a.frmfont:hover .frm_icon_font, -a.frm_icon_font, -.frm_icon_font:hover, -a.frm_icon_font:hover { - text-decoration: none !important; - box-shadow: none; -} - -.frmfont:focus, -.frm_icon_font:focus { - box-shadow: none; -} - -.frmfont:active, -.frm_icon_font:active { - outline: none; -} - -.frm_trigger .frm_icon_font { - padding: 0 5px; -} - -.frm_logo_icon::before { - content: "\e601"; -} - -.frm_required_icon::before { - content: "\e612"; -} - -.frm_delete_icon::before { - content: "\e610" !important; -} - -.frm_move_icon::before { - content: "\e61a"; -} - -.frm_drag_icon::before { - content: "\e93b"; -} - -.frm_clear_icon::before { - content: "\e60a"; -} - -.frm_noclear_icon::before { - content: "\e60b"; -} - -.frm_duplicate_icon::before { - content: "\e61b"; -} - -.frm_copy_icon::before { - content: "\f0c5"; -} - -.frm_clone_icon::before { - content: "\f24d"; -} - -.frm_tooltip_icon::before { - content: "\e611"; -} - -.frm_tooltip_solid_icon::before { - content: "\e907"; -} - -.frm_forbid_icon::before { - content: "\e636"; -} - -.frm_checkmark_icon::before { - content: "\e90a"; -} - -.frm_check_icon::before { - content: "\e605"; -} - -.frm_check1_icon::before { - content: "\e606"; -} - -.frm_plus_icon::before { - content: "\e62f"; -} - -.frm_plus1_icon::before { - content: "\e602"; -} - -.frm_plus2_icon::before { - content: "\e603"; -} - -.frm_plus3_icon::before { - content: "\e632"; -} - -.frm_plus4_icon::before { - content: "\e60f"; -} - -.frm_minus_icon::before { - content: "\e62e"; -} - -.frm_minus1_icon::before { - content: "\e600"; -} - -.frm_minus2_icon::before { - content: "\e604"; -} - -.frm_minus3_icon::before { - content: "\e633"; -} - -.frm_minus4_icon::before { - content: "\e613"; -} - -.frm_cancel_icon::before { - content: "\e607"; -} - -.frm_cancel1_icon::before { - content: "\e608"; -} - -.frm_close_icon::before { - content: "\e928"; -} - -.frm_report_problem_solid_icon::before { - content: "\e914"; -} - -.frm_report_problem_icon::before { - content: "\e915"; -} - -.frm_arrowup_icon::before { - content: "\e60d"; -} - -.frm_arrowup1_icon::before { - content: "\e60e"; -} - -.frm_arrowup2_icon::before { - content: "\e630"; -} - -.frm_arrowup3_icon::before { - content: "\e62b"; -} - -.frm_arrowup4_icon::before { - content: "\e62c"; -} - -.frm_arrowup5_icon::before { - content: "\e635"; -} - -.frm_arrowup5_solid_icon::before { - content: "\e9d"; -} - -.frm_arrowup7_icon::before { - content: "\e908"; -} - -.frm_arrowup6_icon::before { - content: "\e62d"; -} - -.frm_arrowdown_icon::before { - content: "\e609"; -} - -.frm_arrowdown1_icon::before { - content: "\e60c"; -} - -.frm_arrowdown2_icon::before { - content: "\e631"; -} - -.frm_arrowdown3_icon::before { - content: "\e628"; -} - -.frm_arrowdown4_icon::before { - content: "\e629"; -} - -.frm_arrowdown5_icon::before { - content: "\e634"; -} - -.frm_arrowdown5_solid_icon::before { - content: "\e905"; -} - -.frm_arrowdown7_icon::before { - content: "\e90b"; -} - -.frm_arrowdown6_icon::before { - content: "\e62a"; -} - -.frm_arrow_left_icon::before { - content: "\e912"; -} - -.frm_arrow_right_icon::before { - content: "\e913"; -} - -.frm_filter_icon::before { - content: "\e90c"; -} - -.frm_download_icon::before { - content: "\e615"; -} - -.frm_upload2_icon::before { - content: "\f093"; -} - -.frm_upload_icon::before { - content: "\e616"; -} - -.frm_download2_icon::before { - content: "\f019"; -} - -.frm_hard_drive_icon::before { - content: "\e916"; -} - -.frm_pencil_solid_icon::before { - content: "\e901"; -} - -.frm_pencil_icon::before { - content: "\e61d"; -} - -.frm_signature_icon::before { - content: "\e919"; -} - -.frm_user_icon::before { - content: "\e7ff"; -} - -.frm_register_icon::before { - content: "\e637"; -} - -.frm_account_circle_solid_icon::before { - content: "\e853"; -} - -.frm_account_circle_icon::before { - content: "\e921"; -} - -.frm_address_card_icon::before { - content: "\e996"; -} - -.frm_paragraph_icon::before { - content: "\f1dd"; -} - -.frm_checkbox_unchecked_icon::before { - content: "\e91e"; -} - -.frm_checkbox_icon::before { - content: "\e922"; -} - -.frm_checkbox_solid_icon::before { - content: "\e91f"; -} - -.frm_dropdown_icon::before { - content: "\e909"; -} - -.frm_caret_square_down_icon::before { - content: "\f150"; -} - -.frm_check_square_icon::before { - content: "\f14a"; -} - -.frm_radio_unchecked_icon::before { - content: "\e971"; -} - -.frm_radio_checked_icon::before { - content: "\ea54"; -} - -.frm_scrubber_icon::before { - content: "\f2f8"; -} - -.frm_location_solid_icon::before { - content: "\e955"; -} - -.frm_location_icon::before { - content: "\e947"; -} - -.frm_toggle_on_icon::before { - content: "\f205"; -} - -.frm_toggle_off_icon::before { - content: "\f204"; -} - -.frm_shield_check_icon::before { - content: "\f2f7"; -} - -.frm_shield_check_solid_icon::before { - content: "\e97d"; -} - -.frm_clock_icon::before { - content: "\e929"; -} - -.frm_clock_solid_icon::before { - content: "\e985"; -} - -.frm_link_icon::before { - content: "\f0c1"; -} - -.frm_email_icon::before { - content: "\e626"; -} - -.frm_email_solid_icon::before { - content: "\f0e0"; -} - -.frm_mail_bulk_icon::before { - content: "\e95c"; -} - -.frm_phone_icon::before { - content: "\e942"; -} - -.frm_calendar_icon::before { - content: "\f073"; -} - -.frm_code_icon::before { - content: "\e90d"; -} - -.frm_tag_icon::before { - content: "\e98b"; -} - -.frm_tag_solid_icon::before { - content: "\e989"; -} - -.frm_price_tags_icon::before { - content: "\e936"; -} - -.frm_search_icon::before { - content: "\e978"; -} - -.frm_sitemap_icon::before { - content: "\f0e8"; -} - -.frm_file_icon::before { - content: "\f15b"; -} - -.frm_file_text_solid_icon::before { - content: "\f15c"; -} - -.frm_file_text_icon::before { - content: "\e923"; -} - -.frm-option-icon::before, -.frm_option_icon::before { - content: "\e904"; -} - -.frm_option_solid_icon::before { - content: "\e906"; -} - -.frm_more_horiz_icon::before { - content: "\e5d3"; -} - -.frm_more_vert_icon::before { - content: "\e5d4"; -} - -.frm_more_horiz_solid_icon { - font-size: 28px !important; - font-weight: 700; - line-height: 18px; -} - -.frm_more_horiz_solid_icon::before { - content: "···"; -} - -.frm_more_vert_solid_icon::before { - content: "\f142"; -} - -.frm_calculator_icon::before { - content: "\f1ec"; -} - -.frm_keyboard_icon::before { - content: "\e924"; -} - -.frm_eye_icon::before { - content: "\f06e"; -} - -.frm_eye_solid_icon::before { - content: "\e945"; -} - -.frm_eye_slash_icon::before { - content: "\f070"; -} - -.frm_eye_slash_solid_icon::before { - content: "\e949"; -} - -.frm_page_break_icon::before { - content: "\e8e9"; -} - -.frm_view_day_icon::before { - content: "\e8ed"; -} - -.frm_attach_file_icon::before { - content: "\e226"; -} - -.frm_printer_icon::before { - content: "\e926"; -} - -.frm_header_icon::before { - content: "\f1dc"; -} - -.frm_h1_icon::before { - content: "\e94c"; -} - -.frm_repeat_icon::before { - content: "\f363"; -} - -.frm_repeater_icon::before { - content: "\e974"; -} - -.frm_hashtag_icon::before { - content: "\e292"; -} - -.frm_save_icon::before { - content: "\e927"; -} - -.frm_sliders_icon::before { - content: "\f1de"; -} - -.frm_code_commit_icon::before { - content: "\f386"; -} - -.frm_star_icon::before { - content: "\e9d7"; -} - -.frm_star_full_icon::before { - content: "\e9d9"; -} - -.frm_star_half_icon::before { - content: "\e9d8"; -} - -.frm_linear_scale_icon::before { - content: "\e260"; -} - -.frm_pie_chart_icon::before { - content: "\e99a"; -} - -.frm_stats_bars_icon::before { - content: "\e99c"; -} - -.frm_sms_icon::before { - content: "\e61c"; -} - -.frm_highrise_icon::before { - content: "\e617"; -} - -.frm_mailchimp_icon::before { - content: "\e622"; -} - -.frm_feed_icon::before { - content: "\e624"; -} - -.frm_align_right_icon::before { - content: "\e90f"; -} - -.frm_align_left_icon::before { - content: "\e910"; -} - -.frm_button_icon::before { - content: "\e911"; -} - -.frm_browser_icon::before { - content: "\e925"; -} - -.frm_cloud_upload_solid_icon::before { - content: "\e92c"; -} - -.frm_shuffle_icon::before { - content: "\e917"; -} - -.frm_swap_icon::before { - content: "\e918"; -} - -.frm_pallet_icon::before { - content: "\e96d"; -} - -.frm_fingerprint_icon::before { - content: "\e94a"; -} - -.frm_ghost_icon::before { - content: "\e94b"; -} - -.frm_heart_solid_icon::before { - content: "\e94d"; -} - -.frm_heart_icon::before { - content: "\e94e"; -} - -.frm_history_icon::before { - content: "\e94f"; -} - -.frm_import_icon::before { - content: "\e91a"; -} - -.frm_export_icon::before { - content: "\e91b"; -} - -.frm_label_solid_icon::before { - content: "\e952"; -} - -.frm_label_icon::before { - content: "\e953"; -} - -.frm_lock_open_icon::before { - content: "\e957"; -} - -.frm_lock_icon::before { - content: "\e959"; -} - -.frm_dollar_sign_icon::before { - content: "\e91c"; -} - -.frm_percent_icon::before { - content: "\e939"; -} - -.frm_external_link_icon::before { - content: "\e966"; -} - -.frm_pageview_solid_icon::before { - content: "\e96a"; -} - -.frm_pageview_icon::before { - content: "\e96b"; -} - -.frm_settings_icon::before { - content: "\e97a"; -} - -.frm_stamp_icon::before { - content: "\e980"; -} - -.frm_support_icon::before { - content: "\f1cd"; -} - -.frm_text_icon::before { - content: "\e98d"; -} - -.frm_text2_icon::before { - content: "\f031"; -} - -.frm_white_label_icon::before { - content: "\e91d" !important; -} - -.frm_authorize_icon::before { - content: "\e903"; -} - -.frm_icon_font.frm_activecampaign_icon { - background-image: none; -} - -.frm_activecampaign_icon::before { - content: "\e930"; -} - -.frm_aweber_icon::before { - content: "\e627"; -} - -.frm_campaignmonitor_icon::before { - content: "\e946"; -} - -.frm_constant_contact_icon::before { - content: "\e931"; -} - -.frm_getresponse_icon::before { - content: "\e932"; -} - -.frm_googlesheets_icon::before { - content: "\e944"; -} - -.frm_building_icon::before { - content: "\e93f"; -} - -.frm_hubspot_icon::before { - content: "\e933"; -} - -.frm_icontact_icon::before { - content: "\e940"; -} - -.frm_icon_font.frm_mailpoet_icon::before { - content: "\e934"; -} - -.frm_paypal_icon::before { - content: "\e61f"; -} - -.frm_sendinblue_icon::before { - content: "\e943"; -} - -.frm_sendy_icon::before { - content: "\e941"; -} - -.frm_salesforce_icon::before { - content: "\e935"; -} - -.frm_salesforcealt_icon::before { - content: "\e937"; -} - -.frm_stripe_icon::before { - content: "\e902"; -} - -.frm_stripealt_icon::before { - content: "\e93d"; -} - -.frm_twilio_icon::before { - content: "\e620"; -} - -.frm_woocommerce_icon::before { - content: "\e90e"; -} - -.frm_wordpress_icon::before { - content: "\f19a"; -} - -.frm_credit_card_icon::before { - content: "\e938"; -} - -.frm_credit-card-alt_icon::before, -.frm_credit_card_alt_icon::before { - content: "\f283"; -} - -.frm_cc_amex_icon::before { - content: "\f1f3"; -} - -.frm_cc_discover_icon::before { - content: "\f1f2"; -} - -.frm_cc_mastercard_icon::before { - content: "\f1f1"; -} - -.frm_cc_visa_icon::before { - content: "\f1f0"; -} - -.frm_cc_paypal_icon::before { - content: "\f1f4"; -} - -.frm_cc_stripe_icon::before { - content: "\f1f5"; -} - -/** - * Base - Variables - */ -:root, -.frm-white-body, -.frm_wrap { - --grey-900: #101828; - --grey-800: #1D2939; - --grey-700: #344054; - --grey-600: #475467; - --grey-500: #667085; /* Roughly 65% opacity */ - --grey-400: #98A2B3; - --grey-300: #D0D5DD; - --grey-200: #EAECF0; - --grey-100: #F2F4F7; - --grey-50: #F9FAFB; - --grey-25: #FCFCFD; - --dark-grey: var(--grey-700); /* Deprecated */ - --medium-grey: rgba(40, 47, 54, .65); - --grey: var(--grey-500); /* Deprecated */ - --grey-border: var(--grey-300); /* Deprecated */ - --lightest-grey: rgb(250, 250, 250); - --sidebar-color: var(--grey-50); - --sidebar-hover: var(--grey-200); - --primary-700: #2B66A9; - --primary-500: #4199FD; - --primary-300: #80BBFE; - --primary-200: #C0DDFE; - --primary-50: #ECF5FF; - --primary-25: #F5FAFF; - --primary-color: var(--primary-500); /* Deprecated */ - --primary-hover: var(--primary-700); /* Deprecated */ - --light-blue: var(--primary-25); /* Deprecated */ - --blue-border: rgb(188, 224, 253); - --error-700: #B42318; - --error-500: #F04438; - --error-300: #FECDCA; - --error-100: #FEE4E2; - --error-25: #FFF5F4; - --green: rgb(63, 172, 37); - --orange: #F15A24; - --warning-500: #F79009; - --pink: rgb(226, 42, 110); - --purple: rgb(141, 53, 245); - --success-900: #054F31; - --success-800: #065F46; - --success-500: #12b76a; - --success-100: #D1FAE5; - --success-200: #A6F4C5; - --success-50: #ECFDF3; - --success-25: #f6fef9; - --border-radius: 35px; - --small-radius: 8px; - --medium-radius: 16px; - --small-sidebar: 275px; - --medium-sidebar: 350px; - --big-sidebar: 390px; - --biggest-sidebar: 450px; - --text-xs: 12px; - --text-sm: 14px; - --text-md: 16px; - --text-lg: 18px; - --text-xl: 20px; - --h-xs: 24px; - --h-sm: 30px; - --h-md: 36px; - --leading: 1.5; - --gap-2xs: 4px; - --gap-xs: 8px; - --gap-sm: 16px; - --gap-md: 24px; - --gap-lg: 32px; - --gap-xl: 40px; - --gap-2xl: 48px; - --box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05); - --box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); - --box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06); - --box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); - --box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03); - --box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18); - --button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1); - /* Override front-end CSS */ - --check-label-color: var(--grey-700); -} - -/** - * Base - Font - */ -@font-face { - font-family: "Inter"; - src: url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype"); -} -.with_frm_style, -.frm-white-body .wpbody-content, -.frm_wrap { - font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; -} - -/* Safari 11+ */ -@media not all and (min-resolution: 0.001dpcm) { - @supports (-webkit-appearance: none) and (stroke-color: transparent) { - .with_frm_style, - .frm-white-body .wpbody-content, - .frm_wrap { - -webkit-font-smoothing: antialiased; - } - } -} -/** - * Utilities - Z-index - */ -.frm-sm-z-index { - z-index: 1; -} - -.frm-md-z-index { - z-index: 5; -} - -/** - * Base - Text - */ -.frm-white-body, -.frm-white-body p, -.frm_wrap, -.frm_wrap p, -.frm-modal, -.frm-white-body .postbox .inside { - font-size: var(--text-sm); - color: var(--grey-500); - line-height: var(--leading); -} - -.frm-white-body p, -.frm_wrap p { - margin: var(--gap-sm) 0; -} - -body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields > fieldset { - --fieldset-padding: 15px 0; -} - -a, -.widget .widget-top, -.stuffbox h3, -.frm-collapsed { - cursor: pointer; - text-decoration: none; -} - -/** - * Layout & Primary Components - * - * Core structure and primary UI elements - */ -/** - * Layout - Wrap - */ -.post-type-frm_display .wrap > #posts-filter, -.wrap.frm-with-margin, -.frm_wrap > .wrap { - margin: var(--gap-sm) var(--gap-md) var(--gap-md); -} - -#frm_top_bar + .wrap { - margin: var(--gap-xl); -} - -.frm-full-screen #wpbody-content > .wrap { - margin: 0; -} - -.post-type-frm_display .wrap { - margin: 0; -} - -.toplevel_page_formidable #post-body-content { - overflow-x: visible; -} - -/** - * Components - Full Screen - */ -.frm-full-screen { - height: 100%; - overflow: hidden; -} - -.frm-full-screen.frm-admin-page-reports, -.frm-full-screen.frm-admin-page-entries, -.frm-full-screen.post-type-frm_display { - overflow: auto; -} - -.frm-full-screen #wpadminbar, -.frm-full-screen #adminmenumain, -.frm-full-screen .wp-header-end { - display: none; -} - -body.frm-white-body:not(.frm-full-screen) .mce-fullscreen { - top: 32px; - left: 160px; -} - -.frm-full-screen #wpbody-content, -.frm-full-screen #wpbody, -.frm-full-screen #wpcontent { - padding: 0; - overflow: hidden; - margin: 0 !important; -} - -/** - * Layout - Screen Meta - */ -.frm-white-body #wpbody-content { - position: relative; /* For screen meta links */ - padding-bottom: 0; -} - -.post-new-php.post-type-frm_display #screen-meta-links, -.post-php.post-type-frm_display #screen-meta-links { - display: none; -} - -.frm-white-body #screen-meta-links { - position: fixed; - bottom: 0; - right: 20px; -} - -.frm-full-screen #screen-meta-links .screen-meta-toggle { - right: 55px; -} - -.frm-white-body #screen-meta-links .show-settings { - border-radius: var(--small-radius) var(--small-radius) 0 0; - border: 1px solid var(--grey-300); - border-bottom: none; -} - -.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle { - right: 125px; /* Don't cover the lite upgrade button */ -} - -.frm-white-body #screen-meta { - margin: 0; -} - -.frm-white-body #screen-meta-links .show-settings::after { - color: var(--grey); -} - -/** - * Layout - Columns - */ -.frm-white-body .columns-2 { - border-bottom: 1px solid var(--grey-300); -} - -.frm-full-screen .columns-2 { - border: none; -} - -/** - * Layout - Body - */ -body.post-type-frm_display.edit-php, -body.frm-white-body { - background: #fff; -} - -body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after, -body.frm-white-body ul#adminmenu > li.current > a.current::after { - border-right-color: #fff; -} - -.frm-white-body #wpcontent { - padding-left: 0; - padding-right: 0; -} - -.frm-white-body .wrap #post-body { - padding: 0 20px; -} - -.frm-grey-body #wpbody { - background: var(--grey-100); -} - -.frm-grey-body #frm_top_bar { - background: #fff; -} - -/** - * Components - Table Nav - */ -.post-type-frm_display .tablenav, -.frm_wrap .tablenav { - margin-bottom: 10px; -} - -.frm-white-body .tablenav .actions select, -.wp-admin .frm_wrap .tablenav select { - margin-right: var(--gap-xs); -} - -.tablenav .actions .button { - margin-top: 1px; -} - -/** - * Components - Table Widefat - */ -.frm-white-body table.widefat { - background: var(--lightest-grey); - border-width: 0; - box-shadow: none; - margin: 20px 0; -} - -.frm-white-body table.widefat tfoot, -.frm-white-body table.widefat thead { - background: #fff; -} - -.frm-white-body table.widefat th { - font-size: var(--text-md); -} - -.frm-white-body table.widefat th a { - color: var(--grey-700); -} - -.frm-white-body table.widefat strong a { - color: var(--primary-700); -} - -/** - * Components - Scroll Box - */ -.frm-scroll-box { - clear: both; - overflow: auto; - max-height: 405px; - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); -} - -.frm_form_field.frm_scroll_box .frm_opt_container { - height: 100px; - overflow: auto; - border: 1px solid var(--grey-300); -} - -.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + p, -.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + div, -.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + span { - grid-column: span 6/span 6; - align-content: center; -} - -.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + p, -.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + div, -.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + span { - grid-column: span 12/span 12 !important; - align-content: center; -} - -.frm_form_field.frm-phone-type ~ [id*=frm-field-format-custom-] > label, -.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] > label { - opacity: 0; /* Hide the label for the format input in the phone field. */ -} - -.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] { - grid-column: span 6/span 6; -} - -/* Adjust "CSS Layout Classes" to full width when the "Format" setting is present. */ -.frm-single-settings.frm-type-textarea > .frm_grid_container [id*=frm-field-format-custom-] + p { - grid-column: span 12/span 12; -} - -.frm-single-settings .frm_grid_container { - column-gap: var(--gap-sm); -} - -.frm-content-center { - align-content: center; -} - -.frm-self-end { - align-self: end; -} - -/** - * Components - Short List - */ -.frm-short-list { - overflow: auto; - max-height: 190px; -} - -/** - * Components - Table Elements - */ -.frm-white-body table.frm-border td { - font-size: var(--text-sm); -} - -.frm-white-body .striped > tbody > :nth-child(odd) { - background-color: #fff; -} - -.frm_wrap td.column-title strong { - display: inline; -} - -td.column-title .frm_actions_dropdown { - float: right; -} - -/** - * Layout - Top Bar - */ -#frm_top_bar { - display: flex; - gap: var(--gap-sm); - width: 100%; - height: 72px; - margin: 0; - box-sizing: border-box; - text-align: center; - padding: 0 var(--gap-md); -} - -#frm_top_bar > .frm-full-close:last-child, -#frm_top_bar > #frm-publishing:last-child { - margin-left: auto; -} - -#frm_top_bar { - border-bottom: 1px solid var(--grey-300); - padding: 0 var(--gap-md); - overflow: visible; -} - -/** - * Base - Headings - */ -.frm-white-body h1, -.frm-white-body h2, -.frm-white-body h3, -.frm-white-body h4 { - color: var(--grey-900); - font-weight: 400; - line-height: var(--leading) !important; -} - -.frm-white-body .wrap h1, -.frm-white-body h1 { - font-size: var(--text-xl); -} - -.frm-white-body .wrap h2, -.frm-white-body h2 { - font-size: var(--text-lg); - font-weight: 500; -} - -.frm-white-body .wrap h3, -.frm-white-body h3 { - font-size: var(--text-md); -} - -.frm-white-body .wrap h4, -.frm-white-body h4 { - font-size: var(--text-sm); - font-weight: 500; -} - -/** - * Components - Error Modal - */ -#frm_error_modal .frm_lock_simple { - padding: 20px; - border-radius: 50%; - background-color: var(--primary-25); - display: inline-block; -} - -#frm_error_modal #frm_lock_simple { - color: var(--primary-500); -} - -#frm_error_modal .frm-modal-title { - display: block; -} - -#frm_error_modal .frm-modal-title h2 { - font-weight: 600; - font-size: var(--text-xl); - margin: 0; -} - -#frm_error_modal .frm_modal_content { - padding: var(--gap-md); - color: var(--grey-900); -} - -/** - * Layout - Editor Overrides - */ -/* Override CSS in Views plugin. */ -.frm-views-editor-body .frm_page_container #frm_top_bar h1 { - padding: 0 !important; - color: var(--grey-900); - font-size: var(--text-xl) !important; -} - -.post-type-frm_display .frm_top_left { - padding-bottom: 0 !important; -} - -.frm-new-table-view-option.frm-selected-table-view-option { - border-radius: var(--small-radius); - background: var(--primary-25); -} - -.frm-views-editor-body #frm_adv_info .tabs-panel { /* Views sidebar */ - padding-left: 4px; - padding-right: 4px; -} - -#frm_edit_box_content_modal .frm_modal_footer { - padding-top: var(--gap-sm); - border-top: 1px solid var(--grey-300); -} - -#frm_edit_box_content_modal .frm_modal_footer > div { - display: flex; - justify-content: space-between; -} - -#frm_edit_box_content_modal #frm_modal_box_select_area, -#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper, -#frm_edit_box_content_modal .frm_modal_content { - max-height: calc(100vh - 176px) !important; -} - -#frm_edit_box_content_modal #frm_modal_box_select_area { - height: calc(100vh - 176px) !important; -} - -#frm_edit_box_content_modal #wp-content-editor-tools { - padding-top: 0; -} - -#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title + div:last-child { - right: var(--gap-md); -} - -.frm_code_list.frm-full-hover .frm-dropdown-view a { - flex-direction: row-reverse; /* Switch in the HTML */ -} - -#frm_view_editor_left.frm-right-panel .accordion-section-title::before { - content: "" !important; - margin: 0; -} - -/** End Temporary View CSS */ -/** - * Components - Upgrade Bar - */ -.frm-gradient, -.frm-upgrade-bar { - background: linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important; - color: #fff !important; - border: 0 !important; -} - -.frm-gradient.frm-button-primary:not([disabled]), -.frm-gradient.frm-button-primary:not([disabled]):hover, -.frm-gradient.frm-button-primary:not([disabled]):focus { - background: linear-gradient(90deg, #1961D5, #816CFA) !important; -} - -.frm-upgrade-bar, -.frm-gradient { - position: relative; -} - -.frm-upgrade-bar::before, -.frm-gradient::before { - content: ""; - display: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba(255, 255, 255, 0.1); - z-index: 0; -} - -.frm-upgrade-bar:hover::before, -.frm-gradient:hover::before, -.frm-gradient:focus::before { - display: block; -} - -.frm-upgrade-bar-inner, -.frm-gradient > * { - position: relative; - z-index: 1; -} - -.frm-upgrade-bar { - border-bottom: 1px solid var(--sidebar-hover); - padding: 9px 0; - font-size: 12px; - text-align: center; -} - -.frm-upgrade-bar a { - color: currentColor !important; - text-decoration: underline; -} - -.frm-upgrade-bar a:focus { - outline: 1px dotted var(--sidebar-hover); -} - -.frm-upgrade-bar span { - opacity: 0.9; -} - -/** - * Components - Links - */ -a h1 .frmsvg { - color: var(--grey-400); - vertical-align: middle; - min-width: var(--text-sm); -} - -a .frmsvg { - color: currentColor; -} - -.frm_wrap .view-switch a.current::before, -.frm-white-body a, -.frm_wrap a, -.frm_wrap a i { - color: var(--primary-color); -} - -.frm_wrap a:active, -.frm_wrap a:hover { - color: var(--primary-700); - box-shadow: none; -} - -.post-type-frm_display a:focus, -.frm_wrap a:focus { - box-shadow: none; -} - -/** - * Layout - Top Bar - Navigation - */ -.frm_top_left { - text-align: left; - float: left; - white-space: nowrap; - max-width: 250px; - overflow: hidden; - text-overflow: ellipsis; - align-self: center; -} - -.post-type-frm_display .frm_top_left, -.frm_top_left.frm_top_wide { - max-width: 100%; -} - -.post-type-frm_display .frm_nav_bar .frm-header-logo, -.frm_nav_bar .frm-header-logo { - margin: 18px 0 10px; -} - -#frm_top_bar .frm_form_nav { - flex: 1; -} - -ul.frm_form_nav { - margin: 0 auto; - padding-top: 18px; - display: block; - min-width: 240px; -} - -.nav-tab-wrapper.frm_form_nav { - padding: 0 25px; -} - -ul.frm_form_nav > li { - margin: 0 min(3.5%, 32px) 0 0; - display: inline-block; -} - -.post-type-frm_display #advanced-sortables h2.hndle, -.post-type-frm_display #side-sortables h2.hndle, -.post-type-frm_display #normal-sortables h2.hndle, -.post-type-frm_display .frm_form_nav .nav-tab-active, -.frm_form_nav > li > a { - font-size: 1.3em; - text-decoration: none; - display: block; - padding: 6px 2px 4px; - font-weight: 500; - color: var(--grey-700); - border-bottom: 2px solid transparent; -} - -.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before { - margin-top: 10px; -} - -.frm-nav-tabs a:focus, -.frm-nav-tabs a:active, -.frm_form_nav a:active, -.frm_form_nav a:focus { - outline: none; - box-shadow: none; -} - -.frm_form_nav > li > a { - font-size: var(--text-md); - font-weight: 400; - color: var(--grey-500); -} - -.frm_form_nav > li > a:hover { - border-color: var(--primary-700); -} - -.frm_form_nav .frm-dropdown-menu a:hover { - background-color: #eaf2fa; -} - -.post-type-frm_display .frm_form_nav .nav-tab-active, -.post-type-frm_display .frm_form_nav .nav-tab-active:hover, -.frm_form_nav > li a.current_page { - color: var(--primary-500); - border-color: var(--primary-500); - background: transparent; - opacity: 1; - font-weight: 600; -} - -/** - * Components - Full Close - */ -.frm-full-close { - display: none; - padding-left: var(--gap-md); - border: 0 solid var(--grey-300); - border-left-width: 1px; /* Make RTL a bit less maintenance */ - height: 100%; - box-sizing: border-box; -} - -.frm-full-screen .frm-full-close { - display: flex; - align-items: center; -} - -.frm-full-close a { - display: block; -} - -.frm-full-close .frmsvg { - font-size: 20px; - width: 20px; - height: 20px; - color: var(--grey-500); -} - -/** - * Layout - Top Bar - Elements - */ -#frm_top_bar h1 { - font-weight: 400; - padding: 0; - margin: 0; - color: var(--grey-900); - display: inline-flex; - gap: var(--gap-sm); - align-items: center; - text-align: left; - min-width: 200px; -} - -#frm_top_bar h1 span { - max-width: 175px; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: inline-block; - vertical-align: bottom; -} - -#frm_top_bar ul.frm_form_nav, -#frm_top_bar .frm-header-logo, -#frm_top_bar #frm_bs_dropdown { - align-self: center; - margin-top: 0; - margin-bottom: 0; - padding-top: 0; -} - -#frm_top_bar .frm-header-logo { - display: flex; /* Get rid of extra padding below logo */ -} - -#frm_top_bar h2 { - float: left; - margin: 0 0 0 var(--gap-sm); - padding: 2px 0 2px var(--gap-sm); - font-weight: 400; - border-left: 2px solid var(--grey); -} - -.frm_wrap > #frm_top_bar #frm-publishing { - margin-top: 0; -} - -#frm-publishing { - min-width: 225px; - align-self: center; - align-items: center; - display: flex; - flex-direction: row-reverse; - gap: 0 var(--gap-sm); - flex-wrap: wrap; -} - -/** - * Layout - Postbox - */ -.frm_wrap .postbox { - border-color: var(--grey-300); - border-radius: 6px; - box-shadow: none; -} - -.frm_wrap .postbox h3.hndle { - cursor: default; - padding: 10px 20px; - margin: 0; - line-height: 1.4em; - border-color: var(--grey-300); -} - -.frm-pre-hndle { - font-size: 15px; - padding: 5px; - margin: 9px 15px; -} - -/** - * Components - Table - Row - */ -.frm-empty-row { - display: none; -} - -.frm-child-row { - box-shadow: 5px 0 0 0 inset var(--sidebar-hover); -} - -/** - * Utilities - Effects - Animate - */ -.frm_animate_bg { - transition: background 200ms linear, color 200ms linear; -} - -/** - * Components - List - Subsubsub - */ -.wrap > .subsubsub { - clear: both; - margin: 0; -} - -.frm_wrap .subsubsub a { - line-height: var(--leading); - font-size: var(--text-sm); -} - -/** - * Layout - Container - */ -.frm-admin-page-styles .frm_page_container, -.frm_wrap .frm_page_container { /* Use .frm_wrap to avoid messing up Views editor layout */ - height: calc(100vh - 32px); - display: flex; - flex-direction: column; - overflow: hidden; - padding-top: 0; - position: fixed; - top: 32px; - bottom: 0; - left: 0; - right: 0; -} - -.frm-admin-page-translate .frm_wrap .frm_page_container, .frm-admin-page-update_translations .frm_wrap .frm_page_container { - position: static; -} - -.auto-fold.frm-admin-page-styles .frm_page_container, -.auto-fold .frm_wrap .frm_page_container, -.frm-unfold.frm-admin-page-styles .frm_page_container, -.frm-unfold .frm_wrap .frm_page_container { - left: 160px; -} - -.folded.frm-admin-page-styles .frm_page_container, -.folded .frm_wrap .frm_page_container { - left: 38px; -} - -.frm-full-screen.frm-admin-page-styles .frm_page_container, -.frm-full-screen .frm_wrap .frm_page_container { - height: 100vh; - top: 0; - left: 0; -} - -.frm-full-screen.frm-admin-page-entries .frm_page_container, -.frm-new-entry .frm_page_container, -.frm-admin-page-reports .frm_page_container, -.frm_list_entry_page .frm_page_container { - height: auto; - display: block; -} - -/** - * Layout - Container - Columns Elements - */ -.frm-new-entry .columns-2 { - border: none; -} - -.frm-white-body #frm_top_bar, -.frm-white-body .columns-2 { - flex: 0 0 auto; -} - -.columns-2 .frm-right-panel + div { - padding-bottom: var(--gap-md); - border-left: 1px solid var(--grey-300); -} - -.columns-2 .frm-right-panel + div, -.frm_wrap #post-body-content { - padding-bottom: 0; - padding-top: var(--gap-sm); - margin-bottom: 0; - background: #fff; - width: auto; - float: none; - flex: 2; -} - -.frm-white-body .columns-2 { - flex: 1; - display: flex; - overflow: hidden; -} - -.frm-white-body .columns-2 > div { - overflow-y: auto; - box-sizing: border-box; -} - -.frm_wrap .columns-2 .frm-right-panel, -.frm-right-panel { - flex: 0 0 var(--biggest-sidebar); - float: none; - width: var(--biggest-sidebar); - min-width: var(--biggest-sidebar); - background-color: var(--sidebar-color); - margin: 0; - box-shadow: none; - border: none; - padding-bottom: 25px; -} - -.frm-right-panel .frm_field_list, -.frm_wrap .frm-right-panel #frm_adv_info, -.frm_wrap #postbox-container-1 #frm_adv_info { - box-shadow: none; - border: none; - margin-bottom: 26px; -} - -/** - * Components - Settings - Has Shortcodes - */ -#new_fields, -.frm-has-modal, -p.frm_has_shortcodes { - position: relative; -} - -.frm-inline-modal.postbox { - background: #fff; - border-color: var(--grey-100); - border-radius: var(--small-radius); - box-shadow: var(--box-shadow-lg); -} - -.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg), -.frm_has_shortcodes i:not([class*=mce-]) { - position: absolute; - color: var(--primary-500); - border-radius: 50%; - border: 1px solid transparent; - z-index: 100; - text-align: center; -} - -.frm_has_shortcodes .frmsvg.frm-show-box { - border-radius: 6px !important; -} - -.frm_has_shortcodes input, -.frm_has_shortcodes textarea { - padding-left: 18px; - box-sizing: border-box; -} - -/** - * Components - Settings - Adv Info - */ -#form_settings_page #frm_adv_info, #frm_builder_page #frm_adv_info { - display: none; - top: 0; - width: 310px; - max-height: 315px; - min-height: 200px; - overflow-y: scroll; - z-index: 100; -} - -#form_global_settings .columns-2 > div { - overflow: auto; - height: calc(100vh - 32px); -} - -#form_global_settings .columns-2 .frm-right-panel, -#form_settings_page .columns-2 .frm-right-panel, -#wpbody-content .frm-page-skeleton .frm-right-panel { - flex: 0 0 var(--small-sidebar); - width: var(--small-sidebar); - min-width: var(--small-sidebar); -} - -#form_global_settings .frm_grid_container { - gap: 0 var(--gap-md); -} - -.frm-inner-content { - padding: var(--gap-md); -} - -.post-type-frm_display #poststuff { - padding: 0 0 10px 40px; -} - -#postbox-container-2 .postbox .inside { - padding: 15px 25px; -} - -#postbox-container-2 #frm_advanced .inside h3 { - margin: 15px -25px; - font-weight: 600; -} - -#form_settings_page .frm-inner-content { - padding-top: 0; - padding-bottom: 150px; - position: relative; -} - -.frm_wrap #submitdiv { - margin-bottom: 0; - border-width: 0 0 1px; - width: 100%; - min-width: unset; -} - -.frm_wrap #frm_adv_info .handlediv, -.frm_wrap #frm_adv_info .hndle { - display: none; -} - -.frm_wrap .menu-settings { - /* for add-on reverse compatibility */ - border: none; - margin-top: 0; -} - -.nodrag a { - cursor: pointer; -} - -.frm_wrap #frm_adv_info .inside { - margin: 0; -} - -#frm_adv_info > .inside { - padding: 0; -} -#frm_adv_info ul.subsubsub { - padding-bottom: var(--gap-xs) !important; -} -#frm_adv_info ul.subsubsub a { - font-weight: 500; -} -#frm_adv_info ul.subsubsub .frm-vertical-separator { - display: inline-block; - width: 1px; - height: 8px; - background-color: var(--grey-300); -} -#frm_adv_info #frm-insert-condition { - background-color: var(--primary-50); -} -#frm_adv_info #frm-insert-condition:hover { - background-color: var(--primary-25); -} - -#frm_builder_page #frm_adv_info { - width: 322px; - max-height: 356px; - border-radius: var(--small-radius); - overflow: hidden; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory { - height: 356px; - overflow: hidden; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div { - max-height: 286px; - padding: 0; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > * { - padding-bottom: var(--gap-sm); - max-height: unset; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > *:last-child { - padding-bottom: var(--gap-xs); -} -#frm_builder_page #frm_adv_info #frm-nav-tabs { - display: flex; - gap: var(--gap-xs); - background-color: var(--grey-100); - border-radius: var(--small-radius); - border: 0; - padding: var(--gap-xs); - margin: var(--gap-xs) var(--gap-2xs) var(--gap-sm); -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li { - flex: 1; - text-align: center; -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li a { - font-weight: 500; - line-height: 1; - color: var(--grey-500); - border-radius: var(--small-radius); - border: 0; - padding: var(--gap-xs); - margin: 0; -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li a:hover { - background-color: rgb(234, 236, 240); - color: var(--grey-500) !important; - box-shadow: var(--box-shadow-sm); -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li.frm-tabs a { - background-color: #fff; - color: var(--grey-900) !important; - box-shadow: var(--box-shadow-sm); -} -#frm_builder_page #frm_adv_info .frm-search, -#frm_builder_page #frm_adv_info .frm-with-search { - padding-top: 0; - margin: 0; -} - -/** - * Components - Modal - Inline Modal - */ -.frm-right-panel .frm-inline-modal.postbox .inside { - margin: 0; - padding: 0 14px 14px; -} -.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line, -.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4 { - margin-left: -14px; - margin-right: -14px; -} - -.frm-right-panel .frm-inline-modal .inside p:not(.howto), -.frm-right-panel .frm-inline-modal .inside a { - font-size: 15px; -} - -.frm-inline-modal .inside a.frm_icon_font { - font-size: 18px; -} - -/** - * Components - Nav Tabs - */ -.frm-nav-tabs { - margin: 10px 0 20px; - padding: 0 var(--gap-sm); - display: block; - border-bottom: 1px solid var(--grey-300); -} - -#frm-nav-tabs { - position: -webkit-sticky; - position: sticky; - top: 0; - background-color: var(--sidebar-color); - z-index: 98; /* must be < 99 */ - margin-top: 0; - padding-top: 5px; -} - -.frm_form_settings #frm_adv_info #frm-nav-tabs { - background-color: #fff; - margin: 0 -4px; -} - -.frm_form_settings span.frm-with-right-icon, -#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden) { - display: block; -} - -.frm-inline-modal .frm-nav-tabs, -#frm_adv_info .frm-nav-tabs { - margin: 5px 0 0; -} - -#frm_adv_info .frm-nav-tabs.frm-compact-nav { - padding-right: 0; - padding-left: 20px; -} - -.frm-nav-tabs li { - display: inline-block; - margin: 0; -} - -.frm-nav-tabs a { - color: var(--grey-700); - padding: 10px 1px; - margin: 0 9px; - border-bottom: 2px solid transparent; -} - -.frm_form_settings #frm_adv_info .frm-nav-tabs a { - padding: 5px 1px; - color: var(--grey-500); -} - -.frm-nav-tabs.frm-compact-nav a { - margin: 0 5px; -} - -.frm-nav-tabs a { - display: block; - opacity: 0.9; -} - -#frm_adv_info .frm-nav-tabs a { - color: var(--grey-700); -} - -.frm-nav-tabs a:hover, -.frm-nav-tabs .frm-tabs a { - color: var(--primary-500) !important; - border-color: var(--primary-500); -} - -.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a { - font-weight: 500; -} - -/** - * Components - Modal - Bulk Modal - */ -#frm-bulk-modal .howto, -#frm-bulk-modal h3 { - font-size: var(--text-sm); - font-weight: 400; - margin: 5px 0 10px; - color: var(--grey); -} - -#frm-bulk-modal h3 { - margin-left: 20px; -} - -/** - * Layout - Sidebar - */ -.frm-right-panel a.frm_add_logic_link, -.frm-right-panel h3 { - color: var(--grey-700); - font-size: var(--text-lg); - font-weight: 400; - margin: 0; -} -.frm-right-panel h3 i { - color: var(--grey-700); - float: right; - width: 16px; - cursor: pointer; -} - -.frm-settings-panel { - /* Right padding reduced to compensate for scrollbar width (~8px) */ - padding: var(--gap-sm); - padding-right: var(--gap-xs); -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter { - top: var(--gap-xs); - left: var(--gap-xs); - width: calc(100% - var(--gap-sm)); -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs { - padding: var(--gap-xs) var(--gap-xs) 0; -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div { - max-height: 0; - visibility: hidden; -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div.frm-active { - max-height: unset; - visibility: visible; -} -.frm-settings-panel .frm-embed-field-placeholder { - height: unset; -} -.frm-settings-panel .frm-embed-field-placeholder img { - height: 100px; -} -.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - gap: var(--gap-sm); - max-width: unset; - color: var(--grey-800); - padding: var(--gap-lg); - border: 0; - box-shadow: var(--box-shadow-sm); - margin: 1px; -} - -.frm-single-settings .frm-default-value-wrapper > p { - margin-bottom: 0; -} -.frm-single-settings .frm-default-value-wrapper + p:empty { - display: none; -} -.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p { - margin-top: 0 !important; -} -.frm-single-settings .frm_single_option[id^=frm_watch_lookup_] { - margin-bottom: var(--gap-xs) !important; -} -.frm-single-settings > h3:first-of-type { - position: relative; - background-color: transparent !important; - border-top: none; - padding-top: 0 !important; - margin-top: 0 !important; -} -.frm-single-settings > h3:first-of-type::after { - content: ""; - position: absolute; - left: var(--gap-sm); - right: var(--gap-sm); - bottom: 0; - height: 1px; - background-color: var(--sidebar-hover); -} - -.frm-flex-justify, -.frm-right-panel .frm-single-settings h3 { - display: flex; - justify-content: space-between; - align-items: center; -} - -/* right sidebar */ -#post-body-content + .frm-right-panel { - flex: 0 0 var(--medium-sidebar); - width: var(--medium-sidebar); - min-width: var(--medium-sidebar); - border-left: 1px solid var(--sidebar-hover); -} - -.frm-new-entry #post-body-content + .frm-right-panel, -.frm-new-entry .frm-right-panel { - background: none; - border: none; -} - -#post-body-content + .frm-right-panel h3 { - padding: 20px 20px 0; - font-size: 17px; -} -#post-body-content + .frm-right-panel .frm_with_icons:first-of-type h3 { - border: none; -} - -#frm-insert-fields h3 { - color: var(--grey); - font-size: 15px; - font-weight: 400; - border-top: none; - border-bottom: 1px solid var(--sidebar-hover); - margin: 0; - padding: 10px 10px 10px 25px; -} - -.frm_wrap #frm_adv_info ul.category-tabs { - margin: 0; - padding: 10px 0 9px; - font-size: 15px; - background: transparent; -} -.frm_wrap #frm_adv_info ul.category-tabs li { - padding: 10px; - background-color: transparent !important; -} -.frm_wrap #frm_adv_info ul.category-tabs li:first-child { - border: none; -} - -.frm_wrap #frm_adv_info .categorydiv div.tabs-panel { - border: none; - background: transparent; -} -.frm_wrap #frm-categorydiv { - border-right: none; -} - -#frm_adv_info #frm-conditionals { - padding-top: var(--gap-sm); -} - -#postbox-container-1 #taxonomy-linkcategory #frm-html-tags { - display: none; - max-height: none; -} -#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown { - position: relative; -} - -/** - * Components - Admin Footer - */ -.frm-white-body #footer-upgrade { - display: none; -} - -.frm-admin-footer-links, -.frm-admin-footer-links-nav, -.frm-admin-footer-links-socials { - display: flex; - justify-content: center; -} - -.frm-admin-footer-links { - gap: var(--gap-2xs); - flex-direction: column; - text-align: center; - padding: var(--gap-xl) 0 var(--gap-lg); - font-size: var(--text-xs); - color: var(--grey-400); -} - -body.frm-hidden-overflow { - height: 100%; - overflow: hidden; -} - -.frm-admin-footer-links-nav { - gap: var(--gap-2xs); - margin-bottom: var(--gap-xs); -} - -.frm-admin-footer-links-socials { - gap: var(--gap-xs); -} - -.frm-admin-footer-links-socials a { - color: var(--grey-400); -} - -/** - * Layout - List Entry Page - */ -.frm_list_entry_page h2 { - float: left; -} - -.frm_list_entry_page h2 + .error { - clear: both; -} - -/** - * Layout - Sidebar - Elements - */ -.frm_sidebar select { - width: 100%; - margin-left: 0; - margin-right: 0; -} - -.frm_sidebar #search-submit { - float: right; -} - -/** - * Layout - Single Entry Page - */ -.frm_single_entry_page #submitdiv { - margin: 0; -} - -.frm_single_entry_page .hndle a { - font-size: 13px; -} - -/** - * Components - Publish Actions - */ -.frm-right-panel #publishing-action { - float: none; -} - -.frm-right-panel #major-publishing-actions { - border-top: none; - height: 32px; - background: transparent; -} - -#major-publishing-actions .frm_submit_form { - float: right; - margin-left: 5px; -} - -/** - * Components - Button - */ -.frm_orange_button, -.frm_reverse_button { - font-size: 12px; - border: 1px solid var(--orange); - color: var(--orange); - font-weight: 600; - padding: 1px 4px; - border-radius: 4px; - background: transparent; -} - -.frm_reverse_button:hover, -.frm_reverse_button:active, -.frm_reverse_button:focus { - color: #fff; - background: var(--orange); - border: 1px solid var(--orange); -} - -.frm_reverse_button { - font-size: 1em; - transition: all 0.2s ease; -} - -.frm-button-primary, -.wp-core-ui .button-primary.frm-button-primary, -.wp-core-ui .button.frm-button-primary, -.frm-button-secondary, -.wp-core-ui .button-secondary.frm-button-secondary, -.wp-core-ui .button.frm-button-secondary, -.frm-white-body .frm-search .button, -.frm-white-body .search-box .button, -.frm-white-body .tablenav .button, -.frm_orange_button, -.toplevel_page_formidable #frm_upgrade_modal .button-primary, -.wp-core-ui.frm-white-body .button-primary, -.wp-core-ui.frm-white-body .button-secondary, -.frm-white-body .button-primary, -.frm-white-body .button-secondary, -#frm-form-button button, -.frm-form-button button, -.frm-preview-buttons button, -.frm-button-red, -.frm-button-tertiary { - text-shadow: none; - box-shadow: none; - border-radius: 30px; - border: 1px solid var(--primary-500); - font-size: var(--text-sm); - transition: all 0.2s ease; - padding: 7px 16px; - height: auto; - min-height: 28px; - outline: none; - line-height: var(--leading); - box-sizing: border-box; - font-weight: 500; - margin-bottom: 0; - display: inline-block; -} - -.frm-button-primary.frm-sharp, -.frm-button-secondary.frm-sharp { - border-radius: 12px !important; -} - -#wpcontent .frm-button-secondary.frm-button-gradient { - position: relative; - border-color: transparent !important; - background-clip: padding-box !important; -} -#wpcontent .frm-button-secondary.frm-button-gradient::before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - margin: -1px; - border-radius: inherit; - background: linear-gradient(90deg, #129EFD 0%, #A334FD 100%); - transition: opacity 150ms ease-out; -} -#wpcontent .frm-button-secondary:hover::before { - opacity: 0.5; -} - -.no-js.wp-core-ui .frm-search .button.hide-if-no-js, -.js.wp-core-ui .frm-search .button.hide-if-js { - display: none; -} - -.frm-button-tertiary { - border-color: transparent; - color: var(--primary-500); -} - -.frm-button-tertiary:focus { - outline: none; -} - -.frm-button-tertiary.frm_loading_button::before { - border-right-color: var(--grey); - border-bottom-color: var(--grey); -} - -.frm-button-red, -.frm-button-red:focus { - --primary-color: var(--error-500); - --primary-500: var(--error-500); - --primary-700: var(--error-700); -} - -.frm-button-red:not(.frm-button-tertiary), -.frm-button-red:not(.frm-button-tertiary):focus { - color: #fff !important; -} - -.frm-white-body h2 .button, -.post-type-frm_display h2 .frm-button-primary, -.frm-white-body .tablenav .button, -.frm-button-primary.frm-button-sm, -.frm-button-secondary.frm-button-sm, -.frm-button-tertiary.frm-button-sm, -.frm-button-red.frm-button-sm { - padding: 4px 12px !important; - font-size: var(--text-xs) !important; -} - -.frm_no_style_button { - background: transparent; -} - -.frm-with-icon { - display: flex; - gap: var(--gap-xs); - align-items: center; -} - -.frm-with-icon svg { - opacity: 0.65; /* Get close to grey-500 without overriding hover colors */ -} - -.frm-with-icon.button svg { - height: var(--text-sm); - width: var(--text-sm); -} - -.frm-with-icon.frm-button-sm svg { - height: var(--text-xs); - width: var(--text-xs); -} - -.frm-white-body .button.add_media { - /* Media buttons above RTE */ - padding-left: 12px !important; - padding-right: 12px !important; - font-size: var(--text-xs); - border-radius: var(--border-radius); -} - -.wp-core-ui.frm-white-body #post-query-submit.button, -.wp-core-ui.frm-white-body .button.tablenav-pages-navspan, -.wp-core-ui.frm-white-body .button.first-page, -.wp-core-ui.frm-white-body .button.prev-page, -.wp-core-ui.frm-white-body .button.next-page, -.wp-core-ui.frm-white-body .button.last-page, -.wp-core-ui.frm-white-body .button.action { - background-color: transparent; - border-color: var(--grey-300); - color: var(--grey-700); - border-radius: var(--border-radius); -} - -.post-type-frm_display.wp-core-ui .button-primary, -.frm-button-primary, -.wp-core-ui .button-primary.frm-button-primary, -.frm_single_entry_page #frm-publishing .button-primary { - background-color: var(--primary-500) !important; - color: #fff !important; -} - -.frm-button-primary.frm_large, -.frm-button-secondary.frm_large { - height: auto !important; - padding: 12px 16px !important; -} - -.frm-button-secondary.frm-small, -.frm-button-primary.frm-small { - font-size: var(--text-xs) !important; - height: auto !important; - padding: var(--gap-2xs) 12px !important; -} - -.frm-button-primary i::before { - color: #fff; -} - -.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover, -.frm-button-primary:not([disabled]):hover { - background: var(--primary-700) !important; - border-color: var(--primary-700) !important; -} - -.wp-core-ui .button-primary.frm-button-primary:active { - vertical-align: inherit; -} - -.frm-white-body #search-submit, -#frm-form-button .frm_button_submit, -.frm-form-button .frm_button_submit, -.frm-white-body .frm-preview-buttons button, -.frm-white-body .button:not(.frm-button-primary), -.wp-core-ui.frm-white-body .button-secondary, -.wp-core-ui .button-secondary.frm-button-secondary, -.wp-core-ui .button.frm-button-secondary, -.frm-white-body .frm-button-secondary, -.frm-button-secondary { - color: var(--grey-800); - border-color: var(--grey-300); - background-color: #fff; -} - -#wp-content-media-buttons button, -#wp-content-media-buttons a.button { - border-color: var(--grey-300); -} - -.frm_orange_button { - border-color: #da791d !important; - background: var(--orange); - color: #fff; -} - -.frm-white-body .button:not(.frm-button-primary):focus, -.frm-white-body .button:not(.frm-button-primary):active, -.frm-white-body .frm-button-secondary:hover, -.wp-core-ui.frm-white-body .frm-button-secondary:hover, -.wp-core-ui.frm-white-body .button-secondary:hover, -.wp-core-ui.frm-white-body .button-secondary:focus, -.wp-core-ui.frm-white-body .tablenav .button:hover, -.frm_wrap .preview > .button:hover, -.frm-white-body #search-submit:hover { - border-color: var(--grey-300) !important; - color: var(--grey-800); - background: var(--grey-50) !important; - box-shadow: none !important; - outline: none !important; -} - -.frm-button-primary .frmsvg { - color: #fff; -} - -.frm_wrap .preview i { - font-size: inherit; -} - -.frm-white-body .frm-button-primary:focus, -.frm-white-body .frm-button-primary:active, -#frm-addons-page .button-primary:focus, -#form_global_settings .button-primary:focus, -#frm_upgrade_modal .button:focus { - border-color: var(--primary-700) !important; - background-color: var(--primary-700) !important; - box-shadow: none !important; - outline: none !important; -} - -.frm_wrap .preview > .button:focus, -.frm_orange_button:hover, -.frm_orange_button:focus, -.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover, -.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus, -.toplevel_page_formidable .frm_wrap button.button-primary:hover, -.toplevel_page_formidable .frm_wrap button.button-primary:focus { - outline: none; -} - -.frm_orange_button:hover, -.frm_orange_button:focus { - border-color: var(--orange) !important; - background: transparent; - color: var(--orange); - opacity: 1; -} - -.major-publishing-actions.frm_create_form_header { - padding: 8px 0; -} - -.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner { - font-size: 15px; - background: transparent; -} - -.frm-menu-boxes .frm_blank_form_text { - padding-bottom: 26px; -} - -input.frm_insert_in_template { - font-size: 10px; - width: 98%; - font-weight: 400; -} - -.frm-dismissible a.dismiss:focus { - box-shadow: none; -} - -.frm-dismissible a.dismiss { - top: 10px; - right: 10px; - position: absolute; -} - -.frm-dismissible a.dismiss svg { - color: var(--grey-800); -} - -/** - * Components - Review Request - */ -.wp-admin .frm-review-notice { - position: fixed !important; - bottom: var(--gap-2xl); - right: var(--gap-lg); - width: 380px; - text-align: center; - border-color: var(--grey-100); - padding: var(--gap-lg); - border-radius: var(--medium-radius); - box-shadow: var(--box-shadow-lg) !important; - z-index: 999; - box-sizing: border-box; - --gap-sm: 16px; - --gap-md: 24px; - --gap-2xl: 48px; -} - -.wp-admin .frm-review-notice * { - box-sizing: border-box; -} - -.frm-review-notice-icon { - display: inline-flex; - margin-bottom: var(--gap-sm); -} - -.wp-admin .frm-review-notice-title { - font-weight: 600; - margin-top: 0; - margin-bottom: var(--gap-xs); -} - -.wp-admin .frm-review-notice-text { - margin-top: 0; - margin-bottom: var(--gap-md); -} - -.frm-review-notice-signature { - text-align: left; - margin: var(--gap-md) 0; -} - -.frm-review-notice-signature img { - width: 40px; - height: 40px; - padding: 3px; - box-shadow: var(--box-shadow-md); - border-radius: 100%; -} - -#wpwrap .frm-dismiss-review-notice { - top: 16px; - right: 19px; -} - -.frm-review-notice #frmapi-feedback [class^=frm__] { - display: none; -} - -.frm-review-notice #frmapi-feedback input, -.frm-review-notice #frmapi-feedback textarea { - border-color: var(--grey-300); - border-radius: var(--small-radius); -} - -.frm-review-notice #frmapi-feedback input { - min-height: unset; - max-height: 36px; -} - -.frm-review-notice #frmapi-feedback textarea { - max-height: 80px; - padding-top: var(--gap-xs); -} - -.frm-review-notice #frmapi-feedback .frm_message { - color: var(--success-900); - background-color: var(--success-25); - border: 1px solid var(--success-200); - padding: var(--gap-sm) var(--gap-md); - margin: 0; -} - -.frm-review-notice #frmapi-feedback .frm_message p { - margin: 0; -} - -.frm-review-notice #frmapi-feedback .frm_button_submit { - background-color: var(--primary-500); - border-color: var(--primary-500) !important; - cursor: pointer; -} - -.frm-review-notice #frmapi-feedback .frm_button_submit:hover, -.frm-review-notice #frmapi-feedback .frm_button_submit:focus { - color: #fff; - background-color: var(--primary-700); - border-color: var(--primary-700) !important; -} - -.frm-review-notice .frm_error, -.frm-review-notice label { - color: #444; - text-align: left; -} - -.frm-review-notice label { - font-size: var(--text-sm); -} - -.frm-floating-success-message { - position: fixed; - z-index: 999; - border-radius: 4px; - right: 10px; - bottom: 10px; -} - -/** - * Utility Classes - * - * Reusable helper classes for spacing, typography, effects, etc. - */ -/** - * Utilities - Box Shadow - */ -.frm-box-shadow-xxl { - box-shadow: var(--box-shadow-xxl) !important; -} - -/** - * Utilities - Text Color - */ -.frm-text-primary-500 { - color: var(--primary-500); -} - -.frm-text-grey-400 { - color: var(--grey-400) !important; -} - -.frm-text-grey-500 { - color: var(--grey-500); -} - -.frm-text-grey-600 { - color: var(--grey-600) !important; -} - -.frm-text-grey-700 { - color: var(--grey-700); -} - -.frm-text-grey-900 { - color: var(--grey-900); -} - -.frm-text-success-500 { - color: var(--success-500); -} - -.frm-text-warning-500 { - color: var(--warning-500); -} - -/** - * Utilities - Margin - */ -.frm_no_margin, -.frm-m-0 { - margin: 0 !important; -} - -.frm-m-12 { - margin: var(--gap-2xl); -} - -.frm-m-2xs { - margin: var(--gap-2xs) !important; -} - -.frm_no_top_margin, -.frm-mt-0 { - margin-top: 0 !important; -} - -.frm-mt-2xs { - margin-top: var(--gap-2xs) !important; -} - -.-frm-mt-2xs { - margin-top: calc(-1 * var(--gap-2xs)) !important; -} - -.frm-mt-xs { - margin-top: var(--gap-xs) !important; -} - -.frm-mt-sm { - margin-top: var(--gap-sm) !important; -} - -.frm-mt-md { - margin-top: var(--gap-md) !important; -} - -.frm-mt-lg { - margin-top: var(--gap-lg) !important; -} - -.frm-mt-2xl { - margin-top: var(--gap-2xl) !important; -} - -.frm-mt-auto { - margin-top: auto !important; -} - -.frm_no_bottom_margin, -.frm-mb-0 { - margin-bottom: 0 !important; -} - -.frm-mb-2xs { - margin-bottom: var(--gap-2xs) !important; -} - -.frm-mb-6 { - margin-bottom: 6px !important; -} - -.frm-mb-sm { - margin-bottom: var(--gap-sm) !important; -} - -.frm-mb-12 { - margin-bottom: 12px !important; -} - -.frm-mb-xs { - margin-bottom: var(--gap-xs) !important; -} - -.frm-mb-md { - margin-bottom: var(--gap-md) !important; -} - -.frm-mb-lg { - margin-bottom: var(--gap-lg) !important; -} - -.frm-ml-2xs { - margin-left: var(--gap-2xs) !important; -} - -.frm-ml-xs { - margin-left: var(--gap-xs) !important; -} - -.frm-ml-auto { - margin-left: auto; -} - -.-frm-ml-2xs { - margin-left: calc(-1 * var(--gap-2xs)) !important; -} - -.frm-mr-auto { - margin-right: auto; -} - -.frm-force-mr-auto { - margin-right: auto !important; -} - -.frm-mr-2xs { - margin-right: var(--gap-2xs) !important; -} - -.frm-mr-xs { - margin-right: var(--gap-xs) !important; -} - -.frm-mr-2 { - margin-right: 2px !important; -} - -.frm-mx-0 { - margin-left: 0 !important; - margin-right: 0 !important; -} - -.frm-mx-xs { - margin-left: var(--gap-xs) !important; - margin-right: var(--gap-xs) !important; -} - -.frm-mx-sm { - margin-left: var(--gap-sm) !important; - margin-right: var(--gap-sm) !important; -} - -.frm-my-sm { - margin-top: var(--gap-sm) !important; - margin-bottom: var(--gap-sm) !important; -} - -.frm-my-xs { - margin-top: var(--gap-xs) !important; - margin-bottom: var(--gap-xs) !important; -} - -/** - * Utilities - Padding - */ -.frm-p-0 { - padding: 0 !important; -} - -.frm-p-1, -.frm-p-2xs { - padding: var(--gap-2xs); -} - -.frm-p-sm, -.frm-p-4 { - padding: var(--gap-sm) !important; -} - -.frm-p-sm { - padding: var(--gap-sm) !important; -} - -.frm-p-6, -.frm-p-md { - padding: var(--gap-md) !important; -} - -.frm-p-xl { - padding: var(--gap-xl) !important; -} - -.frm-px-0 { - padding-left: 0 !important; - padding-right: 0 !important; -} - -.frm-py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.frm-py-2xs { - padding-top: var(--gap-2xs) !important; - padding-bottom: var(--gap-2xs) !important; -} - -.frm-py-sm { - padding-top: var(--gap-sm) !important; - padding-bottom: var(--gap-sm) !important; -} - -.frm-pt-0 { - padding-top: 0 !important; -} - -.frm-pt-2xs { - padding-top: var(--gap-2xs) !important; -} - -.frm-pt-xs { - padding-top: var(--gap-xs) !important; -} - -.frm-pt-sm { - padding-top: var(--gap-sm) !important; -} - -.frm-pt-md { - padding-top: var(--gap-md) !important; -} - -.frm-pt-xl { - padding-top: var(--gap-xl) !important; -} - -.frm-pr-lg { - padding-right: var(--gap-lg) !important; -} - -.frm-pb-md { - padding-bottom: var(--gap-md) !important; -} - -.frm-pb-sm { - padding-bottom: var(--gap-sm) !important; -} - -.frm-pb-xs { - padding-bottom: var(--gap-xs) !important; -} - -.frm-pb-2xs { - padding-bottom: var(--gap-2xs) !important; -} - -.frm-pb-0 { - padding-bottom: 0 !important; -} - -.frm-px-sm { - padding-right: var(--gap-sm) !important; - padding-left: var(--gap-sm) !important; -} - -.frm-px-xs { - padding-right: var(--gap-xs) !important; - padding-left: var(--gap-xs) !important; -} - -.frm-px-md { - padding-right: var(--gap-md) !important; - padding-left: var(--gap-md) !important; -} - -/** - * Utilities - Font Size - */ -.frm-text-xs { - font-size: var(--text-xs) !important; -} - -.frm-text-sm { - font-size: var(--text-sm) !important; -} - -.frm-text-md { - font-size: var(--text-md) !important; -} - -.frm-text-lg { - font-size: var(--text-lg) !important; -} - -.frm-text-xl { - font-size: var(--text-xl) !important; -} - -.frm-leading-none { - line-height: 1; -} - -.frm-italic { - font-style: italic; -} - -.frm-no-italic { - font-style: normal; -} - -/** - * Utilities - Text Transform - */ -.frm-capitalize { - text-transform: capitalize; -} - -/** - * Utilities - Font Weight - */ -.frm-font-normal { - font-weight: 400 !important; -} - -.frm-font-medium { - font-weight: 500 !important; -} - -.frm-font-semibold { - font-weight: 600 !important; -} - -/** - * Utilities - Text Overflow - */ -.frm-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -[class*=frm-line-clamp-] { - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; -} - -.frm-line-clamp-2 { - -webkit-line-clamp: 2; -} - -.frm-white-space-nowrap { - white-space: nowrap; -} - -/** - * Utilities - Border Radius - */ -.frm-rounded-sm { - border-radius: var(--small-radius) !important; -} - -.frm-rounded-6 { - border-radius: 6px !important; -} - -/** - * Utilities - Width - */ -.frm-w-auto { - width: auto !important; -} - -.frm-w-full { - width: 100% !important; -} - -.frm-w-half { - width: 50% !important; -} - -.frm-w-fit { - width: fit-content !important; -} - -.frm-max-w-fit { - max-width: fit-content; -} - -.frm-h-auto { - height: auto !important; -} - -/** - * Utilities - Display - */ -#wpwrap .frm-force-hidden { - display: none !important; -} - -.frm_block, -.frm-block { - display: block; -} - -.frm_inline { - display: inline; -} - -.frm-force-inline { - display: inline !important; -} - -.frm_inline_block { - display: inline-block !important; -} - -/** - * Utilities - Flex - */ -.frm-inline-flex, -#wpbody-content .frm-inline-flex { - display: inline-flex; -} - -.frm-flex { - display: flex; -} - -.frm-force-flex { - display: flex !important; -} - -.frm_hidden, -.js .frm-hide-js { - display: none; -} - -.frm-flex-box { - display: flex; - gap: var(--gap-sm); -} - -.frm-flex-col { - display: flex; - flex-direction: column; -} - -.frm-flex-full { - flex: 1; -} - -.frm-force-flex-center, .frm-flex-center { - justify-content: center; - align-items: center; -} - -.frm-flex-center { - display: flex; -} - -.frm-force-flex-center { - display: flex !important; -} - -.frm-shrink-0 { - flex-shrink: 0; -} - -.frm-gap-0 { - gap: 0 !important; -} - -.frm-gap-2xs { - gap: var(--gap-2xs); -} - -.frm-gap-xs { - gap: var(--gap-xs); -} - -.frm-gap-sm { - gap: var(--gap-sm); -} - -.frm-gap-md { - gap: var(--gap-md); -} - -.frm-gap-xl { - gap: var(--gap-xl); -} - -.frm-justify-start { - justify-content: start !important; -} - -.frm-justify-center { - justify-content: center !important; -} - -.frm-justify-between { - justify-content: space-between; -} - -.frm-justify-end { - justify-content: end; -} - -.frm-items-center { - align-items: center; -} - -.frm-items-stretch { - align-items: stretch; -} - -#wpbody-content .frm-flex-wrap { - flex-wrap: wrap; -} - -.frm-grow { - flex-grow: 1; -} - -.frm-order-first { - order: -9999; -} - -.frm-order-last { - order: 9999; -} - -.frm-order-none { - order: 0; -} - -.frm-h-stack-sm, .frm-h-stack-xs, .frm-h-stack { - display: flex !important; - align-items: center; -} -.frm-h-stack-sm > input[type=checkbox], .frm-h-stack-xs > input[type=checkbox], .frm-h-stack > input[type=checkbox], -.frm-h-stack-sm > input[type=radio], -.frm-h-stack-xs > input[type=radio], -.frm-h-stack > input[type=radio] { - margin: 0 !important; -} - -.frm-h-stack { - gap: var(--gap-2xs); -} - -.frm-h-stack-xs { - gap: var(--gap-xs); -} - -.frm-h-stack-sm { - gap: var(--gap-sm); -} - -/** - * Utilities - Transition - */ -.frm-transition-ease { - transition: all 0.2s ease; -} - -/** - * Utilities - Visibility - */ -.frm_invisible { - visibility: hidden; - transition: all 0.2s ease; -} - -.frm_disabled { - opacity: 0.5; - cursor: default; - pointer-events: none; -} -.frm_disabled .frm-show-inline-modal { - pointer-events: none !important; -} - -/** - * Utilities - Float - */ -.frm_no_float { - float: none; -} - -/** - * Utilities - Text Align - */ -.frm-text-right { - text-align: right; -} - -/** - * Utilities - Border - */ -.frm-border-b { - border-bottom: 1px solid var(--grey-300); -} - -.frm-no-border { - border: none !important; -} - -.frm-hr { - display: block; - height: 1px; - background-color: var(--grey-200); - margin: var(--gap-xs) 0; -} - -/** - * Utilities - Opacity - */ -.frm-opacity-100 { - opacity: 1; -} - -/** - * Utilities - Z-index Helpers - */ -.frm-on-bottom { - z-index: -1; -} - -/** - * Utilities - Transform - */ -.frm-rotate-90 { - transform: rotate(90deg); -} - -/** - * Utilities - Cursor - */ -.frm-cursor-pointer { - cursor: pointer; -} - -/** - * Utilities - Vertical Align - */ -.frm-align-baseline { - vertical-align: baseline !important; -} - -/** - * Utilities - Generic Classes - */ -.frm-fields p > label.frm_hidden, -#wpbody-content label.frm_hidden, -.frm-lookup-modal .dismiss, -.frm-right-panel .inside a.frm_hidden, -#form_global_settings .frm_hidden, -ul.frm_form_nav > li.frm_hidden, -a.frm_hidden, -.button.frm_hidden, -.wp-core-ui .button.frm_hidden { - display: none; -} - -.postbox .inside > p.frm_no_bottom_margin:last-child { - margin-bottom: 0 !important; -} - -.frm_no_section_fields.frm_block { - display: block; -} - -.actions.frm_visible_overflow { - overflow: visible !important; -} - -.frm_full_opacity, -.frm_submit .frm_full_opacity, -.frm_submit .frm-opacity-100 { - opacity: 1; -} - -.frm-dropdown-menu.frm-on-top { - z-index: 99999; -} - -/** - * Utilities - Helper Classes - */ -.frm-vertical-line { - display: inline-block; - width: 1px; - height: 12px; - background-color: var(--grey-300); -} - -.frm-admin-full-screen #adminmenumain, -.frm-admin-full-screen #wpadminbar, -.frm-admin-full-screen #adminmenuback, -.frm-admin-full-screen #adminmenuwrap, -.frm-admin-full-screen #wpfooter { - display: none; -} - -.frm-admin-full-screen #wpcontent, -.frm-admin-full-screen.auto-fold #wpcontent { - margin: 0; - padding: 0; -} - -.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content { - padding: 0; -} - -/** - * Forms & UI Components - * - * Form elements, inputs, fields, modals and interactive components - */ -/** - * Components - General Form Styles - */ -.frm_forms.with_frm_style { - max-width: 100%; -} - -.post-type-frm_display .wrap > .subsubsub, -.post-type-frm_display .wrap > .icl_subsubsub, -.frm_form_settings > p { - margin: 6px var(--gap-md); - padding: 0; -} - -.frm-entry-container { - margin: 0 40px 40px; - padding: 0; -} - -#form_reports_page .frm-inner-content { - width: calc(100% - 40px); - max-width: 900px; - margin: 20px auto; - padding: 20px; -} - -.frm_inner_field_container > .frm_form_fields { - clear: both; -} - -.post-type-frm_display h2, -.frm_wrap h2 { - margin-top: 0 !important; - font-size: var(--text-lg); - line-height: var(--leading); -} - -.post-type-frm_display .wrap > h2:first-child, -.frm_wrap .wrap > h2:first-child { - padding-top: 0; - margin-top: 0 !important; - font-size: var(--text-lg); -} - -#frm_form_editor_container { - position: relative; - margin-top: 28px; -} - -/** - * Components - Form Field - */ -.form-field p { - /* for conflicts */ - background: none; - border: none; -} - -.form-field label.frm_primary_label { - display: block; - float: none; - width: auto; -} - -#frm_view_editor_left label, -#frm_view_editor_left .frm_primary_label, -.frm-dialog .frm-sub-label, -.frm-dialog label, -.dropdown .frm_primary_label, -.accordion-container label, -.frm-fields td > label, -.frm-fields td > div > label, -.frm_form_field > label:first-child, -.frm-fields p > label, -.frm_on_submit_type > label, -.post-type-frm_display .frm_form_field > label, -#new_fields .frm_primary_label, -#form_global_settings .frm_primary_label, -#frm_form_editor_container .frm_primary_label, -#permissions_settings_settings .frm_primary_label { - color: var(--grey-700); - margin: 0 0 6px; - padding: 0; - width: auto; - font-size: var(--text-sm); - display: block; - line-height: var(--leading); -} - -#frm_form_editor_container #frm-show-fields .frm_primary_label { - min-height: 21px; -} - -.frm-fields td input + label { - display: inline; -} - -#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label, -#frm_form_editor_container .edit_field_type_break .frm_primary_label { - display: none; -} - -form .frm_primary_label input { - font-size: 12px; -} - -.with_frm_style form .form-field { - margin-bottom: 20px; -} - -#frm_builder_page .with_frm_style form .frm_combo_inputs_container > .form-field { - margin-bottom: 0; -} - -.frm_description, -.with_frm_style form div.description, -.frm_error, -.with_frm_style form div.description textarea { - padding: 0; - font-size: 11px; -} - -.with_frm_style .description { - color: inherit; -} - -#frm_form_editor_container .divider_section_only .frm_primary_label { - display: flex; - align-items: center; - gap: var(--gap-xs); - font-size: 20px; -} - -#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label { - padding: 0; -} - -/** - * Token Input Component - * - * Displays space-separated values as selectable tokens - */ -.frm-token-container { - position: relative; - display: block; - direction: ltr; -} -.frm-token-container .frm-tokens { - position: absolute; - top: 0; - left: 0; - max-width: calc(100% - var(--gap-xl)); - display: flex; - align-items: center; - flex-wrap: wrap; - gap: var(--gap-2xs); - padding: 6px var(--gap-xs); - margin: 0; -} -.frm-token-container .frm-token { - position: relative; - display: flex; - align-items: center; - gap: var(--gap-xs); - min-height: 24px; - height: auto; - color: var(--grey-900); - background: var(--grey-100); - border-radius: 4px; - padding: 0 var(--gap-xs); - font-size: var(--text-md); - margin: 0; - z-index: 2; -} -.frm-token-container .frm-token .frm-token-value { - line-height: var(--leading); - white-space: normal; - word-break: break-word; -} -.frm-token-container .frm-token .frm-token-remove { - display: flex; - flex-shrink: 0; - cursor: pointer; -} -.frm-token-container .frm-token .frm-token-remove .frmsvg { - color: var(--grey-900); - position: static; - width: 12px; - height: 12px; - padding: 0; -} -.frm-token-container .frm-token .frm-token-remove:hover .frmsvg { - color: var(--error-500); -} -.frm-token-container .frm-show-inline-modal { - z-index: 3 !important; -} -.frm-token-container .frm-token-proxy-input { - position: relative; - z-index: 1; - padding-right: var(--gap-xl) !important; -} - -/** - * Components - Field Loading - */ -form .form-field.frm_field_loading { - margin-bottom: 0; - min-height: 0; - padding: 0; - text-align: center; -} - -.frm_sorting > .frm_field_loading .frm_visible_spinner.frm-wait { - margin-bottom: 10px; -} - -.frm_sorting > .frm_field_loading ~ .frm_field_loading .frm_visible_spinner.frm-wait { - margin-bottom: 0; - display: none; -} - -/** - * Components - Form Error - */ -.frm_description, -.with_frm_style form div.description, -.frm_error { - margin: 0; -} - -.frm_error { - color: #F04438; -} - -form .frm_blank_field input, -form .frm_blank_field textarea, -form .frm_blank_field select, -form .frm_blank_field .frm-g-recaptcha iframe, -form .frm_blank_field .g-recaptcha iframe { - border-color: #F04438; -} - -form .frm_blank_field label { - color: #F04438; -} - -.frm_required { - color: #F04438; -} - -/** - * Components - MCE Styles - */ -.with_frm_style .wp-editor-container textarea, -.postbox .wp-editor-container textarea, -.frm_remove_border { - border: none; -} - -.with_frm_style .mceIframeContainer, -.postbox .mceIframeContainer { - background-color: #fff; -} - -/** - * Components - License - */ -.frm_pro_license_msg { - clear: left; - margin-top: 10px; -} - -.frm-license-input { - position: relative; -} - -.frm-license-input span { - font-size: var(--text-sm); -} - -.frm-license-input .frmsvg { - width: 20px; - height: 20px; - margin-left: 5px; - vertical-align: text-top; -} - -.frm-license-input .frmsvg, -.frm-license-input span, -.frm-license-input i { - color: rgb(0, 131, 26); -} - -/** - * Components - Upgrade to Pro - */ -.upgrade_to_pro { - padding: 10px 25px 25px; - max-width: 700px; - margin: 20px auto !important; -} - -.upgrade_to_pro .error { - display: none; -} - -/** - * Components - Message Styles - */ -.toplevel_page_formidable #wpbody-content > .error { - margin: 1px; - padding: 5px 12px; -} - -.frm_error_style, -.frm_warning_style, -.frm_note_style2, -.frm_note_style, -.frm_message, -#post-body-content .frm_updated_message, -div.frm_updated_message { - border-radius: var(--small-radius); - background-color: #D5F2DC; - color: #1E561F; - padding: var(--gap-sm) var(--gap-md); - font-size: var(--text-sm); - margin: var(--gap-sm) 0; - text-align: left; -} - -.frm_note_style2 { - background: linear-gradient(90deg, #e9effa, #fcf6fe) padding-box, linear-gradient(90deg, #1961D5, #E8ABEF) border-box; - border: 1px solid transparent; -} - -#frm_top_bar + .wrap > .frm_updated_message, #frm_top_bar + .wrap > .frm_warning_style { - display: inline-block; - width: 100%; - box-sizing: border-box; -} - -#post-body-content > .frm_updated_message { - margin: 5px 65px; -} - -#form_global_settings #post-body-content > .frm_updated_message, -#form_global_settings #post-body-content > .frm_warning_style { - margin: 5px 25px; -} - -.frm_error_style { - color: #973937; - background-color: #EBCCCC; - clear: both; -} - -.frm_error_style a { - text-decoration: underline; - font-weight: 600; -} - -.frm_error_style svg { - opacity: 0.7; -} - -.frm_warning_style { - color: #7A4D05; - background-color: #FFF2D2; -} - -.frm_warning_heading { - font-weight: 700; - margin-bottom: 4px; -} - -/* Warning message dismiss */ -.frm_warning_style { - position: relative; - padding-right: calc(var(--gap-md) + 15px); -} - -body.rtl .frm_warning_style { - padding-right: var(--gap-md); - padding-left: calc(var(--gap-md) + 15px); -} - -.frm-warning-dismiss { - position: absolute; - top: 10px; - right: 10px; - display: flex; - cursor: pointer; - transition: opacity 0.2s ease-out; -} - -body.rtl .frm-warning-dismiss { - left: 10px; - right: auto; -} - -.frm-warning-dismiss:hover { - opacity: 0.8; -} - -.frm-warning-dismiss.frmsvg, -.frm-warning-dismiss.frmsvg svg { - width: 15px; - height: 15px; -} - -.frm_note_style { - background: rgba(188, 224, 253, 0.23); - color: var(--grey-700); -} - -.frm-banner-alert { - text-align: left; - margin: 0; - border-radius: 0; - padding: 10px 0 10px 40px; -} - -.frm-banner-alert a { - color: var(--primary-500); - font-weight: 400; - text-decoration: none; -} - -.frm_updated_message ul, -.frm_updated_message li, -.frm_warning_style ul, -.frm_warning_style li, -.frm_error_style ul, -.frm_error_style li { - margin: 0; -} - -.frm-inline-message { - border: 1px solid var(--primary-700); - border-radius: var(--small-radius); - color: var(--primary-700); - background: #fff; - text-align: center; - padding: 20px; - font-size: var(--text-sm); - line-height: var(--leading); -} - -.frm-inline-message a { - text-decoration: underline; - font-weight: 600; - color: var(--primary-700); -} - -.frm_pro_heading span { - margin-top: 10px; -} - -.frm_pro_heading .alignright { - text-align: right; -} - -.frm-yes { - color: var(--green); - font-size: var(--text-xl); -} - -.frm-nope { - color: var(--grey-400); - font-size: var(--text-xl); -} - -/** - * Components - Upgrade Bar Elements - */ -.upgrade_to_pro a { - color: var(--orange); -} - -.upgrade_to_pro table .frmsvg { - height: var(--text-xl); - width: var(--text-xl); -} - -.upgrade_to_pro table.widefat { - background-color: #fff; - border-collapse: collapse; -} - -.frm-white-body .upgrade_to_pro table th, -.upgrade_to_pro table td { - padding: 10px 15px; - border: 1px solid var(--grey-300); - line-height: var(--leading); - font-size: var(--text-sm); -} - -.upgrade_to_pro table th.frmcenter { - text-align: center; -} - -/** - * Components - Table Styles - */ -.widefat th.frm_table_break { - background-color: var(--sidebar-color); -} - -/** - * Base - Howto - */ -h2.frm-h2 + .howto { - color: var(--medium-grey); - max-width: 850px; - margin: 5px 0 20px; -} - -/** - * Components - Card - */ -.frm-card { - width: 100%; - border-radius: 10px; - border: 1px solid var(--grey-300); - opacity: 1; - transition: opacity 1s; -} - -.frm-card-box { - max-width: 524px; - background-color: #fff; - border-radius: var(--medium-radius); - padding: var(--gap-xl); - border: 1px solid var(--grey-200); - box-shadow: var(--box-shadow-md); -} - -.frm-card-box.frm-has-progress-bar { - position: relative; - overflow: hidden; - border-radius: var(--medium-radius); -} - -.frm-card-box-progress-bar { - position: absolute; - top: 0; - left: 0; - right: 0; - height: var(--gap-xs); - background-color: var(--primary-25); -} - -.frm-card-box-progress-bar > span { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 33%; - background-color: var(--primary-500); -} - -.frm-card-box-header { - display: flex; - justify-content: center; - margin-bottom: var(--gap-sm); -} - -.frm-card-box.frm-has-progress-bar .frm-card-box-header { - margin-top: var(--gap-xs); -} - -.frm-card-box-content > :last-child { - margin-bottom: 0; -} - -.frm-card-box-footer { - display: flex; - justify-content: end; - gap: var(--gap-sm); - margin-top: var(--gap-lg); -} - -.frm-card-box-title { - font-size: var(--text-xl) !important; - font-weight: 600 !important; - margin-bottom: var(--gap-xs); -} - -.frm-card-box-text { - font-size: var(--text-md) !important; - color: var(--grey-600) !important; - margin-top: 0 !important; -} - -/** - * Utilities - Fade - */ -.frm-fade { - opacity: 0; - transition: all 1s; -} - -/** - * Components - Add-on Tiles - */ -.frm-addons .frm-card.frm-addon-not-installed { - position: relative; -} - -.frm-addons .plugin-card-top { - min-height: 155px; - padding-top: var(--gap-lg); - overflow: hidden; -} - -.frm-addons .plugin-card-top h2 { - margin-top: 0; - font-weight: 400; -} - -.frm-template-row p, -.frm-addons .plugin-card-top p { - opacity: 0.8; -} - -.frm-addons .plugin-card-top > :not(p):not(h2) { - /* Hide notices from third party plugins */ - display: none; -} - -.frm-addons .plugin-card-bottom { - padding: 5px 20px 20px; - text-align: center; - background: transparent; - border-top: none; -} - -.frm-addons .plugin-card-bottom, -.frm-addons .plugin-card-bottom .button { - font-size: 15px; -} - -.frm-addons .button, -.frm-addons .frm-button-tertiary { - float: right; -} - -.frm-addons .addon-status { - float: left; - padding-top: 4px; -} - -.frm-addon-not-installed .frm-activate-addon, -.frm-addon-not-installed .frm-deactivate-addon, -.frm-addon-not-installed .frm-uninstall-addon, -.frm-addon-installed .frm-install-addon, -.frm-addon-installed .frm-deactivate-addon, -.frm-addon-active .frm-activate-addon, -.frm-addon-active .frm-install-addon, -.frm-addon-active .frm-uninstall-addon, -.plugin-card-pro.frm-addon-active .button, -.plugin-card-pro.frm-addon-active .frm-button-tertiary { - display: none !important; -} - -.frm-save-and-reload-options { - margin-top: 10px; - font-size: 13px; -} - -.frm-save-and-reload, -.frm-save-and-reload + .frm-button-secondary { - visibility: visible !important; -} - -.addon-status-label { - opacity: 0.7; -} - -.frm-addon-active .addon-status-label { - color: var(--green); - opacity: 1; -} - -.frm-addon-error { - position: absolute; - top: 55px; - left: 10px; - right: 10px; - font-weight: 700; - text-align: center; -} - -/** - * Components - Form Templates - */ -.frm-new-template.plugin-card-bottom { - overflow: visible; -} - -#frm-new-template p:first-child { - margin-top: 0; -} - -/** - * Layout - Admin Page - */ -.frm-admin-page-formidableedit #wpbody-content > *:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack), -#wpbody-content > .updated, -#wpbody-content > #update-nag, -#wpbody-content > .update-nag, -#wpbody-content > .notice, -#wpbody-content > .error:not(.frm_previous_install), -.frm-white-body .updated, -.frm-white-body .notice, -.frm_wrap > .wrap > .notice, -.frm-white-body .error:not(.frm_previous_install) { - display: none; -} - -.frm-admin-page-formidableedit #frm_builder_page { - display: block !important; -} - -.frm-white-body .updated, -.frm-white-body .error { - margin: 0; - padding: 10px 20px; -} - -/** - * Components - Modal - */ -.frm-modal:not(#frm-dismissable-cta) .postbox { - max-height: 600px; - overflow: hidden; - margin-bottom: 0; -} - -.frm-modal .postbox .frm_modal_top, -.frm-dialog .frm_common_modal .postbox > div:first-child, -.frm-error-modal .frm_modal_top { - padding: var(--gap-md) var(--gap-md) 0; - position: relative; -} - -.frm-modal h2, -.frm-modal .postbox .inside h2, -.frm-modal .postbox .frm-modal-title, -.frm-dialog .frm_common_modal .postbox > div:first-child > div:first-child, -.frm-error-modal .frm-modal-title { - display: inline-block; - font-size: var(--text-lg); - color: var(--grey-900); - font-weight: 600; - margin: 0; - padding: 0; -} - -.frm-modal h3 { - font-weight: 500; -} - -/* Dismiss icon button */ -.frm-inline-modal > a.dismiss, -.frm-modal .postbox > a.dismiss, -.frm-modal .postbox .frm-modal-title + div:last-child, -.frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { - position: absolute; - top: 19px; - right: 19px; - display: flex; - z-index: 2; -} - -body.rtl .frm-inline-modal > a.dismiss, -body.rtl .frm-modal .postbox > a.dismiss, -body.rtl .frm-modal .postbox .frm-modal-title + div:last-child, -body.rtl .frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { - right: unset; - left: 30px; -} - -.frm-info-modal .postbox > a.dismiss, -.frm-inline-modal > a.dismiss { - right: 13px; - top: 13px; -} - -.frm-modal .postbox .frm-modal-title + div:last-child a, -.frm-modal a.dismiss .frmsvg, -.frm_common_modal .frm_modal_top a .frmsvg { - color: var(--grey-500); -} - -.frm-modal .postbox .frm-modal-title + div:last-child a:hover, -.frm-modal a.dismiss .frmsvg:hover, -.frm_common_modal .frm_modal_top a .frmsvg:hover { - color: var(--grey-700); -} - -.frm-modal .frm_modal_content > div.inside, -.frm_common_modal .frm_modal_content > div.inside { - padding: var(--gap-md); - margin: 0; - font-size: var(--text-sm); - color: var(--grey-700); -} - -.frm-modal p { - color: var(--grey-900); -} - -.frm_common_modal .postbox { - display: flex; - flex-direction: column; -} - -.frm-modal .postbox > div.inside .cta-inside { - overflow-y: auto; - height: auto; -} - -.frm_modal_footer { - padding: 0 var(--gap-md) var(--gap-sm); - text-align: right; -} - -body.frm-body-with-open-modal { - overflow-y: hidden; -} - -/** - * Components - Template List - */ -/* These template list styles are still used to list the View types in the New View modal. */ -.frm-templates-list { - margin-top: 0; -} - -.frm-templates-list.frm_grid_container li { - margin-bottom: 0; -} - -.frm-templates-list li { - vertical-align: top; - position: relative; - box-sizing: border-box; - border-radius: 6px; - border: 1px solid transparent; - text-align: left; -} - -.frm-templates-list li:not(.frm_hidden) { - display: inline-block; -} - -.frm-templates-list.frm-categories-list li { - width: 100%; -} - -.frm-templates-list li.frm-selectable { - cursor: pointer; -} - -.frm-templates-list li.frm-selectable:hover { - background: var(--light-blue); - border-color: rgba(65, 153, 253, 0.5); -} - -.frm-templates-list li.frm-selectable:hover h3, -.frm-templates-list li.frm-selectable:hover p { - max-width: calc(100% - 65px); -} - -.frm-templates-list .frm-featured-form { - display: flex; - width: 100%; -} - -.frm-templates-list li .frm-featured-form { - padding: 7px 5px; -} - -.frm-templates-list li li > div { - padding-left: 0; -} - -.frm-templates-list li > div > div { - vertical-align: middle; -} - -.frm-category-icon, -.frm-icon-wrapper { - background: var(--primary-500); - border-radius: var(--small-radius); - color: #fff; - width: 32px; - height: 32px; - font-size: 18px; - box-sizing: border-box; - align-self: center; - justify-content: center; - align-items: center; - display: inline-flex; -} - -.frm-templates-list li .frm-category-icon { - overflow: hidden; -} - -.frm-templates-list li h3, -.frm-templates-list li p { - text-align: left; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} - -.frm-templates-list li h3, -.frm-templates-list .frm-install-template h3 { - font-size: var(--text-sm) !important; -} - -.frm-templates-list .frm-install-template div { - text-align: left; -} - -#frm_leave_email, -#frm_code_from_email { - width: 480px; - max-width: 100%; -} - -.frm-templates-list.frm-categories-list li > div > div:last-child { - padding-left: 0; -} - -.frm-hover-icons { - position: absolute; - right: 0; - top: 17px; /* Template item height - borders - icon height */ - max-width: 91px; - height: 100%; - box-sizing: border-box; - padding: 0 10px 0 5px !important; - border-radius: var(--small-radius); - text-align: right; - display: flex; - gap: 5px; -} - -.frm-ready-made-solution .frm-hover-icons { - visibility: hidden; -} - -.frm-ready-made-solution:hover .frm-hover-icons { - visibility: visible; -} - -.frm-hover-icons a { - width: 22px; - height: 22px; - font-size: var(--text-md); - display: inline-flex; - align-items: center; - justify-content: center; - border-radius: 50%; - box-sizing: border-box; - line-height: var(--leading); - text-align: center; -} - -.frm-hover-icons > .frm-preview-form, -.frm-hover-icons > .frm-delete-form { - border: 1px solid var(--primary-500); -} - -.frm-hover-icons > .frm-create-form, -.frm-ready-made-solution .frm-hover-icons a { - background-color: var(--primary-500); -} - -.frm-hover-icons > a .frmsvg { - width: 14px; - height: 14px; - vertical-align: baseline; -} - -.frm-hover-icons > .frm-preview-form .frmsvg, -.frm-hover-icons > .frm-delete-form .frmsvg { - color: var(--primary-500); -} - -.frm-hover-icons > .frm-unlock-form { - background-color: var(--primary-500); -} - -.frm-hover-icons > .frm-unlock-form .frmsvg { - background-color: var(--primary-500); -} - -.frm-ready-made-solution .frmsvg { - width: 14px; - height: 14px; -} - -.frm-hover-icons .frm-create-form svg, -.frm-ready-made-solution .frm-hover-icons svg { - color: #fff; -} - -.frm-hover-icons .frm-create-form:hover, -.frm-ready-made-solution .frm-hover-icons a:hover, -.frm-hover-icons > .frm-unlock-form:hover, -.frm-hover-icons > .frm-unlock-form:hover .frmsvg { - background-color: var(--primary-700) !important; -} - -.frm-hover-icons .frm-preview-form:hover, -.frm-hover-icons .frm-delete-form:hover { - border: 1px solid var(--primary-700) !important; -} - -.frm-hover-icons .frm-preview-form:hover .frmsvg, -.frm-hover-icons .frm-delete-form:hover .frmsvg { - color: var(--primary-700) !important; -} - -.frm-application-card h4 .frmsvg, -.frm-locked-template h3 .frmsvg { - height: var(--text-sm); - width: var(--text-sm); - vertical-align: text-top; - color: var(--grey-500); -} - -/** - * Components - Modal Actions - */ -.frm-modal-back { - cursor: pointer; - margin-right: 4px; -} - -.frm-modal-cancel { - float: left; -} - -/** - * Components - Meta Tag - */ -.frm-meta-tag, -.frm-meta-tag:hover { - padding: var(--gap-2xs) var(--gap-xs); - border-radius: var(--small-radius); - font-weight: 600; - display: inline-flex; - background-color: #D9EBFF; - gap: 2px; -} - -.frm-meta-tag.frm-grey-tag, -.frm-meta-tag.frm-grey-tag:hover { - background-color: var(--sidebar-hover); - color: var(--grey-900); -} - -.frm-meta-tag.frm-red-tag, -.frm-meta-tag.frm-red-tag:hover { - background: var(--error-100); - color: var(--error-700); -} - -.frm-meta-tag.frm-orange-tag, -.frm-meta-tag.frm-orange-tag:hover { - background-color: #FEF7F4; - color: var(--orange); -} - -.frm-meta-tag.frm-green-tag, -.frm-meta-tag.frm-green-tag:hover { - background-color: var(--success-500); - color: #fff; -} - -.frm-entry-status-0, -.frm-meta-tag.frm-lt-green-tag, -.frm-meta-tag.frm-lt-green-tag:hover { - background-color: var(--success-100); - color: var(--success-800); -} - -.frm-meta-tag.frm-new-pill { - background-color: var(--success-500); - vertical-align: text-bottom; -} - -.frm_add_field span + .frm-meta-tag { - margin-left: 0; -} - -/** - * Components - Upgrade List - */ -/* Start entry statuses */ -.frm-entry-status { - font-weight: 500; -} - -.frm-entry-status-1 { - color: #7A4D05; - background: #FFF2D2; -} - -/* End entry statuses */ -#frm-create-footer { - padding: 15px 20px; -} - -li .frm-hover-icons .frm-preview-form, -.frm-hover-icons .frm-unlock-form, -.frm-locked-template .frm-hover-icons .frm-create-form, -.frm-modal-back { - display: none; -} - -.frm-locked-template .frm-hover-icons .frm-unlock-form, -li[data-preview] .frm-hover-icons .frm-preview-form { - display: inline-flex; -} - -.frm-modal-back svg { - color: #7F7F7F; -} - -#frm-upgrade-body-list-wrapper > div { - display: inline-block; - width: 33.3333333333%; - vertical-align: top; - text-align: left; - margin-bottom: 10px; -} - -#frm-upgrade-body-list-wrapper ul { - padding-left: 40px; -} - -#frm-upgrade-body-list-wrapper ul li::before { - content: "\2022"; - color: var(--primary-500); - display: inline-block; - width: 1em; - margin-left: -1em; -} - -/** - * Components - Embed Modal - */ -.frm-embed-modal-content { - padding: var(--gap-md); -} - -.frm-embed-modal-content.frm-loading-page-options { - display: flex; - justify-content: center; -} - -#frm_embed_modal .frm_embed_example { - background: var(--sidebar-color); - border: 1px solid var(--sidebar-hover); - border-radius: var(--small-radius); - color: var(--grey-900); - font-size: var(--text-sm); - padding-right: var(--gap-lg); - width: 100%; - height: auto !important; - resize: none; -} - -#frm_embed_modal textarea.frm_embed_example { - padding-bottom: 0; -} - -.frm-embed-modal-content > div a { - position: absolute; - right: 0; - top: 0; -} - -.frm-embed-modal-content > div { - position: relative; - margin-bottom: var(--gap-sm); -} - -.frm-embed-modal-content > div:last-child { - margin-bottom: 0; -} - -.frm-embed-modal-content svg[id^=frm_copy_embed_] { - position: absolute; - bottom: 10px; /* Input height - SVG height */ - right: 10px; - cursor: pointer; - opacity: 0.5; -} - -.frm-border-info-box, -.frm-embed-modal-option { - border-radius: var(--small-radius); - border: 1px solid var(--grey-300); - padding: var(--gap-sm); - cursor: pointer; - display: flex; - gap: var(--gap-sm); - font-size: var(--text-sm); -} - -.frm-embed-modal-option + .frm-embed-modal-option { - margin-top: var(--gap-sm); -} - -.caret.rotate-270, -.frm-embed-modal-option .caret { - align-self: center; - margin-left: auto; - transform: rotate(-90deg); -} - -#frm_embed_modal .frm_modal_footer { - display: none; -} - -#frm_embed_modal.frm-on-page-2 .frm_modal_footer { - display: block; -} - -.frm-embed-modal-content ul { - max-height: 300px; - overflow-y: scroll; -} - -.frm-embed-modal-wrapper.frm-dialog { - overflow: visible; -} - -/** - * Components - Bulk Options - */ -#frm-bulk-modal .frm_grid_container { - grid-template-columns: repeat(12, 8.33%); - grid-gap: 0; -} - -#frm-bulk-modal .frm8 { - border-right: 1px solid var(--grey-300); - padding: 10px 20px 10px var(--gap-lg); -} - -#frm-bulk-modal .frm4 { - padding: 10px 0; -} - -.frm-inline-modal .howto { - margin: 5px 0 10px; - color: var(--grey); -} - -.frm-inline-modal .frm_code_list + .howto { - margin-bottom: 0; -} - -#frm_bulk_options { - height: 240px; - width: 100%; - border: none; - box-shadow: none; - padding: 0; -} - -.frm-bulk-edit-link { - display: flex; - align-items: center; - justify-content: flex-end; - gap: var(--gap-2xs); - font-size: var(--text-sm); - margin: 12px 0 12px auto; -} -.frm-bulk-edit-link .frm-bulk-edit-link { - margin: 0; -} - -/** - * Components - Small Add - */ -.frm-small-add { - font-size: var(--text-sm) !important; -} - -.frm-small-add span { - color: var(--primary-500); - font-size: 12px; - height: 12px; - width: 12px; -} - -/** - * Components - Image From URL - */ -.frm_no_captcha_text { - font-weight: 700; - color: #A00; -} - -.frm_image_from_url { - height: 50px; -} - -/** - * Components - Dropdown - */ -/*Switch form dropdown*/ -h1 .fa-caret-down { - font-size: 18px; -} - -.caret { - display: inline-block; - width: 19px; - height: 9px; - margin-right: -8px; - vertical-align: middle; -} - -.caret, -.wp-admin .frm_wrap select, -.frm_wrap .frm_form_builder select, -.frm_wrap .ui-autocomplete-input { - background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%; - padding-right: var(--gap-lg) !important; -} - -.caret { - padding-right: var(--gap-xs) !important; - background-position-x: 5px; -} - -.frm-btn-group .caret { - float: right; - margin-top: calc(var(--text-md) / 2); -} - -.dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} - -.frm_wrap .ui-autocomplete, -#frm_adv_info.frm-dropdown-menu, -.frm-dropdown-menu { - /* Copied from .dropdown-menu rules from Bootstrap */ - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - padding-left: 4px; - padding-right: 4px; - margin: var(--gap-xs) 0 0; - text-align: left; - list-style: none; - background: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid var(--grey-100); - border-radius: 0.25rem; - box-shadow: var(--box-shadow-lg); - /* Custom rules */ - max-height: 200px; - overflow-y: auto; - overflow-x: hidden; - font-size: var(--text-md); - width: auto; - min-width: 160px; -} - -.frm6 .frm-dropdown-menu { - min-width: 100px; - max-width: 99%; -} - -#frm_bs_dropdown .frm-dropdown-menu { - max-width: 400px; -} - -.field_type_list .frm-dropdown-menu { - min-width: 150px !important; -} - -#frm_field_group_controls .frm-dropdown-menu, -.frm-field-action-icons .frm-dropdown-menu { - min-width: 180px !important; -} - -.frm-field-action-icons .frm-dropdown-toggle svg { - color: #9EA9B8; -} - -.multiselect-container.frm-dropdown-menu, -#search-submit .frm-dropdown-menu { - min-width: 200px !important; -} - -.preview .frm-dropdown-menu { - min-width: 230px !important; -} - -.frm-dropdown-menu.dropdown-menu-right { - right: 0; - left: auto; -} - -.frm-dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.frm-dropdown-menu > .dropdown-item { - margin: 0; -} - -.frm-select-list-item, -.frm_wrap .ui-autocomplete li > div, -.multiselect-container button.multiselect-option, -.frm-dropdown-menu > .dropdown-item > a, -.frm-dropdown-menu .frm_dropdown_li { - clear: both; - font-weight: 400; - white-space: nowrap; - text-decoration: none; - border-radius: var(--small-radius); -} - -.frm-dropdown-menu > .active > a, -.frm-dropdown-menu > .active > a:hover, -.frm-dropdown-menu > .active > a:focus { - text-decoration: none; - outline: 0; -} - -.frm-select-list-item.disabled, -.frm-dropdown-menu > .disabled > a, .frm-dropdown-menu > .disabled > a:hover, .frm-dropdown-menu > .disabled > a:focus { - color: #999; -} - -.frm-select-list-item.disabled:hover, -.frm-dropdown-menu > .disabled > a:hover, -.frm-dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - cursor: not-allowed; -} - -.open > .frm-dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-header { - display: block; - padding: 3px 10px; - font-size: var(--text-xs); - color: var(--grey-400); -} - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} - -.dropdown-menu-right > .frm-dropdown-menu, -.pull-right > .frm-dropdown-menu { - right: 0; - left: auto; -} - -.navbar-fixed-bottom .dropdown .caret { - border-top: 0 dotted; - border-bottom: 4px solid #000; - content: ""; -} - -.navbar-fixed-bottom .dropdown .frm-dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.btn { - border: 1px solid #ddd; - background: #fff; - height: 28px; - line-height: var(--leading); -} - -a.frm_option_icon::before { - color: var(--primary-500); - font-size: 22px; - width: 22px; - height: 22px; -} - -a.frm_option_icon:focus::before, -a.frm_option_icon:hover::before { - color: var(--primary-700); -} - -.frm_top_left .frm-dropdown-toggle { - color: #999; -} - -.frm-card ol { - margin-left: 15px; -} - -.frm-dropdown-toggle { - text-decoration: none; -} - -.frm-card .frm-dropdown-toggle { - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); - font-size: 13px; - color: var(--grey-700); - padding: 7px 20px; -} - -.frm_actions_dropdown .frm-dropdown-menu { - font-size: var(--text-sm); - color: #5F6C72; -} - -.frm-dropdown-menu .frm_icon_font { - vertical-align: middle; - color: #5F6C72; - margin-right: 3px; -} - -/* BS Multiselect */ -.multiselect-container.frm-dropdown-menu { - top: auto; - left: auto; - font-size: var(--text-sm); - padding: 4px; - margin-bottom: 3px; -} - -/** - * Accordion - */ -#post-body-content + .frm-right-panel h3.accordion-section-title { - padding: 7px 10px 8px 14px; - font-size: var(--text-md); - color: var(--grey-700); -} - -.frm-with-line, -.accordion-section-content h4 { - font-size: var(--text-md); - font-weight: 400; - margin: 20px -20px 10px; - padding: 0 20px; - color: var(--grey-700); - position: relative; - border: none !important; -} - -.frm-with-line span, -.accordion-section-content h4 span { - background: #fff; - padding: 0 var(--gap-xs); - position: relative; - display: inline-block; - z-index: 2; -} - -.accordion-section-content h4 span { - background: var(--sidebar-color); -} - -.frm-right-panel .frm-with-line span { - background: var(--sidebar-color) !important; - margin-left: -4px; -} - -.frm-right-panel .frm-inline-modal .frm-with-line span { - background: #fff !important; -} - -.frm-with-line::before, -.accordion-section-content h4::before { - content: ""; - display: block; - position: absolute; - border-bottom: 1px solid var(--grey-300); - left: 0; - width: 100%; - top: 50%; -} - -.control-section .accordion-section-title::after, -.customize-pane-child .accordion-section-title::after { - top: 15px; -} - -.accordion-container .frm-dropdown-menu { - min-width: 40px; -} - -.frm-btn-group .multiselect.dropdown-toggle { - box-sizing: border-box; - min-height: unset; - cursor: pointer; -} - -.accordion-container .frm-dropdown-menu::before, -.accordion-container .multiselect.dropdown-toggle::before { - font-family: "s11-fp" !important; -} - -/** - * Components - Multiselect - */ -.multiselect-container { - position: absolute; - list-style-type: none; - margin: 0; - padding: 0; - width: 100%; - max-width: 250px; -} - -.multiselect-container button.multiselect-option { - width: 100%; - text-align: left; - border: none; - margin-bottom: 4px; -} - -.multiselect-container button.multiselect-option label { - margin-left: 5px; -} - -.accordion-container .multiselect-container label { - padding: 3px 19px 3px 7px; -} - -.frm-btn-group.btn-group > .btn-group:nth-child(2) > .multiselect.btn { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -.frm-btn-group.btn-group, .frm-btn-group.btn-group-vertical { - display: block; -} - -.multiselect-option label { - max-width: calc(100% - 22px); - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -/** - * Components - Fields - */ -.frm_scale { - text-align: center; - float: left; - margin-right: 10px; -} - -.frm_scale input { - display: block; - margin: 5px; -} - -.frm_multi_fields_container { - float: left; -} - -.frm_multi_fields_container, -.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range], -.frm_form_builder .frm_form_fields input[type=text] { - width: 100%; - height: auto; -} - -.frm_form_builder .frm_time_wrap .frm_time_sep { - vertical-align: sub; - vertical-align: -webkit-baseline-middle; -} - -.frm_form_builder input[type=range]::-webkit-slider-runnable-track { - background-color: var(--blue-border); -} - -.frm_form_builder input[type=range]::-moz-range-track { - background-color: var(--blue-border); -} - -.frm_form_builder input[type=range]::-ms-fill-lower { - background-color: var(--blue-border); -} - -.frm_form_builder input[type=range]::-ms-fill-upper { - background-color: var(--blue-border); -} - -.frm-embed-field-placeholder { - text-align: center; - height: 145px; - display: flex; - align-items: center; - justify-content: center; -} - -.frm-fake-field { - display: block; - height: 25px; - background-color: var(--light-blue); - border: 1px solid var(--grey-300); - margin: 10px 0; - border-radius: var(--small-radius); -} - -.frm-embed-message { - position: absolute; - background: #fff; - border: 1px solid var(--grey-300); - color: var(--grey-700); - padding: var(--gap-md); - font-size: var(--text-lg); - max-width: 200px; - min-width: 50%; - margin: 0 var(--gap-md); - overflow: hidden; - text-overflow: ellipsis; -} - -.frm-summary-message { - top: 50%; - left: 50%; - padding: 15px 0; - font-size: var(--text-md); - transform: translate(-50%, -50%); -} - -.frm-summary-learn-more { - font-size: inherit !important; -} - -.frm-single-settings .frm-embed-message { - width: 100%; - position: static; - border-radius: var(--small-radius); -} - -#new_fields input[type=text], -#new_fields input[type=number], -.frm_field_box .frm_form_fields > textarea, -.frm_form_fields .frm_form_field > textarea, -.frm_form_fields .frm_form_field > input[type=email], -.frm_form_fields .frm_form_field > input[type=url], -.frm_form_fields .frm_form_field > input[type=number], -.frm_form_fields .frm_form_field > input[type=tel], -.frm_form_fields .frm_form_field > input[type=text], -.frm_form_fields .frm_form_field > input[type=range] { - width: 100%; -} - -.frm_form_fields textarea.wp-editor-area { - width: 100%; - border: none; -} - -.frm_form_fields input[type=file], .frm_form_fields input[type=file]:disabled { - background: transparent; - border: none; - box-shadow: none; - width: auto; -} - -.frm_form_fields select { - width: auto; - max-width: 100%; -} - -input[type=radio], -input[type=checkbox] { - width: 16px; - padding: 0; -} - -.frm_grid_container > p, -.frm_grid_container > p.frm_form_field, -.frm_grid_container > div.frm_form_field, -#new_fields .frm_grid_container > p { - margin-top: 8px; - margin-bottom: 8px; - margin-right: 0; -} -.frm_grid_container > p > label:only-child, -.frm_grid_container > p.frm_form_field > label:only-child, -.frm_grid_container > div.frm_form_field > label:only-child, -#new_fields .frm_grid_container > p > label:only-child { - margin-bottom: 0; -} - -.frm_grid_container > .frm-has-modal > p:only-child { - margin-bottom: var(--gap-xs); -} - -#new_fields div.frm_grid_container > .frm_primary_label { - margin-top: 8px; -} - -#new_fields .frm_primary_label + p, -#new_fields .frm_primary_label + .frm6 + .frm6, -#new_fields .frm_primary_label + .frm6 + .frm-inline-modal + .frm6 { - margin-top: 0; -} - -.frm_catlevel_2, .frm_catlevel_3, .frm_catlevel_4, .frm_catlevel_5 { - margin-left: 18px; -} - -.frm_wrap .frm-fields .auto_width, -.frm_form_fields input.auto_width, .frm_form_fields select.auto_width, .frm_form_fields textarea.auto_width { - width: auto !important; -} - -.frm_form_fields select.auto_width { - min-width: 60px; -} - -.frm_form_fields input:focus, .frm_form_fields select:focus, -.frm_form_fields textarea:focus, .frm_focus_field input { - background-color: #fff; - border-color: #ddd; -} - -.frm_form_builder .frm_radio, -.frm_form_builder .frm_checkbox { - display: block; - margin-bottom: 2px; -} - -.frm_form_builder .frm_radio label, -.frm_form_builder .frm_checkbox label { - font-size: var(--text-sm); -} - -/** - * Components - Copied Frontend - */ -.horizontal_radio .frm_radio, -.horizontal_radio .frm_checkbox { - margin-right: 5px; - display: inline-block; -} - -.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label, -.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label { - display: flex; - align-items: center; - gap: 9px; - white-space: normal; -} - -.frm_form_field.frm_two_col .frm_opt_container, -.frm_form_field.frm_three_col .frm_opt_container, -.frm_form_field.frm_four_col .frm_opt_container { - display: grid; - grid-template-columns: repeat(2, 1fr); - grid-auto-rows: max-content; - grid-gap: 0 2.5%; -} - -.frm_form_field.frm_three_col .frm_opt_container { - grid-template-columns: repeat(3, 1fr); -} - -.frm_form_field.frm_four_col .frm_opt_container { - grid-template-columns: repeat(4, 1fr); -} - -.frm_form_field.frm_two_col .frm_radio, -.frm_form_field.frm_two_col .frm_checkbox, -.frm_form_field.frm_three_col .frm_radio, -.frm_form_field.frm_three_col .frm_checkbox, -.frm_form_field.frm_four_col .frm_radio, -.frm_form_field.frm_four_col .frm_checkbox { - grid-column-end: span 1; -} - -/** - * Components - Fields Part 2 - */ -.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], -.frm_wrap .with_frm_style .frm_radio input[type=radio], -.frm_wrap input[type=checkbox], -.frm-white-body input[type=checkbox], -.field-group input[type=checkbox], -.frm_scale input[type=radio], -.frm_radio input[type=radio], -.frm_checkbox input[type=checkbox] { - width: 15px; - min-width: 15px; - height: 15px; - border: 1px solid var(--grey-300); - box-shadow: var(--box-shadow-sm); - -webkit-appearance: none; -} - -.frm_wrap input[type=radio] { - border-color: var(--grey-300); - box-shadow: var(--box-shadow-sm); -} -.frm_wrap input[type=radio]:checked::before { - background-color: var(--primary-500); -} - -.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], -.frm_wrap input[type=checkbox], -.frm-white-body input[type=checkbox], -.field-group input[type=checkbox], -.frm_checkbox input[type=checkbox] { - border-radius: 4px; -} - -.frm-white-body input[type=checkbox]:checked, -.frm_wrap input[type=checkbox]:checked { - background-color: var(--border-color-active, var(--primary-500)) !important; - border-color: var(--border-color-active, var(--primary-500)) !important; -} - -.frm-white-body input[type=checkbox]:checked:focus, -.frm_wrap input[type=checkbox]:checked:focus { - border-color: var(--border-color-active, var(--primary-500)); -} - -.frm-white-body input[type=checkbox]:checked::before, -.frm_wrap input[type=checkbox]:checked::before { - content: ""; - display: block; - width: 100% !important; - height: 100% !important; - background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important; - background-size: 8px !important; - background-repeat: no-repeat !important; - background-position: center !important; - margin: 0; -} - -.frm_radio input[type=radio], -.frm_checkbox input[type=checkbox] { - margin-right: 5px; -} - -.frm_inner_field_container { - margin-bottom: 10px; -} - -.frm_conf_inline .frm_inner_field_container, -.frm_conf_inline .frm_inner_conf_container { - width: 49%; - float: left; -} - -.frm_conf_inline .frm_inner_field_container { - margin-right: 2%; - clear: both; -} - -.frm_inner_field_container > label { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > label, -.frm_field_box .divider_section_only:hover > .frm_inner_field_container > label, -li.ui-state-default.selected > .frm_inner_field_container > label { - max-width: calc(100% - 100px); -} - -.frm-drag-fade { - background-color: var(--lightest-grey) !important; - border-radius: 4px; -} - -.frm-drag-fade * { - opacity: 0; -} - -.frm-dragging .divider_section_only, -.frm-dragging .frm_field_box { - pointer-events: none; -} - -.frm_form_settings #op-popup, -.frm_form_settings com-1password-op-button, -.frm_conf_below .frm_conf_field_container .frm_primary_label, -.frm_conf_inline .frm_inner_field_container .frm-show-click a, -.frm_conf_below .frm_conf_field_container .frm-show-click a { - display: none !important; -} - -.frm_conf_inline .frm_inner_field_container .frm-field-action-icons { - position: absolute; - right: 5px; -} - -.frm_conf_below .frm_conf_field_container { - margin-top: 10px; -} - -.frm_calc_dec { - width: 50px; -} - -.frm_ext_sc { - display: none; -} - -.frm_long_input { - width: 100% !important; - box-sizing: border-box; -} - -/** - * Utilities - Text Align - Part 2 - */ -.frmcenter { - text-align: center; -} - -/** - * Components - Image Help - */ -img.frm_help { - margin-left: 2px; - vertical-align: middle; - padding-bottom: 2px; -} - -/** - * Components - Loading - */ -.frm_spinner.frm-wait, -.frm_spinner.spinner { - float: left; - visibility: hidden; - margin: 0 10px; -} - -.frm_visible_spinner.frm-wait, -.frm_visible_spinner.spinner { - visibility: visible; - float: none; -} - -.frm_form_action_settings .frm_spinner.frm-wait, -.frm_form_action_settings .frm_spinner.spinner { - visibility: visible; - float: none; - vertical-align: bottom; -} - -.frm_form_action_settings .frm_loading { - font-size: 15px; - text-align: center; -} - -.frm_ajax_settings_tab .frm-wait, -.frm_ajax_settings_tab .spinner { - visibility: visible; - float: none; - margin-top: 20px; -} - -.wp-core-ui .frm_loading_button.button-primary.frm-button-primary, -.frm_loading_button, -.frm_loading_form.frm_button_submit { - position: relative !important; - opacity: 0.8; - color: transparent !important; - text-shadow: none !important; -} - -.frm_loading_button:hover, -.frm_loading_button:active, -.frm_loading_button:focus, -.frm_loading_form.frm_button_submit:hover, -.frm_loading_form.frm_button_submit:active, -.frm_loading_form.frm_button_submit:focus { - cursor: not-allowed; - color: transparent !important; - outline: none !important; - box-shadow: none; -} - -.frm-wait { - margin: 20px; - width: 20px; - height: 20px; - position: relative; - display: inline-block; -} - -#frm-show-fields .frm-wait:only-child { - position: absolute; - left: 50px; - top: 30px; -} - -.frm-wait::before, -.frm_loading_button::before, -.frm_loading_form.frm_button_submit::before { - content: ""; - display: inline-block; - position: absolute; - background: transparent; - border: 1px solid #fff; - border-top-color: transparent; - border-left-color: transparent; - border-radius: 50%; - box-sizing: border-box; - top: 50%; - left: 50%; - margin-top: -10px; - margin-left: -10px; - width: 20px; - height: 20px; - animation: spin 2s linear infinite; -} - -.frm-wait::before { - border-bottom-color: var(--primary-700); - border-right-color: var(--primary-700); -} - -.frm_loading_button.frm-button-secondary::before { - border-bottom-color: var(--primary-500); - border-right-color: var(--primary-500); -} - -input[type=submit]:focus { - outline: none !important; -} - -/* Effects */ -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -/** - * Components - Fields Part 3 - */ -label input[type=checkbox], label input[type=radio] { - vertical-align: inherit; -} - -#editorcontainer #dyncontent { - margin: 0; - width: 100%; - padding: 6px; - line-height: var(--leading); - border: 0 none; - outline: none; - box-sizing: border-box; -} - -/*ICONS*/ -.frm_postbox_icon { - margin: -6px 0 0 -10px; -} - -.frm_form_builder a:hover { - text-decoration: underline; -} - -.frm_form_builder .widget-title h4 { - padding: 10px 15px; -} - -.frm_form_builder .widget-top a.widget-action::after { - margin: 7px 12px 0; -} - -.frmbutton.frm_tgateway { - display: none !important; -} - -.frm_html_legend pre { - display: inline; -} - -#ed_fullscreen { - display: none !important; -} - -.frm_posttax_opt_list { - overflow: auto; - max-height: 200px; - background-color: #fff; -} - -.frm_posttax_opt_list p.howto { - font-size: 12px; -} - -.frm_border_bottom { - border-bottom: 1px solid var(--grey-300); - margin-bottom: 10px; - padding-bottom: 10px; -} - -.frm_posttax_opt_list .frm_border_bottom span.howto { - padding-right: 10px; -} - -.frm_posttax_opt_list .frm_border_bottom input { - margin-right: 1px; -} - -.frm_add_remove div.frm_form_field { - padding-bottom: 5px; -} - -.frm_field_opts_list { - max-height: 260px; - overflow: auto; -} - -/** - * Utilities - Background - */ -.frm_white_bg { - background-color: #fff; -} - -/** - * Utilities - Border - Light - */ -.frm_border_light { - border: solid 1px #ddd; -} - -/** - * Components - Form Input Styles - */ -#new_fields .form-table input[type=text], -#new_fields .form-table select, -.form-table .form-field input, -.form-table .form-field .quicktags-toolbar input, -.form-field input, .form-field .quicktags-toolbar input { - width: auto; -} - -/** - * Components - Affiliate Link - */ -.frm_aff_link { - float: right; -} - -/** - * Component: Select Box - */ -.frm_select_box { - text-align: center; - font-weight: 700; - width: 100%; - background-color: transparent !important; -} - -.wp-list-table input.frm_select_box { - text-align: left; - font-weight: 400; - font-size: inherit !important; - border: none; - padding: 0 !important; - background-color: transparent !important; -} - -.wp-list-table input.frm_select_box:focus { - outline: none; - box-shadow: none; -} - -.wp-list-table .frm_no_items.frm_select_box { - text-align: center; - font-weight: 700; - width: 500px; - max-width: 100%; - font-size: inherit; -} - -/** - * Component: Options Panel - */ -#frm-options-panel { - padding: 0 var(--gap-sm); - color: var(--grey-900); - overflow: hidden; -} - -.frm-right-panel a.frm_add_logic_link, -#frm-options-panel h3 { - font-size: var(--text-md); - font-weight: 500; - background-color: #fff; - border-radius: var(--small-radius); - padding: 18px var(--gap-sm); - margin: 2px calc(-1 * var(--gap-sm)); - transition: background-color 200ms ease-out, box-shadow 200ms ease-out, color 200ms ease-out; -} -.frm-right-panel a.frm_add_logic_link .frmsvg, -#frm-options-panel h3 .frmsvg { - width: 13px; - height: 13px; - color: var(--grey-500); - transition: transform 300ms ease-in; -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type), .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child, -#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type), -#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child { - color: var(--grey-700); - box-shadow: var(--box-shadow-sm); -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg, .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg, -#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg, -#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg { - transform: rotate(-180deg); -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div, -#frm-options-panel h3:not(.frm-collapsed) + div { - padding-top: 6px; - padding-bottom: 6px; -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container, -#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container { - padding-bottom: 14px; -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child, -#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child { - margin-top: var(--gap-sm); -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6, -#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6 { - margin-top: var(--gap-sm); -} -.frm-right-panel a.frm_add_logic_link.frm-collapsed, -#frm-options-panel h3.frm-collapsed { - color: var(--grey-500); - background-color: transparent; -} -.frm-right-panel a.frm_add_logic_link:hover, -#frm-options-panel h3:hover { - color: var(--grey-700); - background-color: #fff; - box-shadow: var(--box-shadow-sm); -} -.frm-right-panel a.frm_add_logic_link:focus-visible, -#frm-options-panel h3:focus-visible { - outline: 1px solid var(--primary-500) !important; - outline-offset: -1px; -} - -.frm-right-panel a.frm_add_logic_link:focus { - outline: auto; -} - -/** - * Component: Field Key - */ -.frm_field_key { - background-color: #F7F7F7; -} - -/** - * Component: Form Editor - */ -#frm_form_editor_container #edit-slug-box { - padding: 0; -} - -/** - * Component: Alt Table - */ -.frm-alt-table { - position: relative; - width: 100%; - border-collapse: collapse; - margin-top: 0.5em; - font-size: 15px; -} - -/* Before `applyZebraStriping` is executed, an empty space is displayed */ -#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #fff; -} - -.frm-alt-table th { - width: 200px; -} - -.frm-alt-table tr, -.frm-alt-table tr.frm-odd { - background-color: transparent; -} - -.frm-alt-table tr.frm-even { - background-color: var(--sidebar-color); -} - -.frm-alt-table th, -.frm-alt-table td { - background-color: transparent; - vertical-align: top; - text-align: left; - padding: 20px; -} - -.frm-alt-table h3 { - margin-bottom: 0; -} - -/** - * Component: Checkbox Button - */ -.form-field .frm_cb_button { - height: 22px; - line-height: 20px; - margin-bottom: 10px; - margin-right: 5px; -} - -/** - * Option Label - */ -.edit_field_type_select .frm_option_val_label { - margin-left: 12px; -} - -/** - * Components - Rich Text Editor - */ -.frm_rte { - background: url(../images/rte.png) no-repeat; -} - -.frm_rte .howto { - margin: 10px 0 46px; -} - -/** - * Component: Subform Section - */ -.subform_section { - margin: 25px; -} - -.subform_section, -.subform_section label, -.subform_section input { - opacity: 80; -} - -.subform_section .frm_sortable_field_opts { - display: none; -} - -#frm_form_editor_container .subform_section .frm_primary_label { - display: block; -} - -.subform_section.subform_break { - border-top: 1px dashed #ccc; -} - -/** - * Component: HTML Field - */ -.button-secondary.frm_html_field { - background-color: #ededed; - padding: 10px 20px; - line-height: inherit; - width: auto; - height: auto !important; - border-radius: 0; - box-sizing: content-box; -} - -.frm_html_field_placeholder { - margin-bottom: 10px; - text-align: center; -} - -.recaptcha_placeholder { - border: 1px solid #d3d3d3; - width: 300px; -} - -.turnstile_placeholder { - width: 300px; -} - -/** - * Component: RTE Textarea - */ -.frm_sorting .frm_rte textarea { - width: 653px; - background: #fff; - margin: 1px 0 0; - border: 1px solid #dfdfdf; - border-top: none; - border-radius: 0; - float: none !important; -} - -.frm_full_rte textarea { - width: 98%; - padding: 0; -} - -/** - * Component: Field Box - */ -.frm_field_box { - padding: 5px; - min-height: 20px; - margin: 10px 0; -} - -/** - * Components - Indent Options - */ -.frm_indent_opt, td.frm_indent_opt { - padding-left: 25px; -} - -/** - * Components - Charts - */ -.frm_charts object { - background: transparent; -} - -.frm_charts h2 { - height: 34px; -} - -/** - * Component: Sortable Placeholder - */ -.frm_single_option.ui-sortable-placeholder, -li.sortable-placeholder { - border: none; - margin: 0; - visibility: visible !important; - box-shadow: 2px -10px 0 2px var(--primary-500); -} - -#frm_form_editor_container > ul > .frm_single_option.ui-sortable-placeholder, -#frm_form_editor_container > ul > li.sortable-placeholder { - width: calc(100% - 5px) !important; - height: 0 !important; -} - -#frm_form_editor_container > ul > li > ul { - position: relative; -} - -#frm_form_editor_container > ul > li > ul > li.sortable-placeholder, -#frm_form_editor_container ul.start_divider > li > ul > li.sortable-placeholder { - position: absolute; - top: 20px; - bottom: 0; -} - -.edit_field_type_divider + li.sortable-placeholder { - box-shadow: 2px 5px 0 2px var(--primary-500); -} - -.start_divider li.sortable-placeholder { - box-shadow: 2px -5px 0 2px var(--primary-500); -} - -.frm-is-collapsed + .sortable-placeholder { - box-shadow: 2px 15px 0 2px var(--primary-500); -} - -.frm_single_option.ui-sortable-placeholder { - box-shadow: 0 0 1px 1px var(--primary-500); -} - -/** - * Component: Sorting Display - */ -.frm_sorting > li.edit_field_type_end_divider:first-child, -.frm-show-click, -li.ui-state-default.edit_field_type_divider .frm-show-click { - display: none; -} - -.frm_form_field.ui-sortable-helper .frm-field-action-icons, -.frm_form_field.ui-sortable-helper .frm_form_fields, -.frm_form_field.ui-sortable-helper .frm_description, -.frm_form_field.ui-sortable-helper .description { - display: none; -} - -.frm_form_field.ui-sortable-helper .frm_primary_label, -.frm_form_field.ui-sortable-helper .frm_inner_field_container { - margin: 0 !important; -} - -.frm-single-settings .frm-show-click { - display: block !important; -} - -.frm-show-hover, -.frm_single_visible_hover, -li.ui-state-default.edit_field_type_divider .frm-show-hover { - opacity: 0; - transition: opacity 0.15s ease-in-out; -} - -#frm-show-fields .frm-field-settings-open .frm-show-hover { - opacity: 1; -} - -.frm_sortable_field_opts { - margin-top: 5px; -} - -/** - * Component: Single Option - */ -.frm_single_option { - clear: both; - margin: 0 !important; - padding-bottom: 5px; -} -.frm_single_option input[type=radio], -.frm_single_option input[type=checkbox] { - margin-top: 0; -} -.frm_single_option .frm-with-right-icon input[type=text] + .frmsvg { - position: relative; - right: 27px; - width: 14px; - height: 14px; - padding: 0; - margin: var(--gap-2xs) 0 0; -} - -.frm_product_price_wrapper, -.frm_image_preview_wrapper, -#new_fields .frm_single_option select, -#new_fields .frm_single_option input[type=text] { - width: calc(100% - 106px) !important; - flex-grow: 1; -} - -.frm-right-panel .frm_single_option a.frm_remove_tag, -.frm_single_option a { - padding-left: 7px; -} - -.frm_single_option:hover .frm_single_visible_hover { - opacity: 100; -} - -.frm_single_option .frm-drag { - font-size: 23px; - width: 24px; - height: 24px; - margin-left: -6px; - margin-right: var(--gap-xs); - color: var(--grey-500); -} - -.frm_single_option .frm-drag::before { - vertical-align: middle; -} - -.frm-drag, -.frm_single_option.ui-sortable-helper { - cursor: move; -} - -.frm_single_option .frm_option_key { - margin-left: 19px !important; -} - -.frm_option_key input[type=text] { - margin-top: var(--gap-xs) !important; - margin-left: 11px !important; -} -.frm_option_key input[type=checkbox] + input[type=text], -.frm_option_key input[type=radio] + input[type=text] { - margin-left: 30px !important; -} - -li.ui-state-default.selected .frm-show-click, -li.ui-state-default.selected.edit_field_type_divider .frm-show-click { - display: inline; - vertical-align: top; -} - -.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > .frm-show-hover, -.frm_field_box .divider_section_only:hover > .frm_inner_field_container > .frm-show-hover, -li.ui-state-default.selected > .frm_inner_field_container > .frm-show-hover, -li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { - opacity: 100; -} - -li.frm_field_box > ul.frm_grid_container { - position: relative; -} - -/** - * Component: UI Icon - */ -.frm_sorting span.ui-icon { - width: 16px; -} - -/** - * Component: Entry Page - */ -body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container { - --field-border-width: 1px; - --border-color: var(--grey-300); - --border-color-active: var(--primary-500); - --border-radius: var(--small-radius); -} - -#form_show_entry_page .frm_file_link, -#form_show_entry_page .frm_image_option_container { - display: inline-flex; - flex-wrap: nowrap; - flex-direction: column; - text-align: center; - align-items: center; - width: 150px; - margin-right: 10px; - margin-bottom: 10px; -} - -#form_show_entry_page .frm_image_option_container img { - width: 150px; - height: 150px; - object-fit: cover; -} - -#form_show_entry_page .frm_file_link img { - max-width: 150px; - height: auto; -} - -#form_show_entry_page .frm_file_link ~ br { - display: none; -} - -#form_show_entry_page .frm_upload_label { - padding: 10px; -} - -#form_show_entry_page.frm_wrap .postbox { - overflow: hidden; -} - -.frm_image_option_container .frm_image_placeholder_icon svg { - height: 150px; -} - -.frm_list_entry_page .frm_file_link, -.frm_list_entry_page .frm_image_option_container.frm_label_with_image { - display: block; - text-align: center; -} - -.frm_list_entry_page .frm_image_option_container img { - width: 75px; - height: 75px; - object-fit: cover; -} - -.frm_list_entry_page img { - max-width: 100%; - height: auto; -} - -.frm_image_option_container .frm_empty_url { - background-color: var(--sidebar-color); -} - -.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image { - display: block; - padding: 5px 0 10px; -} - -.frm_list_entry_page .frm_upload_label, -.frm-summary-page-wrapper .frm_text_label_for_image { - display: block; -} - -/** - * Welcome and Global Settings Image Options - */ -#frm-welcome .frm_image_options .frm_image_option_container, -#form_global_settings .frm_image_options .frm_image_option_container { - background: var(--sidebar-color); -} - -#frm-welcome .frm_image_option_container svg, -#form_global_settings .frm_image_option_container svg { - max-width: calc(100% - 20px); -} - -/** - * Component: Option Templates - */ -/* Style image option container for Directory add on. */ -#frm-new-template .frm_image_option_container svg { - height: 50px; - margin: 10px auto 0; -} - -/* Show an icon on top */ -.frm_image_option_container { - position: relative; -} - -.frm_text_label_for_image > svg { - width: 30px; - position: absolute; - top: 5px; - right: calc(50% - 15px); -} - -/* End show an icon on top */ -.frm_single_option .frm_option_key { - margin-top: 17px; -} -.frm_single_option .frm_option_key.frm_image_preview_wrapper { - margin-top: var(--gap-xs); -} - -/** - * Component: Image - */ -.frm_image_data { - margin-left: var(--gap-sm); - display: flex; - flex-direction: column; - font-size: var(--text-sm); - justify-content: space-around; - min-width: 0; /* Allows flex items to shrink below content size */ -} - -.frm_image_styling_frame { - display: flex; - align-items: stretch; - margin-left: 36px; - margin-bottom: var(--gap-xs); - width: 100%; -} -.frm_image_styling_frame img { - height: 54px; - width: 54px; - min-width: auto; - min-height: auto; - border-radius: 3px; - object-fit: cover; - object-position: center; -} -.frm_image_styling_frame .frm_email_attachment_icon img { - height: auto; - width: auto; - max-width: 54px; -} - -.frm_image_preview_title { - color: var(--grey-500); - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - min-width: 0; /* Critical for text truncation in flex */ - flex: 1 1 auto; /* Better flex behavior */ -} - -.frm_wrap .frm_choose_image_box { - cursor: pointer; - color: var(--primary-500); - background-color: #fff; - margin-left: 32px; - text-align: center; - width: 100%; -} - -.frm-type-ranking .frm_option_key .frm_choose_image_box { - margin-left: 11px !important; -} - -.frm_wrap .frm_choose_image_box:hover { - background: #fff; -} - -a.frm_remove_image_option, -.frm_remove_image_option { - color: var(--grey-400); - cursor: pointer; -} - -a.frm_remove_image_option:hover .frmsvg, -a.frm_remove_image_option:hover, -.frm_remove_image_option:hover { - color: rgba(40, 47, 54, 0.8); -} - -/** - * Component: Settings and Panel - */ -/* Form Settings Tabs */ -.frm-form-setting-tabs { - margin-top: var(--gap-sm) !important; -} - -.frm-right-panel > .postbox { - background-color: transparent; - border: none; - box-shadow: none; - margin: 0; -} - -.frm-right-panel .postbox.frm_with_icons .inside, -.frm-right-panel .postbox .inside, -.frm-right-panel .inside { - font-size: var(--text-md); - padding: 15px 20px 20px; - color: var(--grey-700); -} - -.frm-right-panel .misc-pub-section { - padding: var(--gap-xs) 0; - position: relative; -} - -.frm-right-panel .inside a, -.frm-form-setting-tabs a { - font-size: var(--text-md); - color: var(--grey-700); - padding: var(--gap-sm); - display: block; -} - -.frm-form-setting-tabs a { - color: var(--grey-900); - padding: var(--gap-sm) var(--gap-md); -} - -.frm-right-panel .inside a { - padding: 0; - color: var(--primary-500); - display: inline-block; -} - -.frm-right-panel .inside a:hover { - color: var(--primary-700); -} - -.frm-form-setting-tabs a:hover { - background: var(--sidebar-hover); - color: var(--grey-900); -} - -.frm-right-panel .inside i, -.frm-form-setting-tabs a i, -.frm-form-setting-tabs a .frmsvg { - margin: 0 5px; - display: inline-block; - width: 20px; - height: 20px; - color: var(--grey-500); -} - -.frm-form-setting-tabs a .frmsvg { - margin: 0; -} - -.frm-right-panel .inside a:hover i, -.frm-right-panel .inside a:hover .frmsvg, -.frm-form-setting-tabs a:hover .frmsvg, -.frm-form-setting-tabs a:hover span { - color: var(--grey-700); -} - -.frm_settings_form .tabs-panel { - padding: 0 25px; -} - -#form_settings_page .tabs-panel, -.frm_settings_form .tabs-panel { - max-height: initial !important; - min-height: 50px !important; -} - -#frm_adv_info .tabs-panel { - min-height: 0 !important; - overflow-x: hidden; - padding: 0; - border: none; - background: transparent; -} - -select.frm_cancelnew, input.frm_enternew { - width: 175px; -} - -.frm_posttax_opt_list { - border: 1px solid var(--grey-300); - padding: var(--gap-md); - border-radius: var(--small-radius); - margin: 5px 0 5px var(--gap-md); -} - -/* Color picker CSS */ -.frm_settings_form .wp-picker-open + .wp-picker-input-wrap, -.frm-right-panel .wp-picker-open + .wp-picker-input-wrap { - position: absolute; - margin-left: calc((100% - 35px) * -1); - margin-top: 1px; - width: calc(100% - 36px); -} -.frm_settings_form .wp-picker-container input[type=text].wp-color-picker, -.frm-right-panel .wp-picker-container input[type=text].wp-color-picker { - border: none; - padding: 5px 8px; - font-family: inherit; - color: var(--grey-700); - font-size: var(--text-md); - width: 100%; - line-height: var(--leading); -} -.frm_settings_form .wp-picker-input-wrap .wp-picker-clear, -.frm-right-panel .wp-picker-input-wrap .wp-picker-clear { - display: none !important; -} -.frm_settings_form .wp-picker-holder, -.frm-right-panel .wp-picker-holder { - position: absolute; - z-index: 999; -} -.frm_settings_form .wp-picker-input-wrap label, -.frm-right-panel .wp-picker-input-wrap label { - margin-bottom: 0; -} -.frm_settings_form .wp-picker-container .wp-color-result.button, -.frm-right-panel .wp-picker-container .wp-color-result.button { - width: 100%; - overflow: hidden; - margin: 0 !important; - height: var(--h-md) !important; - padding: 0 0 0 var(--gap-lg) !important; - border-radius: var(--small-radius); - border-color: var(--grey-300); -} -.frm_settings_form .wp-color-result-text, -.frm-right-panel .wp-color-result-text { - line-height: var(--leading) !important; - font-size: var(--text-md); - background: #fff !important; - color: var(--grey-900); - padding: 5px 8px; - border-color: var(--grey-300); - text-align: left; -} -.frm_settings_form .color-alpha, -.frm-right-panel .color-alpha { - width: var(--gap-lg) !important; -} - -.frm_grid_container .wp-picker-container { - width: 100%; - position: relative; -} - -.wp-picker-container button.wp-color-result { - border: 1px solid var(--grey-300) !important; -} - -.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker { - max-width: 100%; - position: relative; -} - -.frm_end .wp-picker-holder { - margin-left: -145px; -} - -.frm_end.frm6 .wp-picker-holder { - margin-left: -86px; -} - -/* End of color picker CSS */ -/** - * Toggle Components - * - * These are the styles for the "Enable Formidable styling" toggle in the visual styler. - * To use this element, you can call the FrmHtmlHelper::toggle function. - */ -.frm_toggle_opt { - padding: 0; - white-space: normal; - display: inline; - vertical-align: middle; - font-weight: 400; -} - -.frm_on_label, -.frm_off_label { - color: var(--grey-700); -} - -.frm_toggle { - position: relative; - display: inline-block; - width: 40px; - height: var(--h-xs); - vertical-align: middle; -} - -.frm_toggle_block { - display: inline-flex !important; - gap: var(--gap-xs); - align-items: center; -} - -.frm_toggle input, -.frm_toggle_block input { - display: none !important; -} - -.frm_toggle_slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--grey-200); - transition: 0.4s; - border-radius: 30px; -} - -.frm_toggle_slider::before { - box-sizing: border-box; - content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E"); - position: absolute; - left: 2px; - bottom: 2px; - display: flex; - align-items: center; - justify-content: center; - width: 20px; - height: 20px; - font-size: 20px; - line-height: 20px; - background-color: #fff; - border-radius: 50%; - transition: 0.4s; - box-shadow: var(--box-shadow-md); -} - -input:checked + .frm_toggle .frm_toggle_slider { - background-color: var(--primary-500); -} - -input:focus + .frm_toggle .frm_toggle_slider { - box-shadow: var(--box-shadow-md); -} - -input:checked + .frm_toggle .frm_toggle_slider::before { - transform: translateX(16px); - content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E"); -} - -input[disabled] + .frm_toggle_slider, -input[disabled] + .frm_toggle .frm_toggle_slider { - pointer-events: none; - cursor: text; - opacity: 0.5; -} - -.frm_toggle_opt ~ .frm_toggle .frm_toggle_slider::before { - content: "" !important; /* Don't show x/check if off label included or on builder page */ -} - -.rtl .frm_toggle_opt { - padding: 0 8px; -} - -.rtl .frm_toggle_slider::before { - left: 17px; -} - -.rtl input:checked + .frm_toggle .frm_toggle_slider::before { - transform: none !important; - left: 1px; -} - -/* Deprecated admin toggle */ -.frm_toggle_off, -.frm_toggle_on { - display: none; - color: #fff; - z-index: 999; - position: absolute; - font-size: 10px; - line-height: 20px; - left: 6px; -} - -.frm_toggle_off { - display: inline; - left: auto; - right: 5px; - color: var(--dark-grey); -} - -.frm_toggle_long { - width: 80% !important; - height: 28px; - display: inline-block !important; -} - -.frm_toggle_long .frm_toggle_slider { - background: var(--primary-700); - box-shadow: 0 0 0 2px var(--primary-700); -} - -.frm_toggle_long .frm_toggle_off, -.frm_toggle_long .frm_toggle_on { - width: 50%; - text-align: center; - font-size: 13px; - line-height: 28px; -} - -.frm_toggle_long .frm_toggle_on { - left: 0; -} - -.frm_toggle_long .frm_toggle_off { - right: 0; -} - -.frm_toggle_long .frm_toggle_slider::before { - width: 50%; - left: 0; - top: 0; - border-radius: var(--border-radius) 0 0 var(--border-radius); - height: 100%; - background-color: #fff; - color: var(--primary-color); - content: "" !important; -} - -.frm_toggle_long input:checked + .frm_toggle_slider::before { - transform: translateX(101%); - border-radius: 0 var(--border-radius) var(--border-radius) 0; -} - -input:checked + .frm_toggle_slider + .frm_toggle_on { - display: inline; -} - -input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { - display: none; -} - -.frm_toggle_long .frm_toggle_on, -.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { - display: inline; - color: var(--primary-500); - font-weight: 400; -} - -.frm_toggle_long .frm_toggle_off, -.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on { - color: #fff; - font-weight: 700; -} - -/* End toggle styling */ -/** - * Global Settings - */ -.tabs-panel { - height: auto !important; - min-height: 260px; -} - -.tabs-panel.panel_secondary { - min-height: 20px; - margin-top: 10px; - margin-left: 150px; -} - -label.frm-example-icon { - margin-right: 20px !important; - display: inline-block !important; -} - -#frm_stripe_icon { - border-radius: 5px; -} - -#captcha_settings .frm_primary_label { - margin-top: var(--gap-sm); -} - -.frm-long-icon-buttons { - display: flex; - gap: var(--gap-md); -} - -.frm-long-icon-buttons > label { - border: 1px solid var(--grey-300); - color: var(--grey-700); - border-radius: var(--small-radius); - display: flex; - padding: var(--gap-sm); - gap: var(--gap-sm); - justify-content: center; - align-items: center; - width: calc(33% - var(--gap-sm)); - box-sizing: border-box; -} - -.frm-long-icon-buttons > label:hover { - color: var(--primary-500); -} - -.frm-long-icon-buttons input[type=radio] { - display: none; -} - -.frm-long-icon-buttons input[type=radio]:checked + label { - border-color: var(--primary-500); - box-shadow: 0 0 0 1px var(--primary-color); -} - -.frm-long-icon-buttons label > svg { - height: 21px; -} - -.frm-example-icon .frmsvg, -.frm-example-icon i { - height: 20px; - width: 20px; - font-size: 20px; - color: var(--grey-700); -} - -.frm_license_msg { - margin-top: 0; -} - -.frm_authorized_box .frm-show-unauthorized, -.frm_unauthorized_box .frm-show-authorized { - display: none; -} - -.edd_frm_status_icon.frmsvg { - margin: 0 5px; -} - -.edd_frm_license_row .frm_action_success .frmsvg { - color: green; -} - -.edd_frm_license_row .frm_action_error .frmsvg { - color: #D54E21; -} - -/* Hide the install steps for solutions */ -#form_global_settings .tabs-panel .num svg { - display: none; -} - -/* Empty List */ -.frm_no_items { - margin: 0 auto 50px; - text-align: center; - color: var(--grey-700); - max-width: 500px; -} - -.frm-subscribe { - margin: var(--gap-lg) 0; -} - -.frm_inbox_count { - color: #fff; - border-radius: 50%; - display: inline-block; - margin-right: 8px; - font-size: 11px; - text-align: center; - min-width: 18px; - height: 18px; - margin-left: 2px; - vertical-align: text-bottom; -} - -/** - * Global Payment Settings - */ -#payments_settings .frm_payments_section .form-table td { - padding-left: 0; - padding-right: 0; -} - -#payments_settings .frm_payments_section .form-table { - margin-top: 0; -} - -#frm_authnet_general_settings > tr:first-of-type > td:first-of-type { - padding-top: 0; -} - -#frm_authnet_general_settings h3 { - margin-bottom: 0; -} - -.frm_payment_settings_tab .frmsvg { - height: 22px; -} - -.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg { - width: 83px; -} - -.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg { - width: 99px; -} - -.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg { - width: 89px; -} - -.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg { - width: 53px; -} - -.frm-email-style { - float: left; - margin-right: var(--gap-md); -} -.frm-email-style:last-of-type { - margin-right: 0; -} -.frm-email-style__card { - position: relative; -} -.frm-email-style__name { - margin-top: var(--gap-xs); - padding-top: var(--gap-2xs); - text-align: center; -} -.frm-email-style__name .frmsvg { - vertical-align: sub; -} -.frm-email-style__click { - display: block; - border-radius: 12px; - border: 1px solid var(--grey-200); - box-shadow: 0px 0.47px 0.94px 0px rgba(16, 24, 40, 0.0588235294); -} -.frm-email-style__click:focus, .frm-email-style--selected .frm-email-style__click { - border-color: var(--primary-500); - outline: 1px solid var(--primary-500); -} -.frm-email-style__click img { - width: 160px; - display: block; -} -.frm-email-style--disabled .frm-email-style__click:after { - content: ""; - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: var(--grey-100); - opacity: 0.5; -} -.frm-email-style__buttons { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 100; - display: none; - flex-direction: column; - justify-content: center; - align-items: center; - gap: 12px; -} -.frm-email-style__button { - cursor: pointer; - display: block; -} -.frm-email-style__button:disabled { - cursor: not-allowed; - display: none; - background: var(--primary-700) !important; - border-color: var(--primary-700) !important; -} -.frm-email-style--selected .frm-email-style__button:disabled { - display: block; -} -.frm-email-style--selected .frm-email-style__button[data-action=choose] { - display: none; -} -.frm-email-style--disabled .frm-email-style__button[data-action=choose] { - display: none; -} -.frm-email-style:hover .frm-email-style__buttons, .frm-email-style__click:focus + .frm-email-style__buttons, .frm-email-style:focus-within .frm-email-style__buttons { - display: flex; -} - -#frm-send-test-email, -.frm-upload-image-btn, -.frm-remove-image-btn, -.frm-reset-colors-btn { - cursor: pointer; -} - -#frm-send-test-email-modal .postbox { - padding: var(--gap-sm) var(--gap-md); -} -#frm-send-test-email-modal .postbox * { - box-sizing: border-box; -} -#frm-send-test-email-modal .inside { - margin: 0; - padding: 0; -} - -/** - * Import/Export - */ -.frm-lite .xml_opts .frm-export-xml-items { - display: none; -} - -.csv_opts #frm_csv_col_sep { - width: 45px; -} - -#frm_advanced td.frm_left_label { - width: 20%; - padding-right: 2px; -} - -/** - * Component: Where Options - */ -#frm_where_options select { - max-width: 200px; -} - -#frm_where_options select.frm_insert_where_options { - width: 30%; -} - -#frm_where_options select.frm_where_is_options { - width: 20%; -} - -#frm_where_options span.frm_where_val { - width: 32%; - display: inline-block; - position: relative; -} - -#frm_where_options span.frm_where_val .frm_tooltip_icon, -#frm_where_options span.frm_where_val .frm_help { - left: -4px; - position: absolute; -} - -#frm_where_options span.frm_where_val.frm_hidden { - display: none; -} - -#frm_where_options span.frm_where_val input, #frm_where_options span.frm_where_val select { - width: 90%; - margin-left: 10px; -} - -#frm_where_options { - min-height: 31px; -} - -/** - * Component: Tabs Panel - */ -.tabs-panel.active .tabs-panel, -.frm_settings_form .tabs-panel .tabs-panel { - border: none; - padding: 0; -} - -/** - * Component: Feature Banner - */ -.frm-feature-banner { - background: var(--grey-700); - color: #fff; - border-radius: var(--small-radius); - padding: 20px; - margin: 10px 0; -} - -.frm-feature-banner p { - font-size: var(--text-sm); -} - -.frm-feature-banner .dismiss { - margin-top: -10px; - margin-right: -10px; -} - -.frm-feature-banner .dismiss svg { - color: #fff; -} - -.frm-feature-banner .frm-big-icon { - padding-right: 20px; - float: left; - min-height: 60px; -} - -.frm-big-icon svg { - height: 60px; - width: 60px; -} - -.frm-feature-banner p { - margin-top: 0; -} - -/** - * Add-on Backward Compatibility - */ -/*for add-on reverse compatibility */ -.frm_98_width { - width: 100% !important; -} - -/** - * Form Settings Tab styles - */ -h2.frm-h2, -.frm_form_settings h2 { - border-bottom: 1px solid var(--grey-300); - color: var(--grey-900); - font-weight: 400 !important; - padding: 9px 0 5px; - margin: 0; -} - -.frm_settings_form h3, -.frm_form_settings h3, -.frm_form_settings span.frm_add_logic_link { - font-size: var(--text-md); - border-top: 1px solid var(--grey-300); - padding-top: var(--gap-sm); - margin: var(--gap-sm) 0; - font-weight: 400; - text-transform: uppercase; - color: var(--medium-grey); - display: block; -} - -.frm_form_settings .howto { - color: var(--grey-500); - font-size: var(--text-sm); - margin-top: 8px; -} - -.frm_form_settings .advanced_settings .form-table { - margin-top: 0; -} - -.frm_form_settings td.frm_175_width { - width: 175px; -} - -.frm_form_settings #success_url { - width: 95%; -} - -.frm_wrap .ui-autocomplete { - padding: 3px 0; - max-height: 310px; -} - -.frm_wrap .ui-widget { - font-family: inherit; -} - -.frm_wrap .ui-autocomplete li { - padding: 2px 4px; - background: none; - color: var(--grey-700); - border: none; - font-weight: 400; -} - -.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active { - border: none; - font-weight: inherit; -} - -.frm_select_with_label { - margin: 7px 0 0; -} - -/** - * Customization Panel styles - */ -/* Customization Panel */ -#frm-insert-fields-box, #frm-conditionals { - max-height: none; -} - -#frm-conditionals, #frm-adv-info-tab { - display: none; - max-height: 355px; -} - -#frm-insert-fields-box ul.subsubsub, -#frm-conditionals ul.subsubsub { - float: right; - margin: 0; -} - -#frm-insert-fields-box ul.alignleft, -#frm-conditionals ul.alignleft { - margin: 4px 0 0; -} - -#frm_adv_info ul.frm_code_list.frm-full-hover { - clear: both; - max-height: 215px; - overflow: auto; -} - -#frm-insert-fields-box ul.frm_code_list li.clear.frm_block { - height: 10px; -} - -#frm_adv_info .frm_noallow { - display: none; -} - -#frm_adv_info #frm-conditionals .frm_noallow { - display: block; -} - -/** - * Customize HTML Tab styles - */ -/* Customize HTML Tab */ -#frm_html_tab.frm_hidden { - display: none; -} - -#frm_html_tab.active { - display: inline; -} - -/** - * Form Actions Tab styles - */ -.frm_email_reply_container select, -.frm_email_reply_container input, -.form-table td.frm_150_width { - width: 170px; -} - -#frm_notification_settings .frm_no_top_padding { - padding-top: 0; -} - -.frm_email_settings.frm_email_settings.widgets-holder-wrap { - overflow: auto; - box-shadow: none; -} - -#frm_notification_settings .widget-top .widget-action, -#frm_form_editor_container .widget-top .widget-action { - border: 0; - margin: 0; - padding: 8px; - background: 0 0; - cursor: pointer; - outline: 0; -} - -#frm_notification_settings .widget-top .widget-action { - padding-top: 13.5px; -} - -#frm_email_addon_menu { - border: 1px solid var(--grey-300); - padding: var(--gap-sm); - border-radius: 4px; - margin: var(--gap-md) 0 var(--gap-sm); -} - -#frm_email_addon_menu .frm-search { - float: right; - margin: 0; -} - -#frm_email_addon_menu h3.frm-no-border { - clear: none; - padding-top: 7px; -} - -.frm_email_settings .widget .widget-top { - background-color: var(--sidebar-color); -} - -.frm_email_settings .widget .widget-top, -.frm_email_settings .widget .widget-top h3 { - cursor: pointer !important; -} - -.frm_email_settings .widget { - margin-bottom: var(--gap-sm); -} - -.frm_form_action_settings .widget-top { - box-shadow: none; - border-color: var(--grey-300); - border-radius: var(--small-radius); - background: var(--lightest-grey); - color: var(--grey-700); -} - -.frm_form_action_settings:hover .widget-top { - border-color: var(--grey); -} - -.frm_form_action_settings.open .widget-top { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom: none; -} - -.frm_form_action_settings.open:hover .widget-top { - border-color: var(--grey-300); -} - -.frm_form_action_settings > .widget-inside { - display: none; -} - -.frm_form_action_settings.open > .widget-inside { - display: block; -} - -.frm_form_action_settings .widget-inside { - min-height: 25px; - padding: 15px; - border-color: var(--grey-300); - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} - -.frm_form_action_settings .widget-title h4, -.frm_form_action_settings .widget-title h3 { - display: inline-block; - border-bottom: none; - padding: 10px 10px 5px; - font-size: var(--text-md); - font-weight: 500; -} - -#frm_email_addon_menu h3 { - margin: 0 0 var(--gap-sm); - clear: both; -} - -.frm_single_api_settings p > label { - display: inline; -} - -.frm_form_action_icon { - margin-right: 5px; -} - -.frm_actions_list { - margin: 0; - display: inline; -} - -.frm_actions_list li { - float: left; - width: 15.6%; - margin: 10px 0.5% 15px; - height: 100px; - text-align: center; -} - -.frm-limited-actions .frm-group-heading, -.frm-limited-actions #frm-hide-groups, -.frm-all-actions #frm-show-groups, -.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show) { - display: none; -} - -label.frm_action_events { - padding-left: 15px; -} - -#frm-hide-groups, -#frm-show-groups { - font-size: var(--text-md); - float: right; -} - -.frm_actions_list a:active, .frm_actions_list a:focus { - outline: none; -} - -.frm_actions_list a { - font-size: var(--text-sm); - color: var(--grey-700); - word-break: break-word; -} - -.frm_actions_list span.frm-outer-circle { - /* 50px total with 30px content */ - background-color: var(--grey-100); - padding: 10px; - text-align: center; - border-radius: 50%; - display: block; - width: 30px; - height: 30px; - margin: 0 auto 15px; - line-height: 1; -} - -.frm_email_settings .widget-title h4 { - color: var(--grey-700); -} - -.frm_disabled_action .widget-title h4 { - color: var(--grey); -} - -.frm_actions_list a .frmsvg, -.frm_actions_list a i { - height: 18px; - width: 18px; - font-size: 18px; - padding: 2px; - color: var(--lightest-grey); -} - -span.frm-inner-circle, -.frm_email_settings .widget-title .frm_form_action_icon { - background-color: var(--grey-400); - border-radius: 50%; - display: inline-block; - text-align: center; - line-height: 1; -} - -span.frm-inner-circle { - background-color: var(--primary-700); - height: 22px; - width: 22px; - padding: 4px; - color: #fff; -} - -.frm-inner-circle svg { - fill: currentColor; -} - -.frm_email_settings .widget-title .frm_form_action_icon { - height: 15px; - width: 15px; - padding: 5px; - color: #fff; - vertical-align: middle; -} - -.frm_actions_list .frmsvg, -.frm_actions_list i::before, -.frm_email_settings .widget-title .frm_form_action_icon i, -.frm_email_settings .widget-title .frm_form_action_icon .frmsvg { - height: 15px; - width: 15px; - vertical-align: text-top; -} - -.frm_actions_list i::before { - vertical-align: middle; -} - -.frm_email_settings .widget-title:hover .frm_form_action_icon { - background-color: var(--grey); -} - -span.frm-inner-circle.frm-inverse { - background-color: transparent; - color: var(--primary-700); - padding: 0; - height: 30px; - width: 100%; -} - -.frm_actions_list span.frm-inverse i, -.frm_actions_list span.frm-inverse .frmsvg { - color: var(--primary-700); - height: 30px; - width: 30px; - font-size: 30px; - padding: 0; -} - -.frm_actions_list i.frm-inverse::before { - height: 30px; - width: 100%; - font-size: 30px; -} - -.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse { - background: #fff; - padding: 0; - height: 24px; - width: 24px; -} - -.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg, -.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before { - color: var(--grey-400); - height: 24px; - width: 24px; - font-size: 24px; -} - -.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg, -.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before { - color: var(--grey-500); -} - -.frm_email_icons { - padding: 10px 0 5px 6px; - font-size: 20px; -} - -.frm_email_icons a { - margin-left: 8px; - color: var(--grey); - opacity: 0; - transition: all 0.2s ease; -} - -.frm_email_icons a .frmsvg { - color: var(--grey); -} - -.frm_email_icons a:hover, -.widget-top:hover .frm_email_icons a { - opacity: 1; -} - -.frm_actions_list a.frm_inactive_action { - color: var(--grey); -} - -.frm_inactive_action .frm-inner-circle, -.frm_actions_list .frm_inactive_action i { - opacity: 0.4; -} - -/** - * Component: Notification Settings - */ -table td, .form-table tr td { - vertical-align: top; -} - -#new_fields .form-table tr td { - display: block; - padding: 7px 0 0; -} - -#new_fields .form-table tr td:first-child { - margin: 0; -} - -#new_fields .form-table tr td:last-child { - margin-bottom: 9px; -} - -.form-table #list-table th { - text-align: center; -} - -#form_settings_page th, -#form_settings_page td, -.frm_settings_form td, -#frm_notification_settings .frm_form_action_settings td p { - padding: 7px 0; -} - -#permissions_settings_settings .frm_grid_container { - align-items: center; -} - -#frm_notification_settings .form-table > tbody > tr > th { - width: 150px; - font-weight: 400; - padding-right: 10px; -} - -#frm_notification_settings .frm_single_email_settings .form-table > tbody > tr > th { - width: 80px; -} - -#frm_notification_settings table tr td:first-child { - padding-left: 0; -} - -#frm_notification_settings table tr td:last-child { - padding-right: 0; -} - -#frm_notification_settings .frm_left_label { - float: none; /* For add-ons that haven't been updated for 4.0 */ - width: auto !important; -} - -.frm-fields .frm_autoresponder_rows select { - width: auto; -} - -#frm_notification_settings .frm_with_left_label, -#frm_notification_settings .frm_left_label + textarea, -#frm_notification_settings .frm_left_label + select, -#frm_notification_settings .frm_left_label + input[type=text] { - width: 100%; -} - -#frm_notification_settings .frm_email_buttons { - padding: var(--gap-2xs); - background: var(--light-blue); - color: var(--primary-700); - border-radius: var(--small-radius); - border-color: var(--blue-border); - line-height: 1; - height: auto; - min-height: 12px; - font-size: var(--text-xs); - box-shadow: none; -} - -p.frm_bcc_cc_container, -p.frm_reply_to_container { - float: right; - z-index: 1; - position: relative; -} - -p.frm_bcc_cc_container { - margin: 14px 0 0; -} - -p.frm_reply_to_container { - margin: -4px 0 0; -} - -.frm_email_row .frm_cancel1_icon::before { - vertical-align: bottom; -} - -.frm_cc_row.frm_email_row .frm-with-right-icon, -.frm_bcc_row.frm_email_row .frm-with-right-icon, -.frm_reply_to_row.frm_email_row .frm-with-right-icon { - width: calc(100% - 20px); - display: inline-block; -} - -.frm_email_row .frm_remove_field .frm_close_icon { - position: relative; - fill: var(--grey-500); - vertical-align: middle; -} - -/** - * Component: Logic Fields - */ -.frm-inline-select, -p.frm-inline-select, -.frm_logic_rows .frm-collapse-me { - line-height: var(--h-md) !important; -} - -.frm_logic_row { - padding: var(--gap-xs) 0 0; -} - -.frm-single-settings ul.frm_sortable_field_opts { - border-bottom: 1px solid var(--grey-200); - padding-bottom: var(--gap-xs); - margin-bottom: var(--gap-xs); -} - -.frm-single-settings .frm-add-other svg.frm_add_tag { - position: relative; - top: 5px; - margin-right: 4px; -} - -.frm-single-settings .frm_single_option .frm_remove_tag::before { - content: ""; -} - -.frm-single-settings input[type=checkbox][readonly] { - opacity: 0.5; - pointer-events: none; -} - -.advanced_settings .frm_logic_row { - margin: 14px 0; -} - -.advanced_settings .frm_logic_row select, -.advanced_settings .frm_logic_row input { - max-width: 30% !important; -} - -.frm_form_action_settings .frm_logic_row p { - margin-top: 0; - margin-bottom: 0; - padding: 0; -} - -/** - * Component: Form Settings Widget - */ -#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside { - padding-bottom: 0; -} - -#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside { - padding-left: 15px; - padding-right: 15px; -} - -#form_global_settings h3 { - font-size: var(--text-sm); - margin-top: 25px; -} - -#form_global_settings .tabs-panel + h3 { - margin-top: 0; - border: none; -} - -#poststuff .frm_form_settings .widget-inside h3, -#poststuff .frm_form_settings .advanced_settings h3, -#poststuff .frm_settings_form h3, -#frm_advanced .inside h3 { - border-top: 1px solid #eee; - border-bottom: none; - margin: 15px -15px 0; - padding: 8px 15px; - font-size: var(--text-sm); -} - -#poststuff .frm_form_settings h3.frm_first_h3, -#poststuff h3.frm_first_h3 { - border: none; - margin-top: 0; -} - -h3.frm_add_logic_link { - margin-bottom: 0 !important; -} - -a.frm_add_logic_link.frm_hidden { - display: none; -} -a.frm_add_logic_link.frm_hidden + .frm_logic_rows { - height: auto; -} - -/** - * Icon Font styles - */ -.frm_icon_font { - color: #A0A0A0; - color: var(--grey); -} - -.frm-fields label .frm_icon_font { - font-size: inherit; -} - -.misc-pub-revisions.frm_icon_font, -.misc-pub-revisions.frm_icon_font:hover { - color: inherit; -} - -.postbox.frm_with_icons .inside { - padding: 0; - margin: 0; -} - -.frm_add_tag::before { - content: "\e602"; -} - -.frm_remove_tag::before { - content: "\e600"; -} - -.frm_logic_row .frm1 > .frm_remove_tag { - padding: 0; -} - -.frm_tooltip_icon::before { - font-size: 13px; - vertical-align: top; -} - -.frm_help svg, -.frm_help .frmsvg { - height: 13px; - width: 13px; - vertical-align: top; - color: var(--grey-400); -} - -.form-field input[type=text].frm_other_input { - width: 30%; - margin-left: 10px; -} - -.frm-add-other { - text-align: right; -} - -.frm-add-other .frm_add_tag { - vertical-align: 20%; -} - -.frm_action_icon { - margin: 5px 0 0 5px; -} - -span.frm_action_icon { - margin: 0 4px 0 0; -} - -.frm_action_icon:active { - outline: none; -} - -a.frm_action_icon:hover { - text-decoration: none; -} - -.frm_action_icon.frm_error_icon::before { - content: "\e608"; -} - -.frm_inactive_icon.frm_action_icon.frm_error_icon::before { - content: "\e606"; -} - -.frm-field-action-icons { - text-align: right; - position: absolute; - top: 2px; - right: 2px; - max-width: 100%; -} - -.frm-field-action-icons .frm-field-id { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 80px; - max-width: calc(100% - 50px); - position: relative; - top: 2px; -} - -.frm-field-action-icons > a { - font-size: var(--text-md); - width: 17px; -} - -.frm-field-action-icons a:hover { - text-decoration: none; -} - -.frm-field-action-icons .dropdown { - display: inline-block; -} - -.frm-field-action-icons > a .frmsvg { - color: var(--grey-500) !important; - font-size: 17px; - width: 17px; - height: 17px; -} - -.frm-field-action-icons > a .frmsvg, -.frm-field-action-icons > div > a .frmsvg { - vertical-align: baseline; -} - -.edit_field_type_end_divider .frm-field-action-icons { - display: none !important; -} - -.frm-move { - cursor: grab; -} - -/** - * Extended Howto styles - */ -span.howto { - display: inline; -} - -.frm_import_message { - margin: 15px 0; - line-height: 2.5; -} - -/** - * Form Widget styles - */ -.frm_sorting .form-field .widget input[type=text], -.frm_sorting .form-field .widget input[type=number], -.frm_sorting .form-field .widget select, -#wpcontent .frm_sorting .form-field .widget select, -.frm_sorting .form-field .widget textarea { - width: auto; -} - -/** - * Tag Checklist styles - */ -.tagchecklist span.no_taglist { - display: inline; - float: none; - line-height: 15px; - margin-right: 0; - font-size: inherit; -} - -.tagchecklist .frm_exclude_cat_list span { - display: inline; -} - -.tagchecklist span a::before { - line-height: 23px; - text-align: start; -} - -.frm_form_action_settings .frm_email_row .frm_tooltip_icon { - position: relative; - bottom: 2px; -} - -/** - * No Entries Page styles - */ -.frm_no_entries_form { - padding: 60px 0; -} - -.frm_no_entries_form .frm_no_entries_header { - font-size: 20px; - margin-bottom: 10px; -} - -.frm_no_entries_form .frm_no_entries_text { - line-height: var(--leading); -} - -#form_entries_page #the-list .no-items { - height: 240px; /* Equals to the max height of search dropdown */ -} - -/** - * Reports Page styles - */ -#form_reports_page img.frm_no_reports { - max-width: 100%; -} - -.frm_wrap .google-visualization-table .gradient, -.frm_wrap .google-visualization-table-tr-head, -.frm_wrap .google-visualization-table-tr-odd, -.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over { - background: var(--lightest-grey); -} - -.frm_wrap .google-visualization-table-tr-over { - background: #fff; -} - -.frm_wrap .google-visualization-table-table th, -.frm_wrap .google-visualization-table-table td { - border-right-width: 0; - padding: 10px !important; -} - -.frm_wrap .google-visualization-table-tr-head, -.frm_wrap .google-visualization-table-tr-head th { - white-space: pre-wrap; - font-size: var(--text-md); - font-weight: 400 !important; - text-align: left; -} - -.frm_wrap .google-visualization-table-td-number { - text-align: inherit; -} - -#form_reports_page .postbox { - text-align: center; - float: none; - display: inline-block; - margin-right: 2%; - width: 20%; - min-width: 175px; -} - -/** - * Views Page styles - */ -#form_views_page img.frm_no_views { - max-width: 100%; -} - -/** - * Component: Field Options Popup - */ -.frm_field_opts_popup { - min-width: 300px; - background-color: #fff; -} - -.frm_field_opts_popup #wpadminbar { - display: none; -} - -.frm_prepop { - width: 100%; - list-style: none; - overflow: auto; - margin: 0; - max-height: 295px; -} - -.frm_prepop li { - margin: 0; -} - -.frm_prepop li a { - display: block; - text-decoration: none; - cursor: pointer; - padding: 5px 20px; -} - -.frm_prepop li a:hover { - background: var(--sidebar-color); -} - -/** - * Form Editor Container - */ -#frm_form_editor_container #frm_form_key_box { - width: 13em; - max-width: 30%; -} - -#frm_form_editor_container #frm_form_desc { - width: 70%; -} - -#frm_form_editor_container .ui-widget-content { - display: none; - padding: 15px; -} - -#frm_form_editor_container .ui-widget-content label { - float: left; - width: 170px; - text-align: right; - padding-right: 5px; - clear: both; -} - -#frm_form_editor_container .ui-widget-content label.nofloat { - clear: none; - float: none; - margin-left: 10px; -} - -#frm_form_editor_container .ui-state-default { - color: #333 !important; -} - -.frm_green { - color: var(--green) !important; -} - -#frm_form_editor_container .ui-state-default a.frm_orange, .frm-right-panel a.frm_orange, #postbox-container-1 a.frm_orange { - color: #D54E21; -} - -#styling_settings input[type=checkbox], #styling_settings input[type=radio] { - border: solid 1px #bbb; -} - -#styling_settings .widget .widget-top, #frm_form_editor_container .widget .widget-top { - cursor: pointer; -} - -/** - * Widget Sorting - */ -.frm_sorting .widget, .frm_settings_page .widget { - background: #fff; -} - -.frm_sorting .widget-title h4 { - font-weight: 400; -} - -.frm_sorting .widget, #postbox-container-1 .widget, .frm-right-panel .widget, .frm_settings_page .widget { - margin-bottom: 0; -} - -.frm_settings_page .widget-inside { - padding: 0 5px 5px; -} - -.frm_sorting .widget, -.widget-inside, -.frm_sorting .form-field .widget { - display: none; -} - -#frm-show-fields { - min-height: 350px; - padding: 0 0 35px; - margin: 0; - position: relative; -} - -.frm-has-fields #frm-show-fields { - min-height: 50px; -} - -#frm_builder_page .frm-lite-credit-card-element, -body.frm-admin-page-styles .frm-lite-credit-card-element { - position: relative; -} - -#frm_builder_page .frm-lite-credit-card-element > div, -body.frm-admin-page-styles .frm-lite-credit-card-element > div { - position: absolute; - top: calc(50% - 1px); - transform: translateY(-50%); - right: 10px; - color: #d0d4dd; -} - -#frm_builder_page #frm_field_group_controls { - position: absolute; - padding: 5px; - border-radius: 4px 4px 0 0; - text-align: right; - box-sizing: border-box; - right: 0; - top: -28px; - height: 28px; - z-index: 3; /* section dividers use z-index: 2; position above that to avoid it taking over hover control. */ -} - -.frm-field-group-hover-target, -.frm-has-open-field-group-popup, -#frm_builder_page #frm_field_group_controls, -.frm-selected-field-group { - background: rgba(65, 153, 253, 0.04); -} - -.frm-selected-field-group { - position: relative; -} - -#frm_builder_page #frm_field_group_controls > span:first-child { - margin-right: 5px; -} - -#frm_builder_page #frm_field_group_controls svg { - pointer-events: none; -} - -#frm_field_group_controls { - visibility: hidden; -} - -.frm-field-group-hover-target #frm_field_group_controls { - visibility: visible; -} - -#frm_field_group_controls .dropdown-item a span { - color: var(--grey-700); -} - -#frm_field_group_controls .dropdown-item a:hover { - text-decoration: none; -} - -/** - * Field Sorting - */ -.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider { - display: none !important; -} - -.frm-right-panel .ui-state-default, -#postbox-container-1 .ui-state-default, -.frm_sorting > li.ui-state-default, -.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { - border: 1px solid transparent; - font-weight: 400 !important; - background-color: transparent; - background-image: none; - padding: 5px; - margin: 0; - box-shadow: none; - display: block; - text-align: inherit !important; - overflow: visible; - position: relative; -} - -#frm-show-fields li.frm_cancel_sort { - /* If a section gets dropped into a section, hide it */ - display: none; -} - -.divider_drop { - text-align: center; -} - -.divider_drop .howto .frm_icon_font { - font-style: normal; -} - -.show_repeat_sec { - display: none; -} - -.repeat_section .show_repeat_sec { - display: inline-block; - margin: 5px 0 0; -} - -.repeat_section tr.show_repeat_sec { - display: table-row; -} - -.repeat_format .frm_repeat_label, -.repeat_formattext .frmsvg, -.repeat_formattext i { - display: none; -} - -/** - * Frm Button - */ -.frm_button { - text-decoration: none; - border: 1px solid #eee; - padding: 5px; - color: #444; - vertical-align: middle; - box-shadow: none !important; -} - -a.frm_button:hover { - text-decoration: none !important; -} - -.frm_button, -.frm_button .frm_icon_font::before { - font-size: 13px; - vertical-align: middle; -} - -.frm_button .frmsvg { - width: 13px; - height: 13px; -} - -/** - * Components - Divider - */ -.frm-right-panel .ui-state-default, -#postbox-container-1 .ui-state-default { - padding: 0; - margin: 0; -} - -ul.start_divider { - padding: 8px 13px 0 8px; - min-height: 115px; - transition: all 0.4s linear; -} - -.frm-section-collapsed .frm_no_section_fields, -.frm-section-collapsed ul.start_divider { - height: 0; - min-height: 0 !important; -} - -.frm-section-collapsed ul.start_divider { - overflow: hidden; -} - -.frm-section-collapsed .frm_no_section_fields { - overflow: hidden; - padding: 0; - opacity: 0; -} - -.frm-section-collapsed .divider_section_only .frm-collapsed-label { - display: inline; -} - -.frm-page-collapsed .frm_clone_icon, -.frm-page-collapsed .frm_delete_field, -.frm-page-collapsed .frm_clone_field, -.frm-section-collapsed .frm_clone_icon { - opacity: 0.5; - cursor: not-allowed; -} - -/* Hide the Duplicate summary option because we are missing the logic that also adds a new page */ -.edit_field_type_summary .frm_more_options_li:nth-child(2) { - display: none !important; -} - -.edit_field_type_submit .frm_more_options_li:not(:last-child) { - display: none !important; -} - -.frm_no_section_fields:not(.frm_block) + ul.start_divider { - padding: 0; - min-height: 132px; -} - -.frm_sorting li.ui-state-default .divider_section_only { - padding: 6px; - margin-top: -10px; - border: 2px solid transparent; - border-radius: var(--small-radius); - z-index: 2; - position: relative; -} - -.divider_section_only > .frm_inner_field_container { - padding: 5px 0; - margin: 0; -} - -.frm-collapsed-label, -.divider_section_only > .frm_inner_field_container .frm_form_fields { - display: none; -} - -.frm-section-collapsed .divider_section_only::after, -.divider_section_only::before { - content: ""; - display: block; - padding: 2px 0; - line-height: 1px; - border-top: 2px solid var(--grey-300); - top: -2px; - position: absolute; - width: 100%; - transition: 0.5s border-color ease-in-out; -} - -.frm-section-collapsed .divider_section_only::after { - top: auto; - bottom: -6px; -} - -.frm-section-collapsed .divider_section_only:hover::after, -li.selected.frm-section-collapsed .divider_section_only::before, -li.selected.frm-section-collapsed .divider_section_only::after, -.divider_section_only:hover::before, -li.selected .divider_section_only::before { - border-color: transparent; -} - -.frm_sorting li.ui-state-default.edit_field_type_divider { - overflow: visible; - position: relative; - padding: 0 0 0 20px; - margin: 25px 0 0 -5px; - border-left: 1px solid var(--primary-700); - transition: border 0.7s ease-out; -} - -.frm-section-collapsed { - border-left-color: transparent !important; -} - -.frm_sorting li.edit_field_type_end_divider, -.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { - margin: 0 0 var(--gap-sm); -} - -.frm-first-page .frm_prev_page { - display: none; -} - -/** - * Components - Form Rows - */ -#frm_builder_page .frm_remove_form_row.frm_button, -#frm_builder_page .frm_add_form_row.frm_button { - border-radius: var(--small-radius); - border: 1px solid var(--blue-border); -} - -#frm_builder_page .frm_remove_form_row .frmsvg, -#frm_builder_page .frm_remove_form_row i::before, -#frm_builder_page .frm_add_form_row .frmsvg, -#frm_builder_page .frm_add_form_row i::before { - color: var(--primary-700); -} - -.frm-preview-buttons .frm_button_submit { - margin: 0 5px; -} - -.frm-page-break { - border-top: 1px dashed var(--primary-700); - margin-top: var(--gap-lg); - position: relative; -} - -.frm-page-break::before, -.frm-page-break::after { - content: ""; - position: absolute; - background-color: #fff; - border-radius: 50%; - border: 1px solid var(--primary-700); - text-rendering: auto; - -webkit-font-smoothing: antialiased; -} - -/** - * Components - Divider Icons - */ -.edit_field_type_divider .frm-divider-icon.frmsvg { - padding: 2px; - position: absolute; - left: -12px; - color: #fff; - background-color: var(--primary-700); - border-radius: 50%; -} - -.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg { - height: 8px; - width: 8px; - padding: 0; - bottom: -4px; - left: -24.5px; - color: var(--primary-700); - background-color: #fff; -} - -.edit_field_type_divider.selected .frm-divider-icon.frmsvg, -.edit_field_type_divider:hover .frm-divider-icon.frmsvg { - background: var(--primary-500); -} - -.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg, -.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg { - background-color: #fff; - color: var(--primary-500); -} - -.frm-page-break::before, -.frm-page-break::after { - width: 8px; - height: 8px; - top: -6px; - border-color: var(--grey); -} - -.frm-page-break::after { - right: 0; -} - -#frm-fake-page .frm-page-break { - border-color: var(--grey); -} - -#frm-fake-page { - padding: 0 5px; -} - -.frm_sorting li.edit_field_type_divider:hover, -.frm_sorting li.edit_field_type_divider.selected { - border-left-color: var(--primary-500); -} - -/** - * Component: Page Collapsed - */ -.frm-section-collapsed::after { - border-color: transparent !important; - color: transparent; -} - -.frm-page-break .frm-collapse-page.button { - margin-left: 46%; - margin-top: -16px; - padding: 6px 12px !important; -} - -#frm-fake-page.frm-page-collapsed { - margin-bottom: 0; -} - -.frm-page-collapsed { - position: relative; - overflow: visible !important; - margin-bottom: var(--gap-lg); -} - -.frm-collapse-page .frmsvg, -.frm-collapse-page .frm_arrowdown6_icon { - width: var(--text-sm); - height: var(--text-sm); - font-size: var(--text-sm); - text-align: center; - margin-left: 2px; - color: currentColor; - transition: transform 300ms ease-in-out; -} - -.frm-page-collapsed .frm-collapse-page .frmsvg { - transform: rotate(180deg); -} - -#frm-fake-page .frm_arrowdown6_icon { - color: currentColor; -} - -.frm-collapsed i::before, -.frm-page-collapsed .frm_arrowdown6_icon::before { - content: "\e913"; -} - -.frm-collapse-section svg { - fill: var(--primary-color); - transition: transform 0.2s ease-out, fill 0.2s ease-out; -} - -.frm-collapse-section:hover svg { - fill: var(--primary-700); -} - -.frm-section-collapsed .frm-collapse-section svg { - transform: rotate(-90deg); -} - -.open .widget-top .widget-title-action button .frmsvg { - transform: rotate(90deg); -} - -.widget-top .widget-title-action button .frmsvg use { - color: var(--grey); -} - -.frm-collapsed + .frm-collapse-me { - overflow: hidden !important; -} - -.frm-collapse-me { - padding-bottom: 10px; -} - -.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect) { - position: relative; - z-index: 1; -} - -.frm-collapsed + div { - height: 0; - padding: 0; -} -.frm-collapsed + div.frm-collapse-me { - display: none; -} - -.frm-collapsible { - display: flex; - justify-content: space-between; - align-items: center; - font-weight: 700; - padding: var(--gap-xs) 0; - margin: 0; - cursor: pointer; - /* prevent text selection */ - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.frm-collapsible.frm-collapsed { - font-weight: 400; -} -.frm-collapsible:not(.frm-collapsed) .frmsvg { - transform: rotate(-180deg); -} -h4.frm-collapsible { - font-size: var(--text-md); -} - -.frm-collapsible + .frm-collapse-me { - padding-bottom: 0; -} -.frm-collapsible:focus-visible { - outline: 1px solid var(--primary-500); -} - -/** - * Divider Labels - */ -.frm_sorting .divider_section_only > .frm_ipe_field_label { - font-size: 116%; -} - -#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button { - width: 150px; - text-align: center; - margin-bottom: 3px; - display: block; -} - -tr.frm_options_heading td { - padding-bottom: 0; -} - -.frm_sorting .widget-inside .form-table td p, -.frm_sorting .widget-inside .form-wrap label { - padding: 10px 0; -} - -/** - * Empty Fields - */ -.frm_no_fields, -.frm_no_section_fields { - text-align: center; - position: absolute; - color: var(--medium-grey); - font-size: var(--text-md); - box-sizing: border-box; - border: 1px dashed var(--grey-300); - outline: 2px solid transparent; -} - -.frm-over-droppable + .frm_no_fields { - border-style: solid; - border-color: var(--primary-500); - outline-color: var(--primary-500); -} - -.frm_no_section_fields { - display: none; - margin: 0; - padding: 20px 0 0; - width: calc(100% - 20px); - height: 121px; - transition: all 0.4s linear; -} - -.frm-empty-fields .frm_updated_message ~ .frm_no_fields { - top: 60px; -} - -#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields > .frm_field_box:last-child { - visibility: hidden; -} - -.frm-has-fields .frm_no_fields { - display: none; -} - -#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder { - display: none; -} - -#frm-form-button { - display: none; - margin: 0 7px 25px; -} - -.frm-has-fields #frm-form-button { - display: block; -} - -.frm-large-plus.frmsvg { - color: var(--primary-700); - height: 45px; - width: 45px; -} - -.frm_no_section_fields p { - color: var(--grey); - font-size: 15px; -} - -.frm_no_fields { - top: 0; - width: calc(100% - 24px); - min-height: 320px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - gap: var(--gap-md); - padding: var(--gap-md); - border: 0; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); - border-radius: var(--medium-radius); - margin: var(--gap-sm) 12px; -} -.frm_no_fields img { - margin-left: calc(-1 * var(--gap-lg)); -} -.frm_no_fields .frm_drag_inst { - font-size: 20px; - font-weight: 600; - margin: 0 0 12px; -} -.frm_no_fields p { - color: var(--grey-600); - font-size: var(--text-md); - margin: 0; -} - -/** - * Product Fields - */ -.frm_product_price_wrapper { - display: inline-block; - vertical-align: middle; -} - -.frm_prod_type_single .frm_product_price_wrapper { - width: 100%; -} - -#new_fields .frm_product_price_wrapper input:first-child { - width: 60% !important; - float: left; -} - -#new_fields .frm_product_price_wrapper input:nth-child(2) { - width: 37% !important; - float: right; -} - -/** - * Field Choices - */ -li.frm_single_option { - padding-bottom: var(--gap-sm); - border-bottom: 0; -} - -.frm_prod_type_single input[type=radio], -.frm_prod_type_single .frm_drag_icon, -.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3), -.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag, -.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product), -.frm_prod_type_single .frm-bulk-edit-link, -.frm_prod_type_user_def.frm_grid_container, -.frm_prod_options_heading.frm_prod_user_def { - display: none; -} - -.frm_prod_type_single .frm-ai-generate-options-modal-trigger { - display: none !important; -} - -.frm_prod_type_single .frm_option_key { - margin-left: 0 !important; -} -.frm_prod_type_single .frm_option_key input[type=checkbox] + input[type=text], -.frm_prod_type_single .frm_option_key input[type=radio] + input[type=text] { - margin-left: 0 !important; -} - -.plugin-card-bottom .frm-trash { - color: #a00; -} - -/** - * Field Labels - */ -.frm-fields p > .frm_inline_label, -.frm_inline_label { - padding-left: 3px; - margin-right: 12px; - display: inline-block; -} - -.frm_left_label { - clear: both; - float: left; - width: 32% !important; - margin-right: 2% !important; - line-height: 2em; -} - -table td.frm_left_label { - float: none; - line-height: inherit; - padding: 5px 0 5px 2%; -} - -.frm_left_label.frm_alignright { - padding-right: 10px; - text-align: right; -} - -.frm-fields .frm_left_label + textarea, -.frm-fields .frm_left_label + select, -.frm-fields .frm_left_label + input[type=text], -.frm_with_left_label { - width: 66%; -} - -td.frm_left_label + td { - width: 66%; - padding-top: 0; -} - -#html_settings label { - display: block; -} - -#html_settings .frm_field_html_box { - width: 100%; -} - -.frm-has-required .frm-required { - color: var(--error-500); -} - -/** - * Category Tabs - */ -ul.frm-category-tabs { - margin-top: 2px; -} - -.frm-category-tabs > li a, -.frm-category-tabs > li a:active { - outline: none; - box-shadow: none; - display: flex; - gap: var(--gap-xs); - align-items: center; -} - -.frm-category-tabs > li.active .frmsvg, -.frm-category-tabs > li.active i, -.frm-category-tabs > li.active span, -.frm-category-tabs > li.active a { - color: var(--primary-500); -} - -.frm_wrap .manage-menus { - margin-top: 0; - border: none; - border-bottom: 1px solid var(--grey-300); - background: var(--lightest-grey); -} - -.general_settings .postbox .manage-menus { - border-top: none; - border-left: none; - border-right: none; -} - -.frm-postbox-no-h3 { - padding-top: 10px; -} - -/** - * Components : UI State Defaults - */ -.frm-right-panel .ui-state-default, #postbox-container-1 .ui-state-default { - color: var(--grey-900); -} - -.no_repeat_section .frm_sorting > li.ui-state-default.edit_field_type_end_divider:hover { - box-shadow: none; -} - -.frm-selected-field-group li.ui-state-default, -.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected, -.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover, -.frm_sorting li.ui-state-default.frm_not_divider:hover, -.frm_sorting li.ui-state-default.ui-sortable-helper, -.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover, -.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover, -.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only, -.frm_update_msg, -.frm_sorting li.ui-state-default.frm_not_divider.selected, -.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only { - border-color: var(--primary-500); - transition: 0.5s border-color ease-in-out; -} - -.frm_sorting li.ui-state-default.frm_not_divider.selected { - box-shadow: 0 0 1px 0 var(--primary-500); -} - -.frm_sorting li.ui-state-default { - transition: 0.7s box-shadow ease-in-out, 0.7s height linear; -} - -.frm_sorting li.ui-state-default.frm-newly-added { - box-shadow: inset 0 0 2px 1px var(--blue-border); -} - -.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { - visibility: visible !important; - display: inline !important; -} - -.edit_field_type_end_divider > label { - display: none !important; -} - -/** - * Update Message - */ -.frm_email_actions.feature-filter { - font-weight: 700; - border: 1px solid #DFDFDF; - background-color: #EEE; - padding: 3px 5px 2px; - font-size: var(--text-md); - line-height: 20px; -} - -.frm_update_msg { - border-style: solid; - margin: 10px 0; - color: #21759B; - padding: 8px 15px; - border-radius: 4px; -} - -.frm_update_msg.wrap { - margin: 10px 20px 0 2px; -} - -#frm-insert-fields-box .frm_update_msg { - margin-right: 0.9em; -} - -.frm_update_msg a { - font-weight: 700; -} - -.widefat td { - width: auto; -} - -.widefat .column-id { - width: 3.7em; -} - -.widefat .column-show_count { - width: 5em; -} - -.widefat .column-shortcode { - width: 9em; -} - -/** - * Admin Columns - */ -.toplevel_page_formidable .column-shortcode div { - display: flex; - gap: var(--gap-xs); -} - -.widefat .column-entries, .widefat .column-link { - width: 10%; - text-align: center; -} - -.widefat .column-form_key, .widefat .column-created_at { - width: 10%; -} - -.frm-white-body .search-box, -.frm_wrap .frm-search { - float: right; - margin: 0; - clear: right; -} - -.frm-white-body .search-box, -.frm-search { - min-width: 32%; - position: relative; - display: flex; - gap: var(--gap-sm); - align-items: center; -} - -.frm-inline-modal .frm-search, -#frm_adv_info .frm-search { - float: none; - width: 100%; - clear: both; - margin: var(--gap-xs) 0; -} - -/** - * Button Group - */ -.frm-button-group a { - margin: 0 7px !important; -} - -/** - * Input Icons - */ -.frm_has_textarea .frm-with-right-icon { - display: block; -} - -.frm-with-left-icon, -.frm-with-right-icon { - position: relative; -} - -i.frm-show-box, -i.frm-show-inline-modal, -.frm-with-left-icon i, -.frm-with-right-icon i:not([class*=mce-]), -.frmsvg.frm-show-box, -.frmsvg.frm-show-inline-modal, -.frm-with-left-icon .frmsvg, -.frm-with-right-icon .frmsvg, -.frm-search > .frmsvg, -.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { - position: absolute; - padding: 0 14px; - pointer-events: none; - left: 0; - color: var(--grey-400); - font-size: var(--text-xs); -} - -.frm-search > .frmsvg, -.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { - padding-left: var(--gap-xs); - padding-right: var(--gap-xs); -} - -.frm-search > .frmsvg { - box-sizing: unset; -} - -.frm-with-right-icon .frmsvg, -.frm-with-right-icon i:not([class*=mce-]) { - right: 0; - top: -3px; - left: auto; - padding: 0 10px 0 5px; -} - -.frm_form_settings .frm-with-right-icon .frmsvg { - top: 0; -} - -.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg, -#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg { - top: auto; - bottom: var(--gap-sm); -} -.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg, -#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg { - bottom: var(--gap-lg); -} - -.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg { - top: auto; - bottom: 6px; -} - -.frmsvg.frm-show-box, -.frmsvg.frm-show-inline-modal, -i.frm-show-box, -i.frm-show-inline-modal { - top: auto; - background-color: var(--primary-50); - color: var(--primary-500); - border-radius: 6px; - padding: var(--gap-2xs); - margin: 5px; /* input height - svg / 2 */ - margin-bottom: 0; - z-index: 1; - cursor: pointer; - pointer-events: initial; -} -.frmsvg.frm-show-box:focus, -.frmsvg.frm-show-inline-modal:focus, -i.frm-show-box:focus, -i.frm-show-inline-modal:focus { - outline: 1px solid var(--primary-500); -} - -/** - * Inline Modals - */ -.frm-open + .frm-inline-modal { - top: -10px; - margin-bottom: 0; -} -.frm-open + .frm-inline-modal.frm-modal-no-dismiss .inside > .frm-search:first-child { - margin-top: var(--gap-sm); -} - -.frm_grid_container > .frm-open + .frm-inline-modal { - top: -4px; -} -.frm_grid_container > .frm-open + .frm-inline-modal.frm-modal-no-dismiss { - top: 0 !important; -} - -/** - * Input Positioning - */ -.frm-with-left-icon input { - padding-left: 37px !important; -} - -.frm_wrap .frm-with-right-icon textarea, -.frm_wrap .frm-with-right-icon input, -.frm_wrap .frm-with-right-icon input[type=text] { - padding-right: var(--gap-md); -} - -#frm-show-fields .frm-with-left-icon .frmsvg, -#frm-show-fields .frm-with-left-icon i { - padding-top: 10px; -} - -/** - * Search Inputs - */ -.frm-search input[name=s], -.frm-search .dropdown-toggle, -.frm-search input.frm-search-input { - color: var(--grey-800); - border-color: var(--grey-300); - border-radius: var(--small-radius); - box-shadow: var(--box-shadow-xs); -} -.frm-search input[type=search], -.frm-search input[type=text] { - padding-left: var(--gap-lg) !important; -} -.frm-search .dropdown-toggle { - width: 100%; - float: none; - max-width: 200px; - background: transparent; - padding: 7px; - padding-left: 33px !important; - min-height: 32px; - text-align: inherit; - overflow: hidden; - text-overflow: ellipsis; -} -.frm-search #search-submit a { - color: var(--grey-800); -} -.frm-search #search-submit .caret { - opacity: 0.7; -} - -.frm-white-body .search-box input[name=s], -#wpwrap .frm-search input[type=search] { - flex: 1; - font-size: var(--text-md); - line-height: var(--text-xl); - padding: var(--gap-xs); -} - -span.multiselect-selected-text { - white-space: nowrap; - display: inline-block; - max-width: calc(90% - var(--gap-xs)); - text-overflow: ellipsis; - overflow: hidden; -} - -/** - * Not Set Fields - */ -.frm-not-set input { - color: var(--primary-500) !important; - font-size: 13px; -} - -.frm-not-set .frmsvg, -.frm-not-set i { - color: var(--primary-700); - opacity: 1; -} - -/** - * Shortcode Select - */ -.post-type-frm_display select[name=m] + #post-query-submit, -select[name=m] { - display: none; -} - -.frm_shortcode_select optgroup option { - margin-left: 1em; -} - -.frm_shortcode_select optgroup { - padding-top: 5px; -} - -.frm_shortcode_select .frm_subopt { - margin-left: 2em; -} - -.misc-pub-section a.edit-frm_shortcode, .misc-pub-section a.edit-form-status { - float: none; - font-size: 13px; -} - -.frm-grid { - border-collapse: collapse; - border: none; - margin-right: 10px; -} - -.frm-grid td, .frm-grid th { - padding: 5px; - border: 1px solid black; -} - -/** - * View Page Admin - */ -.post-type-frm_display #poststuff #post-body.columns-2 { - margin-right: var(--big-sidebar); -} - -.post-type-frm_display #post-body.columns-2 #postbox-container-1 { - margin-right: calc(var(--big-sidebar) * -1); - width: calc(var(--big-sidebar) - 40px); -} - -.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables { - width: 100%; -} - -#frm_dyncontent .hndle, -#frm_dyncontent .handlediv { - display: none !important; -} - -.post-type-frm_display .meta-box-sortables .frm_form_nav > li > a, -.post-type-frm_display .frm_form_nav .nav-tab-active { - padding: 0 2px 5px; - line-height: 1.4; -} - -.post-type-frm_display #advanced-sortables h2.hndle, -.post-type-frm_display #side-sortables h2.hndle, -.post-type-frm_display #normal-sortables h2.hndle { - border-bottom: 1px solid var(--grey-300); - margin: 10px 0 0 !important; - padding: 0 25px 8px; -} - -.post-type-frm_display #side-sortables h2.hndle { - margin-top: 0 !important; - padding-top: 10px; -} - -.post-type-frm_display #post-body-content { - margin-top: var(--gap-lg); -} - -.post-type-frm_display.edit-php #wpbody-content > .wrap { - margin: 0; -} - -.post-type-frm_display .postbox .hndle, -.post-type-frm_display .postbox { - border-color: var(--grey-300); -} - -.post-type-frm_display #postbox-container-1 .postbox, -.post-type-frm_display #postbox-container-2 .postbox { - border-radius: var(--small-radius); - border-color: var(--grey-300); - box-shadow: none; -} - -.post-type-frm_display #side-sortables .postbox { - border-radius: 0; - border-top-width: 0; - margin-bottom: 0; -} - -.post-type-frm_display #side-sortables .misc-pub-section { - padding: 15px 20px 10px; -} - -/** - * View Page Admin Icons - */ -.post-type-frm_display .misc-pub-section .frmsvg, -.post-type-frm_display #post-body .misc-pub-post-status::before, -.post-type-frm_display #post-body #visibility::before, -.post-type-frm_display .curtime #timestamp::before, -.post-type-frm_display #post-body .misc-pub-revisions::before, -.post-type-frm_display span.wp-media-buttons-icon::before { - color: var(--grey); -} - -.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #publishing-action, -.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #minor-publishing-actions, -.post-type-frm_display #frm_top_bar + #poststuff #edit-slug-box, -.post-type-frm_display .wrap h1.wp-heading-inline, -.post-type-frm_display .wrap > .page-title-action { - display: none; -} - -/** - * View Page Admin Tabs - */ -.post-type-frm_display #poststuff h2.nav-tab-wrapper { - padding-left: 10px; - margin-bottom: 0; - padding-bottom: 0; -} - -.post-type-frm_display .nav-menus-php .wrap { - margin: 10px 0 0; -} - -.post-type-frm_display .nav-menus-php .wrap p { - padding-left: 12px; - padding-right: 12px; -} - -.post-type-frm_display .nav-tab { - display: inline-block; - background-color: #f4f4f4; -} - -.post-type-frm_display .nav-tab.frm_hidden { - display: none; -} - -.post-type-frm_display .nav-tab:hover { - background-color: #e4e4e4; -} - -/** - * Order/Where Rows - */ -.frm_order_row, -.frm_where_row { - margin-bottom: 7px; - line-height: 30px; -} - -.frm-single-settings .frm_prod_field_opt_cont { - margin-top: initial; - margin-bottom: 20px; -} - -/** - * Editor Elements - */ -/*hide elements if js is avail*/ -select.texture { - display: none; -} - -.post-type-frm_display #wp-content-editor-tools, -#wp-content-editor-tools { - background-color: transparent; -} - -.post-type-frm_display #major-publishing-actions { - border-color: var(--grey-300); - background: var(--sidebar-color); -} - -/** - * Advanced Info Panel - */ -.post-type-frm_display #frm_adv_info { - width: calc(var(--big-sidebar) - 40px); - height: calc(100vh - 32px); - overflow: hidden; -} - -.post-type-frm_display #frm_adv_info:not(.frm_fixed) { - top: 0 !important; -} - -.post-type-frm_display #frm_adv_info.frm_fixed { - position: fixed; - z-index: 9999; - top: 32px; -} - -.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover { - max-height: calc(100vh - 180px); -} - -/** - * Column Layout - */ -.frm_col_one { - margin-right: 4%; - clear: both; -} - -ul .frm_col_one { - float: left; -} - -ul .frm_col_two { - float: right; -} - -ul.frm_two_col { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: var(--gap-sm); -} - -.frm_two_col li { - margin-bottom: 0; -} - -/** - * Component: Info Modals - */ -.frm-info-modal a, -.frm-info-modal ul, -.frm-info-modal p, -.frm-info-modal, -.settings-lite-cta a, -.settings-lite-cta ul, -.settings-lite-cta { - color: var(--grey-500); - font-size: var(--text-md); - box-shadow: none !important; -} - -.frm-info-modal h3, -.settings-lite-cta h3 { - font-size: 17px !important; -} - -.frm-green-icons .frmsvg { - color: var(--green); -} - -.frm-info-modal .postbox .inside, -.settings-lite-cta .postbox .inside { - padding: var(--gap-md); - margin: 0; -} - -.cta-inside a { - color: var(--orange); -} - -.info-modal-inside a.frm-standard-link { - color: var(--primary-500); -} - -.info-modal-inside a.frm-standard-link:hover { - color: var(--primary-700); -} - -.frm_no_p_margin > p { - margin: 0; -} - -/** - * Component: Code List - */ -.frm_code_list a.button { - display: block; - text-align: center; - font-size: 11px; - overflow: hidden; -} - -#frm-navbarDrop + .frm_code_list.frm-full-hover { - margin: var(--gap-xs) 0 0; - min-width: 300px; - max-height: 256px; -} - -.frm_code_list.frm-full-hover li { - margin: 0; -} - -.frm-select-list-item, -.frm_wrap .ui-autocomplete li > div, -.multiselect-container button.multiselect-option, -.frm-dropdown-menu > .dropdown-item > a, -.frm-dropdown-menu > .dropdown-item > a:visited, -.frm-dropdown-menu > .dropdown-item > a:link, -.frm-dropdown-menu .frm_dropdown_li, -.frm_code_list.frm-full-hover a { - display: flex; - color: var(--grey-700); - padding: 5px 10px; - font-size: var(--text-md); - gap: var(--gap-xs); - align-items: center; -} - -.multiselect-container button.multiselect-option.disabled { - opacity: 0.5; -} - -.frm_code_list.frm-full-hover a span { - max-width: 83px; - margin-right: var(--gap-xs); - margin-left: auto; -} - -.frm_code_list.frm-full-hover a { - border-radius: var(--small-radius); -} -.frm_code_list.frm-full-hover a:not(#frm-insert-condition), -.frm_code_list.frm-full-hover a span { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.frm_code_list.frm-full-hover a:focus span:last-child { - outline: 1px solid var(--primary-500); - outline-offset: var(--gap-2xs); -} - -.frm_code_list.frm-full-hover.frmcenter a { - display: block; -} - -#frm-layout-classes frm-full-hover a span { - max-width: 45%; -} - -.frm-select-list-item.active, -.frm-select-list-item:hover, -.frm_wrap .ui-autocomplete li div.ui-state-active, -.frm_wrap .ui-autocomplete li.ui-state-focus, -.multiselect-container button.multiselect-option.active, -.multiselect-container button.multiselect-option:hover, -.frm-dropdown-menu > .dropdown-item > a:hover, -.frm_code_list.frm-full-hover a:hover span, -.frm_code_list.frm-full-hover a:hover { - background: var(--primary-25); - color: var(--primary-500); -} - -.frm-select-list-item .frmsvg, -.frm-dropdown-menu > .dropdown-item > a .frmsvg { - opacity: 0.8; -} - -.frm-select-list-item:hover .frmsvg, -.frm-dropdown-menu > .dropdown-item > a:hover .frmsvg { - opacity: 1; -} - -.frm-dropdown-menu.frm_code_list > li > a { - padding: 3px 15px; - width: 300px; -} - -#frm_edit_box_content_modal .frm-with-search, -.frm-dropdown-menu .frm-with-search { - padding: var(--gap-xs) 10px 0; -} - -.frm-dropdown-menu .subsubsub { - padding: 0 10px; -} - -.frm_grid_container { - overflow: visible; -} - -.frm_code_list.frm_grid_container { - grid-gap: var(--gap-xs); -} - -.frm_code_list.frm_grid_container li { - width: auto; - margin: 0; -} - -.frm_code_list.frm_grid_container a { - display: block; - font-size: var(--text-md) !important; - font-weight: 500; - text-align: center; - color: var(--primary-500); - background-color: var(--light-blue); - border: 1px solid var(--primary-300); - border-radius: var(--small-radius); - padding: 10px 0; - box-shadow: var(--box-shadow-sm); -} -.frm_code_list.frm_grid_container a:hover { - background-color: var(--primary-500); - color: #fff; -} -.frm_code_list.frm_grid_container a:focus-visible { - outline: 2px solid var(--primary-500); - outline-offset: -1px; -} - -.frm-single-settings .frm_code_list.frm-full-hover, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { - padding: 0; - margin: var(--gap-xs) -10px 0; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a { - font-size: var(--text-md); - color: var(--grey-900); - padding: var(--gap-xs) 12px; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a span, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span { - margin: 0; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a span:first-child, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:first-child { - max-width: 130px; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a span:last-child, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:last-child { - max-width: 120px; - margin-left: auto; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover { - font-weight: 500; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover .frmsvg, -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover span, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover .frmsvg, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover span { - color: var(--primary-500); -} - -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { - margin: var(--gap-xs) 0 0; -} -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg { - width: 20px; - height: 20px; -} - -/** - * Component: Insert Fields - */ -.frm_field_list #frm-insert-fields { - max-height: none; - font-size: var(--text-sm); -} -.frm_field_list #frm-insert-fields .button a { - display: block; - max-width: 95%; - overflow: hidden; -} - -#frm-insert-fields { - padding: 0 var(--gap-xs); - overflow: hidden; -} -#frm-insert-fields .frm-search { - float: none; - margin: 0 0 var(--gap-md); - width: auto; -} -#frm-insert-fields li { - /* Prevents advanced fields from always appearing in search results */ -} -#frm-insert-fields li, -#frm-insert-fields li a { - text-decoration: none; - font-weight: 500; - font-size: var(--text-md) !important; - color: var(--grey-900); -} -#frm-insert-fields li.frm_show_upgrade { - cursor: pointer; - opacity: 0.5; -} -#frm-insert-fields li span:not(.frm-new-pill) { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - text-align: left; -} -#frm-insert-fields li a.disabled:hover { - cursor: not-allowed; -} -#frm-insert-fields li.ui-draggable-disabled { - opacity: 0.5; -} -#frm-insert-fields li a:not(.disabled):hover .frmsvg, -#frm-insert-fields li a:not(.disabled):hover i { - color: var(--grey-600); -} -#frm-insert-fields li.frm_show_upgrade, -#frm-insert-fields li a { - text-decoration: none; - display: inline-flex !important; - gap: var(--gap-xs); - align-items: center; - border-radius: var(--small-radius) !important; - padding: 11px var(--gap-md) 11px var(--gap-xs) !important; - color: var(--grey-900) !important; -} -#frm-insert-fields li a { - display: flex !important; - transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out; -} -#frm-insert-fields li a:not(.disabled):hover { - background: #fff; - box-shadow: var(--box-shadow-md); -} -#frm-insert-fields li a:focus-visible { - outline: 1px solid var(--primary-500); -} -#frm-insert-fields li.frm_show_upgrade.frm_hidden { - display: none !important; -} -#frm-insert-fields .frm-with-line { - padding: 12px var(--gap-md); - font-weight: 500; - font-size: var(--text-sm); -} -#frm-insert-fields .frm-with-line::before { - margin-left: calc(-1 * var(--gap-sm)); - width: calc(100% + var(--gap-md)); -} - -.frm_code_list { - clear: both; -} -.frm_code_list.frm-full-hover a.frm_hidden, -.frm_code_list .frmkeys { - display: none; -} - -.frmsvg { - fill: currentColor; - width: 18px; - height: 18px; - vertical-align: middle; -} -.frmsvg svg { - pointer-events: none; -} -.frmsvg.frm_svg40 { - width: 40px; - height: 40px; -} -.frmsvg.frm_svg24 { - width: 24px; - height: 24px; -} -.frmsvg.frm_svg20 { - width: 20px; - height: 20px; -} -.frmsvg.frm_svg15 { - width: 15px; - height: 15px; -} -.frmsvg.frm_svg14 { - width: 14px !important; - height: 14px !important; -} -.frmsvg.frm_svg13 { - width: 13px; - height: 13px; -} -.frmsvg.frm_svg12 { - width: 12px; - height: 12px; -} -.frmsvg.frm_svg9 { - width: 9px; - height: 9px; -} - -input[disabled] { - pointer-events: none; -} - -.frmbutton.ui-sortable-helper .frmsvg, -.field_type_list li.frmbutton .frmsvg, -.frmbutton.ui-sortable-helper i, -.field_type_list li.frmbutton i, -.frm_code_list a .frmsvg, -.frm_code_list a i { - color: var(--grey-500); - display: inline-block; - vertical-align: middle; - width: var(--text-md); - font-size: var(--text-md); -} - -.field_type_list.frm_grid_container { - gap: 10px; - margin: 13px 0; -} -.field_type_list li { - margin: 0; - padding: 0; -} -.field_type_list li.frmbutton .frmsvg { - width: 24px; - height: 24px; - font-size: 24px; -} - -.frm_code_list i::before { - font-size: inherit; -} - -/* Icon while dragging */ -.frmbutton.ui-draggable-dragging { - pointer-events: none; -} -.frmbutton.ui-draggable-dragging a { - color: var(--grey-900) !important; - background: var(--grey-100); - text-decoration: none; - display: inline-flex !important; - gap: var(--gap-xs); - align-items: center; - border-radius: var(--small-radius) !important; - padding: 11px var(--gap-md) 11px var(--gap-xs) !important; - box-shadow: var(--box-shadow-md); -} - -/** - * Component: Field Dragging - */ -.frmbutton.ui-draggable-dragging a { - border: 1px solid var(--grey-300); - box-shadow: var(--box-shadow-md); -} - -.frmbutton.ui-draggable-dragging span { - font-size: 15px; -} - -#frm-show-fields .frmbutton.ui-sortable-helper i, -.frmbutton.ui-draggable-dragging i, -.frmbutton.ui-draggable-dragging .frmsvg { - color: #fff !important; -} - -.frmbutton.ui-draggable-dragging i, -.frmbutton.ui-draggable-dragging .frmsvg { - color: var(--grey-700) !important; -} - -.frm_sorting li.ui-state-default.ui-sortable-helper, -.frmbutton.ui-sortable-helper { - transition: opacity 0.2s; - opacity: 1; - position: fixed; - z-index: 99999; -} - -#frm-insert-fields .frmbutton.ui-sortable-helper a, -#frm-show-fields .frmbutton.ui-sortable-helper a { - min-width: 100px; -} - -/* End dragging */ -li.frm_noallow.button, -.frm_noallow { - opacity: 0.5; -} - -.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before, -li.frm_noallow.button.frm_show_upgrade { - cursor: pointer; -} - -.field_type_list li.frm_noallow.button.frm_show_upgrade:hover { - border-color: inherit; -} - -.frm_noallow a { - color: inherit; -} - -/** - * Component: Upgrade Modal - */ -#frm_upgrade_modal_image { - max-width: 200px; -} - -#frm_upgrade_modal .frm-upgrade-message img { - margin-top: 10px; - width: 100%; -} - -/** - * Layout: Reports Info - */ -.frm-tab-message { - max-width: 600px; - margin: 20px auto; - color: rgba(63, 75, 91, 0.8); -} - -.frm-settings-screenshot-toolbar { - min-height: 39px; - display: flex; -} - -.frm-settings-screenshot-toolbar .frm-minmax-icon { - height: 8px; - width: 8px; - border-radius: 50%; - align-self: center; - margin-left: 10px; -} - -.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type { - margin-left: 20px; -} - -.frm-settings-screenshot-toolbar img { - object-fit: contain; - align-self: flex-end; - margin-left: 25px; -} - -.frm-settings-screenshot-toolbar + div { - background: #fff; - padding-top: 25px; - border-radius: 0 0 16px 16px; -} - -.frm-settings-screenshot-toolbar + div img { - max-width: calc(100% - 40px); -} - -.frm-settings-screenshot-wrapper { - max-width: 700px; - margin: 50px auto 0; - box-shadow: 0 4px 4px rgba(189, 196, 205, 0.25), 0 12px 56px rgba(42, 57, 75, 0.25); - border-radius: 16px; - background: #EBECF1; -} - -/** - * Component: Dialog - */ -.frm-dialog { - z-index: 100; - padding: 0 !important; - border-radius: 16px; - border: none; - background-color: #fff; - max-width: 100% !important; -} - -.frm-dialog .postbox { - background: transparent; - box-shadow: none; - border: none; - line-height: var(--leading); -} - -.frm-dialog input[type=text], -.frm-dialog textarea { - font-size: var(--text-md); -} - -.frm-dialog textarea { - height: 75px; -} - -.frm-dialog button.frm-button-primary { - margin-right: 10px; -} - -.frm-dialog .frm-sub-label, -.frm-sub-label { - color: var(--grey); - text-transform: none; - padding-left: 8px; -} - -h2 .frm-sub-label { - font-size: var(--text-md); -} - -.frm-views-editor-body .ui-widget-overlay, -.frm-white-body .ui-widget-overlay, -.toplevel_page_formidable .ui-widget-overlay, -body[class*=formidable-payments] .ui-widget-overlay, -body.plugins-php .ui-widget-overlay { - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: var(--grey-500); - opacity: 0.5; - z-index: 2; -} - -/** - * Component: Circled Icons - */ -.frm-circled-icon { - width: 60px; - height: 60px; - border-radius: 50%; - background-color: var(--primary-25); -} - -.frm-circled-icon-large { - width: 80px; - height: 80px; -} - -.frm-circled-icon-green { - background-color: var(--success-50); -} - -.frm-circled-icon .frmsvg { - width: 21px; - height: 24px; -} - -.frm-circled-icon-large .frmsvg { - width: 24px; -} - -.frm-circled-icon .frmsvg use { - color: var(--primary-500); -} - -.frm-circled-icon-green .frmsvg use { - color: var(--success-500); -} - -.frm-border-icon { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); -} - -.frm-upgrade-message img { - max-width: 100%; -} - -/** - * Component: Link Styles - */ -a.frm-link-secondary { - color: #c4c4c4; - font-size: var(--text-sm); - text-decoration: underline; -} - -.field_type_list li.button.frm_noallow, -.field_type_list li.button.frm_noallow:hover, -.button.frm_noallow, -.button.frm_noallow:hover { - color: inherit; - border-color: #ccc; - background: inherit; -} - -iframe#dyncontent_ifr { - min-height: 150px; -} - -/*! +@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500)}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key{margin-left:19px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! * Bootstrap v4.6.1 - */ -.tooltip { - /* Copied from Bootstrap */ - position: absolute; - display: block; - margin: 0; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - opacity: 0; - /* Custom rules */ - z-index: 9999999; - pointer-events: none; -} - -.tooltip.show { - opacity: 0.9; -} - -.tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; - margin-left: 0 !important; -} - -.tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] { - padding: 0.4rem 0; -} - -.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow { - bottom: 0; -} - -.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; -} - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] { - padding: 0 0.4rem; -} - -.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] { - padding: 0.4rem 0; -} - -.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow { - top: 0; -} - -.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; -} - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] { - padding: 0 0.4rem; -} - -.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; -} - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; -} - -.frm-dropdown-menu.show { - display: block; -} - -.frm-single-settings .frm-dropdown-menu.show { - background: #fff; -} - -/* End Bootstrap */ -.preview.dropdown .dropdown-menu { - min-width: 205px; -} - -.frm_clear { - clear: both; -} - -.frm_clearfix::after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} - -.frm_clearfix { - display: block; -} - -.frm_admin_progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-radius: 4px; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.frm_admin_progress_bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - transition: width 0.6s ease; - background-color: #04A4CC; -} - -.tooltip.frm_tooltip { - position: fixed; - top: auto !important; - bottom: 0 !important; - left: 0 !important; - max-width: none; - width: 100% !important; - z-index: 99999; -} - -.tooltip.frm_tooltip.bottom { - padding: 0; -} - -.frm_tooltip .tooltip-inner { - max-width: none; - min-height: 40px !important; - text-align: left; - box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.5); - padding: 10px 40px; - border-top-color: #ccc; - background: var(--sidebar-color); - color: var(--grey-700); - border-radius: 0; - opacity: 1; - font-size: var(--text-sm); -} - -#frm_custom_css_box { - width: 100%; -} - -/** - * Component: Admin Inputs - */ -.frmdates_add_blackout_date_link, -.frmdates_add_exception_link, -.frm_form_field.frm_scroll_box .frm_opt_container, -.frm-white-body .wrap input[type=text], -.frm-white-body .wrap input[type=search], -.frm-white-body .wrap input[type=number], -.frm-white-body .wrap select, -#frm-form-templates-modal select, -.frm-white-body .wrap textarea, -button.frm_choose_image_box, -#titlediv input[type=text], -.frm-fields button.btn, -.frm_wrap textarea, -.frm_wrap input[type=tel], -.frm_wrap input[type=text], -.frm_wrap input[type=email] .frm_wrap input[type=search], -.frm_wrap input[type=number], -.frm_wrap input[type=date], -.frm_wrap select, -.wp-admin .frm_wrap select, -.field-group textarea, -.field-group input[type=text], -.field-group select, -.frm-fields .frm-input-field { - outline: 0; - box-shadow: var(--box-shadow-xs); - border-radius: var(--small-radius); - padding: 5px 14px; - border-color: var(--grey-300); - color: var(--grey-800); - font-size: var(--text-md); - margin: 0; - background-color: #fff; - line-height: var(--leading); -} - -.frm_input_with_suffix { - border-radius: var(--small-radius); - border: 1px solid var(--grey-300); - display: inline-block; - padding-right: 14px; -} - -.frm_input_with_suffix input { - border: 0 !important; - padding-right: 5px !important; -} - -.frm_wrap ::-webkit-datetime-edit { - line-height: var(--leading); -} - -.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus, -.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus, -.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus, -.frm_wrap input:focus, -.frm_wrap select:focus, -.wp-core-ui .frm_wrap select:focus, -#frm-form-templates-modal select:focus, -.frm-btn-group .multiselect.dropdown-toggle:focus, -.frm_wrap textarea:focus { - border-color: var(--primary-500) !important; - box-shadow: none !important; -} - -/* -Pages like Entries and Styles need the border-color and box-shadow properties without the !important flag. -To achieve this, we exclude them above and duplicate these rules specifically for those pages without using !important. -*/ -.wp-admin .frm_fields_container textarea:focus, -.wp-admin .frm_fields_container input:focus, -.wp-admin .frm_fields_container select:focus { - border-color: var(--primary-500); - box-shadow: none; -} - -#postbox-container-2 textarea, -.frm_wrap textarea, -.field-group textarea { - line-height: 2; -} - -.frm_wrap input[type=number] { - height: auto; -} - -.frm_wrap select { - padding: 2px; -} - -.wp-admin .frm_wrap select, -#frm-form-templates-modal select { - max-width: 100%; -} - -.frm_form_field.frm_scroll_box .frm_opt_container { - padding: 10px 12px; -} - -.frm_wrap input[disabled], -.frm_wrap select[disabled], -.frm_wrap textarea[disabled], -.frm_wrap input[readonly], -.frm_wrap select[readonly], -.frm_wrap textarea[readonly], -.frm_wrap input::placeholder { - color: var(--grey-500); -} - -textarea[id^=frm_calc_]::placeholder { - font-size: var(--text-sm); - line-height: var(--leading); - font-style: italic; - color: var(--grey-400); - padding-top: 5px; -} - -.frm_wrap .frm-button-primary.frm-disabled { - opacity: 0.5; - cursor: default; -} - -#postcustomstuff table td > div { - /* To override some inline css in add-on */ - padding-top: 0 !important; -} - -.wp-admin .frm_wrap .form-table select { - vertical-align: top; -} - -.frm_wrap .frm_form_builder select { - line-height: var(--leading); - height: var(--text-md); - width: 100%; -} - -#postbox-container-2 select, -.wp-admin .frm_wrap select, -.frm_wrap .frm_form_builder select, -#frm-form-templates-modal select { - height: auto; -} - -.frm-white-body .tablenav select, -.frm-white-body .tablenav input[type=text], -.wp-admin .frm_wrap .tablenav select, -.frm_wrap .tablenav input[type=date], -.frm_wrap .tablenav input[type=text] { - padding-top: 0; - padding-bottom: 0; - line-height: 1; -} - -.frm_wrap .tablenav ::-webkit-datetime-edit { - line-height: 1; -} - -.frm-fields button.btn, -.frm-fields textarea, -.frm-fields input[type=text], -.frm-fields select, -.field-group textarea, -.field-group input[type=text], -.field-group select, -.accordion-container input.hex, -.frm-fields .frm-input-field { - width: 100%; - outline: 0; -} - -.frm-fields button.btn { - height: var(--h-md); - text-align: inherit; -} - -.global-font .field-group input[type=text] { - width: auto; -} - -/** - * Component: Button Grey - */ -.wp-core-ui .frm_grey.frm-button-primary.disabled, -.wp-core-ui .frm_grey.frm-button-primary, -#frm-welcome .frm_grey { - opacity: 0.5; - background: #F6F6F6 !important; - border-color: #ddd !important; - color: #9FA5AA !important; -} - -/** - * Component: Scrollbars - */ -.windows::-webkit-scrollbar, -.windows ::-webkit-scrollbar { - width: 7px; - background: transparent; -} -.windows::-webkit-scrollbar-thumb, -.windows ::-webkit-scrollbar-thumb { - background: var(--grey-300); - -webkit-border-radius: var(--border-radius); - -webkit-box-shadow: none; -} -.windows::-webkit-scrollbar-corner, -.windows ::-webkit-scrollbar-corner { - background: transparent; -} - -.frm-scrollbar-wrapper, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list, -#frm_builder_page #frm_adv_info .frm_code_list, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div, -.frm-single-settings .frm_field_opts_list { - overflow-x: hidden; - overflow-y: auto !important; /* Enable scrolling */ - -ms-overflow-style: none; /* For IE and Edge */ - scrollbar-color: transparent transparent; /* Firefox Scrollbar - transparent by default and show on hover */ - scrollbar-width: thin; -} -.frm-scrollbar-wrapper:hover, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover, -#frm_builder_page #frm_adv_info .frm_code_list:hover, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover, -.frm-single-settings .frm_field_opts_list:hover { - scrollbar-color: var(--grey-300) transparent; /* Firefox Scrollbar - Show on hover with transparent background */ -} -.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover::-webkit-scrollbar-thumb, -.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb { - background: var(--grey-300); /* Show scrollbar on hover */ -} -.frm-scrollbar-wrapper::-webkit-scrollbar, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar { - width: 3px; -} -.frm-scrollbar-wrapper::-webkit-scrollbar-track, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-track, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track { - background: transparent; /* Transparent background */ - border-radius: 100vw; /* Consistent radius with thumb */ -} -.frm-scrollbar-wrapper::-webkit-scrollbar-thumb, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 100vw; -} -.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb:hover, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover { - background: var(--grey-300); /* Show scrollbar on hover */ -} - -/** - * Component: RTL - */ -.rtl h3 { - font-weight: inherit !important; -} - -.rtl.js .accordion-section-title::after { - left: 10px; - right: auto; -} - -.rtl #frm_top_bar #frm_bs_dropdown { - padding-left: 15px; -} - -.rtl .frm-full-close, -.rtl .frm_wrap .columns-2 .frm-right-panel + div, -.rtl .frm-right-panel { - border-left-width: 0; - border-right: 1px solid var(--grey-300); -} - -.rtl .frm-full-close { - padding-left: 0; - padding-right: var(--gap-md); -} - -.rtl .frm-text-right { - text-align: left; -} - -.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child { - border-left-width: 1px; -} - -.rtl .frm-dropdown-menu { - text-align: right; -} - -.rtl .frm_actions_dropdown .frm_icon_font { - float: right; - margin-right: 0; - margin-left: 3px; -} - -.rtl #frm-insert-fields-box, -.rtl #frm-conditionals { - padding-right: 0.9em; -} - -.rtl #html_settings .frm_field_html_box { - margin-right: 0; -} - -.rtl .frm_list_entry_page h2 { - float: right; -} - -.rtl .frm_scale { - float: right; - margin-left: 10px; - margin-right: 0; -} - -.rtl .frm-page-break .frm-collapse-page.button { - margin-left: 0; - margin-right: 46%; -} - -.rtl .frm-field-action-icons { - right: unset; - left: 2px; -} - -.rtl .frm_has_shortcodes > i { - right: auto; - left: 5px; -} - -.rtl p.frm_reply_to_container, -.rtl p.frm_bcc_cc_container { - float: left; -} - -.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg { - right: auto; - left: 0; -} - -.rtl .frm-inline-modal > a.dismiss { - left: 13px; - right: auto; -} - -.rtl.wp-admin .frm_wrap select { - padding-left: var(--gap-lg) !important; - padding-right: 5px !important; - background-position: left 11px top 55%; -} - -.rtl .frm_code_list.frm-full-hover a span { - margin-left: var(--gap-xs); -} - -.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { - margin-left: unset; - margin-right: var(--gap-xs); -} -.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { - margin-right: unset; - margin-left: var(--gap-xs); -} -.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline { - left: unset !important; - right: 0; -} -.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first { - right: var(--gap-xs); -} -.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last { - right: calc(-1 * var(--gap-xs)); -} - -.rtl .frm-unit-input .frm-input-group-suffix { - right: unset; - left: 1px; - padding-right: unset; - padding-left: var(--gap-xs); -} -.rtl .frm-unit-input .frm-input-group-suffix select { - text-align: left; - background-position: left 0 top 50%; - padding-left: 21px !important; -} - -/** - * Component: Clearfix - */ -span.clear { - display: block; -} - -.clearfix::after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - -.clearfix { - display: inline-block; -} - -/*Override styling from other plugins*/ -.frm_form_fields .clear { - height: auto; -} - -/* Hides from IE-mac \*/ -* html .clearfix { - height: 1%; -} - -.clearfix { - display: block; -} - -#frm_small_device_message_container { - display: none; -} - -/* End hide from IE-mac */ -/** - * Responsive Styles - * - * Media queries for desktop, tablet, and mobile devices - */ -@media only screen and (max-width: 1200px) { - .frm-addons { - grid-template-columns: 1fr 1fr; - } - #frm_top_bar h1 { - min-width: 0; /* Reset the min-width to prevent menu items from stacking vertically */ - } -} -@media only screen and (max-width: 1050px) { - .frm-white-body, - .frm_wrap { - --biggest-sidebar: 390px; - } - #form_settings_page .columns-2 { - margin: 0; - } - .frm_actions_list { - margin-left: 0; - } - #frm_bs_dropdown .frm_bstooltip { - /* There isn't enough room for the title on a screen this size so just hide it. */ - display: none !important; - } -} -@media only screen and (max-width: 960px) { - .frm-white-body, - .frm_wrap { - --gap-sm: 8px; - --gap-md: 16px; - --gap-2xl: 24px; - } - /* Revert settings panel gap variables to default */ - .frm-settings-panel { - --gap-sm: 16px; - --gap-md: 24px; - --gap-2xl: 32px; - } - .auto-fold #adminmenuwrap { - width: 36px; - } - .frm_wrap #postbox-container-1 #frm_adv_info { - min-width: 220px; - } - p.howto { - display: inline-block; - } - /* Fix: Issue where the admin page content had extra white space to the left on small screens */ - .auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container, - .auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container { - left: 36px; - } -} -@media only screen and (max-width: 850px) { - .frm-white-body, - .frm_wrap { - --biggest-sidebar: 350px; - --big-sidebar: 350px; - } - .frm_col_one { - clear: none; - } - .frm-fields p > .frm_inline_label, - .frm_inline_label { - display: block; - margin: 5px 0; - } - #frm_top_bar h1 { - width: auto; - max-width: 200px; - } - #frm-publishing { - width: auto; - } - #frm_form_editor_container, - .frm-entry-container { - margin: 0 20px; - } - .frm_wrap .frm-search { - float: none !important; - width: auto; - clear: both; - } - .post-type-frm_display #frm_adv_info { - top: auto !important; - position: static; - width: auto; - } - .frm_wrap .frm-right-panel #frm_adv_info, - .frm_wrap #postbox-container-1 #frm_adv_info { - min-width: 275px; - } - .frm_wrap #frm_adv_info ul.category-tabs li, - .frm_wrap #frm_adv_info ul.category-tabs li.tabs { - border: none; - } - .frm_wrap #frm_adv_info ul.category-tabs li:first-child { - margin-left: 12px; - } - .frm_wrap #frm_adv_info ul.category-tabs li.tabs { - border-bottom: 2px solid #5b9dd9; - padding-bottom: 8px; - } - .post-type-frm_display #poststuff { - padding: 10px 25px; - } - .post-type-frm_display #side-sortables .postbox { - margin-bottom: 20px; - border-radius: var(--small-radius); - border-top-width: 1px; - } - #frm_top_bar .frm_form_nav { - box-shadow: 0 -0.47px 10px 0 rgba(16, 24, 40, 0.0588235294); - } - #frm_top_bar ul.frm_form_nav { - padding: 1em 0; - position: fixed; - bottom: 0; - width: 100%; - background: white; - z-index: 99; - transform: translate(-50%, 0); - left: 50%; - } - .frm_page_container > .columns-2, - #frm_styler_wrapper { - padding-bottom: 64px; - } - #frm_style_preview .frm_floating_style_button:not(.frm_hidden) { - position: static; - display: inline-block; - } - .frm_wrap .columns-2 .frm-right-panel { - padding-bottom: 0; - } - #frm-publishing { - margin-left: auto; - } - #frm_top_bar > .frm-full-close:last-child { - margin-left: 0; - } - #frm_bs_dropdown { - display: block; - } - #frm_bs_dropdown .frm_bstooltip { - display: block !important; - } -} -@media only screen and (max-width: 782px) { - .frm-white-body, - .frm_wrap { - --small-sidebar: 20%; - --medium-sidebar: 35% ; - } - #form_settings_page .advanced_settings .form-table td, .form-table th { - display: table-cell; - width: auto !important; - } - .frm-white-body #publishing-action, - .frm_wrap #publishing-action { - line-height: normal; - } - .frm-white-body #screen-meta-links { - display: none; - } - .frm_wrap .misc-pub-section { - padding: 6px 0; - } - .frm_wrap .misc-pub-section > a { - float: none; - white-space: nowrap; - } - .frm-form-setting-tabs a { - position: relative; - padding: 10px 5px 10px 40px; - } - .frm-form-setting-tabs a .frmsvg, - .frm-form-setting-tabs a i { - position: absolute; - left: 13px; - top: calc(50% - 10px); - margin: 0; - } - #frm-insert-fields .button, - #frm-insert-fields .button a, - .frmbutton.ui-sortable-helper a { - line-height: 26px; - max-height: 28px; - } - a.frm_add_logic_link { - margin-left: 0; - margin-right: 0; - width: 100%; - box-sizing: border-box; - } - a.frm_add_logic_link:not([id^=logic_]) .frmsvg, - a.frm_add_logic_link i { - display: none; - } - #new_fields .frm_single_option select, - #new_fields .frm_single_option input[type=text] { - width: calc(100% - 83px); - } - .frm_single_entry_page .frm_form_fields input[type=text], - .frm_single_entry_page .frm_form_fields select, - .frm_single_entry_page .frm_form_fields textarea { - width: 100%; - } - .with_frm_style .frm_radio input[type=radio], - .with_frm_style .frm_checkbox input[type=checkbox] { - width: 25px !important; - } - .frm_single_entry_page .with_frm_style .frm_radio input[type=radio], - .frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox] { - width: 18px !important; - } - .wp-list-table.toplevel_page_formidable .column-entries, - .wp-list-table.toplevel_page_formidable .column-form_key, - .wp-list-table.toplevel_page_formidable .column-shortcode, - .wp-list-table.toplevel_page_formidable .column-created_at { - display: none !important; - } - .wp-list-table.toplevel_page_formidable td.column-entries, - .wp-list-table.toplevel_page_formidable td.column-form_key, - .wp-list-table.toplevel_page_formidable td.column-shortcode, - .wp-list-table.toplevel_page_formidable td.column-created_at { - padding: 3px 8px 3px 35%; - text-align: left; - } - #form_entries_page .wp-list-table th.frm_hidden, - #form_entries_page .wp-list-table td.frm_hidden { - display: none !important; - } - .frm-white-body.auto-fold #wpcontent { - padding-left: 0; - } - .frm_right_addon .frm_remove_field { - bottom: 11px; - } - .frm-addons { - grid-template-columns: 1fr; - } - .frm-admin-page-styles .frm_page_container, - .frm_wrap .frm_page_container { - left: 0 !important; - } - .frm_single_entry_page.frm_wrap .columns-2 { - display: block; - border-bottom: none; - } - .frm_single_entry_page .wrap.frm-with-margin { - margin: 10px 20px; - } - .frm_single_entry_page #post-body-content + .frm-right-panel { - width: auto; - margin: 0 20px; - border: 1px solid var(--sidebar-hover); - border-radius: 6px; - } - #wp-content-media-buttons a.frm_insert_form { - padding: 0 var(--gap-sm); - } - .frm-white-body input[type=checkbox]:checked::before, - .frm_wrap input[type=checkbox]:checked::before { - width: 1.2rem; - height: 1.2rem; - } -} -@media only screen and (max-width: 700px) { - .frm-white-body, - .frm_wrap { - --biggest-sidebar: 50%; - --big-sidebar: 50%; - } -} -@media only screen and (max-width: 600px) { - .frm-white-body, - .frm_wrap { - --small-sidebar: 45px; - } - .frm-form-setting-tabs a { - visibility: collapse; - font-size: 0; - padding: 0 var(--gap-sm); - } - .frm-form-setting-tabs a .frmsvg, - .frm-form-setting-tabs a i { - visibility: visible; - position: initial; - font-size: 18px; - } - #frm_builder_page #frm-insert-fields { - padding: 0; - } - .frm_wrap #frm_adv_info ul.category-tabs li { - display: inline-block; - padding: 0; - margin: 2px 0; - border-bottom: 2px solid transparent; - } - .frm_wrap #frm_adv_info ul.category-tabs li.tabs, - .frm_wrap #frm_adv_info ul.category-tabs li:first-child { - margin-left: 0; - padding: 0; - } - .field_type_list li { - text-align: center; - } - #frm-insert-fields li a { - padding: 5px; - } - #frm_form_editor_container .frm_primary_label { - clear: both; - } - #frm_builder_page .frm_code_list a.button { - padding: 2px; - } - #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { - right: 0; - left: auto; - } - .frm-right-panel h3.accordion-section-title { - padding-right: 10px; - padding-left: 10px; - font-size: 20px; - white-space: nowrap; - overflow: hidden; - } - .frm-right-panel .accordion-section-title::before { - margin-left: 0; - margin-right: 3px; - } - .rtl #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { - right: auto; - left: 0; - } - .frm_on_submit_type svg { - display: none; - } -} -@media only screen and (max-width: 475px) { - #frm_bs_dropdown { - float: none; - } - #frm-nav-tabs { - padding: 0; - white-space: nowrap; - } - #frm-nav-tabs a { - margin-right: 0; - } - #frm_small_device_message_container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - position: fixed; - top: 0; - width: 100%; - height: 100%; - z-index: 999999; - background: var(--primary-500); - } - #frm_small_device_message { - text-align: center; - display: flex; - flex-direction: column; - align-items: center; - width: 80%; - padding: 1rem; - background: #fff; - border: solid 1px #fff; - border-radius: var(--medium-radius); - } - #frm_small_device_message::before { - content: ""; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-78%, -65%); - width: 900px; - height: 900px; - background-color: #0D7DFC; - border-radius: 50%; - z-index: -1; - opacity: 0.3; - } - #frm_small_device_message > svg { - padding-bottom: 1rem; - } - .toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter, - .post-type-frm_display:has(#frm_small_device_message_container) #posts-filter { - display: none; - } -} -@media print { - a, .misc-pub-section a { - color: #000 !important; - } - .add-new-h2, #frm_top_bar, .dashicons, - #adminmenuwrap, #adminmenuback, #wphead, #button_bar, #submitdiv, .button-secondary, - #screen-metas, #screen-meta-links, #footer, #wpfooter, .inner-sidebar, .frm_form_nav, - .frm_flash_graph, .frm_no_print, object, .error { - visibility: hidden; - display: none !important; - } - .widget, .postbox, .stuffbox, .postbox h3 { - border-width: 0 !important; - border-color: #fff; - } - .postbox { - background: #fff !important; - border: none; - position: static; - } - .postbox h3, .postbox h4 { - background: #fff !important; - } - #wpbody-content { - float: none; - } - #wpcontent, #post-body-content, - .has-right-sidebar #post-body, - #poststuff .columns-2 { - margin: 0 !important; - } - .frm_wrap #poststuff .columns-2 { - display: block; - } - #post-body-content + .frm-right-panel, - .frm_wrap .columns-2 .frm-right-panel, - .frm-right-panel { - border: none; - width: auto; - display: block; - padding: 20px; - } - .frm_wrap .columns-2, - .frm_wrap .frm_page_container { - height: auto; - display: block; - } - .misc-pub-section > span { - padding: 0; - } - .frm-right-panel .postbox .inside { - padding-left: 12px; - padding-right: 12px; - } - .curtime #timestamp::before { - display: none; - content: none !important; - } - .frm_charts .alignleft { - float: none; - } - .pg_odd, .pg_even { - page-break-inside: avoid; - max-width: 600px; - } - .form-table td, .form-table th { - padding: 0; - } - .frm_file_container a { - display: block; - width: 100%; - } -} -/** - * Extended Components - * - * Additional components loaded after the main layout - */ -/** - * Layout: Publishing - */ -.frm-admin-page-styles #frm-publishing #save_menu_header, -.frm-admin-page-styles2 #frm-publishing #save_menu_header { - display: inline-block; -} - -/* Change the order of subfields of the Name field in the backend */ -.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first { - order: 2; -} - -.frm-video-wrapper iframe { - width: 100%; - max-width: 843px; - border-radius: var(--border-radius); -} - -/** - * Field group popup and related functionality - */ -#frm_field_group_popup { - position: absolute; - top: 0; - right: 0; - width: 366px; - max-height: 231px; - border-radius: 8px; - background: #fff; - box-shadow: 0 20px 48px rgba(40, 47, 54, 0.15); - z-index: 3; - box-sizing: border-box; - padding: 24px 0; - text-align: left; -} - -.rtl #frm_field_group_popup { - text-align: right; -} - -.frm-merge-fields-into-row #frm_field_group_popup { - top: unset; - bottom: 50px; - height: 196px; -} - -#frm_field_group_popup > hr { - margin: 12px 0; -} - -#frm_field_group_popup .frm-cancel-custom-field-group-layout, -#frm_field_group_popup .frm-save-custom-field-group-layout { - padding: 4px 18px; -} - -#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover { - border-color: var(--primary-500) !important; - color: var(--primary-500); - background-color: transparent !important; -} - -.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group { - display: none; -} - -.frm-merge-fields-into-row > a { - color: rgba(40, 47, 54, 0.85); - position: relative; - top: 2px; -} - -.frm-row-layout-title { - font-weight: 600; - font-size: 11px; - line-height: 15px; - text-transform: uppercase; - color: rgba(40, 47, 54, 0.45); - margin-bottom: 27px; -} - -.frm-row-layout-option { - background: #F6F7FB; - box-sizing: border-box; - border-radius: 2px; - padding: 15px 10px; -} - -#frm_field_group_popup .frm-row-layout-option .frm_grid_container { - grid-gap: 0 5%; - grid-template-columns: repeat(12, auto); -} - -#frm_field_group_popup .frm-row-layout-option { - cursor: pointer; - border: 2px solid transparent; -} - -#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout, -#frm_field_group_popup .frm-row-layout-option:hover { - border-color: var(--primary-500); -} - -.frm-custom-field-group-layout, -.frm-break-field-group { - padding: 4px 24px; - cursor: pointer; - font-size: var(--text-sm); - line-height: 19px; - color: rgb(72, 78, 84); -} - -.frm-custom-field-group-layout:hover, -.frm-break-field-group:hover { - background-color: rgba(245, 245, 245, 0.9607843137); -} - -.frm-custom-field-group-layout svg, -.frm-break-field-group svg { - margin-right: 5px; -} - -/** - * Field multiselect popup - */ -#frm_field_multiselect_popup { - background: white; - height: 48px; - position: fixed; - border-radius: 4px; - box-shadow: 0 8px 24px rgba(40, 47, 54, 0.15); - color: rgba(40, 47, 54, 0.85); - font-size: 13px; - right: 30px; - bottom: 10px; - z-index: 2; -} - -#frm_field_multiselect_popup > div { - display: inline-block; - line-height: 48px; - vertical-align: top; -} - -#frm_field_multiselect_popup.frm-unmergable > .frm-merge-fields-into-row, -#frm_field_multiselect_popup.frm-unmergable > .frm-multiselect-popup-separator { - display: none; -} - -#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator) { - padding: 0 20px; - cursor: pointer; -} - -#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator):hover { - background: rgba(245, 245, 245, 0.9607843137); -} - -.frm-builder-popup-heading { - font-weight: 600; - font-size: 11px; - line-height: 15px; - text-transform: uppercase; - color: rgba(40, 47, 54, 0.45); - margin-bottom: 7px; -} - -.frm-builder-popup-subheading { - font-size: 12px; - line-height: 16px; - color: rgba(40, 47, 54, 0.45); -} - -#frm_field_group_popup input[type=text] { - height: 30px; - border-radius: 3px; - font-size: 14px; - padding: 8px; - color: rgb(84, 95, 110); - border-color: rgba(40, 47, 54, 0.2); -} - -.frm-multiselect-popup-separator { - height: 36px; - width: 1px; - position: relative; - top: 6px; - background: #C4C4C4; -} - -.frm-sortable-helper, -.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider) { - pointer-events: none; -} - -.frm-sortable-helper { - /* Make sure the item being dragged appears above other form builder fields */ - z-index: 99; -} - -/** - * Component: Banner Notification - */ -#frm_banner { - width: 100%; - color: #fff; - background: var(--primary-500); - height: 40px; - line-height: 40px; - text-align: center; - position: relative; -} - -.frm-banner-emoji { - font-size: 19px; -} - -.frm-banner-emoji, -.frm-banner-title { - margin-right: 5px; - vertical-align: top; -} - -.frm-banner-cta a { - text-decoration: underline !important; -} - -#frm_banner .frm-banner-cta a.frm_inbox_dismiss { - display: none; -} - -.frm-banner-dismiss { - cursor: pointer; - position: absolute; - right: 10px; - top: 50%; - transform: translateY(-50%); -} - -.frm-banner-dismiss .frmsvg { - vertical-align: top; -} - -/** - * Ready-made solution styles - */ -.frm-ready-made-solution:not(.frm-search-result) { - display: none !important; -} - -#frm_leave_email_wrapper .frmsvg { - top: 0; -} - -#frm-add-my-email-address { - margin-top: 30px; -} - -.frm-ready-made-solution h3 ~ a { - color: var(--primary-500); -} - -.frm-ready-made-solution img { - max-width: 100%; - display: block; - box-shadow: var(--box-shadow-lg); -} - -/** - * Component: On Submit Action - */ -.frm_single_on_submit_settings .frm_form_field { - margin: 22px 0; -} - -.frm_on_submit_type_setting { - padding: 8px 0; -} - -.frm_on_submit_type label { - display: flex; - border: 1px solid var(--grey-border); - border-radius: var(--small-radius); - gap: 16px; - padding: 16px; - align-items: center; - justify-content: center; -} - -.frm_on_submit_type input { - opacity: 0 !important; - position: absolute; - z-index: -1; -} - -.frm_on_submit_type input[type=radio]:checked + label { - border-color: var(--primary-color); - box-shadow: 0 0 0 1px var(--primary-color); -} - -#form_settings_page .frm_on_submit_type label:hover, -.frm_on_submit_type input[type=radio]:checked + label svg { - color: var(--primary-color); -} - -/** - * Component: Call-to-Action - */ -.frm_pro_tip, -.frm-cta { - justify-content: space-between; - align-items: center; - gap: var(--gap-2xl); - padding: var(--gap-xs) var(--gap-sm); - border-radius: var(--small-radius); - background: var(--primary-25); -} - -.frm-cta.frm-cta-border { - border: 1px solid var(--primary-200); -} - -.frm-cta.frm-cta-border .frm-cta-footer { - background-color: #fff; - padding: 12px var(--gap-sm); - border-top: 1px solid var(--primary-200); - border-bottom-left-radius: var(--small-radius); - border-bottom-right-radius: var(--small-radius); - margin-top: 12px; - margin-bottom: calc(-1 * var(--gap-sm)); - margin-left: calc(-1 * var(--gap-sm)); - margin-right: calc(-1 * var(--gap-sm)); -} - -.frm-cta h4 { - font-weight: 600; - margin-top: 0; - margin-bottom: var(--gap-2xs); -} - -.frm-cta-green { - background-color: var(--success-25); -} - -.frm-cta-green .frm-banner-title { - gap: calc(var(--gap-2xs) + 1px); - color: var(--grey-700); -} - -.frm-cta-green.frm-cta-border { - border-color: var(--success-100); -} - -.frm-cta-green.frm-cta-border .frm-cta-footer { - border-color: var(--success-100); -} - -.frm-cta-red { - background-color: var(--error-25); -} - -.frm-cta-red.frm-cta-border { - border-color: var(--error-100); -} - -.frm-cta-icon { - padding: 3px 15px 3px 0; - border-right: 1px solid currentColor; -} - -#frm-upgrade-banner { - gap: 0; -} - -#frm-upgrade-banner .frm-cta-icon + .frm-cta-content { - margin-right: auto; - padding-left: 15px; -} - -#frm-upgrade-banner.frm-gradient h4, -#frm-upgrade-banner.frm-gradient p { - color: currentColor; -} - -#frm-upgrade-banner.frm-gradient h4 { - font-size: 16px; - font-weight: 600; -} - -#frm-upgrade-banner.frm-gradient p { - font-size: 14px; -} - -.frm-right-panel .inside .frm_pro_tip, -.frm_pro_tip { - color: var(--grey-700); - background: #FFE7DE; - margin: 0 auto; - display: flex; - gap: var(--gap-xs); -} - -.frm_field_list .frm_pro_tip { - margin: 10px 15px; - position: relative; - width: calc(100% - 30px); - box-sizing: border-box; - font-size: 14px; -} - -.frm_pro_tip .frmsvg, -.frm_pro_tip i { - color: var(--orange); -} - -.frm-tip-info { - flex: 1; - text-align: left; -} - -.frm-tip-cta { - color: var(--orange); -} - -.frm-gradient .frm-tip-cta, -.frm-light-tip .frm-gradient .frm-tip-cta { - color: currentColor; - font-weight: 700; -} - -.frm-tip-badge { - font-size: 9px; - font-weight: 700; - text-transform: uppercase; - color: #1E63D5; - background-color: #fff; - line-height: 1; - border-radius: 4px; - padding: 3px 4px; -} - -.frm-light-tip .frm_pro_tip { - background: var(--primary-25); -} - -.frm-light-tip .frm_pro_tip .frmsvg, -.frm-light-tip .frm_pro_tip i, -.frm-light-tip .frm-tip-cta { - color: var(--primary-500); -} - -.nav-tab-wrapper .frm_pro_tip { - float: right; -} - -/** - * Component: Form Templates Modal - */ -/* Start confirm and form templates modals */ -#frm-form-templates-modal textarea { - height: 108px; -} - -#frm-form-templates-modal .frm-fields button.btn { - border-color: var(--grey-300); - color: var(--grey-900); - cursor: pointer; -} - -#frm-form-templates-modal .frm-fields button.btn .frmsvg { - color: var(--grey-400); - width: 14px; - height: 14px; -} - -#frm-form-templates-modal .frm-form-templates-modal-fieldset { - position: relative; -} - -#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg { - padding: 0; - top: 0; - left: 13px; -} - -/* Fixes pro issue #3508, prevent a conflict that hides the postbox in modal */ -#frm-form-templates-modal .postbox { - display: block !important; -} - -/* Leave email modal */ -#frm_empty_inbox #frm-leave-email-modal { - margin-top: var(--gap-2xl); -} - -/* Name your form modal */ -#frm-name-your-form-modal .frm_modal_top { - padding-top: var(--gap-sm); -} - -/* End confirm and form templates modals */ -/** - * Component: Field Group Message - */ -#frm-field-group-message { - position: absolute; - bottom: 32px; - right: calc(50% - var(--biggest-sidebar)); - padding: var(--gap-xs) var(--gap-sm); - border-radius: 100px; - background-color: var(--primary-25); -} - -#frm-field-group-message .frm-field-group-message-text { - gap: 10px; - color: var(--grey-800); -} - -#frm-field-group-message-dismiss { - margin-left: var(--gap-xs); -} - -#frm-field-group-message-dismiss .frmsvg { - color: var(--grey-800); - width: 15px; - height: 15px; - cursor: pointer; - transition: color 300ms ease-in-out; -} - -#frm-field-group-message-dismiss .frmsvg:hover { - color: var(--grey-500); -} - -/** - * Component - Card Item - */ -.frm-card-item { - display: flex; - border: 1px solid var(--grey-200); - border-radius: var(--small-radius); - padding: var(--gap-sm); - box-shadow: var(--box-shadow-xs); - background: #FFF; -} - -.frm-card-item:not(.frm-counter-card) { - gap: 10px; -} - -.frm-compact-card-item { - padding: var(--gap-sm) 35px 10px 35px; -} - -.frm-card-bottom { - background-color: var(--grey-50); - margin-left: calc(var(--gap-sm) * -1); - margin-bottom: calc(var(--gap-sm) * -1); - margin-right: calc(var(--gap-sm) * -1); - padding: var(--gap-sm); - border-radius: 0 0 var(--small-radius) var(--small-radius); -} - -/** - * Component: Pirate Forms Importer - */ -#welcome-panel:has(#frm_form_pf_importer) { - background-color: #fff; - margin: var(--gap-sm) var(--gap-md) var(--gap-md); - line-height: 2; -} - -#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content { - text-align: start !important; - min-height: unset; - display: block; -} - -#frm_form_pf_importer div { - margin: 10px 0 !important; -} - -#frm_form_pf_importer button { - border: 1px solid var(--primary-500); - padding: 7px 16px; - min-height: 28px; - line-height: var(--leading); - margin-bottom: 0; - background: var(--primary-500); - color: #fff !important; -} - -#frm_form_pf_importer button:hover { - background: #135e96; - border-color: #135e96; -} - -/** - * Component: Option Box - */ -.frm-option-box { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 14px; - font-weight: 500; - background-color: #fff; - padding: 12px var(--gap-sm); - border: 1px solid var(--grey-200); - border-radius: var(--small-radius); - margin-bottom: var(--gap-xs); - transition: background-color 100ms ease-out; - cursor: pointer; -} - -.frm-option-box:hover { - background-color: var(--grey-25); -} - -.frm-option-box.frm-checked { - background-color: var(--primary-25); - border-color: var(--primary-200); -} - -.frm-option-box.frm-disabled { - cursor: default; -} - -.frm-option-box input[type=checkbox] { - margin: 0; -} - -.frm-option-box.frm-disabled input[type=checkbox] { - opacity: 0.5; -} - -.frm-option-box .frm_help .frmsvg { - width: 12px; - height: 12px; -} - -/** - * Component: Validation Error - */ -.frm-validation-error:not(.frm_hidden) { - display: flex; -} - -.frm-validation-error { - gap: calc(var(--gap-xs) + var(--gap-2xs)); -} - -.frm-validation-error span { - color: var(--error-500); -} - -.frm-validation-error span[frm-error] { - display: none; -} - -.frm-validation-error[frm-error=empty] span[frm-error=empty], -.frm-validation-error[frm-error=invalid] span[frm-error=invalid], -.frm-validation-error[frm-error=custom] span[frm-error=custom] { - display: inline-block; -} - -/** - * Utility: Box - */ -.frm-box { - padding: var(--gap-sm); - border: 1px solid var(--grey-200); - border-radius: var(--small-radius); -} - -/** - * External Link styles - */ -.frm-link-with-external-icon { - display: flex; - align-items: center; - gap: var(--gap-2xs); - font-size: var(--text-xs); -} - -.frm-link-with-external-icon .frmsvg { - width: 16px; - height: 16px; - transform: rotate(45deg); -} - -/** - * Page Skeleton - * - * Manages the layout and appearance of the page's content area. - */ -/* Core Styles for the Page */ -#wpbody-content .frm-page-skeleton { - /* Sidebar Styles */ - /* Scrollbar */ - /* Search */ -} -#wpbody-content .frm-page-skeleton ul, -#wpbody-content .frm-page-skeleton li { - margin: 0; -} -#wpbody-content .frm-page-skeleton .frm-right-panel { - padding: 2px; - overflow-y: initial; -} -#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper { - padding: var(--gap-md) var(--gap-sm); -} -#wpbody-content .frm-page-skeleton .frm-search { - float: none; - padding: 0 var(--gap-2xs); -} -#wpbody-content .frm-page-skeleton .frm-search > svg { - left: var(--gap-2xs); -} -#wpbody-content .frm-page-skeleton .frm-search > input { - width: 100%; -} - -/* Categories */ -.frm-page-skeleton-cat { - cursor: pointer; - padding: var(--gap-xs); - border-radius: var(--small-radius); - background-color: transparent; - transition: background-color 250ms ease-out; -} -.frm-page-skeleton-cat:hover { - background-color: var(--grey-100); -} -.frm-page-skeleton-cat > * { - z-index: 2; -} - -.frm-page-skeleton-cat-text { - color: var(--grey-900); - text-transform: capitalize; -} - -.frm-page-skeleton-cat-count { - color: var(--grey-400); -} - -.frm-current .frm-page-skeleton-cat-text, -.frm-current .frm-page-skeleton-cat-count { - color: var(--primary-500); -} - -/* Page Content Styles */ -.frm-list-grid-layout { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(303px, 1fr)); - grid-auto-rows: max-content; - gap: var(--gap-sm); -} -.frm-list-grid-layout > * { - grid-column: span 1; -} - -/* Empty State Styles */ -#frm-page-skeleton-empty-state { - height: 100%; - margin-top: calc(-1 * var(--gap-md)); -} -#frm-page-skeleton-empty-state .frm-page-skeleton-text { - max-width: 420px; -} - -/* Helper Classes */ -.frm-page-skeleton-divider { - border-top: 1px solid var(--grey-200); - margin: 0; -} - -/** - * Submit field styles - */ -.field_type_list .frm_tsubmit { - display: none !important; -} - -/** - * Component: Accordion Title - */ -#frm_style_sidebar .accordion-section-title::after, -#frm_view_editor_left .accordion-section-title::after { - content: ""; -} - -a[href="#square_settings"] svg.frmsvg { - width: 23px !important; - height: 22px !important; -} - -#frm_square_test_setup_modal a:focus { - box-shadow: none !important; -} - -@media only screen and (max-width: 900px) { - #square_settings .frm_grid_container:has(.frm-card-item) { - grid-template-columns: repeat(1, 1fr); - } - #square_settings .frm-card-item + .frm-card-item { - margin-top: var(--gap-sm); - } -} -#frm_sale_banner { - display: flex; - height: 90px; - flex-direction: row; - align-items: center; - gap: var(--gap-sm); - cursor: pointer; - position: relative; -} -#frm_sale_banner > div:first-child { - align-self: flex-end; - width: 150px; - height: 100%; - display: flex; - justify-content: center; -} -#frm_sale_banner > div:first-child img { - align-self: center; -} -#frm_sale_banner > div:nth-child(3) { - margin-left: auto; - margin-right: 50px; -} -#frm_sale_banner > div:nth-child(2) > div:last-child { - opacity: 0.8; -} -#frm_sale_banner a:not(.dismiss) { - text-shadow: none; - border-radius: 30px; - border: 1px transparent; - font-size: var(--text-sm); - padding: 7px 16px; - height: auto; - min-height: 28px; - outline: none; - line-height: var(--leading); - box-sizing: border-box; - margin-bottom: 0; - display: inline-block; - font-weight: 700; - background-color: #fff; - color: #000; -} -#frm_sale_banner .dismiss { - position: absolute; - color: #fff; - opacity: 0.6; - right: 15px; - top: 10px; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"] { - background-color: #F0F0F0 !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"] { - background-color: #E6470F !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"] { - background-color: #ED1D34 !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"] { - background-color: #3E041A !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"] { - background-color: #362630 !important; -} - -/** - * Backwards Compatibility - */ -.frm-lookup-box-label { - display: none; -} - -.frm-inline-modal[id^=frm-lookup-box] { - background-color: transparent; - border: 0; - box-shadow: none; -} -.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs, -.frm-inline-modal[id^=frm-lookup-box] .dismiss { - display: none; -} - -.frm_single_option a.frm_remove_tag svg, -.frm_single_option a.frm_add_opt svg { - width: 15px; - height: 15px; -} - -#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame { - margin-left: 12px; -} - -/*# sourceMappingURL=frm_admin.css.map*/ \ No newline at end of file + */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.wp-core-ui .frm_grey.frm-button-primary.disabled,.wp-core-ui .frm_grey.frm-button-primary,#frm-welcome .frm_grey{opacity:.5;background:#f6f6f6 !important;border-color:#ddd !important;color:#9fa5aa !important}.windows::-webkit-scrollbar,.windows ::-webkit-scrollbar{width:7px;background:rgba(0,0,0,0)}.windows::-webkit-scrollbar-thumb,.windows ::-webkit-scrollbar-thumb{background:var(--grey-300);-webkit-border-radius:var(--border-radius);-webkit-box-shadow:none}.windows::-webkit-scrollbar-corner,.windows ::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.frm-scrollbar-wrapper,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list,#frm_builder_page #frm_adv_info .frm_code_list,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div,.frm-single-settings .frm_field_opts_list{overflow-x:hidden;overflow-y:auto !important;-ms-overflow-style:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.frm-scrollbar-wrapper:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover,#frm_builder_page #frm_adv_info .frm_code_list:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover,.frm-single-settings .frm_field_opts_list:hover{scrollbar-color:var(--grey-300) rgba(0,0,0,0)}.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb{background:var(--grey-300)}.frm-scrollbar-wrapper::-webkit-scrollbar,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar{width:3px}.frm-scrollbar-wrapper::-webkit-scrollbar-track,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-track,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover{background:var(--grey-300)}.rtl h3{font-weight:inherit !important}.rtl.js .accordion-section-title::after{left:10px;right:auto}.rtl #frm_top_bar #frm_bs_dropdown{padding-left:15px}.rtl .frm-full-close,.rtl .frm_wrap .columns-2 .frm-right-panel+div,.rtl .frm-right-panel{border-left-width:0;border-right:1px solid var(--grey-300)}.rtl .frm-full-close{padding-left:0;padding-right:var(--gap-md)}.rtl .frm-text-right{text-align:left}.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child{border-left-width:1px}.rtl .frm-dropdown-menu{text-align:right}.rtl .frm_actions_dropdown .frm_icon_font{float:right;margin-right:0;margin-left:3px}.rtl #frm-insert-fields-box,.rtl #frm-conditionals{padding-right:.9em}.rtl #html_settings .frm_field_html_box{margin-right:0}.rtl .frm_list_entry_page h2{float:right}.rtl .frm_scale{float:right;margin-left:10px;margin-right:0}.rtl .frm-page-break .frm-collapse-page.button{margin-left:0;margin-right:46%}.rtl .frm-field-action-icons{right:unset;left:2px}.rtl .frm_has_shortcodes>i{right:auto;left:5px}.rtl p.frm_reply_to_container,.rtl p.frm_bcc_cc_container{float:left}.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg{right:auto;left:0}.rtl .frm-inline-modal>a.dismiss{left:13px;right:auto}.rtl.wp-admin .frm_wrap select{padding-left:var(--gap-lg) !important;padding-right:5px !important;background-position:left 11px top 55%}.rtl .frm_code_list.frm-full-hover a span{margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:unset;margin-right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:unset;margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline{left:unset !important;right:0}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first{right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last{right:calc(-1*var(--gap-xs))}.rtl .frm-unit-input .frm-input-group-suffix{right:unset;left:1px;padding-right:unset;padding-left:var(--gap-xs)}.rtl .frm-unit-input .frm-input-group-suffix select{text-align:left;background-position:left 0 top 50%;padding-left:21px !important}span.clear{display:block}.clearfix::after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:inline-block}.frm_form_fields .clear{height:auto}* html .clearfix{height:1%}.clearfix{display:block}#frm_small_device_message_container{display:none}@media only screen and (max-width: 1200px){.frm-addons{grid-template-columns:1fr 1fr}#frm_top_bar h1{min-width:0}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin:0}.frm_actions_list{margin-left:0}#frm_bs_dropdown .frm_bstooltip{display:none !important}}@media only screen and (max-width: 960px){.frm-white-body,.frm_wrap{--gap-sm: 8px;--gap-md: 16px;--gap-2xl: 24px}.frm-settings-panel{--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 32px}.auto-fold #adminmenuwrap{width:36px}.frm_wrap #postbox-container-1 #frm_adv_info{min-width:220px}p.howto{display:inline-block}.auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container,.auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container{left:36px}}@media only screen and (max-width: 850px){.frm-white-body,.frm_wrap{--biggest-sidebar: 350px;--big-sidebar: 350px}.frm_col_one{clear:none}.frm-fields p>.frm_inline_label,.frm_inline_label{display:block;margin:5px 0}#frm_top_bar h1{width:auto;max-width:200px}#frm-publishing{width:auto}#frm_form_editor_container,.frm-entry-container{margin:0 20px}.frm_wrap .frm-search{float:none !important;width:auto;clear:both}.post-type-frm_display #frm_adv_info{top:auto !important;position:static;width:auto}.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{min-width:275px}.frm_wrap #frm_adv_info ul.category-tabs li,.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border:none}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:12px}.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border-bottom:2px solid #5b9dd9;padding-bottom:8px}.post-type-frm_display #poststuff{padding:10px 25px}.post-type-frm_display #side-sortables .postbox{margin-bottom:20px;border-radius:var(--small-radius);border-top-width:1px}#frm_top_bar .frm_form_nav{box-shadow:0 -0.47px 10px 0 rgba(16,24,40,.0588235294)}#frm_top_bar ul.frm_form_nav{padding:1em 0;position:fixed;bottom:0;width:100%;background:#fff;z-index:99;transform:translate(-50%, 0);left:50%}.frm_page_container>.columns-2,#frm_styler_wrapper{padding-bottom:64px}#frm_style_preview .frm_floating_style_button:not(.frm_hidden){position:static;display:inline-block}.frm_wrap .columns-2 .frm-right-panel{padding-bottom:0}#frm-publishing{margin-left:auto}#frm_top_bar>.frm-full-close:last-child{margin-left:0}#frm_bs_dropdown{display:block}#frm_bs_dropdown .frm_bstooltip{display:block !important}}@media only screen and (max-width: 782px){.frm-white-body,.frm_wrap{--small-sidebar: 20%;--medium-sidebar: 35% }#form_settings_page .advanced_settings .form-table td,.form-table th{display:table-cell;width:auto !important}.frm-white-body #publishing-action,.frm_wrap #publishing-action{line-height:normal}.frm-white-body #screen-meta-links{display:none}.frm_wrap .misc-pub-section{padding:6px 0}.frm_wrap .misc-pub-section>a{float:none;white-space:nowrap}.frm-form-setting-tabs a{position:relative;padding:10px 5px 10px 40px}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{position:absolute;left:13px;top:calc(50% - 10px);margin:0}#frm-insert-fields .button,#frm-insert-fields .button a,.frmbutton.ui-sortable-helper a{line-height:26px;max-height:28px}a.frm_add_logic_link{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}a.frm_add_logic_link:not([id^=logic_]) .frmsvg,a.frm_add_logic_link i{display:none}#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 83px)}.frm_single_entry_page .frm_form_fields input[type=text],.frm_single_entry_page .frm_form_fields select,.frm_single_entry_page .frm_form_fields textarea{width:100%}.with_frm_style .frm_radio input[type=radio],.with_frm_style .frm_checkbox input[type=checkbox]{width:25px !important}.frm_single_entry_page .with_frm_style .frm_radio input[type=radio],.frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox]{width:18px !important}.wp-list-table.toplevel_page_formidable .column-entries,.wp-list-table.toplevel_page_formidable .column-form_key,.wp-list-table.toplevel_page_formidable .column-shortcode,.wp-list-table.toplevel_page_formidable .column-created_at{display:none !important}.wp-list-table.toplevel_page_formidable td.column-entries,.wp-list-table.toplevel_page_formidable td.column-form_key,.wp-list-table.toplevel_page_formidable td.column-shortcode,.wp-list-table.toplevel_page_formidable td.column-created_at{padding:3px 8px 3px 35%;text-align:left}#form_entries_page .wp-list-table th.frm_hidden,#form_entries_page .wp-list-table td.frm_hidden{display:none !important}.frm-white-body.auto-fold #wpcontent{padding-left:0}.frm_right_addon .frm_remove_field{bottom:11px}.frm-addons{grid-template-columns:1fr}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{left:0 !important}.frm_single_entry_page.frm_wrap .columns-2{display:block;border-bottom:none}.frm_single_entry_page .wrap.frm-with-margin{margin:10px 20px}.frm_single_entry_page #post-body-content+.frm-right-panel{width:auto;margin:0 20px;border:1px solid var(--sidebar-hover);border-radius:6px}#wp-content-media-buttons a.frm_insert_form{padding:0 var(--gap-sm)}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{width:1.2rem;height:1.2rem}}@media only screen and (max-width: 700px){.frm-white-body,.frm_wrap{--biggest-sidebar: 50%;--big-sidebar: 50%}}@media only screen and (max-width: 600px){.frm-white-body,.frm_wrap{--small-sidebar: 45px}.frm-form-setting-tabs a{visibility:collapse;font-size:0;padding:0 var(--gap-sm)}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{visibility:visible;position:initial;font-size:18px}#frm_builder_page #frm-insert-fields{padding:0}.frm_wrap #frm_adv_info ul.category-tabs li{display:inline-block;padding:0;margin:2px 0;border-bottom:2px solid rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li.tabs,.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:0;padding:0}.field_type_list li{text-align:center}#frm-insert-fields li a{padding:5px}#frm_form_editor_container .frm_primary_label{clear:both}#frm_builder_page .frm_code_list a.button{padding:2px}#frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:0;left:auto}.frm-right-panel h3.accordion-section-title{padding-right:10px;padding-left:10px;font-size:20px;white-space:nowrap;overflow:hidden}.frm-right-panel .accordion-section-title::before{margin-left:0;margin-right:3px}.rtl #frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:auto;left:0}.frm_on_submit_type svg{display:none}}@media only screen and (max-width: 475px){#frm_bs_dropdown{float:none}#frm-nav-tabs{padding:0;white-space:nowrap}#frm-nav-tabs a{margin-right:0}#frm_small_device_message_container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;width:100%;height:100%;z-index:999999;background:var(--primary-500)}#frm_small_device_message{text-align:center;display:flex;flex-direction:column;align-items:center;width:80%;padding:1rem;background:#fff;border:solid 1px #fff;border-radius:var(--medium-radius)}#frm_small_device_message::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-78%, -65%);width:900px;height:900px;background-color:#0d7dfc;border-radius:50%;z-index:-1;opacity:.3}#frm_small_device_message>svg{padding-bottom:1rem}.toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter,.post-type-frm_display:has(#frm_small_device_message_container) #posts-filter{display:none}}@media print{a,.misc-pub-section a{color:#000 !important}.add-new-h2,#frm_top_bar,.dashicons,#adminmenuwrap,#adminmenuback,#wphead,#button_bar,#submitdiv,.button-secondary,#screen-metas,#screen-meta-links,#footer,#wpfooter,.inner-sidebar,.frm_form_nav,.frm_flash_graph,.frm_no_print,object,.error{visibility:hidden;display:none !important}.widget,.postbox,.stuffbox,.postbox h3{border-width:0 !important;border-color:#fff}.postbox{background:#fff !important;border:none;position:static}.postbox h3,.postbox h4{background:#fff !important}#wpbody-content{float:none}#wpcontent,#post-body-content,.has-right-sidebar #post-body,#poststuff .columns-2{margin:0 !important}.frm_wrap #poststuff .columns-2{display:block}#post-body-content+.frm-right-panel,.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{border:none;width:auto;display:block;padding:20px}.frm_wrap .columns-2,.frm_wrap .frm_page_container{height:auto;display:block}.misc-pub-section>span{padding:0}.frm-right-panel .postbox .inside{padding-left:12px;padding-right:12px}.curtime #timestamp::before{display:none;content:none !important}.frm_charts .alignleft{float:none}.pg_odd,.pg_even{page-break-inside:avoid;max-width:600px}.form-table td,.form-table th{padding:0}.frm_file_container a{display:block;width:100%}}.frm-admin-page-styles #frm-publishing #save_menu_header,.frm-admin-page-styles2 #frm-publishing #save_menu_header{display:inline-block}.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first{order:2}.frm-video-wrapper iframe{width:100%;max-width:843px;border-radius:var(--border-radius)}#frm_field_group_popup{position:absolute;top:0;right:0;width:366px;max-height:231px;border-radius:8px;background:#fff;box-shadow:0 20px 48px rgba(40,47,54,.15);z-index:3;box-sizing:border-box;padding:24px 0;text-align:left}.rtl #frm_field_group_popup{text-align:right}.frm-merge-fields-into-row #frm_field_group_popup{top:unset;bottom:50px;height:196px}#frm_field_group_popup>hr{margin:12px 0}#frm_field_group_popup .frm-cancel-custom-field-group-layout,#frm_field_group_popup .frm-save-custom-field-group-layout{padding:4px 18px}#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover{border-color:var(--primary-500) !important;color:var(--primary-500);background-color:rgba(0,0,0,0) !important}.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group{display:none}.frm-merge-fields-into-row>a{color:rgba(40,47,54,.85);position:relative;top:2px}.frm-row-layout-title{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:27px}.frm-row-layout-option{background:#f6f7fb;box-sizing:border-box;border-radius:2px;padding:15px 10px}#frm_field_group_popup .frm-row-layout-option .frm_grid_container{grid-gap:0 5%;grid-template-columns:repeat(12, auto)}#frm_field_group_popup .frm-row-layout-option{cursor:pointer;border:2px solid rgba(0,0,0,0)}#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,#frm_field_group_popup .frm-row-layout-option:hover{border-color:var(--primary-500)}.frm-custom-field-group-layout,.frm-break-field-group{padding:4px 24px;cursor:pointer;font-size:var(--text-sm);line-height:19px;color:#484e54}.frm-custom-field-group-layout:hover,.frm-break-field-group:hover{background-color:rgba(245,245,245,.9607843137)}.frm-custom-field-group-layout svg,.frm-break-field-group svg{margin-right:5px}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}#frm_banner{width:100%;color:#fff;background:var(--primary-500);height:40px;line-height:40px;text-align:center;position:relative}.frm-banner-emoji{font-size:19px}.frm-banner-emoji,.frm-banner-title{margin-right:5px;vertical-align:top}.frm-banner-cta a{text-decoration:underline !important}#frm_banner .frm-banner-cta a.frm_inbox_dismiss{display:none}.frm-banner-dismiss{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.frm-banner-dismiss .frmsvg{vertical-align:top}.frm-ready-made-solution:not(.frm-search-result){display:none !important}#frm_leave_email_wrapper .frmsvg{top:0}#frm-add-my-email-address{margin-top:30px}.frm-ready-made-solution h3~a{color:var(--primary-500)}.frm-ready-made-solution img{max-width:100%;display:block;box-shadow:var(--box-shadow-lg)}.frm_single_on_submit_settings .frm_form_field{margin:22px 0}.frm_on_submit_type_setting{padding:8px 0}.frm_on_submit_type label{display:flex;border:1px solid var(--grey-border);border-radius:var(--small-radius);gap:16px;padding:16px;align-items:center;justify-content:center}.frm_on_submit_type input{opacity:0 !important;position:absolute;z-index:-1}.frm_on_submit_type input[type=radio]:checked+label{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}#form_settings_page .frm_on_submit_type label:hover,.frm_on_submit_type input[type=radio]:checked+label svg{color:var(--primary-color)}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}#frm-form-templates-modal textarea{height:108px}#frm-form-templates-modal .frm-fields button.btn{border-color:var(--grey-300);color:var(--grey-900);cursor:pointer}#frm-form-templates-modal .frm-fields button.btn .frmsvg{color:var(--grey-400);width:14px;height:14px}#frm-form-templates-modal .frm-form-templates-modal-fieldset{position:relative}#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg{padding:0;top:0;left:13px}#frm-form-templates-modal .postbox{display:block !important}#frm_empty_inbox #frm-leave-email-modal{margin-top:var(--gap-2xl)}#frm-name-your-form-modal .frm_modal_top{padding-top:var(--gap-sm)}#frm-field-group-message{position:absolute;bottom:32px;right:calc(50% - var(--biggest-sidebar));padding:var(--gap-xs) var(--gap-sm);border-radius:100px;background-color:var(--primary-25)}#frm-field-group-message .frm-field-group-message-text{gap:10px;color:var(--grey-800)}#frm-field-group-message-dismiss{margin-left:var(--gap-xs)}#frm-field-group-message-dismiss .frmsvg{color:var(--grey-800);width:15px;height:15px;cursor:pointer;transition:color 300ms ease-in-out}#frm-field-group-message-dismiss .frmsvg:hover{color:var(--grey-500)}.frm-card-item{display:flex;border:1px solid var(--grey-200);border-radius:var(--small-radius);padding:var(--gap-sm);box-shadow:var(--box-shadow-xs);background:#fff}.frm-card-item:not(.frm-counter-card){gap:10px}.frm-compact-card-item{padding:var(--gap-sm) 35px 10px 35px}.frm-card-bottom{background-color:var(--grey-50);margin-left:calc(var(--gap-sm)*-1);margin-bottom:calc(var(--gap-sm)*-1);margin-right:calc(var(--gap-sm)*-1);padding:var(--gap-sm);border-radius:0 0 var(--small-radius) var(--small-radius)}#welcome-panel:has(#frm_form_pf_importer){background-color:#fff;margin:var(--gap-sm) var(--gap-md) var(--gap-md);line-height:2}#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content{text-align:start !important;min-height:unset;display:block}#frm_form_pf_importer div{margin:10px 0 !important}#frm_form_pf_importer button{border:1px solid var(--primary-500);padding:7px 16px;min-height:28px;line-height:var(--leading);margin-bottom:0;background:var(--primary-500);color:#fff !important}#frm_form_pf_importer button:hover{background:#135e96;border-color:#135e96}.frm-option-box{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;background-color:#fff;padding:12px var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius);margin-bottom:var(--gap-xs);transition:background-color 100ms ease-out;cursor:pointer}.frm-option-box:hover{background-color:var(--grey-25)}.frm-option-box.frm-checked{background-color:var(--primary-25);border-color:var(--primary-200)}.frm-option-box.frm-disabled{cursor:default}.frm-option-box input[type=checkbox]{margin:0}.frm-option-box.frm-disabled input[type=checkbox]{opacity:.5}.frm-option-box .frm_help .frmsvg{width:12px;height:12px}.frm-validation-error:not(.frm_hidden){display:flex}.frm-validation-error{gap:calc(var(--gap-xs) + var(--gap-2xs))}.frm-validation-error span{color:var(--error-500)}.frm-validation-error span[frm-error]{display:none}.frm-validation-error[frm-error=empty] span[frm-error=empty],.frm-validation-error[frm-error=invalid] span[frm-error=invalid],.frm-validation-error[frm-error=custom] span[frm-error=custom]{display:inline-block}.frm-box{padding:var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius)}.frm-link-with-external-icon{display:flex;align-items:center;gap:var(--gap-2xs);font-size:var(--text-xs)}.frm-link-with-external-icon .frmsvg{width:16px;height:16px;transform:rotate(45deg)}#wpbody-content .frm-page-skeleton ul,#wpbody-content .frm-page-skeleton li{margin:0}#wpbody-content .frm-page-skeleton .frm-right-panel{padding:2px;overflow-y:initial}#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper{padding:var(--gap-md) var(--gap-sm)}#wpbody-content .frm-page-skeleton .frm-search{float:none;padding:0 var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>svg{left:var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>input{width:100%}.frm-page-skeleton-cat{cursor:pointer;padding:var(--gap-xs);border-radius:var(--small-radius);background-color:rgba(0,0,0,0);transition:background-color 250ms ease-out}.frm-page-skeleton-cat:hover{background-color:var(--grey-100)}.frm-page-skeleton-cat>*{z-index:2}.frm-page-skeleton-cat-text{color:var(--grey-900);text-transform:capitalize}.frm-page-skeleton-cat-count{color:var(--grey-400)}.frm-current .frm-page-skeleton-cat-text,.frm-current .frm-page-skeleton-cat-count{color:var(--primary-500)}.frm-list-grid-layout{display:grid;grid-template-columns:repeat(auto-fill, minmax(303px, 1fr));grid-auto-rows:max-content;gap:var(--gap-sm)}.frm-list-grid-layout>*{grid-column:span 1}#frm-page-skeleton-empty-state{height:100%;margin-top:calc(-1*var(--gap-md))}#frm-page-skeleton-empty-state .frm-page-skeleton-text{max-width:420px}.frm-page-skeleton-divider{border-top:1px solid var(--grey-200);margin:0}.field_type_list .frm_tsubmit{display:none !important}#frm_style_sidebar .accordion-section-title::after,#frm_view_editor_left .accordion-section-title::after{content:""}a[href="#square_settings"] svg.frmsvg{width:23px !important;height:22px !important}#frm_square_test_setup_modal a:focus{box-shadow:none !important}@media only screen and (max-width: 900px){#square_settings .frm_grid_container:has(.frm-card-item){grid-template-columns:repeat(1, 1fr)}#square_settings .frm-card-item+.frm-card-item{margin-top:var(--gap-sm)}}#frm_sale_banner{display:flex;height:90px;flex-direction:row;align-items:center;gap:var(--gap-sm);cursor:pointer;position:relative}#frm_sale_banner>div:first-child{align-self:flex-end;width:150px;height:100%;display:flex;justify-content:center}#frm_sale_banner>div:first-child img{align-self:center}#frm_sale_banner>div:nth-child(3){margin-left:auto;margin-right:50px}#frm_sale_banner>div:nth-child(2)>div:last-child{opacity:.8}#frm_sale_banner a:not(.dismiss){text-shadow:none;border-radius:30px;border:1px rgba(0,0,0,0);font-size:var(--text-sm);padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;margin-bottom:0;display:inline-block;font-weight:700;background-color:#fff;color:#000}#frm_sale_banner .dismiss{position:absolute;color:#fff;opacity:.6;right:15px;top:10px}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"]{background-color:#f0f0f0 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"]{background-color:#e6470f !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"]{background-color:#ed1d34 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"]{background-color:#3e041a !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"]{background-color:#362630 !important}.frm-lookup-box-label{display:none}.frm-inline-modal[id^=frm-lookup-box]{background-color:rgba(0,0,0,0);border:0;box-shadow:none}.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs,.frm-inline-modal[id^=frm-lookup-box] .dismiss{display:none}.frm_single_option a.frm_remove_tag svg,.frm_single_option a.frm_add_opt svg{width:15px;height:15px}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px} diff --git a/js/addons-page.js b/js/addons-page.js index 20dd829fce..c3de805933 100644 --- a/js/addons-page.js +++ b/js/addons-page.js @@ -1,4787 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@tannin/compile/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/compile/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ compile) -/* harmony export */ }); -/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); -/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); - - - -/** - * Given a C expression, returns a function which can be called to evaluate its - * result. - * - * @example - * - * ```js - * import compile from '@tannin/compile'; - * - * const evaluate = compile( 'n > 1' ); - * - * evaluate( { n: 2 } ); - * // ⇒ true - * ``` - * - * @param {string} expression C expression. - * - * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. - */ -function compile( expression ) { - var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( variables ) { - return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/evaluate/index.js": -/*!************************************************!*\ - !*** ./node_modules/@tannin/evaluate/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ evaluate) -/* harmony export */ }); -/** - * Operator callback functions. - * - * @type {Object} - */ -var OPERATORS = { - '!': function( a ) { - return ! a; - }, - '*': function( a, b ) { - return a * b; - }, - '/': function( a, b ) { - return a / b; - }, - '%': function( a, b ) { - return a % b; - }, - '+': function( a, b ) { - return a + b; - }, - '-': function( a, b ) { - return a - b; - }, - '<': function( a, b ) { - return a < b; - }, - '<=': function( a, b ) { - return a <= b; - }, - '>': function( a, b ) { - return a > b; - }, - '>=': function( a, b ) { - return a >= b; - }, - '==': function( a, b ) { - return a === b; - }, - '!=': function( a, b ) { - return a !== b; - }, - '&&': function( a, b ) { - return a && b; - }, - '||': function( a, b ) { - return a || b; - }, - '?:': function( a, b, c ) { - if ( a ) { - throw b; - } - - return c; - }, -}; - -/** - * Given an array of postfix terms and operand variables, returns the result of - * the postfix evaluation. - * - * @example - * - * ```js - * import evaluate from '@tannin/evaluate'; - * - * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' - * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; - * - * evaluate( terms, {} ); - * // ⇒ 6.333333333333334 - * ``` - * - * @param {string[]} postfix Postfix terms. - * @param {Object} variables Operand variables. - * - * @return {*} Result of evaluation. - */ -function evaluate( postfix, variables ) { - var stack = [], - i, j, args, getOperatorResult, term, value; - - for ( i = 0; i < postfix.length; i++ ) { - term = postfix[ i ]; - - getOperatorResult = OPERATORS[ term ]; - if ( getOperatorResult ) { - // Pop from stack by number of function arguments. - j = getOperatorResult.length; - args = Array( j ); - while ( j-- ) { - args[ j ] = stack.pop(); - } - - try { - value = getOperatorResult.apply( null, args ); - } catch ( earlyReturn ) { - return earlyReturn; - } - } else if ( variables.hasOwnProperty( term ) ) { - value = variables[ term ]; - } else { - value = +term; - } - - stack.push( value ); - } - - return stack[ 0 ]; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/plural-forms/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@tannin/plural-forms/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pluralForms) -/* harmony export */ }); -/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); - - -/** - * Given a C expression, returns a function which, when called with a value, - * evaluates the result with the value assumed to be the "n" variable of the - * expression. The result will be coerced to its numeric equivalent. - * - * @param {string} expression C expression. - * - * @return {Function} Evaluator function. - */ -function pluralForms( expression ) { - var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( n ) { - return +evaluate( { n: n } ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/postfix/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/postfix/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ postfix) -/* harmony export */ }); -var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; - -/** - * Operator precedence mapping. - * - * @type {Object} - */ -PRECEDENCE = { - '(': 9, - '!': 8, - '*': 7, - '/': 7, - '%': 7, - '+': 6, - '-': 6, - '<': 5, - '<=': 5, - '>': 5, - '>=': 5, - '==': 4, - '!=': 4, - '&&': 3, - '||': 2, - '?': 1, - '?:': 1, -}; - -/** - * Characters which signal pair opening, to be terminated by terminators. - * - * @type {string[]} - */ -OPENERS = [ '(', '?' ]; - -/** - * Characters which signal pair termination, the value an array with the - * opener as its first member. The second member is an optional operator - * replacement to push to the stack. - * - * @type {string[]} - */ -TERMINATORS = { - ')': [ '(' ], - ':': [ '?', '?:' ], -}; - -/** - * Pattern matching operators and openers. - * - * @type {RegExp} - */ -PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; - -/** - * Given a C expression, returns the equivalent postfix (Reverse Polish) - * notation terms as an array. - * - * If a postfix string is desired, simply `.join( ' ' )` the result. - * - * @example - * - * ```js - * import postfix from '@tannin/postfix'; - * - * postfix( 'n > 1' ); - * // ⇒ [ 'n', '1', '>' ] - * ``` - * - * @param {string} expression C expression. - * - * @return {string[]} Postfix terms. - */ -function postfix( expression ) { - var terms = [], - stack = [], - match, operator, term, element; - - while ( ( match = expression.match( PATTERN ) ) ) { - operator = match[ 0 ]; - - // Term is the string preceding the operator match. It may contain - // whitespace, and may be empty (if operator is at beginning). - term = expression.substr( 0, match.index ).trim(); - if ( term ) { - terms.push( term ); - } - - while ( ( element = stack.pop() ) ) { - if ( TERMINATORS[ operator ] ) { - if ( TERMINATORS[ operator ][ 0 ] === element ) { - // Substitution works here under assumption that because - // the assigned operator will no longer be a terminator, it - // will be pushed to the stack during the condition below. - operator = TERMINATORS[ operator ][ 1 ] || operator; - break; - } - } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { - // Push to stack if either an opener or when pop reveals an - // element of lower precedence. - stack.push( element ); - break; - } - - // For each popped from stack, push to terms. - terms.push( element ); - } - - if ( ! TERMINATORS[ operator ] ) { - stack.push( operator ); - } - - // Slice matched fragment from expression to continue match. - expression = expression.substr( match.index + operator.length ); - } - - // Push remainder of operand, if exists, to terms. - expression = expression.trim(); - if ( expression ) { - terms.push( expression ); - } - - // Pop remaining items from stack into terms. - return terms.concat( stack.reverse() ); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback AddHook - * - * Adds the hook to the appropriate hooks container. - * - * @param {string} hookName Name of hook to add - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. - * @param {import('.').Callback} callback Function to call when the hook is run - * @param {number} [priority=10] Priority of this hook - */ - -/** - * Returns a function which, when invoked, will add a hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {AddHook} Function that adds a new hook. - */ - -function createAddHook(hooks, storeKey) { - return function addHook(hookName, namespace, callback) { - var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } - - if ('function' !== typeof callback) { - // eslint-disable-next-line no-console - console.error('The hook callback must be a function.'); - return; - } // Validate numeric priority - - - if ('number' !== typeof priority) { - // eslint-disable-next-line no-console - console.error('If specified, the hook priority must be a number.'); - return; - } - - var handler = { - callback: callback, - priority: priority, - namespace: namespace - }; - - if (hooksStore[hookName]) { - // Find the correct insert index of the new hook. - var handlers = hooksStore[hookName].handlers; - /** @type {number} */ - - var i; - - for (i = handlers.length; i > 0; i--) { - if (priority >= handlers[i - 1].priority) { - break; - } - } - - if (i === handlers.length) { - // If append, operate via direct assignment. - handlers[i] = handler; - } else { - // Otherwise, insert before index via splice. - handlers.splice(i, 0, handler); - } // We may also be currently executing this hook. If the callback - // we're adding would come after the current callback, there's no - // problem; otherwise we need to increase the execution index of - // any other runs by 1 to account for the added element. - - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex++; - } - }); - } else { - // This is the first hook of its type. - hooksStore[hookName] = { - handlers: [handler], - runs: 0 - }; - } - - if (hookName !== 'hookAdded') { - hooks.doAction('hookAdded', hookName, namespace, callback, priority); - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); -//# sourceMappingURL=createAddHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Returns a function which, when invoked, will return the name of the - * currently running hook, or `null` if no hook of the given type is currently - * running. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {() => string | null} Function that returns the current hook name or null. - */ -function createCurrentHook(hooks, storeKey) { - return function currentHook() { - var _hooksStore$__current, _hooksStore$__current2; - - var hooksStore = hooks[storeKey]; - 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; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); -//# sourceMappingURL=createCurrentHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - -/** - * @callback DidHook - * - * Returns the number of times an action has been fired. - * - * @param {string} hookName The hook name to check. - * - * @return {number | undefined} The number of times the hook has run. - */ - -/** - * Returns a function which, when invoked, will return the number of times a - * hook has been called. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DidHook} Function that returns a hook's call count. - */ - -function createDidHook(hooks, storeKey) { - return function didHook(hookName) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { - return; - } - - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); -//# sourceMappingURL=createDidHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback DoingHook - * Returns whether a hook is currently being executed. - * - * @param {string} [hookName] The name of the hook to check for. If - * omitted, will check for any hook being executed. - * - * @return {boolean} Whether the hook is being executed. - */ - -/** - * Returns a function which, when invoked, will return whether a hook is - * currently being executed. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DoingHook} Function that returns whether a hook is currently - * being executed. - */ -function createDoingHook(hooks, storeKey) { - return function doingHook(hookName) { - var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. - - if ('undefined' === typeof hookName) { - return 'undefined' !== typeof hooksStore.__current[0]; - } // Return the __current hook. - - - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); -//# sourceMappingURL=createDoingHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback HasHook - * - * Returns whether any handlers are attached for the given hookName and optional namespace. - * - * @param {string} hookName The name of the hook to check for. - * @param {string} [namespace] Optional. The unique namespace identifying the callback - * in the form `vendor/plugin/function`. - * - * @return {boolean} Whether there are handlers that are attached to the given hook. - */ - -/** - * Returns a function which, when invoked, will return whether any handlers are - * attached to a particular hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {HasHook} Function that returns whether any handlers are - * attached to a particular hook and optional namespace. - */ -function createHasHook(hooks, storeKey) { - return function hasHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; // Use the namespace if provided. - - if ('undefined' !== typeof namespace) { - return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { - return hook.namespace === namespace; - }); - } - - return hookName in hooksStore; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); -//# sourceMappingURL=createHasHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ _Hooks: () => (/* binding */ _Hooks), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); -/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); -/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); -/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); -/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); -/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); -/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Internal class for constructing hooks. Use `createHooks()` function - * - * Note, it is necessary to expose this class to make its type public. - * - * @private - */ - -var _Hooks = function _Hooks() { - (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); - - /** @type {import('.').Store} actions */ - this.actions = Object.create(null); - this.actions.__current = []; - /** @type {import('.').Store} filters */ - - this.filters = Object.create(null); - this.filters.__current = []; - this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); - this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); - this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); - this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); - this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); - this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); - this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); - this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); - this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); - this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); - this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); - this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); - this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); - this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); - this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); - this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); -}; -/** @typedef {_Hooks} Hooks */ - -/** - * Returns an instance of the hooks object. - * - * @return {Hooks} A Hooks instance. - */ - -function createHooks() { - return new _Hooks(); -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); -//# sourceMappingURL=createHooks.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback RemoveHook - * Removes the specified callback (or all callbacks) from the hook with a given hookName - * and namespace. - * - * @param {string} hookName The name of the hook to modify. - * @param {string} namespace The unique namespace identifying the callback in the - * form `vendor/plugin/function`. - * - * @return {number | undefined} The number of callbacks removed. - */ - -/** - * Returns a function which, when invoked, will remove a specified hook or all - * hooks by the given name. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, - * without regard to namespace. Used to create - * `removeAll*` functions. - * - * @return {RemoveHook} Function that removes hooks. - */ - -function createRemoveHook(hooks, storeKey) { - var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function removeHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } // Bail if no hooks exist by this name - - - if (!hooksStore[hookName]) { - return 0; - } - - var handlersRemoved = 0; - - if (removeAll) { - handlersRemoved = hooksStore[hookName].handlers.length; - hooksStore[hookName] = { - runs: hooksStore[hookName].runs, - handlers: [] - }; - } else { - // Try to find the specified callback to remove. - var handlers = hooksStore[hookName].handlers; - - var _loop = function _loop(i) { - if (handlers[i].namespace === namespace) { - handlers.splice(i, 1); - handlersRemoved++; // This callback may also be part of a hook that is - // currently executing. If the callback we're removing - // comes after the current callback, there's no problem; - // otherwise we need to decrease the execution index of any - // other runs by 1 to account for the removed element. - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex--; - } - }); - } - }; - - for (var i = handlers.length - 1; i >= 0; i--) { - _loop(i); - } - } - - if (hookName !== 'hookRemoved') { - hooks.doAction('hookRemoved', hookName, namespace); - } - - return handlersRemoved; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); -//# sourceMappingURL=createRemoveHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); - - -/** - * Returns a function which, when invoked, will execute all callbacks - * registered to a hook of the specified type, optionally returning the final - * value of the call chain. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to - * return its first argument. - * - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. - */ -function createRunHook(hooks, storeKey) { - var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function runHooks(hookName) { - var hooksStore = hooks[storeKey]; - - if (!hooksStore[hookName]) { - hooksStore[hookName] = { - handlers: [], - runs: 0 - }; - } - - hooksStore[hookName].runs++; - var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. - - if (true) { - // Handle any 'all' hooks registered. - if ('hookAdded' !== hookName && hooksStore.all) { - handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); - } - } - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (!handlers || !handlers.length) { - return returnFirstArg ? args[0] : undefined; - } - - var hookInfo = { - name: hookName, - currentIndex: 0 - }; - - hooksStore.__current.push(hookInfo); - - while (hookInfo.currentIndex < handlers.length) { - var handler = handlers[hookInfo.currentIndex]; - var result = handler.callback.apply(null, args); - - if (returnFirstArg) { - args[0] = result; - } - - hookInfo.currentIndex++; - } - - hooksStore.__current.pop(); - - if (returnFirstArg) { - return args[0]; - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); -//# sourceMappingURL=createRunHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actions: () => (/* binding */ actions), -/* harmony export */ addAction: () => (/* binding */ addAction), -/* harmony export */ addFilter: () => (/* binding */ addFilter), -/* harmony export */ applyFilters: () => (/* binding */ applyFilters), -/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ currentAction: () => (/* binding */ currentAction), -/* harmony export */ currentFilter: () => (/* binding */ currentFilter), -/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), -/* harmony export */ didAction: () => (/* binding */ didAction), -/* harmony export */ didFilter: () => (/* binding */ didFilter), -/* harmony export */ doAction: () => (/* binding */ doAction), -/* harmony export */ doingAction: () => (/* binding */ doingAction), -/* harmony export */ doingFilter: () => (/* binding */ doingFilter), -/* harmony export */ filters: () => (/* binding */ filters), -/* harmony export */ hasAction: () => (/* binding */ hasAction), -/* harmony export */ hasFilter: () => (/* binding */ hasFilter), -/* harmony export */ removeAction: () => (/* binding */ removeAction), -/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), -/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), -/* harmony export */ removeFilter: () => (/* binding */ removeFilter) -/* harmony export */ }); -/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); -/** - * Internal dependencies - */ - -/** @typedef {(...args: any[])=>any} Callback */ - -/** - * @typedef Handler - * @property {Callback} callback The callback - * @property {string} namespace The namespace - * @property {number} priority The namespace - */ - -/** - * @typedef Hook - * @property {Handler[]} handlers Array of handlers - * @property {number} runs Run counter - */ - -/** - * @typedef Current - * @property {string} name Hook name - * @property {number} currentIndex The index - */ - -/** - * @typedef {Record & {__current: Current[]}} Store - */ - -/** - * @typedef {'actions' | 'filters'} StoreKey - */ - -/** - * @typedef {import('./createHooks').Hooks} Hooks - */ - -var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); -var addAction = defaultHooks.addAction, - addFilter = defaultHooks.addFilter, - removeAction = defaultHooks.removeAction, - removeFilter = defaultHooks.removeFilter, - hasAction = defaultHooks.hasAction, - hasFilter = defaultHooks.hasFilter, - removeAllActions = defaultHooks.removeAllActions, - removeAllFilters = defaultHooks.removeAllFilters, - doAction = defaultHooks.doAction, - applyFilters = defaultHooks.applyFilters, - currentAction = defaultHooks.currentAction, - currentFilter = defaultHooks.currentFilter, - doingAction = defaultHooks.doingAction, - doingFilter = defaultHooks.doingFilter, - didAction = defaultHooks.didAction, - didFilter = defaultHooks.didFilter, - actions = defaultHooks.actions, - filters = defaultHooks.filters; - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a hookName string. - * - * @param {string} hookName The hook name to validate. Should be a non empty string containing - * only numbers, letters, dashes, periods and underscores. Also, - * the hook name cannot begin with `__`. - * - * @return {boolean} Whether the hook name is valid. - */ -function validateHookName(hookName) { - if ('string' !== typeof hookName || '' === hookName) { - // eslint-disable-next-line no-console - console.error('The hook name must be a non-empty string.'); - return false; - } - - if (/^__/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name cannot begin with `__`.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); -//# sourceMappingURL=validateHookName.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a namespace string. - * - * @param {string} namespace The namespace to validate - should take the form - * `vendor/plugin/function`. - * - * @return {boolean} Whether the namespace is valid. - */ -function validateNamespace(namespace) { - if ('string' !== typeof namespace || '' === namespace) { - // eslint-disable-next-line no-console - console.error('The namespace must be a non-empty string.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { - // eslint-disable-next-line no-console - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); -//# sourceMappingURL=validateNamespace.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": -/*!******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createI18n: () => (/* binding */ createI18n) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); - - -function 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; } - -function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } - -/** - * External dependencies - */ - -/** - * @typedef {Record} LocaleData - */ - -/** - * Default locale data to use for Tannin domain when not otherwise provided. - * Assumes an English plural forms expression. - * - * @type {LocaleData} - */ - -var DEFAULT_LOCALE_DATA = { - '': { - /** @param {number} n */ - plural_forms: function plural_forms(n) { - return n === 1 ? 0 : 1; - } - } -}; -/* - * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, - * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. - */ - -var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; -/** - * @typedef {(domain?: string) => LocaleData} GetLocaleData - * - * Returns locale data by domain in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData - * - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData - * - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** @typedef {() => void} SubscribeCallback */ - -/** @typedef {() => void} UnsubscribeCallback */ - -/** - * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe - * - * Subscribes to changes of locale data - */ - -/** - * @typedef {(domain?: string) => string} GetFilterDomain - * Retrieve the domain to use when calling domain-specific filters. - */ - -/** - * @typedef {(text: string, domain?: string) => string} __ - * - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - */ - -/** - * @typedef {(text: string, context: string, domain?: string) => string} _x - * - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n - * - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx - * - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - */ - -/** - * @typedef {() => boolean} IsRtl - * - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - */ - -/** - * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation - * - * Check if there is a translation for a given string in singular form. - */ - -/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ - -/** - * An i18n instance - * - * @typedef I18n - * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. - * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. - * @property {__} __ Retrieve the translation of text. - * @property {_x} _x Retrieve translated string with gettext context. - * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied - * number. - * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * @property {IsRtl} isRTL Check if current locale is RTL. - * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. - */ - -/** - * Create an i18n instance - * - * @param {LocaleData} [initialData] Locale data configuration. - * @param {string} [initialDomain] Domain for which configuration applies. - * @param {Hooks} [hooks] Hooks implementation. - * @return {I18n} I18n instance - */ - -var createI18n = function createI18n(initialData, initialDomain, hooks) { - /** - * The underlying instance of Tannin to which exported functions interface. - * - * @type {Tannin} - */ - var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); - var listeners = new Set(); - - var notifyListeners = function notifyListeners() { - listeners.forEach(function (listener) { - return listener(); - }); - }; - /** - * Subscribe to changes of locale data. - * - * @param {SubscribeCallback} callback Subscription callback. - * @return {UnsubscribeCallback} Unsubscribe callback. - */ - - - var subscribe = function subscribe(callback) { - listeners.add(callback); - return function () { - return listeners.delete(callback); - }; - }; - /** @type {GetLocaleData} */ - - - var getLocaleData = function getLocaleData() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return tannin.data[domain]; - }; - /** - * @param {LocaleData} [data] - * @param {string} [domain] - */ - - - var doSetLocaleData = function doSetLocaleData(data) { - var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits - // a plural forms expression). - - tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); - }; - /** @type {SetLocaleData} */ - - - var setLocaleData = function setLocaleData(data, domain) { - doSetLocaleData(data, domain); - notifyListeners(); - }; - /** @type {ResetLocaleData} */ - - - var resetLocaleData = function resetLocaleData(data, domain) { - // Reset all current Tannin locale data. - tannin.data = {}; // Reset cached plural forms functions cache. - - tannin.pluralForms = {}; - setLocaleData(data, domain); - }; - /** - * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not - * otherwise previously assigned. - * - * @param {string|undefined} domain Domain to retrieve the translated text. - * @param {string|undefined} context Context information for the translators. - * @param {string} single Text to translate if non-plural. Used as - * fallback return value on a caught error. - * @param {string} [plural] The text to be used if the number is - * plural. - * @param {number} [number] The number to compare against to use - * either the singular or plural form. - * - * @return {string} The translated string. - */ - - - var dcnpgettext = function dcnpgettext() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - var context = arguments.length > 1 ? arguments[1] : undefined; - var single = arguments.length > 2 ? arguments[2] : undefined; - var plural = arguments.length > 3 ? arguments[3] : undefined; - var number = arguments.length > 4 ? arguments[4] : undefined; - - if (!tannin.data[domain]) { - // use `doSetLocaleData` to set silently, without notifying listeners - doSetLocaleData(undefined, domain); - } - - return tannin.dcnpgettext(domain, context, single, plural, number); - }; - /** @type {GetFilterDomain} */ - - - var getFilterDomain = function getFilterDomain() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return domain; - }; - /** @type {__} */ - - - var __ = function __(text, domain) { - var translation = dcnpgettext(domain, undefined, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext', translation, text, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) - ); - }; - /** @type {_x} */ - - - var _x = function _x(text, context, domain) { - var translation = dcnpgettext(domain, context, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation based on context information. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) - ); - }; - /** @type {_n} */ - - - var _n = function _n(single, plural, number, domain) { - var translation = dcnpgettext(domain, undefined, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) - ); - }; - /** @type {_nx} */ - - - var _nx = function _nx(single, plural, number, context, domain) { - var translation = dcnpgettext(domain, context, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string with gettext context. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) - ); - }; - /** @type {IsRtl} */ - - - var isRTL = function isRTL() { - return 'rtl' === _x('ltr', 'text direction'); - }; - /** @type {HasTranslation} */ - - - var hasTranslation = function hasTranslation(single, context, domain) { - var _tannin$data, _tannin$data2; - - var key = context ? context + "\x04" + single : single; - 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]); - - if (hooks) { - /** - * Filters the presence of a translation in the locale data. - * - * @param {boolean} hasTranslation Whether the translation is present or not.. - * @param {string} single The singular form of the translated text (used as key in locale data) - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation', result, single, context, domain); - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); - } - - return result; - }; - - if (initialData) { - setLocaleData(initialData, initialDomain); - } - - if (hooks) { - /** - * @param {string} hookName - */ - var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { - if (I18N_HOOK_REGEXP.test(hookName)) { - notifyListeners(); - } - }; - - hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); - hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); - } - - return { - getLocaleData: getLocaleData, - setLocaleData: setLocaleData, - resetLocaleData: resetLocaleData, - subscribe: subscribe, - __: __, - _x: _x, - _n: _n, - _nx: _nx, - isRTL: isRTL, - hasTranslation: hasTranslation - }; -}; -//# sourceMappingURL=create-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* binding */ __), -/* harmony export */ _n: () => (/* binding */ _n), -/* harmony export */ _nx: () => (/* binding */ _nx), -/* harmony export */ _x: () => (/* binding */ _x), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), -/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), -/* harmony export */ isRTL: () => (/* binding */ isRTL), -/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), -/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), -/* harmony export */ subscribe: () => (/* binding */ subscribe) -/* harmony export */ }); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); -/** - * Internal dependencies - */ - -/** - * WordPress dependencies - */ - - -var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); -/** - * Default, singleton instance of `I18n`. - */ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); -/* - * Comments in this file are duplicated from ./i18n due to - * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 - */ - -/** - * @typedef {import('./create-i18n').LocaleData} LocaleData - * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback - * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback - */ - -/** - * Returns locale data by domain in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {string} [domain] Domain for which to get the data. - * @return {LocaleData} Locale data. - */ - -var getLocaleData = i18n.getLocaleData.bind(i18n); -/** - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var setLocaleData = i18n.setLocaleData.bind(i18n); -/** - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var resetLocaleData = i18n.resetLocaleData.bind(i18n); -/** - * Subscribes to changes of locale data - * - * @param {SubscribeCallback} callback Subscription callback - * @return {UnsubscribeCallback} Unsubscribe callback - */ - -var subscribe = i18n.subscribe.bind(i18n); -/** - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - * - * @param {string} text Text to translate. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated text. - */ - -var __ = i18n.__.bind(i18n); -/** - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - * - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated context string without pipe. - */ - -var _x = i18n._x.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _n = i18n._n.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _nx = i18n._nx.bind(i18n); -/** - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - * - * @return {boolean} Whether locale is RTL. - */ - -var isRTL = i18n.isRTL.bind(i18n); -/** - * Check if there is a translation for a given string (in singular form). - * - * @param {string} single Singular form of the string to look up. - * @param {string} [context] Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * @return {boolean} Whether the translation exists or not. - */ - -var hasTranslation = i18n.hasTranslation.bind(i18n); -//# sourceMappingURL=default-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), -/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), -/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), -/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), -/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), -/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), -/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), -/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), -/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), -/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), -/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), -/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) -/* harmony export */ }); -/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": -/*!**************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sprintf: () => (/* binding */ sprintf) -/* harmony export */ }); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * External dependencies - */ - - -/** - * Log to console, once per message; or more precisely, per referentially equal - * argument set. Because Jed throws errors, we log these to the console instead - * to avoid crashing the application. - * - * @param {...*} args Arguments to pass to `console.error` - */ - -var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console - -/** - * Returns a formatted string. If an error occurs in applying the format, the - * original format string is returned. - * - * @param {string} format The format of the string to generate. - * @param {...*} args Arguments to apply to the format. - * - * @see https://www.npmjs.com/package/sprintf-js - * - * @return {string} The formatted string. - */ - -function sprintf(format) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); - } catch (error) { - logErrorOnce('sprintf error: \n\n' + error.toString()); - return format; - } -} -//# sourceMappingURL=sprintf.js.map - -/***/ }), - -/***/ "./js/src/addons-page/addons/categorizeAddons.js": -/*!*******************************************************!*\ - !*** ./js/src/addons-page/addons/categorizeAddons.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedAddons: () => (/* binding */ buildCategorizedAddons), -/* harmony export */ categorizedAddons: () => (/* binding */ categorizedAddons) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * Internal dependencies - */ - - -var categorizedAddons = {}; -categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE] = []; -categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE] = []; - -/** - * Builds a categorized list of addons. - * - * @return {void} - */ -function buildCategorizedAddons() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - addons = _getElements.addons; - addons.forEach(function (addon) { - // Extract and split the categories from data attribute - var dataCategories = addon.getAttribute('data-categories'); - if (!dataCategories) { - return; - } - var categories = dataCategories.split(','); - categories.forEach(function (category) { - // Initialize the category array if not already done - if (!categorizedAddons[category]) { - categorizedAddons[category] = []; - } - - // Add the addon to the appropriate category - categorizedAddons[category].push(addon); - }); - }); -} - -/***/ }), - -/***/ "./js/src/addons-page/addons/index.js": -/*!********************************************!*\ - !*** ./js/src/addons-page/addons/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedAddons), -/* harmony export */ categorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.categorizedAddons) -/* harmony export */ }); -/* harmony import */ var _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeAddons */ "./js/src/addons-page/addons/categorizeAddons.js"); - - -/***/ }), - -/***/ "./js/src/addons-page/constants.js": -/*!*****************************************!*\ - !*** ./js/src/addons-page/constants.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PLANS: () => (/* binding */ PLANS), -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ VIEWS: () => (/* binding */ VIEWS), -/* harmony export */ addonRequestURL: () => (/* binding */ addonRequestURL) -/* harmony export */ }); -var addonRequestURL = window.frmAddonsVars.addonRequestURL; - -var PREFIX = 'frm-addons'; -var VIEWS = { - AVAILABLE: 'available-addons', - ACTIVE: 'active-addons' -}; -var PLANS = { - BASIC: 'basic', - PLUS: 'plus', - BUSINESS: 'business', - ELITE: 'elite' -}; - -/***/ }), - -/***/ "./js/src/addons-page/elements/elements.js": -/*!*************************************************!*\ - !*** ./js/src/addons-page/elements/elements.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - bodyContent = _getElements.bodyContent, - sidebar = _getElements.sidebar; -bodyContent.querySelectorAll('.frm-card-item:not(.plugin-card-formidable-pro)').forEach(function (addon) { - var categories = addon.dataset.categories; - switch (true) { - case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS): - addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); - break; - case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS): - addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); - break; - case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC): - addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); - break; - } -}); -(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ - // Body elements - upgradeBanner: document.getElementById('frm-upgrade-banner'), - // Category elements - availableCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE, "\"]")), - activeCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE, "\"]")), - categoriesTopDivider: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-divider")), - basicPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC, "\"]")), - plusPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, "\"]")), - businessPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, "\"]")), - elitePlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE, "\"]")), - // Card elements - addonsList: document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")), - addons: bodyContent.querySelectorAll('.frm-card-item'), - availableAddons: bodyContent.querySelectorAll('.frm-card-item:not(.frm-locked-item)'), - addonsToggle: bodyContent.querySelectorAll('.frm_toggle_block'), - // Add children of the bodyContent to the elements object - bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children -}); - - -/***/ }), - -/***/ "./js/src/addons-page/elements/index.js": -/*!**********************************************!*\ - !*** ./js/src/addons-page/elements/index.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/addons-page/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/addons-page/events/addonToggleListener.js": -/*!**********************************************************!*\ - !*** ./js/src/addons-page/events/addonToggleListener.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui/ */ "./js/src/addons-page/ui/index.js"); -function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -/** - * Internal dependencies - */ - - -var targetButton; - -/** - * Manages event handling for addons toggle. - * - * @return {void} - */ -function addAddonToggleEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - addonsToggle = _getElements.addonsToggle; - addonsToggle.forEach(function (addonToggle) { - return addonToggle.addEventListener('click', onAddonToggleClick); - }); - wp.hooks.addAction('frm_update_addon_state', 'frmAddonPage', function () { - (0,_ui___WEBPACK_IMPORTED_MODULE_1__.setupActiveCategory)(); - }); -} - -/** - * Handles the click event on the addon toggle. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onAddonToggleClick = function onAddonToggleClick(event) { - var _targetButton; - if ((_targetButton = targetButton) !== null && _targetButton !== void 0 && _targetButton.classList.contains('frm_loading_button')) { - return; - } - var addonToggle = event.currentTarget; - var addon = addonToggle.closest('.frm-card-item'); - var actionMap = new Map([['frm-addon-not-installed', '.frm-install-addon'], ['frm-addon-installed', '.frm-activate-addon'], ['frm-addon-active', '.frm-deactivate-addon']]); - var _iterator = _createForOfIteratorHelper(actionMap.entries()), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _step$value = _slicedToArray(_step.value, 2), - className = _step$value[0], - selector = _step$value[1]; - if (addon.classList.contains(className)) { - targetButton = addon.querySelector(selector); - targetButton.click(); - break; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addAddonToggleEvents); - -/***/ }), - -/***/ "./js/src/addons-page/events/index.js": -/*!********************************************!*\ - !*** ./js/src/addons-page/events/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); -/* harmony import */ var _addonToggleListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addonToggleListener */ "./js/src/addons-page/events/addonToggleListener.js"); -/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./searchListener */ "./js/src/addons-page/events/searchListener.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Attaches event listeners for handling user interactions. - * - * @return {void} - */ -function addEventListeners() { - (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); - wp.hooks.addAction('frmPage.onCategoryClick', 'frmAddonsPage', function (selectedCategory) { - (0,_ui__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory)(selectedCategory); - }); - (0,_addonToggleListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); - (0,_searchListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - -/***/ }), - -/***/ "./js/src/addons-page/events/searchListener.js": -/*!*****************************************************!*\ - !*** ./js/src/addons-page/events/searchListener.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); -/** - * Internal dependencies - */ - - - -var initSearch = window.frmDom.search.init; - -/** - * Adds search-related event listeners by calling the 'initSearch' function. - * - * @see frmDom.search method - * @return {void} - */ -function addSearchEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - searchInput = _getElements.searchInput; - initSearch(searchInput, 'frm-card-item', { - handleSearchResult: handleSearchResult - }); -} - -/** - * Manages UI state based on search results and input value. - * - * @private - * @param {Object} args Contains flags for search status. - * @param {boolean} args.foundSomething True if search yielded results. - * @param {boolean} args.notEmptySearchText True if search input is not empty. - * @param {Event} event The event object (input, search, or change event). - * @return {void} - */ -function handleSearchResult(_ref, event) { - var foundSomething = _ref.foundSomething, - notEmptySearchText = _ref.notEmptySearchText; - // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, - // triggering this method twice on 'x' button click. - if (event && event.type === 'search' && event.target.value === '') { - return; - } - var state = (0,_shared__WEBPACK_IMPORTED_MODULE_1__.getState)(); - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - allItemsCategory = _getElements2.allItemsCategory; - (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('notEmptySearchText', notEmptySearchText); - - // Revert to 'All Templates' if search and selected category are both empty - if (!state.notEmptySearchText && !state.selectedCategory) { - allItemsCategory.dispatchEvent(new Event('click', { - bubbles: true - })); - return; - } - - // Display search state if a category is selected - if (state.selectedCategory) { - (0,_ui__WEBPACK_IMPORTED_MODULE_2__.showSearchState)(notEmptySearchText); - - // Setting "selectedCategory" to an empty string as a flag for search state - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('selectedCategory', ''); - } - } - (0,_ui__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements)(foundSomething); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); - -/***/ }), - -/***/ "./js/src/addons-page/shared/index.js": -/*!********************************************!*\ - !*** ./js/src/addons-page/shared/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/addons-page/shared/pageState.js"); - - -/***/ }), - -/***/ "./js/src/addons-page/shared/pageState.js": -/*!************************************************!*\ - !*** ./js/src/addons-page/shared/pageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/** - * External dependencies - */ - - -// NOTE: -// Use setState() here to add new states on the Add-Ons page. -// Check the 'core/page-skeleton' package for shared states you can use. - - - -/***/ }), - -/***/ "./js/src/addons-page/ui/index.js": -/*!****************************************!*\ - !*** ./js/src/addons-page/ui/index.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements), -/* harmony export */ setupActiveCategory: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupActiveCategory), -/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupInitialView), -/* harmony export */ showEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_3__.showEmptyState), -/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.showSearchState), -/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory) -/* harmony export */ }); -/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/addons-page/ui/setupInitialView.js"); -/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/addons-page/ui/showSelectedCategory.js"); -/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./searchState */ "./js/src/addons-page/ui/searchState.js"); -/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/addons-page/ui/showEmptyState.js"); - - - - - -/***/ }), - -/***/ "./js/src/addons-page/ui/searchState.js": -/*!**********************************************!*\ - !*** ./js/src/addons-page/ui/searchState.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), -/* harmony export */ showSearchState: () => (/* binding */ showSearchState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Updates the UI to display the search state. - * - * @param {boolean} notEmptySearchText True if search input is not empty. - * @return {void} - */ -function showSearchState(notEmptySearchText) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - bodyContent = _getElements.bodyContent, - bodyContentChildren = _getElements.bodyContentChildren, - addonsList = _getElements.addonsList; - - // Remove highlighting from the currently selected category if the search text is not empty - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); - } - - // Hide non-relevant elements in the body content - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(addonsList); - - // Smoothly display the updated UI elements - new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent).fadeIn(); -} - -/** - * Displays search results based on search outcome. - * - * @param {boolean} foundSomething True if search yielded results. - * @return {void} - */ -function displaySearchElements(foundSomething) { - // Show empty state if no templates found - if (!foundSomething) { - (0,___WEBPACK_IMPORTED_MODULE_5__.showEmptyState)(); - return; - } - - // Hide empty state if currently displayed - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - emptyState = _getElements2.emptyState; - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); - } -} - -/***/ }), - -/***/ "./js/src/addons-page/ui/setupInitialView.js": -/*!***************************************************!*\ - !*** ./js/src/addons-page/ui/setupInitialView.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupActiveCategory: () => (/* binding */ setupActiveCategory), -/* harmony export */ setupInitialView: () => (/* binding */ setupInitialView) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * External dependencies - */ - - - - -/** - * Internal dependencies - */ - - - -var CAT_COUNT_CLASS = ".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-cat-count"); - -/** - * Sets up the initial view, performing any required - * DOM manipulations for proper element presentation. - * - * @return {void} - */ -function setupInitialView() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - sidebar = _getElements.sidebar, - searchInput = _getElements.searchInput, - bodyContent = _getElements.bodyContent; - var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); - searchInput.value = ''; - setupActiveCategory(); - setupAvailableCategory(); - setupAllAddonsCategory(); - setupPlansCategory(); - - // Smoothly display the updated UI elements - bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - bodyContentAnimate.fadeIn(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(sidebar); -} - -/** - * Sets up the "Active" category, updating the - * categorizedAddons object and the category count. - * - * @return {void} - */ -function setupActiveCategory() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - activeCategory = _getElements2.activeCategory, - availableCategory = _getElements2.availableCategory, - categoriesTopDivider = _getElements2.categoriesTopDivider; - var activeAddons = document.querySelectorAll('.frm-addon-active:not(.frm-locked-item)'); - if (activeAddons.length === 0) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([activeCategory, availableCategory, categoriesTopDivider]); - return; - } - _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.ACTIVE] = activeAddons; - - // Set "Active" category count - activeCategory.querySelector(CAT_COUNT_CLASS).textContent = activeAddons.length; -} - -/** - * Sets up the "Available" category, updating the - * categorizedAddons object and the category count. - * - * @private - * @return {void} - */ -function setupAvailableCategory() { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - bodyContent = _getElements3.bodyContent, - availableCategory = _getElements3.availableCategory, - availableAddons = _getElements3.availableAddons; - _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.AVAILABLE] = availableAddons; - - // Set "Available" category count - if (availableCategory) { - availableCategory.querySelector(CAT_COUNT_CLASS).textContent = availableAddons.length; - var upgradeBannerAvailableCount = bodyContent.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_5__.PREFIX, "-available-count")); - if (upgradeBannerAvailableCount) { - upgradeBannerAvailableCount.textContent = availableAddons.length; - } - } -} - -/** - * Sets up the "All Add-Ons" category, updating the - * category count. - * - * @private - * @return {void} - */ -function setupAllAddonsCategory() { - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - allItemsCategory = _getElements4.allItemsCategory, - addons = _getElements4.addons; - - // Set "All Add-Ons" category count - allItemsCategory.querySelector(CAT_COUNT_CLASS).textContent = addons.length; -} - -/** - * Sets up the "All Add-Ons" category, updating the - * category count. - * - * @private - * @return {void} - */ -function setupPlansCategory() { - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - basicPlanCategory = _getElements5.basicPlanCategory, - plusPlanCategory = _getElements5.plusPlanCategory, - businessPlanCategory = _getElements5.businessPlanCategory, - elitePlanCategory = _getElements5.elitePlanCategory; - var getCount = function getCount(category) { - return parseInt(category.querySelector(CAT_COUNT_CLASS).textContent, 10) || 0; - }; - - // The "Formidable Pro" add-on is included in all plans, so we just consider that in the basicCount - var basicCount = getCount(basicPlanCategory); - var plusCount = getCount(plusPlanCategory) - 1; - var businessCount = getCount(businessPlanCategory) - 1; - var eliteCount = getCount(elitePlanCategory) - 1; - - // Update the text content for each category - plusPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount; - businessPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount; - elitePlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount + eliteCount; -} - -/***/ }), - -/***/ "./js/src/addons-page/ui/showEmptyState.js": -/*!*************************************************!*\ - !*** ./js/src/addons-page/ui/showEmptyState.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showEmptyState: () => (/* binding */ showEmptyState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Display the search-empty state. - * - * @return {void} - */ -function showEmptyState() { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory; - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyState = _getElements.emptyState, - emptyStateButton = _getElements.emptyStateButton, - emptyStateTitle = _getElements.emptyStateTitle, - emptyStateText = _getElements.emptyStateText; - emptyState.setAttribute('data-view', selectedCategory); - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No add-ons found', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any add-ons that match your criteria.', 'formidable'); - emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request Add-On', 'formidable'); - emptyStateButton.href = _constants__WEBPACK_IMPORTED_MODULE_4__.addonRequestURL; - emptyStateButton.setAttribute('target', '_blank'); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); -} - -/***/ }), - -/***/ "./js/src/addons-page/ui/showSelectedCategory.js": -/*!*******************************************************!*\ - !*** ./js/src/addons-page/ui/showSelectedCategory.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Show addons based on selected category. - * - * @param {string} selectedCategory The selected category to display addons for. - * @return {void} - */ -function showSelectedCategory(selectedCategory) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements.bodyContent, - addons = _getElements.addons, - emptyState = _getElements.emptyState, - upgradeBanner = _getElements.upgradeBanner; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(emptyState); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(upgradeBanner); - bodyContent.dataset.category = selectedCategory; - if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === selectedCategory) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(addons); - return; - } - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(addons); - if (_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory].length === 0) { - (0,___WEBPACK_IMPORTED_MODULE_4__.showEmptyState)(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(upgradeBanner); - } else { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory]); - } -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/factory/createPageElements.js": -/*!***************************************************!*\ - !*** ./js/src/core/factory/createPageElements.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* binding */ createPageElements) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page elements manager. - * - * @param {Object} [initialElements={}] An object containing initial DOM elements. - * @throws {Error} Throws an error if the `initialElements` is not an object. - * @return {Object} An object with methods to get and add elements. - */ -function createPageElements() { - var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialElements) !== 'object' || initialElements === null) { - throw new Error('createPageElements: initialElements must be a non-null object'); - } - var elements = initialElements; - - /** - * Retrieve the initialized essential DOM elements. - * - * @return {Object} The initialized elements object. - */ - function getElements() { - return elements; - } - - /** - * Add new elements to the elements object. - * - * @param {Object} newElements An object containing new elements to be added. - * @throws {Error} Throws an error if the `newElements` is not a non-null object. - * @return {void} Updates the elements object by merging the new elements into it. - */ - function addElements(newElements) { - if (_typeof(newElements) !== 'object' || newElements === null) { - throw new Error('addElements: newElements must be a non-null object'); - } - elements = _objectSpread(_objectSpread({}, elements), newElements); - } - return { - getElements: getElements, - addElements: addElements - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageState.js": -/*!************************************************!*\ - !*** ./js/src/core/factory/createPageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageState: () => (/* binding */ createPageState) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page state manager. - * - * @param {Object} [initialState={}] An object containing the initial state. - * @throws {Error} Throws an error if the `initialState` is not a plain object. - * @return {Object} An object with methods to initialize, get, and set the page state. - */ -function createPageState() { - var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialState) !== 'object' || initialState === null) { - throw new Error('createPageState: initialState must be a non-null object'); - } - var state = initialState; - - /** - * Returns the current page state. - * - * @return {Object|null} The current state of the page or null if not initialized. - */ - var getState = function getState() { - return state; - }; - - /** - * Returns a specific property from the current page state. - * - * @param {string} propertyName The name of the property to retrieve. - * @return {*} The value of the specified property, or null if it doesn't exist. - */ - var getSingleState = function getSingleState(propertyName) { - var value = Reflect.get(state, propertyName); - - // We convert `undefined` to `null` for a consistent API. - // This makes it easier for users to handle the results since all missing properties return `null`. - return value === undefined ? null : value; - }; - - /** - * Updates the page state with new values. - * - * @param {Object} newState The new values to update the state with. - * @throws {Error} Throws an error if `newState` is not a plain object. - * @return {void} - */ - var setState = function setState(newState) { - if (_typeof(newState) !== 'object' || newState === null) { - throw new Error('setState: newState must be a non-null object'); - } - state = _objectSpread(_objectSpread({}, state), newState); - }; - - /** - * Updates a specific property in the page state with a new value. - * - * @param {string} propertyName The name of the property to update. - * @param {*} value The new value to set for the property. - * @return {void} - */ - var setSingleState = function setSingleState(propertyName, value) { - if (Reflect.has(state, propertyName)) { - Reflect.set(state, propertyName, value); - } - }; - return { - getState: getState, - getSingleState: getSingleState, - setState: setState, - setSingleState: setSingleState - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/index.js": -/*!**************************************!*\ - !*** ./js/src/core/factory/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), -/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) -/* harmony export */ }); -/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); -/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/constants.js": -/*!************************************************!*\ - !*** ./js/src/core/page-skeleton/constants.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* binding */ VIEWS) -/* harmony export */ }); -var PREFIX = 'frm-page-skeleton'; -var SEARCH_RESULT_ITEM = 'frm-card-item'; -var VIEWS = { - ALL_ITEMS: 'all-items' -}; - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/elements.js": -/*!********************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/elements.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* binding */ addElements), -/* harmony export */ getElements: () => (/* binding */ getElements) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var bodyContent = document.getElementById('post-body-content'); -var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); - -// Append empty state elements to body content -var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); -bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); -var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); -var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ - bodyContent: bodyContent, - // Sidebar elements - sidebar: sidebar, - searchInput: sidebar.querySelector('.frm-search-input'), - categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), - allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) - }, emptyStateElements)), - getElements = _createPageElements.getElements, - addElements = _createPageElements.addElements; - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": -/*!*****************************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), -/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _window$frmDom = window.frmDom, - tag = _window$frmDom.tag, - div = _window$frmDom.div, - a = _window$frmDom.a, - img = _window$frmDom.img; - -/** - * Create and return the Empty State HTML element. - * - * @return {HTMLElement} The Empty State element. - */ -function createEmptyStateElement() { - var button = a({ - className: 'button button-primary frm-button-primary' - }); - button.setAttribute('role', 'button'); - return div({ - id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), - className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), - children: [img({ - src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), - alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') - }), div({ - className: 'frmcenter', - children: [tag('h2', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") - }), tag('p', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") - })] - }), button] - }); -} - -/** - * Return the elements related to the Empty State. - * - * @return {Object} Object containing Empty State related DOM elements. - */ -function getEmptyStateElements() { - var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); - return { - emptyState: emptyState, - emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), - emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), - emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') - }; -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/index.js": -/*!*****************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/categoryListener.js": -/*!**************************************************************!*\ - !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Manages event handling for sidebar category links. - * - * @return {void} - */ -function addCategoryEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - categoryItems = _getElements.categoryItems; - - // Attach click and keyboard event listeners to each sidebar category - categoryItems.forEach(function (category) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); - category.addEventListener('keydown', onCategoryKeydown); - }); -} - -/** - * Handles the click event on a category item. - * - * @private - * @param {Event} event The click event object. - */ -var onCategoryClick = function onCategoryClick(event) { - var clickedCategory = event.currentTarget; - var newSelectedCategory = clickedCategory.getAttribute('data-category'); - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory, - selectedCategoryEl = _getState.selectedCategoryEl, - notEmptySearchText = _getState.notEmptySearchText; - - // If the selected category hasn't changed, return early - if (selectedCategory === newSelectedCategory) { - return; - } - - /** - * Filter hook to modify the selected category. - * - * @param {string} selectedCategory The selected category - */ - selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); - - // Highlight the newly clicked category and update the application state - selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - selectedCategoryEl = clickedCategory; - selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ - selectedCategory: selectedCategory, - selectedCategoryEl: selectedCategoryEl - }); - - // Reset the search input if it contains text - if (notEmptySearchText) { - (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); - } - - /** - * Trigger custom action to update category content. - * - * @param {string} selectedCategory The selected category. - */ - wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); - - // Smoothly display the updated UI elements - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements2.bodyContent; - new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); -}; - -/** - * Handles the keyboard event on a category item. - * - * @param {KeyboardEvent} event The keyboard event object. - * @return {void} - */ -function onCategoryKeydown(event) { - // Only respond to 'Enter' or 'Space' key presses - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - onCategoryClick(event); - } -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/events/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), -/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); -/** - * Internal dependencies - */ - - -/** - * Resets the value of the search input and triggers an input event. - * - * @return {void} - */ -function resetSearchInput() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - searchInput = _getElements.searchInput; - searchInput.value = ''; - searchInput.dispatchEvent(new Event('input', { - bubbles: true - })); -} - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/index.js": -/*!********************************************!*\ - !*** ./js/src/core/page-skeleton/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), -/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), -/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), -/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); - - - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/pageState.js": -/*!*******************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/pageState.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* binding */ getSingleState), -/* harmony export */ getState: () => (/* binding */ getState), -/* harmony export */ setSingleState: () => (/* binding */ setSingleState), -/* harmony export */ setState: () => (/* binding */ setState) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - allItemsCategory = _getElements.allItemsCategory; -var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ - notEmptySearchText: false, - selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, - selectedCategoryEl: allItemsCategory - }), - getState = _createPageState.getState, - getSingleState = _createPageState.getSingleState, - setState = _createPageState.setState, - setSingleState = _createPageState.setSingleState; - - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./node_modules/memize/index.js": -/*!**************************************!*\ - !*** ./node_modules/memize/index.js ***! - \**************************************/ -/***/ ((module) => { - -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {Function} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {F & MemizeMemoizedFunction} Memoized function. - */ -function memize( fn, options ) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized( /* ...args */ ) { - var node = head, - len = arguments.length, - args, i; - - searchCache: while ( node ) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if ( node.args.length !== arguments.length ) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for ( i = 0; i < len; i++ ) { - if ( node.args[ i ] !== arguments[ i ] ) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== head ) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if ( node === tail ) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ ( head ).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply( null, args ), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( head ) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { - tail = /** @type {MemizeCacheNode} */ ( tail ).prev; - /** @type {MemizeCacheNode} */ ( tail ).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function() { - head = null; - tail = null; - size = 0; - }; - - if ( false ) {} - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - -module.exports = memize; - - -/***/ }), - -/***/ "./node_modules/sprintf-js/src/sprintf.js": -/*!************************************************!*\ - !*** ./node_modules/sprintf-js/src/sprintf.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[+-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } - - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line - - -/***/ }), - -/***/ "./node_modules/tannin/index.js": -/*!**************************************!*\ - !*** ./node_modules/tannin/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Tannin) -/* harmony export */ }); -/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); - - -/** - * Tannin constructor options. - * - * @typedef {Object} TanninOptions - * - * @property {string} [contextDelimiter] Joiner in string lookup with context. - * @property {Function} [onMissingKey] Callback to invoke when key missing. - */ - -/** - * Domain metadata. - * - * @typedef {Object} TanninDomainMetadata - * - * @property {string} [domain] Domain name. - * @property {string} [lang] Language code. - * @property {(string|Function)} [plural_forms] Plural forms expression or - * function evaluator. - */ - -/** - * Domain translation pair respectively representing the singular and plural - * translation. - * - * @typedef {[string,string]} TanninTranslation - */ - -/** - * Locale data domain. The key is used as reference for lookup, the value an - * array of two string entries respectively representing the singular and plural - * translation. - * - * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain - */ - -/** - * Jed-formatted locale data. - * - * @see http://messageformat.github.io/Jed/ - * - * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData - */ - -/** - * Default Tannin constructor options. - * - * @type {TanninOptions} - */ -var DEFAULT_OPTIONS = { - contextDelimiter: '\u0004', - onMissingKey: null, -}; - -/** - * Given a specific locale data's config `plural_forms` value, returns the - * expression. - * - * @example - * - * ``` - * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' - * ``` - * - * @param {string} pf Locale data plural forms. - * - * @return {string} Plural forms expression. - */ -function getPluralExpression( pf ) { - var parts, i, part; - - parts = pf.split( ';' ); - - for ( i = 0; i < parts.length; i++ ) { - part = parts[ i ].trim(); - if ( part.indexOf( 'plural=' ) === 0 ) { - return part.substr( 7 ); - } - } -} - -/** - * Tannin constructor. - * - * @class - * - * @param {TanninLocaleData} data Jed-formatted locale data. - * @param {TanninOptions} [options] Tannin options. - */ -function Tannin( data, options ) { - var key; - - /** - * Jed-formatted locale data. - * - * @name Tannin#data - * @type {TanninLocaleData} - */ - this.data = data; - - /** - * Plural forms function cache, keyed by plural forms string. - * - * @name Tannin#pluralForms - * @type {Object} - */ - this.pluralForms = {}; - - /** - * Effective options for instance, including defaults. - * - * @name Tannin#options - * @type {TanninOptions} - */ - this.options = {}; - - for ( key in DEFAULT_OPTIONS ) { - this.options[ key ] = options !== undefined && key in options - ? options[ key ] - : DEFAULT_OPTIONS[ key ]; - } -} - -/** - * Returns the plural form index for the given domain and value. - * - * @param {string} domain Domain on which to calculate plural form. - * @param {number} n Value for which plural form is to be calculated. - * - * @return {number} Plural form index. - */ -Tannin.prototype.getPluralForm = function( domain, n ) { - var getPluralForm = this.pluralForms[ domain ], - config, plural, pf; - - if ( ! getPluralForm ) { - config = this.data[ domain ][ '' ]; - - pf = ( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - if ( typeof pf !== 'function' ) { - plural = getPluralExpression( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); - } - - getPluralForm = this.pluralForms[ domain ] = pf; - } - - return getPluralForm( n ); -}; - -/** - * Translate a string. - * - * @param {string} domain Translation domain. - * @param {string|void} context Context distinguishing terms of the same name. - * @param {string} singular Primary key for translation lookup. - * @param {string=} plural Fallback value used for non-zero plural - * form index. - * @param {number=} n Value to use in calculating plural form. - * - * @return {string} Translated string. - */ -Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { - var index, key, entry; - - if ( n === undefined ) { - // Default to singular. - index = 0; - } else { - // Find index by evaluating plural form for value. - index = this.getPluralForm( domain, n ); - } - - key = singular; - - // If provided, context is prepended to key with delimiter. - if ( context ) { - key = context + this.options.contextDelimiter + singular; - } - - entry = this.data[ domain ][ key ]; - - // Verify not only that entry exists, but that the intended index is within - // range and non-empty. - if ( entry && entry[ index ] ) { - return entry[ index ]; - } - - if ( this.options.onMissingKey ) { - this.options.onMissingKey( singular, domain ); - } - - // If entry not found, fall back to singular vs. plural with zero index - // representing the singular value. - return index === 0 ? singular : plural; -}; - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArray) -/* harmony export */ }); -function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _toConsumableArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(r) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!*************************************!*\ - !*** ./js/src/addons-page/index.js ***! - \*************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/addons-page/ui/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/addons-page/events/index.js"); -/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addons */ "./js/src/addons-page/addons/index.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__["default"])(function () { - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); - (0,_addons__WEBPACK_IMPORTED_MODULE_2__.buildCategorizedAddons)(); - (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); -}); -})(); - -/******/ })() -; -//# sourceMappingURL=addons-page.js.map \ No newline at end of file +(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return function(t,e){var n,r,a,c,l,s,u,f,d,p=1,y=t.length,m="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),s=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,l=c.width&&u>0?s.repeat(u):"",m+=c.align?d+n+l:"0"===s?d+l+n:l+d+n)}return m}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],l=e[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}var c=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.url,r=(t.nonce,"frm_hidden"),o="frm-hide-js",i="frm-current";function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},O=["(","?"],_={")":["("],":":["?","?:"]},j=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var T={contextDelimiter:"",onMissingKey:null};function F(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},T)this.options[n]=void 0!==e&&n in e?e[n]:T[n]}function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||x[o]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(N(n)&&R(r))if("function"==typeof o)if("number"==typeof i){var c={callback:o,priority:i,namespace:r};if(a[n]){var l,s=a[n].handlers;for(l=s.length;l>0&&!(i>=s[l-1].priority);l--);l===s.length?s[l]=c:s.splice(l,0,c),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++}))}else a[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},B=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var i=t[e];if(N(r)&&(n||R(o))){if(!i[r])return 0;var a=0;if(n)a=i[r].handlers.length,i[r]={runs:i[r].runs,handlers:[]};else for(var c=i[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),a++,i.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},s=c.length-1;s>=0;s--)l(s);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),a}}},M=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some((function(t){return t.namespace===r})):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,c=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},L),r.data[e]),t),r.data[e][""]=D(D({},L[""]),r.data[e][""])},c=function(t,e){a(t,e),i()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},s=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+s(r),o,t,e,r)):o};if(n){var f=function(t){q.test(t)&&i()};n.addAction("hookAdded","core/i18n",f),n.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+s(e),r,t,e)):r},_x:u,_n:function(t,e,r,o){var i=l(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+s(o),i,t,e,r,o)):i},_nx:function(t,e,r,o,i){var a=l(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+s(i),a,t,e,r,o,i)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(t,e,o){var i,a,c=e?e+""+t:t,l=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+s(o),l,t,e,o)),l}}}(0,0,V));G.getLocaleData.bind(G),G.setLocaleData.bind(G),G.resetLocaleData.bind(G),G.subscribe.bind(G);var J=G.__.bind(G),H=(G._x.bind(G),G._n.bind(G),G._nx.bind(G),G.isRTL.bind(G),G.hasTranslation.bind(G),window.frmDom),Q=H.tag,W=H.div,Y=H.a,tt=H.img;function et(t){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(t)}function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function rt(t,e,n){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ot,it=document.getElementById("post-body-content"),at=document.getElementById("".concat(v,"-sidebar")),ct=((ot=Y({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),W({id:"".concat(v,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(r),children:[tt({src:"".concat(e,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),W({className:"frmcenter",children:[Q("h2",{className:"".concat(v,"-title frm-mb-0")}),Q("p",{className:"".concat(v,"-text frm-mb-0")})]}),ot]}));null==it||it.appendChild(ct);var lt=function(){var t=document.querySelector("#".concat(v,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(v,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(v,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==mt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==mt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=pt(pt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:b,selectedCategoryEl:vt}),ht=bt.getState,gt=bt.getSingleState,St=bt.setState,wt=bt.setSingleState,xt=function(t){var e,n=t.currentTarget,r=n.getAttribute("data-category"),o=ht(),a=o.selectedCategory,c=o.selectedCategoryEl,l=o.notEmptySearchText;if(a!==r){a=wp.hooks.applyFilters("frmPage.selectedCategory",r),c.classList.remove(i),(c=n).classList.add(i),St({selectedCategory:a,selectedCategoryEl:c}),l&&((e=ut().searchInput).value="",e.dispatchEvent(new Event("input",{bubbles:!0}))),wp.hooks.doAction("frmPage.onCategoryClick",a);var u=ut().bodyContent;new s(u).fadeIn()}};function Ot(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),xt(t))}var _t=window.frmAddonsVars.addonRequestURL,jt="frm-addons",Et="available-addons",Pt="active-addons",kt="basic",At="plus",Ct="business",Tt="elite",Ft=ut(),It=Ft.bodyContent,Dt=Ft.sidebar;It.querySelectorAll(".frm-card-item:not(.plugin-card-formidable-pro)").forEach((function(t){var e=t.dataset.categories;switch(!0){case e.includes(Ct):t.setAttribute("data-categories","".concat(e,",").concat(Tt));break;case e.includes(At):t.setAttribute("data-categories","".concat(e,",").concat(Ct,",").concat(Tt));break;case e.includes(kt):t.setAttribute("data-categories","".concat(e,",").concat(At,",").concat(Ct,",").concat(Tt))}})),ft({upgradeBanner:document.getElementById("frm-upgrade-banner"),availableCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Et,'"]')),activeCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Pt,'"]')),categoriesTopDivider:Dt.querySelector(".".concat(v,"-divider")),basicPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(kt,'"]')),plusPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(At,'"]')),businessPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Ct,'"]')),elitePlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Tt,'"]')),addonsList:document.getElementById("".concat(jt,"-list")),addons:It.querySelectorAll(".frm-card-item"),availableAddons:It.querySelectorAll(".frm-card-item:not(.frm-locked-item)"),addonsToggle:It.querySelectorAll(".frm_toggle_block"),bodyContentChildren:null==It?void 0:It.children});var Lt={};Lt[Et]=[],Lt[Pt]=[];var qt,Rt=".".concat(v,"-cat-count");function Nt(){var t=ut(),e=t.activeCategory,n=t.availableCategory,r=t.categoriesTopDivider,o=document.querySelectorAll(".frm-addon-active:not(.frm-locked-item)");0!==o.length?(Lt[Pt]=o,e.querySelector(Rt).textContent=o.length):p([e,n,r])}function zt(){var t=ht().selectedCategory,e=ut(),n=e.emptyState,r=e.emptyStateButton,o=e.emptyStateTitle,i=e.emptyStateText;n.setAttribute("data-view",t),o.textContent=J("No add-ons found","formidable"),i.textContent=J("Sorry, we didn't find any add-ons that match your criteria.","formidable"),r.textContent=J("Request Add-On","formidable"),r.href=_t,r.setAttribute("target","_blank"),d([n,r])}function Bt(t,e){if(t){if("string"==typeof t)return Mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mt(t,e):void 0}}function Mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(new Map([["frm-addon-not-installed",".frm-install-addon"],["frm-addon-installed",".frm-activate-addon"],["frm-addon-active",".frm-deactivate-addon"]]).entries());try{for(a.s();!(o=a.n()).done;){var c=(n=o.value,r=2,function(t){if(Array.isArray(t))return t}(n)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],l=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(t){s=!0,o=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(n,r)||Bt(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],s=c[1];if(i.classList.contains(l)){(qt=i.querySelector(s)).click();break}}}catch(t){a.e(t)}finally{a.f()}}};var Ut=window.frmDom.search.init;function Zt(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=ht(),a=ut().allItemsCategory;wt("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ut(),n=e.bodyContent,r=e.bodyContentChildren,o=e.addonsList;t&>("selectedCategoryEl").classList.remove(i),p(r),y(o),new s(n).fadeIn()}(r),r&&wt("selectedCategory","")),function(t){if(t){var e,n=ut().emptyState;e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")&&m(n)}else zt()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}function Kt(){var t;ut().categoryItems.forEach((function(t){f(t,xt),t.addEventListener("keydown",Ot)})),wp.hooks.addAction("frmPage.onCategoryClick","frmAddonsPage",(function(t){!function(t){var e=ut(),n=e.bodyContent,r=e.addons,o=e.emptyState,i=e.upgradeBanner;m(o),y(i),n.dataset.category=t,b!==t?(p(r),0===Lt[t].length?(zt(),m(i)):d(Lt[t])):d(r)}(t)})),ut().addonsToggle.forEach((function(t){return t.addEventListener("click",$t)})),wp.hooks.addAction("frm_update_addon_state","frmAddonPage",(function(){Nt()})),t=ut().searchInput,Ut(t,"frm-card-item",{handleSearchResult:Zt})}var Xt;Xt=function(){(function(){var t,e,n,r,i,a,c,l,u,f,d=ut(),p=d.sidebar,m=d.searchInput,v=d.bodyContent,b=new s(v);m.value="",Nt(),function(){var t=ut(),e=t.bodyContent,n=t.availableCategory,r=t.availableAddons;if(Lt[Et]=r,n){n.querySelector(Rt).textContent=r.length;var o=e.querySelector(".".concat(jt,"-available-count"));o&&(o.textContent=r.length)}}(),function(){var t=ut(),e=t.allItemsCategory,n=t.addons;e.querySelector(Rt).textContent=n.length}(),e=(t=ut()).basicPlanCategory,n=t.plusPlanCategory,r=t.businessPlanCategory,i=t.elitePlanCategory,c=(a=function(t){return parseInt(t.querySelector(Rt).textContent,10)||0})(e),l=a(n)-1,u=a(r)-1,f=a(i)-1,n.querySelector(Rt).textContent=c+l,r.querySelector(Rt).textContent=c+l+u,i.querySelector(Rt).textContent=c+l+u+f,v.classList.remove(o),p.classList.remove(o),b.fadeIn(),y(p)})(),ut().addons.forEach((function(t){var e=t.getAttribute("data-categories");e&&e.split(",").forEach((function(e){Lt[e]||(Lt[e]=[]),Lt[e].push(t)}))})),Kt()},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Xt):Xt())})()})(); \ No newline at end of file diff --git a/js/form-templates.js b/js/form-templates.js index 1b5a83479a..957358992d 100644 --- a/js/form-templates.js +++ b/js/form-templates.js @@ -1,6257 +1,2 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@tannin/compile/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/compile/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ compile) -/* harmony export */ }); -/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); -/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); - - - -/** - * Given a C expression, returns a function which can be called to evaluate its - * result. - * - * @example - * - * ```js - * import compile from '@tannin/compile'; - * - * const evaluate = compile( 'n > 1' ); - * - * evaluate( { n: 2 } ); - * // ⇒ true - * ``` - * - * @param {string} expression C expression. - * - * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. - */ -function compile( expression ) { - var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( variables ) { - return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/evaluate/index.js": -/*!************************************************!*\ - !*** ./node_modules/@tannin/evaluate/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ evaluate) -/* harmony export */ }); -/** - * Operator callback functions. - * - * @type {Object} - */ -var OPERATORS = { - '!': function( a ) { - return ! a; - }, - '*': function( a, b ) { - return a * b; - }, - '/': function( a, b ) { - return a / b; - }, - '%': function( a, b ) { - return a % b; - }, - '+': function( a, b ) { - return a + b; - }, - '-': function( a, b ) { - return a - b; - }, - '<': function( a, b ) { - return a < b; - }, - '<=': function( a, b ) { - return a <= b; - }, - '>': function( a, b ) { - return a > b; - }, - '>=': function( a, b ) { - return a >= b; - }, - '==': function( a, b ) { - return a === b; - }, - '!=': function( a, b ) { - return a !== b; - }, - '&&': function( a, b ) { - return a && b; - }, - '||': function( a, b ) { - return a || b; - }, - '?:': function( a, b, c ) { - if ( a ) { - throw b; - } - - return c; - }, -}; - -/** - * Given an array of postfix terms and operand variables, returns the result of - * the postfix evaluation. - * - * @example - * - * ```js - * import evaluate from '@tannin/evaluate'; - * - * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' - * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; - * - * evaluate( terms, {} ); - * // ⇒ 6.333333333333334 - * ``` - * - * @param {string[]} postfix Postfix terms. - * @param {Object} variables Operand variables. - * - * @return {*} Result of evaluation. - */ -function evaluate( postfix, variables ) { - var stack = [], - i, j, args, getOperatorResult, term, value; - - for ( i = 0; i < postfix.length; i++ ) { - term = postfix[ i ]; - - getOperatorResult = OPERATORS[ term ]; - if ( getOperatorResult ) { - // Pop from stack by number of function arguments. - j = getOperatorResult.length; - args = Array( j ); - while ( j-- ) { - args[ j ] = stack.pop(); - } - - try { - value = getOperatorResult.apply( null, args ); - } catch ( earlyReturn ) { - return earlyReturn; - } - } else if ( variables.hasOwnProperty( term ) ) { - value = variables[ term ]; - } else { - value = +term; - } - - stack.push( value ); - } - - return stack[ 0 ]; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/plural-forms/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@tannin/plural-forms/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pluralForms) -/* harmony export */ }); -/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); - - -/** - * Given a C expression, returns a function which, when called with a value, - * evaluates the result with the value assumed to be the "n" variable of the - * expression. The result will be coerced to its numeric equivalent. - * - * @param {string} expression C expression. - * - * @return {Function} Evaluator function. - */ -function pluralForms( expression ) { - var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( n ) { - return +evaluate( { n: n } ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/postfix/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/postfix/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ postfix) -/* harmony export */ }); -var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; - -/** - * Operator precedence mapping. - * - * @type {Object} - */ -PRECEDENCE = { - '(': 9, - '!': 8, - '*': 7, - '/': 7, - '%': 7, - '+': 6, - '-': 6, - '<': 5, - '<=': 5, - '>': 5, - '>=': 5, - '==': 4, - '!=': 4, - '&&': 3, - '||': 2, - '?': 1, - '?:': 1, -}; - -/** - * Characters which signal pair opening, to be terminated by terminators. - * - * @type {string[]} - */ -OPENERS = [ '(', '?' ]; - -/** - * Characters which signal pair termination, the value an array with the - * opener as its first member. The second member is an optional operator - * replacement to push to the stack. - * - * @type {string[]} - */ -TERMINATORS = { - ')': [ '(' ], - ':': [ '?', '?:' ], -}; - -/** - * Pattern matching operators and openers. - * - * @type {RegExp} - */ -PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; - -/** - * Given a C expression, returns the equivalent postfix (Reverse Polish) - * notation terms as an array. - * - * If a postfix string is desired, simply `.join( ' ' )` the result. - * - * @example - * - * ```js - * import postfix from '@tannin/postfix'; - * - * postfix( 'n > 1' ); - * // ⇒ [ 'n', '1', '>' ] - * ``` - * - * @param {string} expression C expression. - * - * @return {string[]} Postfix terms. - */ -function postfix( expression ) { - var terms = [], - stack = [], - match, operator, term, element; - - while ( ( match = expression.match( PATTERN ) ) ) { - operator = match[ 0 ]; - - // Term is the string preceding the operator match. It may contain - // whitespace, and may be empty (if operator is at beginning). - term = expression.substr( 0, match.index ).trim(); - if ( term ) { - terms.push( term ); - } - - while ( ( element = stack.pop() ) ) { - if ( TERMINATORS[ operator ] ) { - if ( TERMINATORS[ operator ][ 0 ] === element ) { - // Substitution works here under assumption that because - // the assigned operator will no longer be a terminator, it - // will be pushed to the stack during the condition below. - operator = TERMINATORS[ operator ][ 1 ] || operator; - break; - } - } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { - // Push to stack if either an opener or when pop reveals an - // element of lower precedence. - stack.push( element ); - break; - } - - // For each popped from stack, push to terms. - terms.push( element ); - } - - if ( ! TERMINATORS[ operator ] ) { - stack.push( operator ); - } - - // Slice matched fragment from expression to continue match. - expression = expression.substr( match.index + operator.length ); - } - - // Push remainder of operand, if exists, to terms. - expression = expression.trim(); - if ( expression ) { - terms.push( expression ); - } - - // Pop remaining items from stack into terms. - return terms.concat( stack.reverse() ); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback AddHook - * - * Adds the hook to the appropriate hooks container. - * - * @param {string} hookName Name of hook to add - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. - * @param {import('.').Callback} callback Function to call when the hook is run - * @param {number} [priority=10] Priority of this hook - */ - -/** - * Returns a function which, when invoked, will add a hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {AddHook} Function that adds a new hook. - */ - -function createAddHook(hooks, storeKey) { - return function addHook(hookName, namespace, callback) { - var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } - - if ('function' !== typeof callback) { - // eslint-disable-next-line no-console - console.error('The hook callback must be a function.'); - return; - } // Validate numeric priority - - - if ('number' !== typeof priority) { - // eslint-disable-next-line no-console - console.error('If specified, the hook priority must be a number.'); - return; - } - - var handler = { - callback: callback, - priority: priority, - namespace: namespace - }; - - if (hooksStore[hookName]) { - // Find the correct insert index of the new hook. - var handlers = hooksStore[hookName].handlers; - /** @type {number} */ - - var i; - - for (i = handlers.length; i > 0; i--) { - if (priority >= handlers[i - 1].priority) { - break; - } - } - - if (i === handlers.length) { - // If append, operate via direct assignment. - handlers[i] = handler; - } else { - // Otherwise, insert before index via splice. - handlers.splice(i, 0, handler); - } // We may also be currently executing this hook. If the callback - // we're adding would come after the current callback, there's no - // problem; otherwise we need to increase the execution index of - // any other runs by 1 to account for the added element. - - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex++; - } - }); - } else { - // This is the first hook of its type. - hooksStore[hookName] = { - handlers: [handler], - runs: 0 - }; - } - - if (hookName !== 'hookAdded') { - hooks.doAction('hookAdded', hookName, namespace, callback, priority); - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); -//# sourceMappingURL=createAddHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Returns a function which, when invoked, will return the name of the - * currently running hook, or `null` if no hook of the given type is currently - * running. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {() => string | null} Function that returns the current hook name or null. - */ -function createCurrentHook(hooks, storeKey) { - return function currentHook() { - var _hooksStore$__current, _hooksStore$__current2; - - var hooksStore = hooks[storeKey]; - 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; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); -//# sourceMappingURL=createCurrentHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - -/** - * @callback DidHook - * - * Returns the number of times an action has been fired. - * - * @param {string} hookName The hook name to check. - * - * @return {number | undefined} The number of times the hook has run. - */ - -/** - * Returns a function which, when invoked, will return the number of times a - * hook has been called. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DidHook} Function that returns a hook's call count. - */ - -function createDidHook(hooks, storeKey) { - return function didHook(hookName) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { - return; - } - - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); -//# sourceMappingURL=createDidHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback DoingHook - * Returns whether a hook is currently being executed. - * - * @param {string} [hookName] The name of the hook to check for. If - * omitted, will check for any hook being executed. - * - * @return {boolean} Whether the hook is being executed. - */ - -/** - * Returns a function which, when invoked, will return whether a hook is - * currently being executed. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DoingHook} Function that returns whether a hook is currently - * being executed. - */ -function createDoingHook(hooks, storeKey) { - return function doingHook(hookName) { - var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. - - if ('undefined' === typeof hookName) { - return 'undefined' !== typeof hooksStore.__current[0]; - } // Return the __current hook. - - - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); -//# sourceMappingURL=createDoingHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback HasHook - * - * Returns whether any handlers are attached for the given hookName and optional namespace. - * - * @param {string} hookName The name of the hook to check for. - * @param {string} [namespace] Optional. The unique namespace identifying the callback - * in the form `vendor/plugin/function`. - * - * @return {boolean} Whether there are handlers that are attached to the given hook. - */ - -/** - * Returns a function which, when invoked, will return whether any handlers are - * attached to a particular hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {HasHook} Function that returns whether any handlers are - * attached to a particular hook and optional namespace. - */ -function createHasHook(hooks, storeKey) { - return function hasHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; // Use the namespace if provided. - - if ('undefined' !== typeof namespace) { - return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { - return hook.namespace === namespace; - }); - } - - return hookName in hooksStore; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); -//# sourceMappingURL=createHasHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ _Hooks: () => (/* binding */ _Hooks), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); -/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); -/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); -/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); -/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); -/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); -/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Internal class for constructing hooks. Use `createHooks()` function - * - * Note, it is necessary to expose this class to make its type public. - * - * @private - */ - -var _Hooks = function _Hooks() { - (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); - - /** @type {import('.').Store} actions */ - this.actions = Object.create(null); - this.actions.__current = []; - /** @type {import('.').Store} filters */ - - this.filters = Object.create(null); - this.filters.__current = []; - this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); - this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); - this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); - this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); - this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); - this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); - this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); - this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); - this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); - this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); - this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); - this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); - this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); - this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); - this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); - this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); -}; -/** @typedef {_Hooks} Hooks */ - -/** - * Returns an instance of the hooks object. - * - * @return {Hooks} A Hooks instance. - */ - -function createHooks() { - return new _Hooks(); -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); -//# sourceMappingURL=createHooks.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback RemoveHook - * Removes the specified callback (or all callbacks) from the hook with a given hookName - * and namespace. - * - * @param {string} hookName The name of the hook to modify. - * @param {string} namespace The unique namespace identifying the callback in the - * form `vendor/plugin/function`. - * - * @return {number | undefined} The number of callbacks removed. - */ - -/** - * Returns a function which, when invoked, will remove a specified hook or all - * hooks by the given name. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, - * without regard to namespace. Used to create - * `removeAll*` functions. - * - * @return {RemoveHook} Function that removes hooks. - */ - -function createRemoveHook(hooks, storeKey) { - var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function removeHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } // Bail if no hooks exist by this name - - - if (!hooksStore[hookName]) { - return 0; - } - - var handlersRemoved = 0; - - if (removeAll) { - handlersRemoved = hooksStore[hookName].handlers.length; - hooksStore[hookName] = { - runs: hooksStore[hookName].runs, - handlers: [] - }; - } else { - // Try to find the specified callback to remove. - var handlers = hooksStore[hookName].handlers; - - var _loop = function _loop(i) { - if (handlers[i].namespace === namespace) { - handlers.splice(i, 1); - handlersRemoved++; // This callback may also be part of a hook that is - // currently executing. If the callback we're removing - // comes after the current callback, there's no problem; - // otherwise we need to decrease the execution index of any - // other runs by 1 to account for the removed element. - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex--; - } - }); - } - }; - - for (var i = handlers.length - 1; i >= 0; i--) { - _loop(i); - } - } - - if (hookName !== 'hookRemoved') { - hooks.doAction('hookRemoved', hookName, namespace); - } - - return handlersRemoved; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); -//# sourceMappingURL=createRemoveHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); - - -/** - * Returns a function which, when invoked, will execute all callbacks - * registered to a hook of the specified type, optionally returning the final - * value of the call chain. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to - * return its first argument. - * - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. - */ -function createRunHook(hooks, storeKey) { - var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function runHooks(hookName) { - var hooksStore = hooks[storeKey]; - - if (!hooksStore[hookName]) { - hooksStore[hookName] = { - handlers: [], - runs: 0 - }; - } - - hooksStore[hookName].runs++; - var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. - - if (true) { - // Handle any 'all' hooks registered. - if ('hookAdded' !== hookName && hooksStore.all) { - handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); - } - } - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (!handlers || !handlers.length) { - return returnFirstArg ? args[0] : undefined; - } - - var hookInfo = { - name: hookName, - currentIndex: 0 - }; - - hooksStore.__current.push(hookInfo); - - while (hookInfo.currentIndex < handlers.length) { - var handler = handlers[hookInfo.currentIndex]; - var result = handler.callback.apply(null, args); - - if (returnFirstArg) { - args[0] = result; - } - - hookInfo.currentIndex++; - } - - hooksStore.__current.pop(); - - if (returnFirstArg) { - return args[0]; - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); -//# sourceMappingURL=createRunHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actions: () => (/* binding */ actions), -/* harmony export */ addAction: () => (/* binding */ addAction), -/* harmony export */ addFilter: () => (/* binding */ addFilter), -/* harmony export */ applyFilters: () => (/* binding */ applyFilters), -/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ currentAction: () => (/* binding */ currentAction), -/* harmony export */ currentFilter: () => (/* binding */ currentFilter), -/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), -/* harmony export */ didAction: () => (/* binding */ didAction), -/* harmony export */ didFilter: () => (/* binding */ didFilter), -/* harmony export */ doAction: () => (/* binding */ doAction), -/* harmony export */ doingAction: () => (/* binding */ doingAction), -/* harmony export */ doingFilter: () => (/* binding */ doingFilter), -/* harmony export */ filters: () => (/* binding */ filters), -/* harmony export */ hasAction: () => (/* binding */ hasAction), -/* harmony export */ hasFilter: () => (/* binding */ hasFilter), -/* harmony export */ removeAction: () => (/* binding */ removeAction), -/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), -/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), -/* harmony export */ removeFilter: () => (/* binding */ removeFilter) -/* harmony export */ }); -/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); -/** - * Internal dependencies - */ - -/** @typedef {(...args: any[])=>any} Callback */ - -/** - * @typedef Handler - * @property {Callback} callback The callback - * @property {string} namespace The namespace - * @property {number} priority The namespace - */ - -/** - * @typedef Hook - * @property {Handler[]} handlers Array of handlers - * @property {number} runs Run counter - */ - -/** - * @typedef Current - * @property {string} name Hook name - * @property {number} currentIndex The index - */ - -/** - * @typedef {Record & {__current: Current[]}} Store - */ - -/** - * @typedef {'actions' | 'filters'} StoreKey - */ - -/** - * @typedef {import('./createHooks').Hooks} Hooks - */ - -var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); -var addAction = defaultHooks.addAction, - addFilter = defaultHooks.addFilter, - removeAction = defaultHooks.removeAction, - removeFilter = defaultHooks.removeFilter, - hasAction = defaultHooks.hasAction, - hasFilter = defaultHooks.hasFilter, - removeAllActions = defaultHooks.removeAllActions, - removeAllFilters = defaultHooks.removeAllFilters, - doAction = defaultHooks.doAction, - applyFilters = defaultHooks.applyFilters, - currentAction = defaultHooks.currentAction, - currentFilter = defaultHooks.currentFilter, - doingAction = defaultHooks.doingAction, - doingFilter = defaultHooks.doingFilter, - didAction = defaultHooks.didAction, - didFilter = defaultHooks.didFilter, - actions = defaultHooks.actions, - filters = defaultHooks.filters; - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a hookName string. - * - * @param {string} hookName The hook name to validate. Should be a non empty string containing - * only numbers, letters, dashes, periods and underscores. Also, - * the hook name cannot begin with `__`. - * - * @return {boolean} Whether the hook name is valid. - */ -function validateHookName(hookName) { - if ('string' !== typeof hookName || '' === hookName) { - // eslint-disable-next-line no-console - console.error('The hook name must be a non-empty string.'); - return false; - } - - if (/^__/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name cannot begin with `__`.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); -//# sourceMappingURL=validateHookName.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a namespace string. - * - * @param {string} namespace The namespace to validate - should take the form - * `vendor/plugin/function`. - * - * @return {boolean} Whether the namespace is valid. - */ -function validateNamespace(namespace) { - if ('string' !== typeof namespace || '' === namespace) { - // eslint-disable-next-line no-console - console.error('The namespace must be a non-empty string.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { - // eslint-disable-next-line no-console - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); -//# sourceMappingURL=validateNamespace.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": -/*!******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createI18n: () => (/* binding */ createI18n) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); - - -function 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; } - -function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } - -/** - * External dependencies - */ - -/** - * @typedef {Record} LocaleData - */ - -/** - * Default locale data to use for Tannin domain when not otherwise provided. - * Assumes an English plural forms expression. - * - * @type {LocaleData} - */ - -var DEFAULT_LOCALE_DATA = { - '': { - /** @param {number} n */ - plural_forms: function plural_forms(n) { - return n === 1 ? 0 : 1; - } - } -}; -/* - * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, - * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. - */ - -var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; -/** - * @typedef {(domain?: string) => LocaleData} GetLocaleData - * - * Returns locale data by domain in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData - * - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData - * - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** @typedef {() => void} SubscribeCallback */ - -/** @typedef {() => void} UnsubscribeCallback */ - -/** - * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe - * - * Subscribes to changes of locale data - */ - -/** - * @typedef {(domain?: string) => string} GetFilterDomain - * Retrieve the domain to use when calling domain-specific filters. - */ - -/** - * @typedef {(text: string, domain?: string) => string} __ - * - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - */ - -/** - * @typedef {(text: string, context: string, domain?: string) => string} _x - * - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n - * - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx - * - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - */ - -/** - * @typedef {() => boolean} IsRtl - * - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - */ - -/** - * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation - * - * Check if there is a translation for a given string in singular form. - */ - -/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ - -/** - * An i18n instance - * - * @typedef I18n - * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. - * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. - * @property {__} __ Retrieve the translation of text. - * @property {_x} _x Retrieve translated string with gettext context. - * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied - * number. - * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * @property {IsRtl} isRTL Check if current locale is RTL. - * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. - */ - -/** - * Create an i18n instance - * - * @param {LocaleData} [initialData] Locale data configuration. - * @param {string} [initialDomain] Domain for which configuration applies. - * @param {Hooks} [hooks] Hooks implementation. - * @return {I18n} I18n instance - */ - -var createI18n = function createI18n(initialData, initialDomain, hooks) { - /** - * The underlying instance of Tannin to which exported functions interface. - * - * @type {Tannin} - */ - var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); - var listeners = new Set(); - - var notifyListeners = function notifyListeners() { - listeners.forEach(function (listener) { - return listener(); - }); - }; - /** - * Subscribe to changes of locale data. - * - * @param {SubscribeCallback} callback Subscription callback. - * @return {UnsubscribeCallback} Unsubscribe callback. - */ - - - var subscribe = function subscribe(callback) { - listeners.add(callback); - return function () { - return listeners.delete(callback); - }; - }; - /** @type {GetLocaleData} */ - - - var getLocaleData = function getLocaleData() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return tannin.data[domain]; - }; - /** - * @param {LocaleData} [data] - * @param {string} [domain] - */ - - - var doSetLocaleData = function doSetLocaleData(data) { - var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits - // a plural forms expression). - - tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); - }; - /** @type {SetLocaleData} */ - - - var setLocaleData = function setLocaleData(data, domain) { - doSetLocaleData(data, domain); - notifyListeners(); - }; - /** @type {ResetLocaleData} */ - - - var resetLocaleData = function resetLocaleData(data, domain) { - // Reset all current Tannin locale data. - tannin.data = {}; // Reset cached plural forms functions cache. - - tannin.pluralForms = {}; - setLocaleData(data, domain); - }; - /** - * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not - * otherwise previously assigned. - * - * @param {string|undefined} domain Domain to retrieve the translated text. - * @param {string|undefined} context Context information for the translators. - * @param {string} single Text to translate if non-plural. Used as - * fallback return value on a caught error. - * @param {string} [plural] The text to be used if the number is - * plural. - * @param {number} [number] The number to compare against to use - * either the singular or plural form. - * - * @return {string} The translated string. - */ - - - var dcnpgettext = function dcnpgettext() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - var context = arguments.length > 1 ? arguments[1] : undefined; - var single = arguments.length > 2 ? arguments[2] : undefined; - var plural = arguments.length > 3 ? arguments[3] : undefined; - var number = arguments.length > 4 ? arguments[4] : undefined; - - if (!tannin.data[domain]) { - // use `doSetLocaleData` to set silently, without notifying listeners - doSetLocaleData(undefined, domain); - } - - return tannin.dcnpgettext(domain, context, single, plural, number); - }; - /** @type {GetFilterDomain} */ - - - var getFilterDomain = function getFilterDomain() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return domain; - }; - /** @type {__} */ - - - var __ = function __(text, domain) { - var translation = dcnpgettext(domain, undefined, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext', translation, text, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) - ); - }; - /** @type {_x} */ - - - var _x = function _x(text, context, domain) { - var translation = dcnpgettext(domain, context, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation based on context information. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) - ); - }; - /** @type {_n} */ - - - var _n = function _n(single, plural, number, domain) { - var translation = dcnpgettext(domain, undefined, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) - ); - }; - /** @type {_nx} */ - - - var _nx = function _nx(single, plural, number, context, domain) { - var translation = dcnpgettext(domain, context, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string with gettext context. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) - ); - }; - /** @type {IsRtl} */ - - - var isRTL = function isRTL() { - return 'rtl' === _x('ltr', 'text direction'); - }; - /** @type {HasTranslation} */ - - - var hasTranslation = function hasTranslation(single, context, domain) { - var _tannin$data, _tannin$data2; - - var key = context ? context + "\x04" + single : single; - 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]); - - if (hooks) { - /** - * Filters the presence of a translation in the locale data. - * - * @param {boolean} hasTranslation Whether the translation is present or not.. - * @param {string} single The singular form of the translated text (used as key in locale data) - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation', result, single, context, domain); - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); - } - - return result; - }; - - if (initialData) { - setLocaleData(initialData, initialDomain); - } - - if (hooks) { - /** - * @param {string} hookName - */ - var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { - if (I18N_HOOK_REGEXP.test(hookName)) { - notifyListeners(); - } - }; - - hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); - hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); - } - - return { - getLocaleData: getLocaleData, - setLocaleData: setLocaleData, - resetLocaleData: resetLocaleData, - subscribe: subscribe, - __: __, - _x: _x, - _n: _n, - _nx: _nx, - isRTL: isRTL, - hasTranslation: hasTranslation - }; -}; -//# sourceMappingURL=create-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* binding */ __), -/* harmony export */ _n: () => (/* binding */ _n), -/* harmony export */ _nx: () => (/* binding */ _nx), -/* harmony export */ _x: () => (/* binding */ _x), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), -/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), -/* harmony export */ isRTL: () => (/* binding */ isRTL), -/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), -/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), -/* harmony export */ subscribe: () => (/* binding */ subscribe) -/* harmony export */ }); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); -/** - * Internal dependencies - */ - -/** - * WordPress dependencies - */ - - -var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); -/** - * Default, singleton instance of `I18n`. - */ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); -/* - * Comments in this file are duplicated from ./i18n due to - * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 - */ - -/** - * @typedef {import('./create-i18n').LocaleData} LocaleData - * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback - * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback - */ - -/** - * Returns locale data by domain in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {string} [domain] Domain for which to get the data. - * @return {LocaleData} Locale data. - */ - -var getLocaleData = i18n.getLocaleData.bind(i18n); -/** - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var setLocaleData = i18n.setLocaleData.bind(i18n); -/** - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var resetLocaleData = i18n.resetLocaleData.bind(i18n); -/** - * Subscribes to changes of locale data - * - * @param {SubscribeCallback} callback Subscription callback - * @return {UnsubscribeCallback} Unsubscribe callback - */ - -var subscribe = i18n.subscribe.bind(i18n); -/** - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - * - * @param {string} text Text to translate. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated text. - */ - -var __ = i18n.__.bind(i18n); -/** - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - * - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated context string without pipe. - */ - -var _x = i18n._x.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _n = i18n._n.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _nx = i18n._nx.bind(i18n); -/** - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - * - * @return {boolean} Whether locale is RTL. - */ - -var isRTL = i18n.isRTL.bind(i18n); -/** - * Check if there is a translation for a given string (in singular form). - * - * @param {string} single Singular form of the string to look up. - * @param {string} [context] Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * @return {boolean} Whether the translation exists or not. - */ - -var hasTranslation = i18n.hasTranslation.bind(i18n); -//# sourceMappingURL=default-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), -/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), -/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), -/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), -/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), -/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), -/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), -/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), -/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), -/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), -/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), -/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) -/* harmony export */ }); -/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": -/*!**************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sprintf: () => (/* binding */ sprintf) -/* harmony export */ }); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * External dependencies - */ - - -/** - * Log to console, once per message; or more precisely, per referentially equal - * argument set. Because Jed throws errors, we log these to the console instead - * to avoid crashing the application. - * - * @param {...*} args Arguments to pass to `console.error` - */ - -var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console - -/** - * Returns a formatted string. If an error occurs in applying the format, the - * original format string is returned. - * - * @param {string} format The format of the string to generate. - * @param {...*} args Arguments to apply to the format. - * - * @see https://www.npmjs.com/package/sprintf-js - * - * @return {string} The formatted string. - */ - -function sprintf(format) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); - } catch (error) { - logErrorOnce('sprintf error: \n\n' + error.toString()); - return format; - } -} -//# sourceMappingURL=sprintf.js.map - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/factory/createPageElements.js": -/*!***************************************************!*\ - !*** ./js/src/core/factory/createPageElements.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* binding */ createPageElements) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page elements manager. - * - * @param {Object} [initialElements={}] An object containing initial DOM elements. - * @throws {Error} Throws an error if the `initialElements` is not an object. - * @return {Object} An object with methods to get and add elements. - */ -function createPageElements() { - var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialElements) !== 'object' || initialElements === null) { - throw new Error('createPageElements: initialElements must be a non-null object'); - } - var elements = initialElements; - - /** - * Retrieve the initialized essential DOM elements. - * - * @return {Object} The initialized elements object. - */ - function getElements() { - return elements; - } - - /** - * Add new elements to the elements object. - * - * @param {Object} newElements An object containing new elements to be added. - * @throws {Error} Throws an error if the `newElements` is not a non-null object. - * @return {void} Updates the elements object by merging the new elements into it. - */ - function addElements(newElements) { - if (_typeof(newElements) !== 'object' || newElements === null) { - throw new Error('addElements: newElements must be a non-null object'); - } - elements = _objectSpread(_objectSpread({}, elements), newElements); - } - return { - getElements: getElements, - addElements: addElements - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageState.js": -/*!************************************************!*\ - !*** ./js/src/core/factory/createPageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageState: () => (/* binding */ createPageState) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page state manager. - * - * @param {Object} [initialState={}] An object containing the initial state. - * @throws {Error} Throws an error if the `initialState` is not a plain object. - * @return {Object} An object with methods to initialize, get, and set the page state. - */ -function createPageState() { - var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialState) !== 'object' || initialState === null) { - throw new Error('createPageState: initialState must be a non-null object'); - } - var state = initialState; - - /** - * Returns the current page state. - * - * @return {Object|null} The current state of the page or null if not initialized. - */ - var getState = function getState() { - return state; - }; - - /** - * Returns a specific property from the current page state. - * - * @param {string} propertyName The name of the property to retrieve. - * @return {*} The value of the specified property, or null if it doesn't exist. - */ - var getSingleState = function getSingleState(propertyName) { - var value = Reflect.get(state, propertyName); - - // We convert `undefined` to `null` for a consistent API. - // This makes it easier for users to handle the results since all missing properties return `null`. - return value === undefined ? null : value; - }; - - /** - * Updates the page state with new values. - * - * @param {Object} newState The new values to update the state with. - * @throws {Error} Throws an error if `newState` is not a plain object. - * @return {void} - */ - var setState = function setState(newState) { - if (_typeof(newState) !== 'object' || newState === null) { - throw new Error('setState: newState must be a non-null object'); - } - state = _objectSpread(_objectSpread({}, state), newState); - }; - - /** - * Updates a specific property in the page state with a new value. - * - * @param {string} propertyName The name of the property to update. - * @param {*} value The new value to set for the property. - * @return {void} - */ - var setSingleState = function setSingleState(propertyName, value) { - if (Reflect.has(state, propertyName)) { - Reflect.set(state, propertyName, value); - } - }; - return { - getState: getState, - getSingleState: getSingleState, - setState: setState, - setSingleState: setSingleState - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/index.js": -/*!**************************************!*\ - !*** ./js/src/core/factory/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), -/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) -/* harmony export */ }); -/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); -/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/constants.js": -/*!************************************************!*\ - !*** ./js/src/core/page-skeleton/constants.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* binding */ VIEWS) -/* harmony export */ }); -var PREFIX = 'frm-page-skeleton'; -var SEARCH_RESULT_ITEM = 'frm-card-item'; -var VIEWS = { - ALL_ITEMS: 'all-items' -}; - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/elements.js": -/*!********************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/elements.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* binding */ addElements), -/* harmony export */ getElements: () => (/* binding */ getElements) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var bodyContent = document.getElementById('post-body-content'); -var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); - -// Append empty state elements to body content -var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); -bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); -var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); -var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ - bodyContent: bodyContent, - // Sidebar elements - sidebar: sidebar, - searchInput: sidebar.querySelector('.frm-search-input'), - categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), - allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) - }, emptyStateElements)), - getElements = _createPageElements.getElements, - addElements = _createPageElements.addElements; - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": -/*!*****************************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), -/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _window$frmDom = window.frmDom, - tag = _window$frmDom.tag, - div = _window$frmDom.div, - a = _window$frmDom.a, - img = _window$frmDom.img; - -/** - * Create and return the Empty State HTML element. - * - * @return {HTMLElement} The Empty State element. - */ -function createEmptyStateElement() { - var button = a({ - className: 'button button-primary frm-button-primary' - }); - button.setAttribute('role', 'button'); - return div({ - id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), - className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), - children: [img({ - src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), - alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') - }), div({ - className: 'frmcenter', - children: [tag('h2', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") - }), tag('p', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") - })] - }), button] - }); -} - -/** - * Return the elements related to the Empty State. - * - * @return {Object} Object containing Empty State related DOM elements. - */ -function getEmptyStateElements() { - var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); - return { - emptyState: emptyState, - emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), - emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), - emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') - }; -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/index.js": -/*!*****************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/categoryListener.js": -/*!**************************************************************!*\ - !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Manages event handling for sidebar category links. - * - * @return {void} - */ -function addCategoryEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - categoryItems = _getElements.categoryItems; - - // Attach click and keyboard event listeners to each sidebar category - categoryItems.forEach(function (category) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); - category.addEventListener('keydown', onCategoryKeydown); - }); -} - -/** - * Handles the click event on a category item. - * - * @private - * @param {Event} event The click event object. - */ -var onCategoryClick = function onCategoryClick(event) { - var clickedCategory = event.currentTarget; - var newSelectedCategory = clickedCategory.getAttribute('data-category'); - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory, - selectedCategoryEl = _getState.selectedCategoryEl, - notEmptySearchText = _getState.notEmptySearchText; - - // If the selected category hasn't changed, return early - if (selectedCategory === newSelectedCategory) { - return; - } - - /** - * Filter hook to modify the selected category. - * - * @param {string} selectedCategory The selected category - */ - selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); - - // Highlight the newly clicked category and update the application state - selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - selectedCategoryEl = clickedCategory; - selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ - selectedCategory: selectedCategory, - selectedCategoryEl: selectedCategoryEl - }); - - // Reset the search input if it contains text - if (notEmptySearchText) { - (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); - } - - /** - * Trigger custom action to update category content. - * - * @param {string} selectedCategory The selected category. - */ - wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); - - // Smoothly display the updated UI elements - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements2.bodyContent; - new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); -}; - -/** - * Handles the keyboard event on a category item. - * - * @param {KeyboardEvent} event The keyboard event object. - * @return {void} - */ -function onCategoryKeydown(event) { - // Only respond to 'Enter' or 'Space' key presses - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - onCategoryClick(event); - } -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/events/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), -/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); -/** - * Internal dependencies - */ - - -/** - * Resets the value of the search input and triggers an input event. - * - * @return {void} - */ -function resetSearchInput() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - searchInput = _getElements.searchInput; - searchInput.value = ''; - searchInput.dispatchEvent(new Event('input', { - bubbles: true - })); -} - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/index.js": -/*!********************************************!*\ - !*** ./js/src/core/page-skeleton/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), -/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), -/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), -/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); - - - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/pageState.js": -/*!*******************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/pageState.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* binding */ getSingleState), -/* harmony export */ getState: () => (/* binding */ getState), -/* harmony export */ setSingleState: () => (/* binding */ setSingleState), -/* harmony export */ setState: () => (/* binding */ setState) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - allItemsCategory = _getElements.allItemsCategory; -var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ - notEmptySearchText: false, - selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, - selectedCategoryEl: allItemsCategory - }), - getState = _createPageState.getState, - getSingleState = _createPageState.getSingleState, - setState = _createPageState.setState, - setSingleState = _createPageState.setSingleState; - - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./js/src/form-templates/elements/applicationTemplatesElement.js": -/*!***********************************************************************!*\ - !*** ./js/src/form-templates/elements/applicationTemplatesElement.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplatesElement: () => (/* binding */ addApplicationTemplatesElement), -/* harmony export */ createApplicationTemplates: () => (/* binding */ createApplicationTemplates) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - -var _window$frmDom = window.frmDom, - tag = _window$frmDom.tag, - div = _window$frmDom.div, - span = _window$frmDom.span, - a = _window$frmDom.a, - img = _window$frmDom.img; - -// Application templates element -var applicationTemplates; - -// Base URL for the thumbnail images of applications -var thumbnailBaseURL = "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/applications/thumbnails"); - -/** - * Create and return the application templates HTML element. - * - * @param {Object[]} applications Array of application objects. - * @return {void} - */ -function createApplicationTemplates(applications) { - if (!applications || !applications.length) { - return; - } - var templateItems = applications.map(function (template) { - return createTemplateItem(template); - }); - applicationTemplates = div({ - id: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-applications"), - className: core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, - children: [tag('h2', { - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Application Templates'), - className: 'frm-text-sm frm-mb-sm' - }), tag('ul', { - className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list frm-list-grid-layout"), - children: templateItems - })] - }); -} - -/** - * Create and return an individual item element for a application template. - * - * @private - * @param {Object} template The application object. - * @return {HTMLElement} Element representing a single application template. - */ -function createTemplateItem(template) { - var name = template.name, - key = template.key, - hasLiteThumbnail = template.hasLiteThumbnail, - isWebp = template.isWebp; - // eslint-disable-next-line no-nested-ternary - var thumbnailURL = hasLiteThumbnail ? isWebp ? "".concat(thumbnailBaseURL, "/").concat(key, ".webp") : "".concat(thumbnailBaseURL, "/").concat(key, ".png") : "".concat(thumbnailBaseURL, "/placeholder.svg"); - return tag('li', { - className: 'frm-card-item', - data: { - href: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl, "&triggerViewApplicationModal=1&template=").concat(key), - 'frm-search-text': name.toLowerCase() - }, - children: [div({ - className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-icon"), - child: img({ - src: thumbnailURL - }) - }), div({ - className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-body"), - children: [span({ - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Ready Made Solution', 'formidable'), - className: 'frm-meta-tag frm-orange-tag frm-text-xs' - }), tag('h3', { - text: name, - className: 'frm-text-sm frm-font-medium frm-m-0' - }), a({ - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('See all applications', 'formidable'), - className: 'frm-text-xs frm-font-semibold', - href: _shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl - })] - })] - }); -} - -/** - * Inject application Templates elements into the DOM and the elements object. - * - * @return {void} - */ -function addApplicationTemplatesElement() { - var elements = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(); - if (elements.applicationTemplates || undefined === applicationTemplates) { - return; - } - elements.bodyContent.appendChild(applicationTemplates); - (0,_elements__WEBPACK_IMPORTED_MODULE_4__.addElements)({ - applicationTemplates: applicationTemplates, - applicationTemplatesTitle: applicationTemplates.querySelector('h2'), - applicationTemplatesList: applicationTemplates.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list")), - applicationTemplateItems: applicationTemplates.querySelectorAll('.frm-card-item') - }); -} - -/***/ }), - -/***/ "./js/src/form-templates/elements/elements.js": -/*!****************************************************!*\ - !*** ./js/src/form-templates/elements/elements.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -var _document$getElementB; -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - bodyContent = _getElements.bodyContent; -var templatesList = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")); -var customTemplatesSection = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-section")); -var favoritesCategory = document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.FAVORITES, "\"]")); -var modal = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal")); -(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ - // Body elements - headerCancelButton: (_document$getElementB = document.getElementById('frm-publishing')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.querySelector('a'), - createFormButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-create-form")), - pageTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title")), - pageTitleText: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-text")), - pageTitleDivider: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-divider")), - upsellBanner: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-upsell-banner")), - extraTemplateCountElements: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-extra-templates-count")), - // Templates elements - templatesList: templatesList, - templateItems: templatesList.querySelectorAll('.frm-card-item'), - availableTemplateItems: templatesList.querySelectorAll(".frm-card-item:not(.".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-locked-item)")), - twinFeaturedTemplateItems: templatesList.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-item")), - featuredTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-list")), - // Custom Templates Section elements - customTemplatesSection: customTemplatesSection, - customTemplateItems: customTemplatesSection.querySelectorAll('.frm-card-item'), - customTemplatesTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-title")), - customTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list")), - // Sidebar elements - favoritesCategory: favoritesCategory, - favoritesCategoryCountEl: favoritesCategory === null || favoritesCategory === void 0 ? void 0 : favoritesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-count")), - availableTemplatesCategory: document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.AVAILABLE_TEMPLATES, "\"]")), - // Modal elements - modal: modal, - modalItems: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal-item")), - // Create New Template Modal - showCreateTemplateModalButton: document.getElementById('frm-show-create-template-modal'), - createTemplateModal: document.getElementById('frm-create-template-modal'), - createTemplateFormsDropdown: document.getElementById('frm-create-template-modal-forms-select'), - createTemplateName: document.getElementById('frm_create_template_name'), - createTemplateDescription: document.getElementById('frm_create_template_description'), - createTemplateButton: document.getElementById('frm-create-template-button'), - // Renew Account Modal - renewAccountModal: document.getElementById('frm-renew-modal'), - // Upgrade Modal - upgradeModal: document.getElementById('frm-form-upgrade-modal'), - upgradeModalTemplateNames: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-template-name'), - upgradeModalPlansIcons: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-plan-icon'), - upgradeModalLink: document.getElementById('frm-upgrade-modal-link'), - // New Template Form elements - newTemplateForm: document.getElementById('frm-new-template'), - newTemplateNameInput: document.getElementById('frm_template_name'), - newTemplateDescriptionInput: document.getElementById('frm_template_desc'), - newTemplateLinkInput: document.getElementById('frm_link'), - newTemplateActionInput: document.getElementById('frm_action_type'), - // Add children of the bodyContent to the elements object. - bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children -}); - - -/***/ }), - -/***/ "./js/src/form-templates/elements/index.js": -/*!*************************************************!*\ - !*** ./js/src/form-templates/elements/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplatesElement: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplatesElement), -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ createApplicationTemplates: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.createApplicationTemplates), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); -/* harmony import */ var _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplatesElement */ "./js/src/form-templates/elements/applicationTemplatesElement.js"); - - - -/***/ }), - -/***/ "./js/src/form-templates/events/applicationTemplateListener.js": -/*!*********************************************************************!*\ - !*** ./js/src/form-templates/events/applicationTemplateListener.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplateEvents: () => (/* binding */ addApplicationTemplateEvents) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * Internal dependencies - */ - - -/** - * Manages event handling for an application template. - * - * @return {void} - */ -function addApplicationTemplateEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - applicationTemplateItems = _getElements.applicationTemplateItems; - if (undefined === applicationTemplateItems) { - return; - } - - // Attach click event listener - applicationTemplateItems.forEach(function (template) { - template.addEventListener('click', onApplicationTemplateClick); - }); -} - -/** - * Handles the click event on an application template. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onApplicationTemplateClick = function onApplicationTemplateClick(event) { - // Check if the clicked element is an anchor tag - if (event.target.closest('a')) { - return; - } - var applicationTemplate = event.currentTarget; - window.location.href = applicationTemplate.dataset.href; -}; - -/***/ }), - -/***/ "./js/src/form-templates/events/createFormButtonListener.js": -/*!******************************************************************!*\ - !*** ./js/src/form-templates/events/createFormButtonListener.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -/** - * Manages event handling for the "Create a blank form" button. - * - * @return {void} - */ -function addCreateFormButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createFormButton = _getElements.createFormButton; - - // Attach click event listener - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createFormButton, onCreateFormButtonClick); -} - -/** - * Handles the click event on the "Create a blank form" button. - * - * @private - * @return {void} - */ -var onCreateFormButtonClick = function onCreateFormButtonClick() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createFormButton = _getElements2.createFormButton, - newTemplateForm = _getElements2.newTemplateForm, - newTemplateNameInput = _getElements2.newTemplateNameInput, - newTemplateActionInput = _getElements2.newTemplateActionInput; - var installNewForm = window.frmAdminBuild.installNewForm; - newTemplateNameInput.value = ''; - newTemplateActionInput.value = 'frm_install_form'; - installNewForm(newTemplateForm, 'frm_install_form', createFormButton); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateFormButtonEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/createTemplateListeners.js": -/*!*****************************************************************!*\ - !*** ./js/src/form-templates/events/createTemplateListeners.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - - -/** - * Manages event handling for the 'Create New Template' modal. - * - * @return {void} - */ -function addCreateTemplateEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateFormsDropdown = _getElements.createTemplateFormsDropdown, - createTemplateButton = _getElements.createTemplateButton, - showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, - emptyStateButton = _getElements.emptyStateButton; - - // Show the 'Create New Template' modal when either empty state or show modal button is clicked - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(emptyStateButton, onShowCreateTemplateModalButtonClick); - - // Handle changes in the forms selection dropdown for creating a new template - createTemplateFormsDropdown.addEventListener('change', onFormsSelectChange); - - // Create a new template when the create button inside the modal is clicked - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createTemplateButton, onCreateTemplateButtonClick); -} - -/** - * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal. - * - * @private - * @return {void} - */ -var onShowCreateTemplateModalButtonClick = function onShowCreateTemplateModalButtonClick() { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory; - if (!(0,_utils__WEBPACK_IMPORTED_MODULE_5__.isCustomCategory)(selectedCategory)) { - return; - } - (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showCreateTemplateModal)(); -}; - -/** - * Handles changes in the forms selection dropdown for creating a new template. - * - * @private - * @return {void} - */ -var onFormsSelectChange = function onFormsSelectChange() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - formsSelect = _getElements2.createTemplateFormsDropdown; - var formId = formsSelect.value; - if (!formId || formId === 'no-forms') { - toggleDisableModalElements(true); - return; - } - toggleDisableModalElements(false); - var selectedOption = formsSelect.options[formsSelect.selectedIndex]; - var formDescription = selectedOption.dataset.description.trim(); - var formName = selectedOption.dataset.name.trim(); - var templateString = " ".concat((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Template', 'formidable')); - if (!formName.endsWith(templateString)) { - formName += templateString; - } - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateName = _getElements3.createTemplateName, - createTemplateDescription = _getElements3.createTemplateDescription; - createTemplateName.value = formName; - createTemplateDescription.value = formDescription; -}; - -/** - * Toggles the disabled state of elements in the 'Create Template' modal. - * - * @private - * @param {boolean} shouldDisable True to disable, false to enable. - * @return {void} - */ -var toggleDisableModalElements = function toggleDisableModalElements(shouldDisable) { - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateName = _getElements4.createTemplateName, - createTemplateDescription = _getElements4.createTemplateDescription, - createTemplateButton = _getElements4.createTemplateButton; - - // Toggle the disabled attribute for input and textarea - [createTemplateName, createTemplateDescription].forEach(function (element) { - element.disabled = shouldDisable; - if (shouldDisable) { - element.value = ''; // Clear the content for input and textarea - } - }); - - // Toggle the disabled class for the button - createTemplateButton.classList.toggle('disabled', shouldDisable); -}; - -/** - * Handles the click event on the 'Create Template' button to create a new template. - * - * @private - * @return {void} - */ -var onCreateTemplateButtonClick = function onCreateTemplateButtonClick() { - var installNewForm = window.frmAdminBuild.installNewForm; - var actionName = 'frm_create_template'; - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - newTemplateForm = _getElements5.newTemplateForm, - newTemplateActionInput = _getElements5.newTemplateActionInput, - newTemplateNameInput = _getElements5.newTemplateNameInput, - newTemplateDescriptionInput = _getElements5.newTemplateDescriptionInput, - newTemplateLinkInput = _getElements5.newTemplateLinkInput, - createTemplateName = _getElements5.createTemplateName, - createTemplateDescription = _getElements5.createTemplateDescription, - createTemplateFormsDropdown = _getElements5.createTemplateFormsDropdown, - createTemplateButton = _getElements5.createTemplateButton; - newTemplateActionInput.value = actionName; - newTemplateNameInput.value = createTemplateName.value.trim(); - newTemplateDescriptionInput.value = createTemplateDescription.value.trim(); - newTemplateLinkInput.value = createTemplateFormsDropdown.value; - - // Install new form template - installNewForm(newTemplateForm, actionName, createTemplateButton); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateTemplateEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/favoriteButtonListener.js": -/*!****************************************************************!*\ - !*** ./js/src/form-templates/events/favoriteButtonListener.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -var FAVORITE_BUTTON_CLASS = ".".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-item-favorite-button"); -var HEART_ICON_SELECTOR = "".concat(FAVORITE_BUTTON_CLASS, " use"); -var FILLED_HEART_ICON = '#frm_heart_solid_icon'; -var LINEAR_HEART_ICON = '#frm_heart_icon'; -var OPERATION = { - ADD: 'add', - REMOVE: 'remove' -}; - -/** - * Manages event handling for favorite buttons. - * - * @return {void} - */ -function addFavoriteButtonEvents() { - var favoriteButtons = document.querySelectorAll(FAVORITE_BUTTON_CLASS); - - // Attach click event listeners to each favorite button - favoriteButtons.forEach(function (favoriteButton) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(favoriteButton, onFavoriteButtonClick); - }); -} - -/** - * Handles the click event on the add to favorite button. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onFavoriteButtonClick = function onFavoriteButtonClick(event) { - var _twinFeaturedTemplate; - var favoriteButton = event.currentTarget; - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - templatesList = _getElements.templatesList, - featuredTemplatesList = _getElements.featuredTemplatesList, - favoritesCategoryCountEl = _getElements.favoritesCategoryCountEl, - customTemplatesTitle = _getElements.customTemplatesTitle; - - /** - * Get necessary template information - */ - var template = favoriteButton.closest('.frm-card-item'); - var templateId = template.dataset.id; - var isFavorited = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); - var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isCustomTemplate)(template); - var isTemplateFeatured = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFeaturedTemplate)(template); - - /** - * Toggle the favorite status in the UI. - * If template is featured, toggle its twin version in the respective list. - */ - var twinFeaturedTemplate = null; - template.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); - if (isTemplateFeatured) { - var templateList = template.closest("#".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-list")) ? featuredTemplatesList : templatesList; - if (templateList) { - twinFeaturedTemplate = templateList.querySelector(".frm-card-item[data-id=\"".concat(templateId, "\"]")); - // Toggle twin template's favorite status - twinFeaturedTemplate.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); - } - } - - /** - * Update favorite counts and icons based on the new state - */ - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getState)(), - selectedCategory = _getState.selectedCategory, - favoritesCount = _getState.favoritesCount; - var currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD; - var heartIcon = template.querySelector(HEART_ICON_SELECTOR); - var twinTemplateHeartIcon = (_twinFeaturedTemplate = twinFeaturedTemplate) === null || _twinFeaturedTemplate === void 0 ? void 0 : _twinFeaturedTemplate.querySelector(HEART_ICON_SELECTOR); - if (OPERATION.ADD === currentOperation) { - // Increment favorite counts - ++favoritesCount.total; - isTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions - // Set heart icon to filled - heartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); - twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); - } else { - // Decrement favorite counts - --favoritesCount.total; - isTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions - // Set heart icon to outline - heartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); - twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); - } - - // Update UI and state to reflect new favorite counts - favoritesCategoryCountEl.textContent = favoritesCount.total; - (0,_shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState)('favoritesCount', favoritesCount); - - /** - * Hide UI elements if 'Favorites' is active and counts are zero. - */ - if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoritesCategory)(selectedCategory)) { - if (0 === favoritesCount.total) { - (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showFavoritesEmptyState)(); - } - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(template); - if (0 === favoritesCount.default) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(templatesList); - } - if (0 === favoritesCount.custom || 0 === favoritesCount.default) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); - } - } - - // Update server-side data for favorite templates - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.addToRequestQueue)(function () { - return updateFavoriteTemplate(templateId, currentOperation, isTemplateCustom); - }); -}; - -/** - * Update server-side data for favorite templates. - * - * @param {string} id The template ID. - * @param {string} operation The operation to perform ('add' or 'remove'). - * @param {boolean} isCustom Flag indicating whether the template is custom. - * @return {Promise} The result of the server-side update. - */ -function updateFavoriteTemplate(id, operation, isCustom) { - var formData = new FormData(); - var doJsonPost = frmDom.ajax.doJsonPost; - formData.append('template_id', id); - formData.append('operation', operation); - formData.append('is_custom_template', isCustom); - return doJsonPost('add_or_remove_favorite_template', formData); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addFavoriteButtonEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/index.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/events/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplateEvents: () => (/* reexport safe */ _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_7__.addApplicationTemplateEvents), -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createFormButtonListener */ "./js/src/form-templates/events/createFormButtonListener.js"); -/* harmony import */ var _favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./favoriteButtonListener */ "./js/src/form-templates/events/favoriteButtonListener.js"); -/* harmony import */ var _useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useTemplateButtonListener */ "./js/src/form-templates/events/useTemplateButtonListener.js"); -/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./searchListener */ "./js/src/form-templates/events/searchListener.js"); -/* harmony import */ var _createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createTemplateListeners */ "./js/src/form-templates/events/createTemplateListeners.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./applicationTemplateListener */ "./js/src/form-templates/events/applicationTemplateListener.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Attaches event listeners for handling user interactions. - * - * @return {void} - */ -function addEventListeners() { - (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); - wp.hooks.addAction('frmPage.onCategoryClick', 'frmFormTemplates', function (selectedCategory) { - // Display templates of the selected category - (0,_ui__WEBPACK_IMPORTED_MODULE_6__.showSelectedCategory)(selectedCategory); - }); - (0,_createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__["default"])(); - (0,_favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); - (0,_useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); - (0,_searchListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); - (0,_createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__["default"])(); -} - - -/***/ }), - -/***/ "./js/src/form-templates/events/searchListener.js": -/*!********************************************************!*\ - !*** ./js/src/form-templates/events/searchListener.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - -var initSearch = window.frmDom.search.init; - -/** - * Adds search-related event listeners by calling the 'initSearch' function. - * - * @see frmDom.search method - * @return {void} - */ -function addSearchEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - searchInput = _getElements.searchInput, - emptyStateButton = _getElements.emptyStateButton; - initSearch(searchInput, 'frm-card-item', { - handleSearchResult: handleSearchResult - }); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(emptyStateButton, onEmptyStateButtonClick); -} - -/** - * Manages UI state based on search results and input value. - * - * @private - * @param {Object} args Contains flags for search status. - * @param {boolean} args.foundSomething True if search yielded results. - * @param {boolean} args.notEmptySearchText True if search input is not empty. - * @param {Event} event The event object (input, search, or change event). - * @return {void} - */ -function handleSearchResult(_ref, event) { - var foundSomething = _ref.foundSomething, - notEmptySearchText = _ref.notEmptySearchText; - // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, - // triggering this method twice on 'x' button click. - if (event && event.type === 'search' && event.target.value === '') { - return; - } - var state = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(); - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - allItemsCategory = _getElements2.allItemsCategory; - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('notEmptySearchText', notEmptySearchText); - - // Revert to 'All Templates' if search and selected category are both empty - if (!state.notEmptySearchText && !state.selectedCategory) { - allItemsCategory.dispatchEvent(new Event('click', { - bubbles: true - })); - return; - } - - // Display search state if a category is selected - if (state.selectedCategory) { - (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showSearchState)(notEmptySearchText); - - // Setting "selectedCategory" to an empty string as a flag for search state - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); - } - } - (0,_ui__WEBPACK_IMPORTED_MODULE_4__.displaySearchElements)(foundSomething, notEmptySearchText); -} - -/** - * Handles the click event on the empty state button. - * - * @private - * @return {void} - */ -var onEmptyStateButtonClick = function onEmptyStateButtonClick() { - var _emptyState$dataset; - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyState = _getElements3.emptyState; - if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH !== ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { - return; - } - - // Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty - // @see handleSearchResult() - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); - (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.resetSearchInput)(); - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - searchInput = _getElements4.searchInput; - searchInput.focus(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/useTemplateButtonListener.js": -/*!*******************************************************************!*\ - !*** ./js/src/form-templates/events/useTemplateButtonListener.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/ */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/** - * Internal dependencies - */ - - - - - -/** - * Manages event handling for use template buttons. - * - * @return {void} - */ -function addUseTemplateButtonEvents() { - var useTemplateButtons = document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-use-template-button")); - - // Attach click event listeners to each use template button - useTemplateButtons.forEach(function (useTemplateButton) { - return useTemplateButton.addEventListener('click', onUseTemplateButtonClick); - }); -} - -/** - * Handles the click event on the use template button. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onUseTemplateButtonClick = function onUseTemplateButtonClick(event) { - var useTemplateButton = event.currentTarget; - var template = useTemplateButton.closest('.frm-card-item'); - var isLocked = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isLockedTemplate)(template); - var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isCustomTemplate)(template); - - // Allow the default link behavior, if the template is custom and not locked - if (!isLocked && isTemplateCustom) { - return; - } - - // Prevent the default link behavior for non-custom or locked templates - event.preventDefault(); - - // Update app state with selected template - (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('selectedTemplate', template); - - // Handle locked templates - if (isLocked) { - (0,_ui___WEBPACK_IMPORTED_MODULE_2__.showLockedTemplateModal)(template); - return; - } - - // Prepare for new template installation - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - newTemplateForm = _getElements.newTemplateForm, - newTemplateNameInput = _getElements.newTemplateNameInput, - newTemplateDescriptionInput = _getElements.newTemplateDescriptionInput, - newTemplateLinkInput = _getElements.newTemplateLinkInput, - newTemplateActionInput = _getElements.newTemplateActionInput; - var installNewForm = window.frmAdminBuild.installNewForm; - var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); - var templateDescription = template.querySelector('.frm-form-templates-item-description').textContent.trim(); - var actionName = 'frm_install_template'; - newTemplateNameInput.value = templateName; - newTemplateDescriptionInput.value = templateDescription; - newTemplateActionInput.value = actionName; - newTemplateLinkInput.value = useTemplateButton.href; - - // Install new form template - installNewForm(newTemplateForm, actionName, useTemplateButton); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addUseTemplateButtonEvents); - -/***/ }), - -/***/ "./js/src/form-templates/initializeFormTemplates.js": -/*!**********************************************************!*\ - !*** ./js/src/form-templates/initializeFormTemplates.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates */ "./js/src/form-templates/templates/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./events */ "./js/src/form-templates/events/index.js"); -/** - * Internal dependencies - */ - - - - -/** - * Initializes form templates. - * - * @return {void} - */ -function initializeFormTemplates() { - (0,_templates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates)(); - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.initializeModal)(); - (0,_templates__WEBPACK_IMPORTED_MODULE_1__.buildCategorizedTemplates)(); - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); - (0,_events__WEBPACK_IMPORTED_MODULE_2__.addEventListeners)(); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeFormTemplates); - -/***/ }), - -/***/ "./js/src/form-templates/shared/constants.js": -/*!***************************************************!*\ - !*** ./js/src/form-templates/shared/constants.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FEATURED_TEMPLATES_KEYS: () => (/* binding */ FEATURED_TEMPLATES_KEYS), -/* harmony export */ MODAL_SIZES: () => (/* binding */ MODAL_SIZES), -/* harmony export */ PLANS: () => (/* binding */ PLANS), -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ VIEW_SLUGS: () => (/* binding */ VIEW_SLUGS), -/* harmony export */ applicationsUrl: () => (/* binding */ applicationsUrl), -/* harmony export */ canAccessApplicationDashboard: () => (/* binding */ canAccessApplicationDashboard), -/* harmony export */ upgradeLink: () => (/* binding */ upgradeLink) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - canAccessApplicationDashboard = _window$frmGlobal.canAccessApplicationDashboard, - applicationsUrl = _window$frmGlobal.applicationsUrl; - -var _window$frmFormTempla = window.frmFormTemplatesVars, - FEATURED_TEMPLATES_KEYS = _window$frmFormTempla.FEATURED_TEMPLATES_KEYS, - upgradeLink = _window$frmFormTempla.upgradeLink; - -var PREFIX = 'frm-form-templates'; -var VIEW_SLUGS = { - AVAILABLE_TEMPLATES: 'available-templates', - FAVORITES: 'favorites', - CUSTOM: 'custom', - SEARCH: 'search' -}; -var PLANS = { - BASIC: 'basic', - PLUS: 'plus', - BUSINESS: 'business', - ELITE: 'elite', - RENEW: 'renew', - FREE: 'free' -}; -var MODAL_SIZES = { - GENERAL: '440px', - CREATE_TEMPLATE: '550px' -}; - -/***/ }), - -/***/ "./js/src/form-templates/shared/index.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/shared/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FEATURED_TEMPLATES_KEYS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.FEATURED_TEMPLATES_KEYS), -/* harmony export */ MODAL_SIZES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES), -/* harmony export */ PLANS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PLANS), -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ VIEW_SLUGS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_SLUGS), -/* harmony export */ applicationsUrl: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.applicationsUrl), -/* harmony export */ canAccessApplicationDashboard: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.canAccessApplicationDashboard), -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState), -/* harmony export */ upgradeLink: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.upgradeLink) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/form-templates/shared/constants.js"); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/form-templates/shared/pageState.js"); - - - -/***/ }), - -/***/ "./js/src/form-templates/shared/pageState.js": -/*!***************************************************!*\ - !*** ./js/src/form-templates/shared/pageState.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _window$frmFormTempla = window.frmFormTemplatesVars, - templatesCount = _window$frmFormTempla.templatesCount, - favoritesCount = _window$frmFormTempla.favoritesCount, - customCount = _window$frmFormTempla.customCount; -var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - availableTemplateItems = _getElements.availableTemplateItems; -var availableTemplatesCount = availableTemplateItems.length; -(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState)({ - availableTemplatesCount: availableTemplatesCount, - customCount: Number(customCount), - extraTemplatesCount: templatesCount - availableTemplatesCount, - favoritesCount: favoritesCount, - selectedTemplate: false -}); - - -/***/ }), - -/***/ "./js/src/form-templates/templates/applicationTemplates.js": -/*!*****************************************************************!*\ - !*** ./js/src/form-templates/templates/applicationTemplates.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ maybeAddApplicationTemplates: () => (/* binding */ maybeAddApplicationTemplates) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ "./js/src/form-templates/events/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * Internal dependencies - */ - - - - -/** - * Adds application templates if the user has dashboard access. - * - * @return {void} - */ -function maybeAddApplicationTemplates() { - // Exit if the user doesn't have permission to see application dashboard - if (!_shared__WEBPACK_IMPORTED_MODULE_2__.canAccessApplicationDashboard) { - return; - } - var doJsonFetch = frmDom.ajax.doJsonFetch; - doJsonFetch('get_applications_data&view=templates').then(setupApplicationTemplates); -} - -/** - * Sets up application templates by creating HTML elements, injecting them into the DOM, - * and adding event handlers. - * - * @private - * @param {Object} data The data object containing information for application templates. - * @return {void} - */ -function setupApplicationTemplates(data) { - // Create application templates - (0,_elements__WEBPACK_IMPORTED_MODULE_0__.createApplicationTemplates)(data.templates); - - // Inject templates into the DOM - (0,_elements__WEBPACK_IMPORTED_MODULE_0__.addApplicationTemplatesElement)(); - - // Set up event handling - (0,_events__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplateEvents)(); -} - -/***/ }), - -/***/ "./js/src/form-templates/templates/categorizeTemplates.js": -/*!****************************************************************!*\ - !*** ./js/src/form-templates/templates/categorizeTemplates.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedTemplates: () => (/* binding */ buildCategorizedTemplates), -/* harmony export */ categorizedTemplates: () => (/* binding */ categorizedTemplates) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * Internal dependencies - */ - -var categorizedTemplates = {}; - -/** - * Builds a categorized list of templates. - * - * @return {void} - */ -function buildCategorizedTemplates() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - templateItems = _getElements.templateItems; - templateItems.forEach(function (template) { - // Extract and split the categories from data attribute - var categories = template.getAttribute('data-categories').split(','); - categories.forEach(function (category) { - // Initialize the category array if not already done - if (!categorizedTemplates[category]) { - categorizedTemplates[category] = []; - } - - // Add the template to the appropriate category - categorizedTemplates[category].push(template); - }); - }); -} - -/***/ }), - -/***/ "./js/src/form-templates/templates/index.js": -/*!**************************************************!*\ - !*** ./js/src/form-templates/templates/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedTemplates), -/* harmony export */ categorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.categorizedTemplates), -/* harmony export */ maybeAddApplicationTemplates: () => (/* reexport safe */ _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates) -/* harmony export */ }); -/* harmony import */ var _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeTemplates */ "./js/src/form-templates/templates/categorizeTemplates.js"); -/* harmony import */ var _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplates */ "./js/src/form-templates/templates/applicationTemplates.js"); - - - -/***/ }), - -/***/ "./js/src/form-templates/ui/index.js": -/*!*******************************************!*\ - !*** ./js/src/form-templates/ui/index.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.displaySearchElements), -/* harmony export */ getModalWidget: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.getModalWidget), -/* harmony export */ initializeModal: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.initializeModal), -/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ showAllTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAllTemplates), -/* harmony export */ showAvailableTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAvailableTemplates), -/* harmony export */ showAvailableTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState), -/* harmony export */ showCreateTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showCreateTemplateModal), -/* harmony export */ showCustomTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showCustomTemplates), -/* harmony export */ showCustomTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState), -/* harmony export */ showFavoriteTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showFavoriteTemplates), -/* harmony export */ showFavoritesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState), -/* harmony export */ showHeaderCancelButton: () => (/* reexport safe */ _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__.showHeaderCancelButton), -/* harmony export */ showLockedTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showLockedTemplateModal), -/* harmony export */ showRenewAccountModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showRenewAccountModal), -/* harmony export */ showSearchEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showSearchEmptyState), -/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.showSearchState), -/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showSelectedCategory), -/* harmony export */ showUpgradeModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showUpgradeModal), -/* harmony export */ updatePageTitle: () => (/* reexport safe */ _pageTitle__WEBPACK_IMPORTED_MODULE_2__.updatePageTitle) -/* harmony export */ }); -/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/form-templates/ui/setupInitialView.js"); -/* harmony import */ var _initializeModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeModal */ "./js/src/form-templates/ui/initializeModal.js"); -/* harmony import */ var _pageTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pageTitle */ "./js/src/form-templates/ui/pageTitle.js"); -/* harmony import */ var _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showHeaderCancelButton */ "./js/src/form-templates/ui/showHeaderCancelButton.js"); -/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/form-templates/ui/showSelectedCategory.js"); -/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./searchState */ "./js/src/form-templates/ui/searchState.js"); -/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/form-templates/ui/showEmptyState.js"); -/* harmony import */ var _showModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./showModal */ "./js/src/form-templates/ui/showModal.js"); - - - - - - - - - -/***/ }), - -/***/ "./js/src/form-templates/ui/initializeModal.js": -/*!*****************************************************!*\ - !*** ./js/src/form-templates/ui/initializeModal.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getModalWidget: () => (/* binding */ getModalWidget), -/* harmony export */ initializeModal: () => (/* binding */ initializeModal) -/* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } - -var modalWidget = null; - -/** - * Initialize the modal widget. - * - * @return {void} - */ -function initializeModal() { - return _initializeModal.apply(this, arguments); -} - -/** - * Retrieve the modal widget. - * - * @return {Object|false} The modal widget or false. - */ -function _initializeModal() { - _initializeModal = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var _window$frmAdminBuild, initModal, offsetModalY; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _window$frmAdminBuild = window.frmAdminBuild, initModal = _window$frmAdminBuild.initModal, offsetModalY = _window$frmAdminBuild.offsetModalY; - modalWidget = initModal('#frm-form-templates-modal', _shared__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES.GENERAL); - - // Set the vertical offset for the modal - if (modalWidget) { - offsetModalY(modalWidget, '103px'); - } - - // Customize the confirm modal appearance: adjusting its width and vertical position - wp.hooks.addAction('frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', function (options) { - var confirmModal = options.$info; - confirmModal.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES.CREATE_TEMPLATE); - offsetModalY(confirmModal, '103px'); - }); - case 4: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _initializeModal.apply(this, arguments); -} -function getModalWidget() { - return modalWidget; -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/pageTitle.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/ui/pageTitle.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ updatePageTitle: () => (/* binding */ updatePageTitle) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Sets the page title based on a given string or the currently selected category. - * - * @param {string} [title] Optional title to display. - * @return {void} - */ -function updatePageTitle(title) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - pageTitleText = _getElements.pageTitleText; - var newTitle = title || (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState)('selectedCategoryEl').querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-text")).textContent; - pageTitleText.textContent = newTitle; -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/searchState.js": -/*!*************************************************!*\ - !*** ./js/src/form-templates/ui/searchState.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), -/* harmony export */ showSearchState: () => (/* binding */ showSearchState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/form-templates/ui/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Updates the UI to display the search state. - * - * @param {boolean} notEmptySearchText True if search input is not empty. - * @return {void} - */ -function showSearchState(notEmptySearchText) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - bodyContent = _getElements.bodyContent, - bodyContentChildren = _getElements.bodyContentChildren, - pageTitle = _getElements.pageTitle, - templatesList = _getElements.templatesList, - applicationTemplates = _getElements.applicationTemplates; - var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent); - - // Remove highlighting from the currently selected category if the search text is not empty - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); - } - - // Hide non-relevant elements in the body content - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); - - // Update the page title and display relevant elements - (0,___WEBPACK_IMPORTED_MODULE_5__.updatePageTitle)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Search Result', 'formidable')); - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([pageTitle, templatesList, applicationTemplates]); - - // Smoothly display the updated UI elements - bodyContentAnimate.fadeIn(); -} - -/** - * Displays search results based on search outcome. - * - * @param {boolean} foundSomething True if search yielded results. - * @return {void} - */ -function displaySearchElements(foundSomething) { - // Show empty state if no templates found - if (!foundSomething) { - (0,___WEBPACK_IMPORTED_MODULE_5__.showSearchEmptyState)(); - return; - } - - // Hide empty state if currently displayed - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - emptyState = _getElements2.emptyState; - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - pageTitle = _getElements3.pageTitle; - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(pageTitle); - } - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - templatesList = _getElements4.templatesList, - applicationTemplates = _getElements4.applicationTemplates, - applicationTemplatesTitle = _getElements4.applicationTemplatesTitle, - applicationTemplatesList = _getElements4.applicationTemplatesList; - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([templatesList, applicationTemplates, applicationTemplatesTitle]); - if (templatesList.offsetHeight === 0) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)([templatesList, applicationTemplatesTitle]); - } - if ((applicationTemplatesList === null || applicationTemplatesList === void 0 ? void 0 : applicationTemplatesList.offsetHeight) === 0) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(applicationTemplates); - } -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/setupInitialView.js": -/*!******************************************************!*\ - !*** ./js/src/form-templates/ui/setupInitialView.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -/** - * External dependencies - */ - - - - -/** - * Internal dependencies - */ - - - - -/** - * Sets up the initial view, performing any required - * DOM manipulations for proper element presentation. - * - * @return {void} - */ -function setupInitialView() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - sidebar = _getElements.sidebar, - searchInput = _getElements.searchInput, - bodyContent = _getElements.bodyContent, - twinFeaturedTemplateItems = _getElements.twinFeaturedTemplateItems, - availableTemplatesCategory = _getElements.availableTemplatesCategory; - var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); - searchInput.value = ''; - - // Hide the twin featured template items - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(twinFeaturedTemplateItems); - - // Set the 'Available Templates' count if it is present - if (availableTemplatesCategory) { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), - availableTemplatesCount = _getState.availableTemplatesCount; - availableTemplatesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-cat-count")).textContent = availableTemplatesCount; - } - - // Update extra templates count - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - extraTemplateCountElements = _getElements2.extraTemplateCountElements; - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), - extraTemplatesCount = _getState2.extraTemplatesCount; - extraTemplateCountElements.forEach(function (element) { - return element.textContent = extraTemplatesCount; - }); - - // Smoothly display the updated UI elements - bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - bodyContentAnimate.fadeIn(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(sidebar); - - // Show the "Cancel" button in the header if the 'return_page' query param is present - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hasQueryParam)('return_page')) { - (0,___WEBPACK_IMPORTED_MODULE_5__.showHeaderCancelButton)(); - } -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupInitialView); - -/***/ }), - -/***/ "./js/src/form-templates/ui/showEmptyState.js": -/*!****************************************************!*\ - !*** ./js/src/form-templates/ui/showEmptyState.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showAvailableTemplatesEmptyState: () => (/* binding */ showAvailableTemplatesEmptyState), -/* harmony export */ showCustomTemplatesEmptyState: () => (/* binding */ showCustomTemplatesEmptyState), -/* harmony export */ showFavoritesEmptyState: () => (/* binding */ showFavoritesEmptyState), -/* harmony export */ showSearchEmptyState: () => (/* binding */ showSearchEmptyState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Display the search-empty state. - * - * @return {void} - */ -function showSearchEmptyState() { - var _emptyState$dataset; - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - notEmptySearchText = _getState.notEmptySearchText; - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements.pageTitle, - emptyState = _getElements.emptyState, - emptyStateButton = _getElements.emptyStateButton, - applicationTemplates = _getElements.applicationTemplates; - - // Toggle visibility and remove attributes based on search status - if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH === ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { - if (notEmptySearchText) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); - } else { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(emptyState); - emptyState.removeAttribute('data-view'); - } - return; - } - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH); - - // Update text content - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements2.emptyStateTitle, - emptyStateText = _getElements2.emptyStateText; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No templates found', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any templates that match your criteria.', 'formidable'); - emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Start from Scratch', 'formidable'); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); -} - -/** - * Display the favorites-empty state. - * - * @return {void} - */ -function showFavoritesEmptyState() { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements3.pageTitle, - emptyState = _getElements3.emptyState, - emptyStateButton = _getElements3.emptyStateButton; - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES); - - // Update text content - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements4.emptyStateTitle, - emptyStateText = _getElements4.emptyStateText; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No favorites', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t added any templates to your favorites yet.', 'formidable'); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); -} - -/** - * Display the custom-empty state. - * - * @return {void} - */ -function showCustomTemplatesEmptyState() { - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements5.pageTitle, - emptyState = _getElements5.emptyState, - emptyStateButton = _getElements5.emptyStateButton; - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM); - - // Update text content - var _getElements6 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements6.emptyStateTitle, - emptyStateText = _getElements6.emptyStateText; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You currently have no templates.', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t created any form templates. Begin now to simplify your workflow and save time.', 'formidable'); - emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create Template', 'formidable'); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(pageTitle); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); -} - -/** - * Display the available-templates-empty state. - * - * @return {void} - */ -function showAvailableTemplatesEmptyState() { - var _getElements7 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements7.pageTitle, - emptyState = _getElements7.emptyState, - emptyStateButton = _getElements7.emptyStateButton; - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES); - - // Update text content - var _getElements8 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements8.emptyStateTitle, - emptyStateText = _getElements8.emptyStateText; - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - extraTemplatesCount = _getState2.extraTemplatesCount; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No Templates Available', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)( - // translators: %s is the number of extra templates available - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable'), extraTemplatesCount); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/showHeaderCancelButton.js": -/*!************************************************************!*\ - !*** ./js/src/form-templates/ui/showHeaderCancelButton.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showHeaderCancelButton: () => (/* binding */ showHeaderCancelButton) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -/** - * Display the "Cancel" button in the header. - * - * @return {void} - */ -function showHeaderCancelButton() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - headerCancelButton = _getElements.headerCancelButton; - new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(headerCancelButton).fadeIn(); -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/showModal.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/ui/showModal.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showCreateTemplateModal: () => (/* binding */ showCreateTemplateModal), -/* harmony export */ showLockedTemplateModal: () => (/* binding */ showLockedTemplateModal), -/* harmony export */ showRenewAccountModal: () => (/* binding */ showRenewAccountModal), -/* harmony export */ showUpgradeModal: () => (/* binding */ showUpgradeModal) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Display the locked template modal. - * - * @param {HTMLElement} template The template element. - * @return {void} - */ -function showLockedTemplateModal(template) { - var plan = template.dataset.requiredPlan; - switch (plan) { - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BASIC: - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.PLUS: - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BUSINESS: - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.ELITE: - showUpgradeModal(plan, template); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.RENEW: - showRenewAccountModal(); - break; - } -} - -/** - * Base function to show a modal dialog with a customizable pre-open execution step. - * - * @param {Function} executePreOpen The function to be executed before opening the modal dialog. - * @return {Function} A higher-order function that can be invoked to display the modal dialog. - */ -var showModal = function showModal(executePreOpen) { - return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var dialogWidget, - _getElements, - modalItems, - _len, - params, - _key, - _args = arguments; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); - if (dialogWidget) { - _context.next = 3; - break; - } - return _context.abrupt("return"); - case 3: - _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), modalItems = _getElements.modalItems; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(modalItems); - dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.GENERAL); - for (_len = _args.length, params = new Array(_len), _key = 0; _key < _len; _key++) { - params[_key] = _args[_key]; - } - _context.next = 9; - return executePreOpen === null || executePreOpen === void 0 ? void 0 : executePreOpen.apply(void 0, params); - case 9: - dialogWidget.dialog('open'); - case 10: - case "end": - return _context.stop(); - } - }, _callee); - })); -}; - -// Mapping each plan to the subsequent plans it can upgrade to -var upgradablePlans = { - basic: ['basic', 'plus', 'business', 'elite'], - plus: ['plus', 'business', 'elite'], - business: ['business', 'elite'], - elite: ['elite'] -}; - -/** - * Display the modal dialog to prompt the user to upgrade their account. - * - * @param {string} plan Current plan name - * @param {HTMLElement} template The template element - * @return {void} - */ -var showUpgradeModal = showModal(function (plan, template) { - var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - upgradeModal = _getElements2.upgradeModal, - upgradeModalTemplateNames = _getElements2.upgradeModalTemplateNames, - upgradeModalPlansIcons = _getElements2.upgradeModalPlansIcons, - upgradeModalLink = _getElements2.upgradeModalLink; - - // Update template names - upgradeModalTemplateNames.forEach(function (element) { - return element.textContent = templateName; - }); - - // Update plan icons and their availability - upgradeModalPlansIcons.forEach(function (icon) { - var planType = icon.dataset.plan; - var shouldDisplayCheck = upgradablePlans[plan].includes(planType); - - // Toggle icon class based on plan availability - icon.classList.toggle('frm_green', shouldDisplayCheck); - - // Update SVG icon - var svg = icon.querySelector('svg > use'); - svg.setAttribute('xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon'); - }); - - // Append template slug to the upgrade modal link URL - var templateSlug = template.dataset.slug ? "-".concat(template.dataset.slug) : ''; - upgradeModalLink.href = _shared__WEBPACK_IMPORTED_MODULE_3__.upgradeLink + templateSlug; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(upgradeModal); -}); - -/** - * Display the modal dialog to prompt the user to renew their account. - * - * @return {void} - */ -var showRenewAccountModal = showModal(function () { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - renewAccountModal = _getElements3.renewAccountModal; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(renewAccountModal); -}); - -/** - * Displays a modal dialog prompting the user to create a new template. - * - * @return {void} - */ -var showCreateTemplateModal = showModal(function () { - var dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); - dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.CREATE_TEMPLATE); - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateModal = _getElements4.createTemplateModal; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(createTemplateModal); -}); - -/***/ }), - -/***/ "./js/src/form-templates/ui/showSelectedCategory.js": -/*!**********************************************************!*\ - !*** ./js/src/form-templates/ui/showSelectedCategory.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ showAllTemplates: () => (/* binding */ showAllTemplates), -/* harmony export */ showAvailableTemplates: () => (/* binding */ showAvailableTemplates), -/* harmony export */ showCustomTemplates: () => (/* binding */ showCustomTemplates), -/* harmony export */ showFavoriteTemplates: () => (/* binding */ showFavoriteTemplates), -/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../templates */ "./js/src/form-templates/templates/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - - - -/** - * Show templates based on selected category. - * - * @param {string} selectedCategory The selected category to display templates for. - * @return {void} - */ -function showSelectedCategory(selectedCategory) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContentChildren = _getElements.bodyContentChildren, - pageTitle = _getElements.pageTitle, - showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, - templatesList = _getElements.templatesList, - templateItems = _getElements.templateItems; - if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS !== selectedCategory) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(bodyContentChildren); - } - (0,___WEBPACK_IMPORTED_MODULE_6__.updatePageTitle)(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(showCreateTemplateModalButton); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(pageTitle); - switch (selectedCategory) { - case core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS: - showAllTemplates(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES: - showAvailableTemplates(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES: - showFavoriteTemplates(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM: - showCustomTemplates(); - break; - default: - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([templatesList].concat(_toConsumableArray(_templates__WEBPACK_IMPORTED_MODULE_5__.categorizedTemplates[selectedCategory]))); - break; - } -} - -/** - * Shows all templates when 'All Templates' is the selected category. - * - * @return {void} - */ -function showAllTemplates() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContentChildren = _getElements2.bodyContentChildren, - pageTitleDivider = _getElements2.pageTitleDivider, - templateItems = _getElements2.templateItems, - twinFeaturedTemplateItems = _getElements2.twinFeaturedTemplateItems, - customTemplatesSection = _getElements2.customTemplatesSection, - emptyState = _getElements2.emptyState, - applicationTemplates = _getElements2.applicationTemplates; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([].concat(_toConsumableArray(bodyContentChildren), _toConsumableArray(templateItems))); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)([pageTitleDivider].concat(_toConsumableArray(twinFeaturedTemplateItems), [customTemplatesSection, emptyState, applicationTemplates])); -} - -/** - * Shows favorite templates. - * - * @return {void} - */ -function showFavoriteTemplates() { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - favoritesCount = _getState.favoritesCount; - if (0 === favoritesCount.total) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState)(); - return; - } - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements3.bodyContent, - templatesList = _getElements3.templatesList, - templateItems = _getElements3.templateItems, - customTemplatesSection = _getElements3.customTemplatesSection, - customTemplatesTitle = _getElements3.customTemplatesTitle, - customTemplatesList = _getElements3.customTemplatesList, - customTemplateItems = _getElements3.customTemplateItems; - - // Clear the view for new content - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); - var elementsToShow = []; - - // Get all favorite items from the DOM and add the elements to show - var favoriteItems = bodyContent.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-favorite-item")); - elementsToShow.push.apply(elementsToShow, _toConsumableArray(favoriteItems)); - - // Add default favorites if available - if (favoritesCount.default > 0) { - elementsToShow.push(templatesList); - } - - // Add custom favorites if available - if (favoritesCount.custom > 0) { - var nonFavCustomTemplates = Array.from(customTemplateItems).filter(function (template) { - return !(0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); - }); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(nonFavCustomTemplates); - elementsToShow.push(customTemplatesSection); - elementsToShow.push(customTemplatesList); - if (0 === favoritesCount.default) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); - } else { - elementsToShow.push(customTemplatesTitle); - } - } - - // Show elements that were selected to be shown - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(elementsToShow); -} - -/** - * Shows custom templates. - * - * @return {void} - */ -function showCustomTemplates() { - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - customCount = _getState2.customCount; - if (0 === customCount) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState)(); - return; - } - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - showCreateTemplateModalButton = _getElements4.showCreateTemplateModalButton, - pageTitleDivider = _getElements4.pageTitleDivider, - customTemplatesSection = _getElements4.customTemplatesSection, - customTemplatesList = _getElements4.customTemplatesList, - customTemplatesTitle = _getElements4.customTemplatesTitle, - customTemplateItems = _getElements4.customTemplateItems; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList].concat(_toConsumableArray(customTemplateItems))); -} - -/** - * Shows available templates. - * - * @return {void} - */ -function showAvailableTemplates() { - var _getState3 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - availableTemplatesCount = _getState3.availableTemplatesCount; - if (0 === availableTemplatesCount) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState)(); - return; - } - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - templatesList = _getElements5.templatesList, - templateItems = _getElements5.templateItems, - availableTemplateItems = _getElements5.availableTemplateItems; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([templatesList].concat(_toConsumableArray(availableTemplateItems))); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); - -/***/ }), - -/***/ "./js/src/form-templates/utils/index.js": -/*!**********************************************!*\ - !*** ./js/src/form-templates/utils/index.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isAllTemplatesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isAllTemplatesCategory), -/* harmony export */ isCustomCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomCategory), -/* harmony export */ isCustomTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomTemplate), -/* harmony export */ isFavoriteTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoriteTemplate), -/* harmony export */ isFavoritesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoritesCategory), -/* harmony export */ isFeaturedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFeaturedTemplate), -/* harmony export */ isLockedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isLockedTemplate) -/* harmony export */ }); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validation */ "./js/src/form-templates/utils/validation.js"); - - -/***/ }), - -/***/ "./js/src/form-templates/utils/validation.js": -/*!***************************************************!*\ - !*** ./js/src/form-templates/utils/validation.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isAllTemplatesCategory: () => (/* binding */ isAllTemplatesCategory), -/* harmony export */ isCustomCategory: () => (/* binding */ isCustomCategory), -/* harmony export */ isCustomTemplate: () => (/* binding */ isCustomTemplate), -/* harmony export */ isFavoriteTemplate: () => (/* binding */ isFavoriteTemplate), -/* harmony export */ isFavoritesCategory: () => (/* binding */ isFavoritesCategory), -/* harmony export */ isFeaturedTemplate: () => (/* binding */ isFeaturedTemplate), -/* harmony export */ isLockedTemplate: () => (/* binding */ isLockedTemplate) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - -/** - * Checks if the category is "All Templates". - * - * @param {string} category The category slug. - * @return {boolean} True if the category is "All Templates", otherwise false. - */ -var isAllTemplatesCategory = function isAllTemplatesCategory(category) { - return core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === category; -}; - -/** - * Checks if the category is "Favorites". - * - * @param {string} category The category slug. - * @return {boolean} True if the category is "Favorites", otherwise false. - */ -var isFavoritesCategory = function isFavoritesCategory(category) { - return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.FAVORITES === category; -}; - -/** - * Checks if the category is "Custom". - * - * @param {string} category The category slug. - * @return {boolean} True if the category is "Custom", otherwise false. - */ -var isCustomCategory = function isCustomCategory(category) { - return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.CUSTOM === category; -}; - -/** - * Checks if a template is a favorite. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is a favorite, otherwise false. - */ -var isFavoriteTemplate = function isFavoriteTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item")) : false; -}; - -/** - * Checks if a template is custom. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is custom, otherwise false. - */ -var isCustomTemplate = function isCustomTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-custom-item")) : false; -}; - -/** - * Checks if a template is featured. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is featured, otherwise false. - */ -var isFeaturedTemplate = function isFeaturedTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? _shared__WEBPACK_IMPORTED_MODULE_2__.FEATURED_TEMPLATES_KEYS.includes(Number(template.dataset.id)) : false; -}; - -/** - * Checks if a template is locked. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is locked, otherwise false. - */ -var isLockedTemplate = function isLockedTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-locked-item")) : false; -}; - -/***/ }), - -/***/ "./node_modules/memize/index.js": -/*!**************************************!*\ - !*** ./node_modules/memize/index.js ***! - \**************************************/ -/***/ ((module) => { - -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {Function} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {F & MemizeMemoizedFunction} Memoized function. - */ -function memize( fn, options ) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized( /* ...args */ ) { - var node = head, - len = arguments.length, - args, i; - - searchCache: while ( node ) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if ( node.args.length !== arguments.length ) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for ( i = 0; i < len; i++ ) { - if ( node.args[ i ] !== arguments[ i ] ) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== head ) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if ( node === tail ) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ ( head ).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply( null, args ), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( head ) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { - tail = /** @type {MemizeCacheNode} */ ( tail ).prev; - /** @type {MemizeCacheNode} */ ( tail ).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function() { - head = null; - tail = null; - size = 0; - }; - - if ( false ) {} - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - -module.exports = memize; - - -/***/ }), - -/***/ "./node_modules/sprintf-js/src/sprintf.js": -/*!************************************************!*\ - !*** ./node_modules/sprintf-js/src/sprintf.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[+-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } - - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line - - -/***/ }), - -/***/ "./node_modules/tannin/index.js": -/*!**************************************!*\ - !*** ./node_modules/tannin/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Tannin) -/* harmony export */ }); -/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); - - -/** - * Tannin constructor options. - * - * @typedef {Object} TanninOptions - * - * @property {string} [contextDelimiter] Joiner in string lookup with context. - * @property {Function} [onMissingKey] Callback to invoke when key missing. - */ - -/** - * Domain metadata. - * - * @typedef {Object} TanninDomainMetadata - * - * @property {string} [domain] Domain name. - * @property {string} [lang] Language code. - * @property {(string|Function)} [plural_forms] Plural forms expression or - * function evaluator. - */ - -/** - * Domain translation pair respectively representing the singular and plural - * translation. - * - * @typedef {[string,string]} TanninTranslation - */ - -/** - * Locale data domain. The key is used as reference for lookup, the value an - * array of two string entries respectively representing the singular and plural - * translation. - * - * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain - */ - -/** - * Jed-formatted locale data. - * - * @see http://messageformat.github.io/Jed/ - * - * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData - */ - -/** - * Default Tannin constructor options. - * - * @type {TanninOptions} - */ -var DEFAULT_OPTIONS = { - contextDelimiter: '\u0004', - onMissingKey: null, -}; - -/** - * Given a specific locale data's config `plural_forms` value, returns the - * expression. - * - * @example - * - * ``` - * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' - * ``` - * - * @param {string} pf Locale data plural forms. - * - * @return {string} Plural forms expression. - */ -function getPluralExpression( pf ) { - var parts, i, part; - - parts = pf.split( ';' ); - - for ( i = 0; i < parts.length; i++ ) { - part = parts[ i ].trim(); - if ( part.indexOf( 'plural=' ) === 0 ) { - return part.substr( 7 ); - } - } -} - -/** - * Tannin constructor. - * - * @class - * - * @param {TanninLocaleData} data Jed-formatted locale data. - * @param {TanninOptions} [options] Tannin options. - */ -function Tannin( data, options ) { - var key; - - /** - * Jed-formatted locale data. - * - * @name Tannin#data - * @type {TanninLocaleData} - */ - this.data = data; - - /** - * Plural forms function cache, keyed by plural forms string. - * - * @name Tannin#pluralForms - * @type {Object} - */ - this.pluralForms = {}; - - /** - * Effective options for instance, including defaults. - * - * @name Tannin#options - * @type {TanninOptions} - */ - this.options = {}; - - for ( key in DEFAULT_OPTIONS ) { - this.options[ key ] = options !== undefined && key in options - ? options[ key ] - : DEFAULT_OPTIONS[ key ]; - } -} - -/** - * Returns the plural form index for the given domain and value. - * - * @param {string} domain Domain on which to calculate plural form. - * @param {number} n Value for which plural form is to be calculated. - * - * @return {number} Plural form index. - */ -Tannin.prototype.getPluralForm = function( domain, n ) { - var getPluralForm = this.pluralForms[ domain ], - config, plural, pf; - - if ( ! getPluralForm ) { - config = this.data[ domain ][ '' ]; - - pf = ( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - if ( typeof pf !== 'function' ) { - plural = getPluralExpression( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); - } - - getPluralForm = this.pluralForms[ domain ] = pf; - } - - return getPluralForm( n ); -}; - -/** - * Translate a string. - * - * @param {string} domain Translation domain. - * @param {string|void} context Context distinguishing terms of the same name. - * @param {string} singular Primary key for translation lookup. - * @param {string=} plural Fallback value used for non-zero plural - * form index. - * @param {number=} n Value to use in calculating plural form. - * - * @return {string} Translated string. - */ -Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { - var index, key, entry; - - if ( n === undefined ) { - // Default to singular. - index = 0; - } else { - // Find index by evaluating plural form for value. - index = this.getPluralForm( domain, n ); - } - - key = singular; - - // If provided, context is prepended to key with delimiter. - if ( context ) { - key = context + this.options.contextDelimiter + singular; - } - - entry = this.data[ domain ][ key ]; - - // Verify not only that entry exists, but that the intended index is within - // range and non-empty. - if ( entry && entry[ index ] ) { - return entry[ index ]; - } - - if ( this.options.onMissingKey ) { - this.options.onMissingKey( singular, domain ); - } - - // If entry not found, fall back to singular vs. plural with zero index - // representing the singular value. - return index === 0 ? singular : plural; -}; - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArray) -/* harmony export */ }); -function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _toConsumableArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(r) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!****************************************!*\ - !*** ./js/src/form-templates/index.js ***! - \****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeFormTemplates */ "./js/src/form-templates/initializeFormTemplates.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { - /** - * Entry point for pre-initialization adjustments to the page state. - * - * @param {Object} state Current state of the page. - */ - wp.hooks.doAction('frmFormTemplates.beforeInitialize', { - getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, - setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState - }); - - // Initialize the form templates - (0,_initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__["default"])(); - - /** - * Entry point for post-initialization custom logic or adjustments to the page state. - * - * @param {Object} state Current state of the page. - */ - wp.hooks.doAction('frmFormTemplates.afterInitialize', { - getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, - setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState - }); - - /** - * Trigger a specific action to interact with the hidden form '#frm-new-template', - * which is used for creating or using a form template. - * - * @param {HTMLElement} $form The jQuery object containing the hidden form element. - */ - wp.hooks.doAction('frm_new_form_modal_form', jQuery('#frm-new-template')); -}); -})(); - -/******/ })() -; -//# sourceMappingURL=form-templates.js.map \ No newline at end of file +/*! For license information please see form-templates.js.LICENSE.txt */ +(()=>{var t={616:t=>{t.exports=function(t,e){var r,n,o=0;function a(){var a,i,c=r,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(i=0;i{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,i,c,l,u,s,f,p,m=1,d=t.length,h="";for(n=0;n=0),c.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,c.width?parseInt(c.width):0);break;case"e":r=c.precision?parseFloat(r).toExponential(c.precision):parseFloat(r).toExponential();break;case"f":r=c.precision?parseFloat(r).toFixed(c.precision):parseFloat(r);break;case"g":r=c.precision?String(Number(r.toPrecision(c.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=c.precision?r.substring(0,c.precision):r;break;case"t":r=String(!!r),r=c.precision?r.substring(0,c.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=c.precision?r.substring(0,c.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=c.precision?r.substring(0,c.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?h+=r:(!o.number.test(c.type)||f&&!c.sign?p="":(p=f?"+":"-",r=r.toString().replace(o.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",s=c.width-(p+r).length,l=c.width&&s>0?u.repeat(s):"",h+=c.align?p+r+l:"0"===u?p+l+r:l+p+r)}return h}(function(t){if(c[t])return c[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=o.text.exec(r)))n.push(e[0]);else if(null!==(e=o.modulo.exec(r)))n.push("%");else{if(null===(e=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var i=[],l=e[2],u=[];if(null===(u=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=o.key_access.exec(l)))i.push(u[1]);else{if(null===(u=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(u[1])}e[2]=i}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return c[t]=n}(t),arguments)}function i(t,e){return a.apply(null,[t].concat(e||[]))}var c=Object.create(null);e.sprintf=a,e.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=i,void 0===(n=function(){return{sprintf:a,vsprintf:i}}.call(e,r,e,t))||(t.exports=n))}()}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.canAccessApplicationDashboard,n=t.applicationsUrl,o=window.frmFormTemplatesVars,a=o.FEATURED_TEMPLATES_KEYS,i=o.upgradeLink,c="frm-form-templates",l="available-templates",u="favorites",s="custom",f="search",p="440px",m="550px",d="frm-page-skeleton",h="all-items";function y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function v(t){for(var e=1;e":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},x=["(","?"],S={")":["("],":":["?","?:"]},T=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};var A={contextDelimiter:"",onMissingKey:null};function P(t,e){var r;for(r in this.data=t,this.pluralForms={},this.options={},A)this.options[r]=void 0!==e&&r in e?e[r]:A[r]}function F(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function B(t){for(var e=1;e=0||w[o]3&&void 0!==arguments[3]?arguments[3]:10,i=t[e];if(M(r)&&q(n))if("function"==typeof o)if("number"==typeof a){var c={callback:o,priority:a,namespace:n};if(i[r]){var l,u=i[r].handlers;for(l=u.length;l>0&&!(a>=u[l-1].priority);l--);l===u.length?u[l]=c:u.splice(l,0,c),i.__current.forEach((function(t){t.name===r&&t.currentIndex>=l&&t.currentIndex++}))}else i[r]={handlers:[c],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,n,o,a)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},R=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n,o){var a=t[e];if(M(n)&&(r||q(o))){if(!a[n])return 0;var i=0;if(r)i=a[n].handlers.length,a[n]={runs:a[n].runs,handlers:[]};else for(var c=a[n].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),i++,a.__current.forEach((function(e){e.name===n&&e.currentIndex>=t&&e.currentIndex--})))},u=c.length-1;u>=0;u--)l(u);return"hookRemoved"!==n&&t.doAction("hookRemoved",n,o),i}}},z=function(t,e){return function(r,n){var o=t[e];return void 0!==n?r in o&&o[r].handlers.some((function(t){return t.namespace===n})):r in o}},Y=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=t[e];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var a=o[n].handlers,i=arguments.length,c=new Array(i>1?i-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";n.data[e]=B(B(B({},D),n.data[e]),t),n.data[e][""]=B(B({},D[""]),n.data[e][""])},c=function(t,e){i(t,e),a()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return n.data[t]||i(void 0,t),n.dcnpgettext(t,e,r,o,a)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},s=function(t,e,n){var o=l(n,e,t);return r?(o=r.applyFilters("i18n.gettext_with_context",o,t,e,n),r.applyFilters("i18n.gettext_with_context_"+u(n),o,t,e,n)):o};if(r){var f=function(t){N.test(t)&&a()};r.addAction("hookAdded","core/i18n",f),r.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[t]},setLocaleData:c,resetLocaleData:function(t,e){n.data={},n.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var n=l(e,void 0,t);return r?(n=r.applyFilters("i18n.gettext",n,t,e),r.applyFilters("i18n.gettext_"+u(e),n,t,e)):n},_x:s,_n:function(t,e,n,o){var a=l(o,void 0,t,e,n);return r?(a=r.applyFilters("i18n.ngettext",a,t,e,n,o),r.applyFilters("i18n.ngettext_"+u(o),a,t,e,n,o)):a},_nx:function(t,e,n,o,a){var i=l(a,o,t,e,n);return r?(i=r.applyFilters("i18n.ngettext_with_context",i,t,e,n,o,a),r.applyFilters("i18n.ngettext_with_context_"+u(a),i,t,e,n,o,a)):i},isRTL:function(){return"rtl"===s("ltr","text direction")},hasTranslation:function(t,e,o){var a,i,c=e?e+""+t:t,l=!(null===(a=n.data)||void 0===a||null===(i=a[null!=o?o:"default"])||void 0===i||!i[c]);return r&&(l=r.applyFilters("i18n.has_translation",l,t,e,o),l=r.applyFilters("i18n.has_translation_"+u(o),l,t,e,o)),l}}}(0,0,V));Z.getLocaleData.bind(Z),Z.setLocaleData.bind(Z),Z.resetLocaleData.bind(Z),Z.subscribe.bind(Z);var J=Z.__.bind(Z),X=(Z._x.bind(Z),Z._n.bind(Z),Z._nx.bind(Z),Z.isRTL.bind(Z),Z.hasTranslation.bind(Z),window.frmGlobal),W=X.url,Q=(X.nonce,"frm_hidden"),tt="frm-hide-js",et="frm-current",rt=window.frmDom,nt=rt.tag,ot=rt.div,at=rt.a,it=rt.img;function ct(t){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function lt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ut(t,e,r){return(e=function(t){var e=function(t){if("object"!=ct(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=ct(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ct(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var st,ft=document.getElementById("post-body-content"),pt=document.getElementById("".concat(d,"-sidebar")),mt=((st=at({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),ot({id:"".concat(d,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(Q),children:[it({src:"".concat(W,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),ot({className:"frmcenter",children:[nt("h2",{className:"".concat(d,"-title frm-mb-0")}),nt("p",{className:"".concat(d,"-text frm-mb-0")})]}),st]}));null==ft||ft.appendChild(mt);var dt=function(){var t=document.querySelector("#".concat(d,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(d,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(d,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),ht=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==b(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==b(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=v(v({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==xt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==xt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=bt(bt({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({notEmptySearchText:!1,selectedCategory:h,selectedCategoryEl:St}),Et=Tt.getState,_t=Tt.getSingleState,Ot=Tt.setState,Lt=Tt.setSingleState;function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function kt(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function fe(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var pe=null;function me(){var t;return t=se().mark((function t(){var e,r,n;return se().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=window.frmAdminBuild,r=e.initModal,n=e.offsetModalY,(pe=r("#frm-form-templates-modal",p))&&n(pe,"103px"),wp.hooks.addAction("frmAdmin.beforeOpenConfirmModal","frmFormTemplates",(function(t){var e=t.$info;e.dialog("option","width",m),n(e,"103px")}));case 4:case"end":return t.stop()}}),t)})),me=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){fe(a,n,o,i,c,"next",t)}function c(t){fe(a,n,o,i,c,"throw",t)}i(void 0)}))},me.apply(this,arguments)}function de(){return pe}function he(t){var e=yt().pageTitleText,r=t||_t("selectedCategoryEl").querySelector(".".concat(d,"-cat-text")).textContent;e.textContent=r}var ye=function(t){return!!Nt(t)&&t.classList.contains("".concat(c,"-favorite-item"))},ve=function(t){return!!Nt(t)&&t.classList.contains("".concat(c,"-custom-item"))},ge={},be=function(){var t=yt(),e=t.createFormButton,r=t.newTemplateForm,n=t.newTemplateNameInput,o=t.newTemplateActionInput,a=window.frmAdminBuild.installNewForm;n.value="",o.value="frm_install_form",a(r,"frm_install_form",e)};var we=".".concat(c,"-item-favorite-button"),xe="".concat(we," use"),Se="#frm_heart_solid_icon",Te="#frm_heart_icon",Ee=function(t){var e,r=t.currentTarget,n=yt(),o=n.templatesList,i=n.featuredTemplatesList,l=n.favoritesCategoryCountEl,s=n.customTemplatesTitle,f=r.closest(".frm-card-item"),p=f.dataset.id,m=ye(f),d=ve(f),h=function(t){return!!Nt(t)&&a.includes(Number(t.dataset.id))}(f),y=null;if(f.classList.toggle("".concat(c,"-favorite-item"),!m),h){var v=f.closest("#".concat(c,"-list"))?i:o;v&&(y=v.querySelector('.frm-card-item[data-id="'.concat(p,'"]'))).classList.toggle("".concat(c,"-favorite-item"),!m)}var g,b=Et(),w=b.selectedCategory,x=b.favoritesCount,S=m?"remove":"add",T=f.querySelector(xe),E=null===(e=y)||void 0===e?void 0:e.querySelector(xe);"add"===S?(++x.total,d?++x.custom:++x.default,T.setAttribute("xlink:href",Se),null==E||E.setAttribute("xlink:href",Se)):(--x.total,d?--x.custom:--x.default,T.setAttribute("xlink:href",Te),null==E||E.setAttribute("xlink:href",Te)),l.textContent=x.total,Lt("favoritesCount",x),u===w&&(0===x.total&&qe(),Rt(f),0===x.default&&Rt(o),0!==x.custom&&0!==x.default||Rt(s)),g=function(){return t=p,e=S,r=d,n=new FormData,o=frmDom.ajax.doJsonPost,n.append("template_id",t),n.append("operation",e),n.append("is_custom_template",r),o("add_or_remove_favorite_template",n);var t,e,r,n,o},At=At.then(g).catch(g)};var _e=function(t){var e=t.currentTarget,r=e.closest(".frm-card-item"),n=function(t){return!!Nt(t)&&t.classList.contains("".concat(c,"-locked-item"))}(r),o=ve(r);if(n||!o)if(t.preventDefault(),Lt("selectedTemplate",r),n)!function(t){var e=t.dataset.requiredPlan;switch(e){case"basic":case"plus":case"business":case"elite":Ue(e,t);break;case"renew":He()}}(r);else{var a=yt(),i=a.newTemplateForm,l=a.newTemplateNameInput,u=a.newTemplateDescriptionInput,s=a.newTemplateLinkInput,f=a.newTemplateActionInput,p=window.frmAdminBuild.installNewForm,m=r.querySelector(".frm-form-template-name").textContent.trim(),d=r.querySelector(".frm-form-templates-item-description").textContent.trim(),h="frm_install_template";l.value=m,u.value=d,f.value=h,s.value=e.href,p(i,h,e)}};var Oe=window.frmDom.search.init;function Le(t,e){var r=t.foundSomething,n=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=Et(),a=yt().allItemsCategory;Lt("notEmptySearchText",n),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=yt(),r=e.bodyContent,n=e.bodyContentChildren,o=e.pageTitle,a=e.templatesList,i=e.applicationTemplates,c=new Ct(r);t&&_t("selectedCategoryEl").classList.remove(et),Mt(n),he(J("Search Result","formidable")),qt([o,a,i]),c.fadeIn()}(n),n&&Lt("selectedCategory","")),function(t){if(t){var e,r=yt().emptyState;if(e=r,"none"!==window.getComputedStyle(e).getPropertyValue("display")){var n=yt().pageTitle;Rt(r),Gt(n)}var o=yt(),a=o.templatesList,i=o.applicationTemplates,c=o.applicationTemplatesTitle,l=o.applicationTemplatesList;qt([a,i,c]),0===a.offsetHeight&&Mt([a,c]),0===(null==l?void 0:l.offsetHeight)&&Rt(i)}else!function(){var t,e=Et().notEmptySearchText,r=yt(),n=r.pageTitle,o=r.emptyState,a=r.emptyStateButton,i=r.applicationTemplates;if(f!==(null===(t=o.dataset)||void 0===t?void 0:t.view)){o.setAttribute("data-view",f);var c=yt(),l=c.emptyStateTitle,u=c.emptyStateText;l.textContent=J("No templates found","formidable"),u.textContent=J("Sorry, we didn't find any templates that match your criteria.","formidable"),a.textContent=J("Start from Scratch","formidable"),Mt([n,i]),qt([o,a])}else e?(Gt(o),Mt([n,i])):(Rt(o),o.removeAttribute("data-view"))}()}(r)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}var je=function(){var t,e=yt().emptyState;f===(null===(t=e.dataset)||void 0===t?void 0:t.view)&&(Lt("selectedCategory",""),$t(),yt().searchInput.focus())};var ke=function(){var t=Et().selectedCategory;s===t&&Ke()},Ie=function(){var t=yt().createTemplateFormsDropdown,e=t.value;if(e&&"no-forms"!==e){Ce(!1);var r=t.options[t.selectedIndex],n=r.dataset.description.trim(),o=r.dataset.name.trim(),a=" ".concat(J("Template","formidable"));o.endsWith(a)||(o+=a);var i=yt(),c=i.createTemplateName,l=i.createTemplateDescription;c.value=o,l.value=n}else Ce(!0)},Ce=function(t){var e=yt(),r=e.createTemplateName,n=e.createTemplateDescription,o=e.createTemplateButton;[r,n].forEach((function(e){e.disabled=t,t&&(e.value="")})),o.classList.toggle("disabled",t)},Ae=function(){var t=window.frmAdminBuild.installNewForm,e="frm_create_template",r=yt(),n=r.newTemplateForm,o=r.newTemplateActionInput,a=r.newTemplateNameInput,i=r.newTemplateDescriptionInput,c=r.newTemplateLinkInput,l=r.createTemplateName,u=r.createTemplateDescription,s=r.createTemplateFormsDropdown,f=r.createTemplateButton;o.value=e,a.value=l.value.trim(),i.value=u.value.trim(),c.value=s.value,t(n,e,f)};var Pe=function(t){if(!t.target.closest("a")){var e=t.currentTarget;window.location.href=e.dataset.href}};function Fe(){var t,e,r,n;yt().categoryItems.forEach((function(t){Ft(t,zt),t.addEventListener("keydown",Yt)})),wp.hooks.addAction("frmPage.onCategoryClick","frmFormTemplates",(function(t){!function(t){var e=yt(),r=e.bodyContentChildren,n=e.pageTitle,o=e.showCreateTemplateModalButton,a=e.templatesList,i=e.templateItems;switch(h!==t&&Mt(r),he(),Rt(o),Gt(n),t){case h:!function(){var t=yt(),e=t.bodyContentChildren,r=t.pageTitleDivider,n=t.templateItems,o=t.twinFeaturedTemplateItems,a=t.customTemplatesSection,i=t.emptyState,c=t.applicationTemplates;qt([].concat(De(e),De(n))),Mt([r].concat(De(o),[a,i,c]))}();break;case l:!function(){if(0!==Et().availableTemplatesCount){var t=yt(),e=t.templatesList,r=t.templateItems,n=t.availableTemplateItems;Mt(r),qt([e].concat(De(n)))}else!function(){var t=yt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",l);var o=yt(),a=o.emptyStateTitle,i=o.emptyStateText,c=Et().extraTemplatesCount;a.textContent=J("No Templates Available","formidable"),i.textContent=function(t){try{for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0&&s.push(n),t.custom>0){var p=Array.from(u).filter((function(t){return!ye(t)}));Mt(p),s.push(a),s.push(l),0===t.default?Rt(i):s.push(i)}qt(s)}else qe()}();break;case s:!function(){if(0!==Et().customCount){var t=yt(),e=t.showCreateTemplateModalButton,r=t.pageTitleDivider,n=t.customTemplatesSection,o=t.customTemplatesList,a=t.customTemplatesTitle,i=t.customTemplateItems;Rt(a),qt([e,r,n,o].concat(De(i)))}else!function(){var t=yt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",s);var o=yt(),a=o.emptyStateTitle,i=o.emptyStateText;a.textContent=J("You currently have no templates.","formidable"),i.textContent=J("You haven't created any form templates. Begin now to simplify your workflow and save time.","formidable"),n.textContent=J("Create Template","formidable"),Rt(e),qt([r,n])}()}();break;default:Mt(i),qt([a].concat(De(ge[t])))}}(t)})),n=yt().createFormButton,Ft(n,be),document.querySelectorAll(we).forEach((function(t){return Ft(t,Ee)})),document.querySelectorAll(".".concat(c,"-use-template-button")).forEach((function(t){return t.addEventListener("click",_e)})),t=yt(),e=t.searchInput,r=t.emptyStateButton,Oe(e,"frm-card-item",{handleSearchResult:Le}),Ft(r,je),function(){var t=yt(),e=t.createTemplateFormsDropdown,r=t.createTemplateButton,n=t.showCreateTemplateModalButton,o=t.emptyStateButton;Ft(n,ke),Ft(o,ke),e.addEventListener("change",Ie),Ft(r,Ae)}()}function Be(t){var e,r;(function(t){if(t&&t.length){var e=t.map((function(t){return function(t){var e=t.name,r=t.key,o=t.hasLiteThumbnail,a=t.isWebp,i=o?a?"".concat(ne,"/").concat(r,".webp"):"".concat(ne,"/").concat(r,".png"):"".concat(ne,"/placeholder.svg");return Wt("li",{className:"frm-card-item",data:{href:"".concat(n,"&triggerViewApplicationModal=1&template=").concat(r),"frm-search-text":e.toLowerCase()},children:[Qt({className:"".concat(c,"-item-icon"),child:re({src:i})}),Qt({className:"".concat(c,"-item-body"),children:[te({text:J("Ready Made Solution","formidable"),className:"frm-meta-tag frm-orange-tag frm-text-xs"}),Wt("h3",{text:e,className:"frm-text-sm frm-font-medium frm-m-0"}),ee({text:J("See all applications","formidable"),className:"frm-text-xs frm-font-semibold",href:n})]})]})}(t)}));Jt=Qt({id:"".concat(c,"-applications"),className:Q,children:[Wt("h2",{text:J("Application Templates"),className:"frm-text-sm frm-mb-sm"}),Wt("ul",{className:"".concat(c,"-list frm-list-grid-layout"),children:e})]})}})(t.templates),(e=yt()).applicationTemplates||void 0===Jt||(e.bodyContent.appendChild(Jt),vt({applicationTemplates:Jt,applicationTemplatesTitle:Jt.querySelector("h2"),applicationTemplatesList:Jt.querySelector(".".concat(c,"-list")),applicationTemplateItems:Jt.querySelectorAll(".frm-card-item")})),void 0!==(r=yt().applicationTemplateItems)&&r.forEach((function(t){t.addEventListener("click",Pe)}))}function De(t){return function(t){if(Array.isArray(t))return Ne(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Ne(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ne(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ne(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Re(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function ze(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){Re(a,n,o,i,c,"next",t)}function c(t){Re(a,n,o,i,c,"throw",t)}i(void 0)}))}}var Ye=function(t){return ze(Ge().mark((function e(){var r,n,o,a,i,c,l=arguments;return Ge().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=de()){e.next=3;break}return e.abrupt("return");case 3:for(n=yt(),o=n.modalItems,Mt(o),r.dialog("option","width",p),a=l.length,i=new Array(a),c=0;c use").setAttribute("xlink:href",n?"#frm_checkmark_icon":"#frm_close_icon")}));var u=e.dataset.slug?"-".concat(e.dataset.slug):"";l.href=i+u,Gt(o)})),He=Ye((function(){var t=yt().renewAccountModal;Gt(t)})),Ke=Ye((function(){de().dialog("option","width",m);var t=yt().createTemplateModal;Gt(t)}));const Ve=function(){e&&(0,frmDom.ajax.doJsonFetch)("get_applications_data&view=templates").then(Be),function(){me.apply(this,arguments)}(),yt().templateItems.forEach((function(t){t.getAttribute("data-categories").split(",").forEach((function(e){ge[e]||(ge[e]=[]),ge[e].push(t)}))})),function(){var t=yt(),e=t.sidebar,r=t.searchInput,n=t.bodyContent,o=t.twinFeaturedTemplateItems,a=t.availableTemplatesCategory,i=new Ct(n);if(r.value="",Mt(o),a){var c=Et().availableTemplatesCount;a.querySelector(".".concat(d,"-cat-count")).textContent=c}var l,u=yt().extraTemplateCountElements,s=Et().extraTemplatesCount;u.forEach((function(t){return t.textContent=s})),n.classList.remove(tt),e.classList.remove(tt),i.fadeIn(),Gt(e),Dt.has("return_page")&&(l=yt().headerCancelButton,new Ct(l).fadeIn())}(),Fe()};var Ze;Ze=function(){wp.hooks.doAction("frmFormTemplates.beforeInitialize",{getState:Et,setState:Ot}),Ve(),wp.hooks.doAction("frmFormTemplates.afterInitialize",{getState:Et,setState:Ot}),wp.hooks.doAction("frm_new_form_modal_form",jQuery("#frm-new-template"))},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Ze):Ze())})()})(); \ No newline at end of file diff --git a/js/formidable-settings-components.js b/js/formidable-settings-components.js index 71777700cc..b7f5c4c3ff 100644 --- a/js/formidable-settings-components.js +++ b/js/formidable-settings-components.js @@ -1,2741 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./js/src/admin/components/dependent-updater-component.js": -/*!****************************************************************!*\ - !*** ./js/src/admin/components/dependent-updater-component.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. - * The names of the elements that will be updated are specified using the "will-change" attribute. - * It is primarily used in components from Style/Quick Settings. - * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. - */ -var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { - /** - * Creates an instance of frmStyleDependentUpdaterComponent. - * @param {HTMLElement} component - The component element. - */ - function frmStyleDependentUpdaterComponent(component) { - _classCallCheck(this, frmStyleDependentUpdaterComponent); - this.component = component; - try { - var willChangeData = JSON.parse(this.component.dataset.willChange); - this.data = { - propagateInputs: this.initPropagationList(willChangeData), - changeEvent: new Event('change', { - bubbles: true - }) - }; - } catch (error) { - console.error('Error parsing JSON data from "will-change" attribute.', error); - } - } - - /** - * Initializes the list of inputs to propagate changes to. - * The selection is made by provided input's names list in "will-change" attribute. - * @param {string[]} inputNames - The names of the inputs to propagate changes to. - * @return {HTMLElement[]} - The list of inputs to propagate changes to. - */ - return _createClass(frmStyleDependentUpdaterComponent, [{ - key: "initPropagationList", - value: function initPropagationList(inputNames) { - var list = []; - inputNames.forEach(function (name) { - var input = document.querySelector("input[name=\"".concat(name, "\"]")); - if (null !== input) { - list.push(input); - } - }); - return list; - } - - /** - * Updates all dependent elements with the given value. - * @param {string} value - The value to update the dependent elements with. - */ - }, { - key: "updateAllDependentElements", - value: function updateAllDependentElements(value) { - this.data.propagateInputs.forEach(function (input) { - input.value = value; - }); - this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/components/class-tabs-navigator.js": -/*!***************************************************!*\ - !*** ./js/src/components/class-tabs-navigator.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmTabsNavigator = /*#__PURE__*/function () { - function frmTabsNavigator(wrapper) { - _classCallCheck(this, frmTabsNavigator); - if ('undefined' === typeof wrapper) { - return; - } - this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); - if (null === this.wrapper) { - return; - } - this.flexboxSlidesGap = '16px'; - this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; - this.resizeObserver = null; - this.init(); - } - return _createClass(frmTabsNavigator, [{ - key: "init", - value: function init() { - var _this = this; - if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { - return; - } - this.initDefaultSlideTrackerWidth(); - this.navs.forEach(function (nav, index) { - nav.addEventListener('click', function (event) { - return _this.onNavClick(event, index); - }); - }); - this.setupScrollbarObserver(); - // Cleanup observers when page unloads to prevent memory leaks - window.addEventListener('beforeunload', this.cleanupObservers); - } - }, { - key: "onNavClick", - value: function onNavClick(event, index) { - var navItem = event.currentTarget; - event.preventDefault(); - this.removeActiveClassnameFromNavs(); - navItem.classList.add('frm-active'); - this.initSlideTrackUnderline(navItem, index); - this.changeSlide(index); - - // Handle special case for frm_insert_fields_tab - var navLink = navItem.querySelector('a'); - if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { - var _window$frmAdminBuild, _window$frmAdminBuild2; - (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); - } - } - }, { - key: "initDefaultSlideTrackerWidth", - value: function initDefaultSlideTrackerWidth() { - if (!this.slideTrackLine.dataset.initialWidth) { - return; - } - this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); - } - }, { - key: "initSlideTrackUnderline", - value: function initSlideTrackUnderline(nav, index) { - this.slideTrackLine.classList.remove('frm-first', 'frm-last'); - var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { - return nav.classList.contains('frm-active'); - }); - this.positionUnderlineIndicator(activeNav); - } - - /** - * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. - * Automatically repositions the underline indicator when layout changes occur. - */ - }, { - key: "setupScrollbarObserver", - value: function setupScrollbarObserver() { - var _this2 = this; - var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); - if (!scrollbarWrapper || !('ResizeObserver' in window)) { - return; - } - this.resizeObserver = new ResizeObserver(function () { - var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); - if (activeNav) { - _this2.positionUnderlineIndicator(activeNav); - } - }); - this.resizeObserver.observe(scrollbarWrapper); - } - - /** - * Cleans up observers to prevent memory leaks. - */ - }, { - key: "cleanupObservers", - value: function cleanupObservers() { - if (this.resizeObserver) { - this.resizeObserver.disconnect(); - this.resizeObserver = null; - } - } - - /** - * Positions the underline indicator based on the active navigation element. - * - * @param {HTMLElement} activeNav The active navigation element to position the underline under - */ - }, { - key: "positionUnderlineIndicator", - value: function positionUnderlineIndicator(activeNav) { - var _this3 = this; - requestAnimationFrame(function () { - var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; - _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); - _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; - }); - } - }, { - key: "changeSlide", - value: function changeSlide(index) { - this.removeActiveClassnameFromSlides(); - var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); - if ('0px' !== translate) { - this.slideTrack.style.transform = "translateX(".concat(translate, ")"); - } else { - this.slideTrack.style.removeProperty('transform'); - } - if (index in this.slides) { - this.slides[index].classList.add('frm-active'); - } - } - }, { - key: "removeActiveClassnameFromSlides", - value: function removeActiveClassnameFromSlides() { - this.slides.forEach(function (slide) { - return slide.classList.remove('frm-active'); - }); - } - }, { - key: "removeActiveClassnameFromNavs", - value: function removeActiveClassnameFromNavs() { - this.navs.forEach(function (nav) { - return nav.classList.remove('frm-active'); - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./js/src/settings-components/components/index.js": -/*!********************************************************!*\ - !*** ./js/src/settings-components/components/index.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmRadioComponent: () => (/* reexport safe */ _radio_component__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ frmSliderComponent: () => (/* reexport safe */ _slider_component__WEBPACK_IMPORTED_MODULE_1__["default"]), -/* harmony export */ frmTabsComponent: () => (/* reexport safe */ _tabs_component__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group__WEBPACK_IMPORTED_MODULE_4__.initToggleGroupComponents), -/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_3__.initTokenInputFields), -/* harmony export */ setupUnitInputHandlers: () => (/* reexport safe */ _unit_input__WEBPACK_IMPORTED_MODULE_5__.setupUnitInputHandlers) -/* harmony export */ }); -/* harmony import */ var _radio_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-component */ "./js/src/settings-components/components/radio-component.js"); -/* harmony import */ var _slider_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slider-component */ "./js/src/settings-components/components/slider-component.js"); -/* harmony import */ var _tabs_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabs-component */ "./js/src/settings-components/components/tabs-component.js"); -/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/index.js"); -/* harmony import */ var _toggle_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toggle-group */ "./js/src/settings-components/components/toggle-group/index.js"); -/* harmony import */ var _unit_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./unit-input */ "./js/src/settings-components/components/unit-input.js"); - - - - - - - -/***/ }), - -/***/ "./js/src/settings-components/components/radio-component.js": -/*!******************************************************************!*\ - !*** ./js/src/settings-components/components/radio-component.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmRadioComponent) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Internal dependencies - */ - - - -/** - * Represents a radio component. - * @class - */ -var frmRadioComponent = /*#__PURE__*/function () { - function frmRadioComponent() { - var _this = this; - _classCallCheck(this, frmRadioComponent); - this.radioElements = document.querySelectorAll('.frm-style-component.frm-radio-component'); - this.observers = new Map(); - if (0 < this.radioElements.length) { - this.init(); - } - - /** - * Handles the addition of new fields. - * - * @param {Event} event The frm_added_field event. - * @param {HTMLElement} event.frmField The added field object being destructured from the event. - */ - document.addEventListener('frm_added_field', function (_ref) { - var frmField = _ref.frmField; - return _this.discoverAndInitFieldRadios(frmField.dataset.fid); - }); - - /** - * Handles the addition of new fields via AJAX. - * - * @param {Event} event The frm_ajax_loaded_field event. - * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. - */ - document.addEventListener('frm_ajax_loaded_field', function (_ref2) { - var frmFields = _ref2.frmFields; - return frmFields.forEach(function (field) { - return _this.discoverAndInitFieldRadios(field.id); - }); - }); - - // Cleanup observers when page unloads to prevent memory leaks - window.addEventListener('beforeunload', function () { - return _this.cleanupObservers(); - }); - } - - /** - * Initializes the radio component. - */ - return _createClass(frmRadioComponent, [{ - key: "init", - value: function init() { - this.initRadio(); - this.initTrackerOnAccordionClick(); - } - - /** - * Discovers and initializes radio components for a specific field. - * - * @param {string|number} fieldId The unique identifier of the field whose radio components should be discovered and initialized - * @throws {Error} Throws an error if the field container is not found in the DOM - */ - }, { - key: "discoverAndInitFieldRadios", - value: function discoverAndInitFieldRadios(fieldId) { - var fieldContainer = document.getElementById("frm-single-settings-".concat(fieldId)); - if (!fieldContainer) { - throw new Error("Field container not found for field ID: ".concat(fieldId)); - } - this.radioElements = fieldContainer.querySelectorAll('.frm-style-component.frm-radio-component'); - this.initRadio(); - } - - /** - * Initializes the radio component. - */ - }, { - key: "initRadio", - value: function initRadio() { - var _this2 = this; - this.radioElements.forEach(function (element) { - _this2.initOnRadioChange(element); - _this2.initVisibilityObserver(element); - }); - } - }, { - key: "initTrackerOnAccordionClick", - value: function initTrackerOnAccordionClick() { - var _this3 = this; - var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); - accordionitems.forEach(function (accordionitem) { - accordionitem.addEventListener('click', function (event) { - var wrapper = event.target.closest('.accordion-section'); - var radioButtons = wrapper.querySelectorAll('.frm-style-component.frm-radio-component input[type="radio"]:checked'); - radioButtons.forEach(function (radio) { - setTimeout(function () { - return _this3.onRadioChange(radio); - }, 200); - }); - }); - }); - } - - /** - * Initializes the onRadioChange event for the given wrapper. - * @param {HTMLElement} radioElement - The radio element. - */ - }, { - key: "initOnRadioChange", - value: function initOnRadioChange(radioElement) { - var _this4 = this; - radioElement.querySelectorAll('input[type="radio"]').forEach(function (radio) { - if (radio.checked) { - _this4.onRadioChange(radio); - } - radio.addEventListener('change', function (event) { - _this4.onRadioChange(event.target); - }); - }); - } - - /** - * Handles the onRadioChange event for the given wrapper. - * @param {HTMLElement} target - The active radio button. - */ - }, { - key: "onRadioChange", - value: function onRadioChange(target) { - var wrapper = target.closest('.frm-style-component.frm-radio-component'); - var activeItem = wrapper.querySelector('input[type="radio"]:checked + label'); - if (null === activeItem) { - return; - } - this.moveTracker(activeItem, wrapper); - this.hideExtraElements(target); - this.maybeShowExtraElements(target); - } - - /** - * Display additional elements related to the selected radio option. - * @param {HTMLElement} radio - The radio button element. - */ - }, { - key: "maybeShowExtraElements", - value: function maybeShowExtraElements(radio) { - var elementAttr = radio.getAttribute('data-frm-show-element'); - if (null === elementAttr) { - return; - } - var elements = document.querySelectorAll("div[data-frm-element=\"".concat(elementAttr, "\"]")); - if (0 === elements.length) { - return; - } - elements.forEach(function (element) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(element); - element.classList.add('frm-element-is-visible'); - }); - } - - /** - * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown. - * - * @param {HTMLElement} element The radio component element - * @return {void} - */ - }, { - key: "initVisibilityObserver", - value: function initVisibilityObserver(element) { - var _this5 = this; - if (this.observers.has(element)) { - this.observers.get(element).disconnect(); - } - var observer = new MutationObserver(function () { - // Check if element is now visible - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.isVisible)(element)) { - var radio = element.querySelector('input[type="radio"]:checked'); - if (radio) { - _this5.onRadioChange(radio); - } - } - }); - this.observers.set(element, observer); - - // Observe for attribute changes on the component and its ancestors - observer.observe(element, { - attributes: true, - attributeFilter: ['class', 'style'] - }); - - // Also observe parent elements up to a reasonable depth - var parent = element.parentElement; - for (var i = 0; i < 7 && parent; i++) { - observer.observe(parent, { - attributes: true, - attributeFilter: ['class', 'style'] - }); - parent = parent.parentElement; - } - } - - /** - * Cleanup all observers to prevent memory leaks. - */ - }, { - key: "cleanupObservers", - value: function cleanupObservers() { - this.observers.forEach(function (observer) { - observer.disconnect(); - }); - this.observers.clear(); - } - - /** - * Hide the possible opepend extra elements. - */ - }, { - key: "hideExtraElements", - value: function hideExtraElements() { - var elements = document.querySelectorAll('.frm-element-is-visible'); - if (0 === elements.length) { - return; - } - elements.forEach(function (element) { - element.classList.remove('frm-element-is-visible'); - element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(element); - }); - } - - /** - * Moves the tracker to the active item. - * @param {HTMLElement} activeItem - The active item element. - * @param {HTMLElement} wrapper - The wrapper element. - */ - }, { - key: "moveTracker", - value: function moveTracker(activeItem, wrapper) { - var offset = activeItem.offsetLeft; - var width = activeItem.offsetWidth; - var tracker = wrapper.querySelector('.frm-radio-active-tracker'); - tracker.style.left = 0; - tracker.style.width = "".concat(width, "px"); - tracker.style.transform = "translateX(".concat(offset, "px)"); - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/settings-components/components/slider-component.js": -/*!*******************************************************************!*\ - !*** ./js/src/settings-components/components/slider-component.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmSliderComponent) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../admin/components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Internal dependencies - */ - - - -/** - * Represents a slider component. - * @class frmSliderComponent - */ -var frmSliderComponent = /*#__PURE__*/function () { - function frmSliderComponent() { - var _this = this; - _classCallCheck(this, frmSliderComponent); - this.sliderElements = document.querySelectorAll('.frm-slider-component'); - if (0 === this.sliderElements.length) { - return; - } - - // The slider bullet point width in pixels. Used in value calculation on drag event. - this.sliderBulletWidth = 16; - this.sliderMarginRight = 5; - this.eventsChange = []; - var debounce = frmDom.util.debounce; - this.valueChangeDebouncer = debounce(function (index) { - return _this.triggerValueChange(index); - }, 25); - this.initOptions(); - this.init(); - } - - /** - * Initializes the options for the slider component. - */ - return _createClass(frmSliderComponent, [{ - key: "initOptions", - value: function initOptions() { - var _this2 = this; - this.options = []; - this.sliderElements.forEach(function (element, index) { - var parentWrapper = element.classList.contains('frm-has-multiple-values') ? element.closest('.frm-style-component') : element; - _this2.options.push({ - dragging: false, - startX: 0, - translateX: 0, - maxValue: parseInt(element.dataset.maxValue, 10), - element: element, - index: index, - value: 0, - dependentUpdater: parentWrapper.classList.contains('frm-style-dependent-updater-component') ? new _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](parentWrapper) : null - }); - }); - } - - /** - * Initializes the slider component. - */ - }, { - key: "init", - value: function init() { - this.initSlidersPosition(); - this.initDraggable(); - } - - /** - * Initializes the draggable functionality for the slider component. - */ - }, { - key: "initDraggable", - value: function initDraggable() { - var _this3 = this; - this.sliderElements.forEach(function (element, index) { - _this3.eventsChange[index] = new Event('change', { - bubbles: true, - cancelable: true - }); - var draggableBullet = element.querySelector('.frm-slider-bullet'); - var valueInput = element.querySelector('.frm-slider-value input[type="text"]'); - valueInput.addEventListener('change', function (event) { - var unit = element.querySelector('select').value; - if (_this3.getMaxValue(unit, index) < parseInt(event.target.value, 10)) { - return; - } - _this3.initSliderWidth(element); - _this3.options[index].fullValue = _this3.updateValue(element, valueInput.value + unit); - _this3.triggerValueChange(index); - }); - _this3.expandSliderGroup(element); - _this3.updateOnUnitChange(element, valueInput, index); - _this3.changeSliderPositionOnClick(element, valueInput, index); - draggableBullet.addEventListener('mousedown', function (event) { - event.preventDefault(); - event.stopPropagation(); - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.enableDragging(event, index); - }); - draggableBullet.addEventListener('mousemove', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.moveTracker(event, index); - }); - draggableBullet.addEventListener('mouseup', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.disableDragging(index, event); - }); - draggableBullet.addEventListener('mouseleave', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.disableDragging(index, event); - }); - }); - } - }, { - key: "expandSliderGroup", - value: function expandSliderGroup(element) { - var svgIcon = element.querySelector('.frmsvg'); - if ('undefined' === typeof element.dataset.displaySliders || null === svgIcon) { - return; - } - var sliderGroupItems = this.getSliderGroupItems(element); - svgIcon.addEventListener('click', function () { - sliderGroupItems.forEach(function (item) { - item.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); - }); - }); - } - }, { - key: "updateOnUnitChange", - value: function updateOnUnitChange(element, valueInput, index) { - var _this4 = this; - element.querySelector('select').addEventListener('change', function (event) { - var unit = event.target.value.toLowerCase(); - if ('' === unit) { - element.classList.add('frm-disabled', 'frm-empty'); - return; - } - if ('auto' === unit) { - element.classList.add('frm-disabled'); - _this4.updateValue(element, 'auto'); - _this4.triggerValueChange(index); - return; - } - element.classList.remove('frm-disabled', 'frm-empty'); - _this4.options[index].fullValue = valueInput.value + unit; - _this4.updateValue(element, _this4.options[index].fullValue); - _this4.triggerValueChange(index); - }); - } - }, { - key: "changeSliderPositionOnClick", - value: function changeSliderPositionOnClick(element, valueInput, index) { - var _this5 = this; - var frmSlider = element.querySelector('.frm-slider'); - var customEvent = new Event('change', { - bubbles: true, - cancelable: true - }); - frmSlider.addEventListener('click', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - event.preventDefault(); - event.stopPropagation(); - if (!event.target.classList.contains('frm-slider') && !event.target.classList.contains('frm-slider-active-track')) { - return; - } - var sliderWidth = frmSlider.offsetWidth - _this5.sliderBulletWidth; - var sliderRect = frmSlider.getBoundingClientRect(); - var deltaX = event.clientX - sliderRect.left - _this5.sliderBulletWidth; - var unit = element.querySelector('select').value; - var value = _this5.calculateValue(sliderWidth, deltaX, _this5.getMaxValue(unit, index)); - if (value < 0) { - return; - } - _this5.options[index].fullValue = _this5.updateValue(element, value + unit); - _this5.initChildSlidersWidth(element, deltaX, index, value + unit); - valueInput.value = value; - valueInput.dispatchEvent(customEvent); - }); - } - - /** - * Retrieves an array of slider group items based on the provided element. - * - * @param {HTMLElement} element - The element to retrieve slider group items from. - * @return {NodeList} - An array-like object containing the slider group items. - */ - }, { - key: "getSliderGroupItems", - value: function getSliderGroupItems(element) { - if ('undefined' === typeof element.dataset.displaySliders) { - return []; - } - var slidersGroup = element.dataset.displaySliders.split(','); - var query = slidersGroup.map(function (item) { - return ".frm-slider-component[data-type=\"".concat(item, "\"]"); - }).join(', '); - return element.closest('.frm-style-component').querySelectorAll(query); - } - - /** - * Initializes the position of sliders when a accordion section is opened. - */ - }, { - key: "initSlidersPosition", - value: function initSlidersPosition() { - var _this6 = this; - var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); - var quickSettings = document.querySelector('.frm-quick-settings'); - var 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', function (event) { - var imageBackgroundOpacitySlider = event.closest('.accordion-section-content').querySelector('#frm-bg-image-opacity-slider'); - _this6.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(function (item) { - item.addEventListener('click', function (event) { - _this6.initSlidersWidth(event.target.closest('.accordion-section')); - }); - }); - this.initSliderPositionOnFieldShapeChange(); - } - - /** - * Initializes the width of "Corner Radius" slider that is dynamically is displayed on "Field Shape" option change from "Quick Settings". - * - * @return {void} - */ - }, { - key: "initSliderPositionOnFieldShapeChange", - value: function initSliderPositionOnFieldShapeChange() { - var _this7 = this; - var fieldShapeType = document.querySelector('.frm-style-component.frm-field-shape'); - if (null === fieldShapeType) { - return; - } - var radioButtons = fieldShapeType.querySelectorAll('input[type="radio"]'); - radioButtons.forEach(function (radio) { - radio.addEventListener('change', function (event) { - if (event.target.checked && 'rounded-corner' === event.target.value) { - var slider = document.querySelector('div[data-frm-element="field-shape-corner-radius"] .frm-slider-component'); - _this7.initSliderWidth(slider); - } - }); - }); - } - - /** - * Initializes the width of sliders within a given section. - * - * @param {HTMLElement} section - The section containing the sliders. - * @return {void} - */ - }, { - key: "initSlidersWidth", - value: function initSlidersWidth(section) { - var _this8 = this; - var sliders = section.querySelectorAll('.frm-slider-component'); - sliders.forEach(function (slider) { - setTimeout(function () { - _this8.initSliderWidth(slider); - }, 100); - }); - } - - /** - * Initializes the width of a slider. - * - * @param {HTMLElement} slider - The slider element. - * @return {void} - */ - }, { - key: "initSliderWidth", - value: function initSliderWidth(slider) { - if (slider.classList.contains('frm-disabled')) { - return; - } - var index = this.getSliderIndex(slider); - var sliderWidth = slider.querySelector('.frm-slider').offsetWidth - this.sliderBulletWidth; - var value = parseInt(slider.querySelector('.frm-slider-value input[type="text"]').value, 10); - var unit = slider.querySelector('select').value; - var deltaX = '%' === unit ? Math.round(sliderWidth * value / 100) : Math.ceil(value / this.options[index].maxValue * sliderWidth); - slider.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); - this.options[index].translateX = deltaX; - this.options[index].value = value + unit; - } - - /** - * Initializes the width of child sliders. - * - * @param {HTMLElement} slider - The parent slider element. - * @param {number} width - The width to set for the child sliders. - * @param {number} index - The starting index for the child sliders. - * @param {number} value - The value to set for the child sliders. - */ - }, { - key: "initChildSlidersWidth", - value: function initChildSlidersWidth(slider, width, index, value) { - var _this9 = this; - if (!slider.classList.contains('frm-has-independent-fields') && !slider.classList.contains('frm-has-multiple-values')) { - return; - } - var childSliders = slider.classList.contains('frm-has-independent-fields') ? slider.querySelectorAll('.frm-independent-slider-field') : this.getSliderGroupItems(slider); - childSliders.forEach(function (item, childIndex) { - item.querySelector('.frm-slider-active-track').style.width = "".concat(width, "px"); - _this9.options[index + childIndex + 1].translateX = width; - _this9.options[index + childIndex + 1].value = value; - }); - } - - /** - * Returns the index of the specified slider element. - * - * @param {HTMLElement} slider - The slider element. - * @return {number} The index of the slider element. - */ - }, { - key: "getSliderIndex", - value: function getSliderIndex(slider) { - return this.options.filter(function (option) { - return option.element === slider; - })[0].index; - } - - /** - * Handles the movement of the slider tracker. - * - * @param {Event} event - The event object representing the mouse movement. - * @param {number} index - The index of the slider element. - * @return {void} - */ - }, { - key: "moveTracker", - value: function moveTracker(event, index) { - if (!this.options[index].dragging) { - return; - } - var deltaX = event.clientX - this.options[index].startX; - var element = this.sliderElements[index]; - var sliderWidth = element.querySelector('.frm-slider').offsetWidth; - - // Ensure deltaX does not go below 0 - deltaX = Math.max(deltaX, 0); - if (deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth) { - return; - } - var unit = element.querySelector('select').value; - var value = this.calculateValue(sliderWidth, deltaX, this.getMaxValue(unit, index)); - element.querySelector('.frm-slider-value input[type="text"]').value = value; - element.querySelector('.frm-slider-bullet .frm-slider-value-label').innerText = value; - element.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); - this.initChildSlidersWidth(element, deltaX, index, value + unit); - this.options[index].translateX = deltaX; - this.options[index].value = value + unit; - this.options[index].fullValue = this.updateValue(element, this.options[index].value); - this.valueChangeDebouncer(index); - } - - /** - * Get the maximum value based on the unit and index. - * - * @param {string} unit - The unit of measurement. - * @param {number} index - The index of the option. - * @return {number} The maximum value. - */ - }, { - key: "getMaxValue", - value: function getMaxValue(unit, index) { - return '%' === unit ? 100 : this.options[index].maxValue; - } - - /** - * Enables dragging for the slider component. - * - * @param {Event} event - The event object. - * @param {number} index - The index of the option being dragged. - */ - }, { - key: "enableDragging", - value: function enableDragging(event, index) { - event.target.classList.add('frm-dragging'); - this.options[index].dragging = true; - this.options[index].startX = event.clientX - this.options[index].translateX; - } - - /** - * Disables dragging for a specific index. - * - * @param {number} index - The index of the option to disable dragging for. - * @param {Event} event - The event object triggered by the dragging action. - */ - }, { - key: "disableDragging", - value: function disableDragging(index, event) { - if (false === this.options[index].dragging) { - return; - } - event.target.classList.remove('frm-dragging'); - this.options[index].dragging = false; - this.triggerValueChange(index); - } - - /** - * Triggers a value change for the specified index. - * - * @param {number} index - The index of the value to be changed. - */ - }, { - key: "triggerValueChange", - value: function triggerValueChange(index) { - var _this10 = this; - if (null !== this.options[index].dependentUpdater) { - this.options[index].dependentUpdater.updateAllDependentElements(this.options[index].fullValue); - return; - } - var 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"]'); - if (input instanceof NodeList) { - input.forEach(function (item) { - item.dispatchEvent(_this10.eventsChange[index]); - }); - return; - } - input.dispatchEvent(this.eventsChange[index]); - } - - /** - * Calculates the value based on the width, deltaX, and maxValue. - * - * @param {number} width - The width of the slider. - * @param {number} deltaX - The change in x-coordinate. - * @param {number} maxValue - The maximum value. - * @return {number} - The calculated value. - */ - }, { - key: "calculateValue", - value: function calculateValue(width, deltaX, maxValue) { - // Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet. - // 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. - var delta = Math.ceil(this.sliderBulletWidth * (deltaX / width)); - var value = Math.ceil((deltaX + delta) / width * maxValue); - return Math.min(value, maxValue); - } - - /** - * Updates the value of a slider component. - * - * @param {HTMLElement} element - The slider component element. - * @param {string} value - The new value to be set. - * @return {string} - The updated value. - */ - }, { - key: "updateValue", - value: function updateValue(element, value) { - var _this11 = this; - // When the slider component is used for "Base Font Size", we need to update a hidden input field when change happens to indicate that the "Base Font Size" has been adjusted. - // Used to avoid conflicts with other possible font sizes adjustemnts in "Advanced Settings" when moving from "Quick Settings" when "Base Font Size" is not changed. - if (element.classList.contains('frm-base-font-size')) { - var userBaseFontSizeInput = document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]'); - if (null !== userBaseFontSizeInput) { - userBaseFontSizeInput.value = 'true'; - } - } - if (element.classList.contains('frm-has-multiple-values')) { - var input = element.closest('.frm-style-component').querySelector('input[type="hidden"]'); - var inputValue = input.value.split(' '); - var type = element.dataset.type; - if (!inputValue[2]) { - inputValue[2] = '0px'; - } - if (!inputValue[3]) { - inputValue[3] = '0px'; - } - switch (type) { - case 'vertical': - inputValue[0] = value; - inputValue[2] = value; - break; - case 'horizontal': - inputValue[1] = value; - inputValue[3] = value; - break; - case 'top': - inputValue[0] = value; - break; - case 'bottom': - inputValue[2] = value; - break; - case 'left': - inputValue[3] = value; - break; - case 'right': - inputValue[1] = value; - break; - } - var newValue = inputValue.join(' '); - input.value = newValue; - var childSlidersGroup = this.getSliderGroupItems(element); - childSlidersGroup.forEach(function (slider) { - var unitMeasure = _this11.getUnitMeasureFromValue(value); - slider.querySelector('.frm-slider-value input[type="text"]').value = parseInt(value, 10); - slider.querySelector('select').value = unitMeasure; - }); - return newValue; - } - if (element.classList.contains('frm-has-independent-fields')) { - var inputValues = element.querySelectorAll('.frm-slider-value input[type="hidden"]'); - var visibleValues = element.querySelectorAll('.frm-slider-value input[type="text"]'); - inputValues.forEach(function (input, index) { - input.value = value; - visibleValues[index + 1].value = parseInt(value, 10); - }); - return value; - } - element.querySelector('.frm-slider-value input[type="hidden"]').value = value; - return value; - } - - /** - * Returns the unit of measurement used in the given value. - * - * @param {string} value - The value to check for the unit of measurement. - * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found. - */ - }, { - key: "getUnitMeasureFromValue", - value: function getUnitMeasureFromValue(value) { - return ['%', 'px', 'em'].find(function (unit) { - return value.includes(unit); - }) || ''; - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/settings-components/components/tabs-component.js": -/*!*****************************************************************!*\ - !*** ./js/src/settings-components/components/tabs-component.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmTabsComponent) -/* harmony export */ }); -/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } - -/** - * Represents a Tabs Component. - * @class - */ -var frmTabsComponent = /*#__PURE__*/function () { - function frmTabsComponent() { - _classCallCheck(this, frmTabsComponent); - this.elements = document.querySelectorAll('.frm-style-tabs-wrapper'); - if (0 < this.elements.length) { - this.init(); - } - } - - /** - * Initializes the Tabs Component. - */ - return _createClass(frmTabsComponent, [{ - key: "init", - value: function init() { - this.elements.forEach(function (element) { - new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__.frmTabsNavigator(element); - }); - } - - /** - * Initializes the component on tab click. - * @param {Element} wrapper - The wrapper element. - */ - }, { - key: "initOnTabClick", - value: function initOnTabClick(wrapper) { - var _this = this; - this.initActiveBackgroundWidth(wrapper); - wrapper.querySelectorAll('.frm-tab-item').forEach(function (tab) { - tab.addEventListener('click', function (event) { - _this.onTabClick(event.target.closest('.frm-tabs-wrapper')); - }); - }); - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/settings-components/components/toggle-group/index.js": -/*!*********************************************************************!*\ - !*** ./js/src/settings-components/components/toggle-group/index.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__.initToggleGroupComponents) -/* harmony export */ }); -/* harmony import */ var _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toggle-group.js */ "./js/src/settings-components/components/toggle-group/toggle-group.js"); - - -/***/ }), - -/***/ "./js/src/settings-components/components/toggle-group/toggle-group.js": -/*!****************************************************************************!*\ - !*** ./js/src/settings-components/components/toggle-group/toggle-group.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initToggleGroupComponents: () => (/* binding */ initToggleGroupComponents) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Group Toggle Component - * - * Handles toggling visibility and enabled state of related form elements - */ - -/** - * Internal dependencies - */ - - - -/** - * Class names for group toggle component - * - * @private - */ -var CLASS_NAMES = { - GROUP_TOGGLE: 'frm-toggle-group', - TOGGLE_BLOCK: 'frm_toggle_block' -}; - -/** - * Data attributes for group toggle component - * - * @private - */ -var DATA_ATTRIBUTES = { - GROUP_NAME: 'data-group-name', - SHOW: 'data-show', - DISABLE: 'data-disable', - ENABLE: 'data-enable' -}; - -/** - * Initialize all group toggle components on the page - * - * @return {void} - */ -function initToggleGroupComponents() { - applyInitialState(); - addEventListeners(); -} - -/** - * Apply the initial state for all toggle buttons on the page - * - * @private - * @return {void} - */ -function applyInitialState() { - var toggleGroups = document.querySelectorAll(".".concat(CLASS_NAMES.GROUP_TOGGLE)); - if (!toggleGroups.length) { - return; - } - toggleGroups.forEach(function (toggleGroup) { - var toggleButton = toggleGroup.querySelector("[".concat(DATA_ATTRIBUTES.GROUP_NAME, "]:checked")); - if (!toggleButton) { - return; - } - applyToggleState(toggleButton, toggleGroup); - }); -} - -/** - * Add event listeners to toggle buttons in a group toggle component - * - * @private - * @return {void} - */ -function addEventListeners() { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', ".".concat(CLASS_NAMES.GROUP_TOGGLE, " [").concat(DATA_ATTRIBUTES.GROUP_NAME, "]"), handleToggleClick); -} - -/** - * Handle click events on toggle buttons - * - * @private - * @param {Event} event The click event - * @return {void} - */ -function handleToggleClick(event) { - var toggleButton = event.target; - var toggleGroup = toggleButton.closest(".".concat(CLASS_NAMES.GROUP_TOGGLE)); - if (!toggleGroup) { - return; - } - applyToggleState(toggleButton, toggleGroup); -} - -/** - * Apply toggle state based on toggle button settings - * Shared functionality used by both click handler and initial state - * - * @private - * @param {HTMLElement} toggleButton The toggle button element - * @param {HTMLElement} toggleGroup The toggle group container element - * @return {void} - */ -function applyToggleState(toggleButton, toggleGroup) { - var _toggleGroup$closest; - var fieldId = ((_toggleGroup$closest = toggleGroup.closest(".".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.SINGLE_SETTINGS_CLASS))) === null || _toggleGroup$closest === void 0 ? void 0 : _toggleGroup$closest.dataset.fid) || toggleGroup.dataset.fid; - var isChecked = toggleButton.checked; - - // Handle show/hide elements - var showSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.SHOW); - if (showSelectors) { - document.querySelectorAll(normalizeSelector(showSelectors, fieldId)).forEach(function (element) { - return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, !isChecked); - }); - } - - // Handle disable elements - var disableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.DISABLE); - if (disableSelectors) { - document.querySelectorAll(normalizeSelector(disableSelectors, fieldId)).forEach(function (element) { - element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); - element.querySelectorAll('input, select, textarea').forEach(function (formElement) { - return formElement.disabled = isChecked; - }); - element.querySelectorAll('.frm-show-inline-modal[tabindex]').forEach(function (inlineModal) { - return inlineModal.tabIndex = isChecked ? -1 : 0; - }); - }); - } - - // Handle enable elements - var enableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.ENABLE); - if (enableSelectors) { - document.querySelectorAll(normalizeSelector(enableSelectors, fieldId)).forEach(function (element) { - return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, !isChecked); - }); - } - - // Toggle disabled state for all other toggle blocks within the group - var currentToggleBlock = toggleButton.closest(".".concat(CLASS_NAMES.TOGGLE_BLOCK)); - Array.from(toggleGroup.querySelectorAll(".".concat(CLASS_NAMES.TOGGLE_BLOCK))).filter(function (toggleBlock) { - return toggleBlock !== currentToggleBlock; - }).forEach(function (toggleBlock) { - toggleBlock.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); - - // Disable toggle switch - var toggle = toggleBlock.querySelector('.frm_toggle'); - toggle.tabIndex = isChecked ? -1 : 0; - toggle.setAttribute('aria-disabled', isChecked); - }); -} - -/** - * Normalize a selector by replacing {id} placeholders with the actual field ID - * - * @private - * @param {string} selector The selector string with potential {id} placeholders - * @param {string} fieldId The field ID to replace placeholders with - * @return {string} The normalized selector - */ -function normalizeSelector(selector, fieldId) { - return selector.replace(/{id}/g, fieldId); -} - - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/constants.js": -/*!************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/constants.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CLASS_NAMES: () => (/* binding */ CLASS_NAMES), -/* harmony export */ KEYS: () => (/* binding */ KEYS), -/* harmony export */ PROXY_INPUT_HEIGHT: () => (/* binding */ PROXY_INPUT_HEIGHT), -/* harmony export */ TOKEN_GAP: () => (/* binding */ TOKEN_GAP) -/* harmony export */ }); -/** - * Constants for token input component - * - * Reusable constants for class names and other static values - */ - -var CLASS_NAMES = { - CONTAINER: 'frm-token-container', - TOKENS_WRAPPER: 'frm-tokens', - TOKEN: 'frm-token', - TOKEN_VALUE: 'frm-token-value', - TOKEN_REMOVE: 'frm-token-remove', - TOKEN_INPUT_FIELD: 'frm-token-input-field', - TOKEN_PROXY_INPUT: 'frm-token-proxy-input', - WITH_RIGHT_ICON: 'frm-with-right-icon' -}; -var KEYS = { - SPACE: ' ', - ENTER: 'Enter', - COMMA: ',', - TAB: 'Tab', - BACKSPACE: 'Backspace' -}; -var PROXY_INPUT_HEIGHT = 36; -var TOKEN_GAP = 4; - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/event-handlers.js": -/*!*****************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/event-handlers.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); -/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); -/** - * Event handlers - * - * Functions for handling token input events - */ - -/** - * Internal dependencies - */ - - - - -/** - * Add event listeners to token input components - * - * @param {HTMLElement} field The original hidden input field - * @param {HTMLElement} proxyInput The proxy input field for interaction - * @param {HTMLElement} tokensWrapper The wrapper for token display - * @return {void} - */ -function addEventListeners(field, proxyInput, tokensWrapper) { - // The jQuery change event is required to catch programmatic updates, as "Add Layout Classes" modifies the field value via jQuery - jQuery(field).on('change', function () { - return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); - }); - proxyInput.addEventListener('keydown', function (event) { - return onProxyInputKeydown(event, field, proxyInput, tokensWrapper); - }); - proxyInput.addEventListener('blur', function () { - return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(proxyInput.value.trim(), field, proxyInput); - }); - tokensWrapper.addEventListener('click', function (event) { - return handleTokenRemoval(event, field, proxyInput); - }); -} - -/** - * Handle keydown events on the proxy input field - * - * @private - * - * @param {Event} event Keydown event - * @param {HTMLElement} field The original hidden input field - * @param {HTMLElement} proxyInput The proxy input field for interaction - * @param {HTMLElement} tokensWrapper The wrapper for token display - * @return {void} - */ -function onProxyInputKeydown(event, field, proxyInput, tokensWrapper) { - var key = event.key; - var value = proxyInput.value.trim(); - switch (key) { - // Remove the last token when backspace is pressed and input field is empty (no text being typed) - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.BACKSPACE: - if (!value) { - event.preventDefault(); - var lastToken = tokensWrapper.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN, ":last-child")); - (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(lastToken, field, proxyInput); - } - break; - - // Create a token from current input when delimiter keys are pressed - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.SPACE: - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.COMMA: - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.ENTER: - event.preventDefault(); - (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(value, field, proxyInput); - break; - } - (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); -} - -/** - * Handle token removal when clicking the remove button - * - * @private - * - * @param {Event} event Click event - * @param {HTMLElement} field The original hidden input field - * @param {HTMLElement} proxyInput The proxy input field for interaction - * @return {void} - */ -function handleTokenRemoval(event, field, proxyInput) { - var removeButton = event.target.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_REMOVE)); - if (!removeButton) { - return; - } - var token = removeButton.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); - if (!token) { - return; - } - var tokensWrapper = token.parentElement; - (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(token, field, proxyInput); - (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/index.js": -/*!********************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/index.js ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_0__.initTokenInputFields) -/* harmony export */ }); -/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/token-input.js"); - - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/proxy-input-style.js": -/*!********************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/proxy-input-style.js ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ adjustAllProxyInputStyles: () => (/* binding */ adjustAllProxyInputStyles), -/* harmony export */ adjustProxyInputStyle: () => (/* binding */ adjustProxyInputStyle) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/** - * Proxy input style - * - * Functions for adjusting proxy input styling - */ - - - -/** - * Adjust styling for all proxy inputs on the current settings - * - * @return {void} - */ -function adjustAllProxyInputStyles() { - document.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.CONTAINER)).forEach(function (container) { - return adjustProxyInputStyle(container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_PROXY_INPUT)), container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKENS_WRAPPER))); - }); -} - -/** - * Adjust the styling of the proxy input based on tokens wrapper dimensions - * - * @param {HTMLElement} proxyInput The proxy input field - * @param {HTMLElement} tokensWrapper The wrapper for token display - * @return {void} - */ -function adjustProxyInputStyle(proxyInput, tokensWrapper) { - if (!proxyInput || !tokensWrapper) { - return; - } - var tokens = tokensWrapper.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); - var hasTokens = tokens.length > 0; - - // Reset all styles if no tokens - if (!hasTokens) { - proxyInput.style.paddingLeft = ''; - proxyInput.style.paddingTop = ''; - proxyInput.style.height = ''; - return; - } - var tokensWrapperHeight = tokensWrapper.offsetHeight; - - // Calculate number of rows based on wrapper height - var numRows = Math.max(1, Math.ceil(tokensWrapperHeight / _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT)); - if (numRows > 1) { - // For multiple rows, calculate the width of tokens in the last row - var lastRowWidth = calculateLastRowWidth(getLastRowTokens(tokens)); - proxyInput.style.height = "".concat(tokensWrapperHeight, "px"); - proxyInput.style.paddingTop = "".concat(tokensWrapperHeight - _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); - proxyInput.style.paddingLeft = lastRowWidth ? "".concat(lastRowWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP * 2, "px") : ''; - } else { - // For single row, use the full width of tokens - proxyInput.style.height = ''; - proxyInput.style.paddingTop = ''; - proxyInput.style.paddingLeft = "".concat(tokensWrapper.offsetWidth - _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); - } -} - -/** - * Identify tokens in the last row of a multi-row token layout - * - * @param {NodeList} tokens All token elements - * @return {Array} Array of tokens in the last row - */ -function getLastRowTokens(tokens) { - if (!tokens.length) { - return []; - } - var tokensArray = Array.from(tokens); - var lastRowY = -1; - tokensArray.forEach(function (token) { - var tokenRect = token.getBoundingClientRect(); - var tokenBottom = tokenRect.bottom; - if (tokenBottom > lastRowY) { - lastRowY = tokenBottom; - } - }); - var threshold = _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP / 2; - return tokensArray.filter(function (token) { - var tokenRect = token.getBoundingClientRect(); - return Math.abs(tokenRect.bottom - lastRowY) <= threshold; - }); -} - -/** - * Calculate the total width of tokens in the last row - * - * @param {Array} lastRowTokens Array of token elements in the last row - * @return {number} Total width of tokens in the last row - */ -function calculateLastRowWidth(lastRowTokens) { - if (!lastRowTokens.length) { - return 0; - } - var totalWidth = 0; - lastRowTokens.forEach(function (token) { - totalWidth += token.offsetWidth; - }); - totalWidth += (lastRowTokens.length - 1) * _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; - return totalWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/token-actions.js": -/*!****************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/token-actions.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToken: () => (/* binding */ addToken), -/* harmony export */ clearProxyInput: () => (/* binding */ clearProxyInput), -/* harmony export */ parseTokens: () => (/* binding */ parseTokens), -/* harmony export */ removeToken: () => (/* binding */ removeToken), -/* harmony export */ synchronizeTokensDisplay: () => (/* binding */ synchronizeTokensDisplay), -/* harmony export */ updateFieldValue: () => (/* binding */ updateFieldValue) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); -/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); -/** - * Token actions - * - * Core functions for token operations and management - */ - -/** - * Internal dependencies - */ - - - - -/** - * Synchronize token display with the field value - * - * @param {string} value The field value - * @param {HTMLElement} proxyInput The proxy input field - * @param {HTMLElement} tokensWrapper Wrapper element for tokens - * @return {void} - */ -function synchronizeTokensDisplay(value, proxyInput, tokensWrapper) { - if (!value || !tokensWrapper || !proxyInput) { - return; - } - - // Clear existing tokens display and render new tokens - tokensWrapper.innerHTML = ''; - parseTokens(value).forEach(function (token) { - return (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenElement)(token, tokensWrapper); - }); - (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_1__.adjustProxyInputStyle)(proxyInput, tokensWrapper); - proxyInput.focus(); -} - -/** - * Add a new token to the field - * - * @param {string} tokenValue The token value to add - * @param {HTMLElement} field The original field - * @param {HTMLElement} proxyInput The proxy input - * @return {boolean} Whether a token was added - */ -function addToken(tokenValue, field, proxyInput) { - if (!tokenValue || !field || !proxyInput) { - return false; - } - - // Get current tokens from field value - var tokens = parseTokens(field.value); - - // Skip duplicate tokens - if (tokens.includes(tokenValue)) { - clearProxyInput(proxyInput); - return false; - } - - // Add new token - tokens.push(tokenValue); - updateFieldValue(field, tokens); - clearProxyInput(proxyInput); - return true; -} - -/** - * Remove a specific token from the field - * - * @param {HTMLElement} token The token element to remove - * @param {HTMLElement} field The original field - * @param {HTMLElement} proxyInput The proxy input - * @return {void} - */ -function removeToken(token, field, proxyInput) { - if (!token || !field || !proxyInput) { - return; - } - var value = token.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_VALUE)).textContent; - - // Filter out the token to remove - var tokens = parseTokens(field.value).filter(function (tokenValue) { - return tokenValue !== value; - }); - updateFieldValue(field, tokens); - - // Remove the token element from DOM - token.remove(); - proxyInput.focus(); -} - -/** - * Parse string input into an array of tokens - * - * @param {string} value Space-separated string - * @return {string[]} Array of tokens - */ -function parseTokens() { - var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - value = value.trim(); - if (!value) { - return []; - } - return value.split(/\s+/).filter(Boolean); -} - -/** - * Update field value with tokens and trigger change event - * - * @param {HTMLElement} field The field to update - * @param {string[]} tokens Array of token values - * @return {void} - */ -function updateFieldValue(field) { - var tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - if (!field) { - return; - } - field.value = tokens.join(' '); - jQuery(field).trigger('change'); -} - -/** - * Clear proxy input and maintain focus - * - * @param {HTMLElement} proxyInput The proxy input field - * @return {void} - */ -function clearProxyInput(proxyInput) { - if (!proxyInput) { - return; - } - proxyInput.value = ''; - proxyInput.focus(); -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/token-elements.js": -/*!*****************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/token-elements.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createTokenContainerElement: () => (/* binding */ createTokenContainerElement), -/* harmony export */ createTokenElement: () => (/* binding */ createTokenElement) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/** - * Token elements - * - * Functions for creating token DOM elements - */ - -/** - * Internal dependencies - */ - - -var _window$frmDom = window.frmDom, - span = _window$frmDom.span, - svg = _window$frmDom.svg, - tag = _window$frmDom.tag; - -/** - * Create token container and input elements - * - * @param {HTMLElement} field Input field for tokenization - * @return {HTMLElement|null} The container element or null if already initialized - */ -function createTokenContainerElement(field) { - // Get the main container (.frm-with-right-icon) to work with Formidable's modal system - var container = field.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.WITH_RIGHT_ICON)); - if (container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER))) { - return null; - } - container.classList.add(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.CONTAINER); - var tokensWrapper = span({ - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER - }); - container.insertBefore(tokensWrapper, container.firstChild); - var proxyInput = tag('input', { - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT, - id: "".concat(field.id, "-proxy-input") - }); - proxyInput.type = 'text'; - - // Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system - field.parentNode.insertBefore(proxyInput, field.nextSibling); - field.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); - return container; -} - -/** - * Create a single token element - * - * @param {string} value Token value - * @param {HTMLElement} tokensWrapper Wrapper element for tokens - * @return {void} - */ -function createTokenElement(value, tokensWrapper) { - var tokenElement = span({ - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN, - children: [span({ - text: value, - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_VALUE - }), span({ - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_REMOVE, - child: svg({ - href: '#frm_close_icon' - }) - })] - }); - tokensWrapper.appendChild(tokenElement); -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/token-input.js": -/*!**************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/token-input.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initTokenInputFields: () => (/* binding */ initTokenInputFields) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); -/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); -/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); -/* harmony import */ var _event_handlers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event-handlers */ "./js/src/settings-components/components/token-input/event-handlers.js"); -/** - * Token Input Component - * - * Transforms space-separated values in a text input into selectable tokens - */ - -/** - * Internal dependencies - */ - - - - - - - -/** - * Initialize all token input fields on the page - * - * @return {void} - */ -function initTokenInputFields() { - findAndInitializeTokenFields(); - - /** - * Initialize for newly added fields - * - * @param {Event} event The frm_added_field event. - * @param {HTMLElement} event.frmField The added field object being destructured from the event. - */ - document.addEventListener('frm_added_field', function (_ref) { - var frmField = _ref.frmField; - return findAndInitializeTokenFields(frmField.dataset.fid); - }); - - /** - * Initialize for newly added fields via AJAX - * - * @param {Event} event The frm_ajax_loaded_field event. - * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. - */ - document.addEventListener('frm_ajax_loaded_field', function (_ref2) { - var frmFields = _ref2.frmFields; - return frmFields.forEach(function (field) { - return findAndInitializeTokenFields(field.id); - }); - }); - - // Adjust styling for all token inputs when field settings are shown - wp.hooks.addAction(core_constants__WEBPACK_IMPORTED_MODULE_0__.HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__.adjustAllProxyInputStyles); -} - -/** - * Find all token input fields and initialize them - * - * @private - * @param {string|number} fieldId The ID of the field to initialize - * @return {void} - */ -function findAndInitializeTokenFields(fieldId) { - var container = fieldId ? document.getElementById("frm-single-settings-".concat(fieldId)) : document.body; - var tokenInputFields = container.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_INPUT_FIELD)); - if (!tokenInputFields.length) { - return; - } - - // Track processed fields to prevent duplicate initialization - var processedFields = new Set(); - tokenInputFields.forEach(function (field) { - if (!processedFields.has(field.id)) { - setupTokenInput(field); - processedFields.add(field.id); - } - }); -} - -/** - * Set up a token input field with token container - * - * @private - * - * @param {HTMLElement} field Input field for tokenization - */ -function setupTokenInput(field) { - var container = (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenContainerElement)(field); - if (!container) { - return; - } - var proxyInput = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT)); - var tokensWrapper = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER)); - (0,_token_actions__WEBPACK_IMPORTED_MODULE_3__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); - (0,_event_handlers__WEBPACK_IMPORTED_MODULE_5__.addEventListeners)(field, proxyInput, tokensWrapper); -} - - -/***/ }), - -/***/ "./js/src/settings-components/components/unit-input.js": -/*!*************************************************************!*\ - !*** ./js/src/settings-components/components/unit-input.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupUnitInputHandlers: () => (/* binding */ setupUnitInputHandlers) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Setup unit input handlers - * - * @return {void} - */ -function setupUnitInputHandlers() { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input select', onUnitInputChange); -} - -/** - * Handle the change event for the unit input - * - * @private - * @param {Event} event The event object. - * @return {void} - */ -function onUnitInputChange(event) { - var unitInput = event.target.closest('.frm-unit-input'); - var control = unitInput.querySelector('.frm-unit-input-control'); - var unit = unitInput.querySelector('select').value; - - // Update input type when unit changes - if (event.target.matches('select')) { - control.type = '' === unit ? 'text' : 'number'; - } - - // Update the actual field value - var inputValue = control.value.trim(); - unitInput.querySelector('input[type="hidden"]').value = '' !== inputValue ? inputValue + unit : ''; -} - -/***/ }), - -/***/ "./js/src/settings-components/events/add-fields-button-handler.js": -/*!************************************************************************!*\ - !*** ./js/src/settings-components/events/add-fields-button-handler.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Redirects to "Add Fields" tab when the "Add Fields" button is clicked. - * - * When users view the Field Options tab with no fields, they see an "Add Fields" button. - * Clicking this button should take them to the "Add Fields" tab for field selection. - */ - -/** - * Initializes the Add Fields button click handler. - */ -var initAddFieldsButtonHandler = function initAddFieldsButtonHandler() { - var _document$getElementB; - (_document$getElementB = document.getElementById('frm-form-add-field')) === null || _document$getElementB === void 0 || _document$getElementB.addEventListener('click', function (event) { - var _document$querySelect; - event.preventDefault(); - (_document$querySelect = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect === void 0 || _document$querySelect.click(); - }); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initAddFieldsButtonHandler); - -/***/ }), - -/***/ "./js/src/settings-components/events/index.js": -/*!****************************************************!*\ - !*** ./js/src/settings-components/events/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initAddFieldsButtonHandler: () => (/* reexport safe */ _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__["default"]) -/* harmony export */ }); -/* harmony import */ var _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-fields-button-handler */ "./js/src/settings-components/events/add-fields-button-handler.js"); - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!*********************************************!*\ - !*** ./js/src/settings-components/index.js ***! - \*********************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events */ "./js/src/settings-components/events/index.js"); -/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components */ "./js/src/settings-components/components/index.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { - new _components__WEBPACK_IMPORTED_MODULE_1__.frmRadioComponent(); - new _components__WEBPACK_IMPORTED_MODULE_1__.frmSliderComponent(); - new _components__WEBPACK_IMPORTED_MODULE_1__.frmTabsComponent(); - (0,_events__WEBPACK_IMPORTED_MODULE_0__.initAddFieldsButtonHandler)(); - (0,_components__WEBPACK_IMPORTED_MODULE_1__.initTokenInputFields)(); - (0,_components__WEBPACK_IMPORTED_MODULE_1__.initToggleGroupComponents)(); - (0,_components__WEBPACK_IMPORTED_MODULE_1__.setupUnitInputHandlers)(); -}); -/******/ })() -; -//# sourceMappingURL=formidable-settings-components.js.map \ No newline at end of file +(()=>{"use strict";var e=window.frmGlobal,t=(e.url,e.nonce,"frm_hidden"),n="frm_disabled",i=(Promise.resolve(),window.frmDom.util),r=(i.onClickPreventDefault,i.documentOn),a=(new URL(window.location.href).searchParams,function(e){return null==e?void 0:e.classList.remove(t)});function o(e){return o="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},o(e)}function l(e,t){for(var n=0;n=r)){var a=i.querySelector("select").value,o=this.calculateValue(r,n,this.getMaxValue(a,t));i.querySelector('.frm-slider-value input[type="text"]').value=o,i.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=o,i.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(i,n,t,o+a),this.options[t].translateX=n,this.options[t].value=o+a,this.options[t].fullValue=this.updateValue(i,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 i=Math.ceil(this.sliderBulletWidth*(t/e)),r=Math.ceil((t+i)/e*n);return Math.min(r,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-base-font-size")){var i=document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]');null!==i&&(i.value="true")}if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),a=r.value.split(" "),o=e.dataset.type;switch(a[2]||(a[2]="0px"),a[3]||(a[3]="0px"),o){case"vertical":a[0]=t,a[2]=t;break;case"horizontal":a[1]=t,a[3]=t;break;case"top":a[0]=t;break;case"bottom":a[2]=t;break;case"left":a[3]=t;break;case"right":a[1]=t}var l=a.join(" ");return r.value=l,this.getSliderGroupItems(e).forEach((function(e){var i=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=i})),l}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),c=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,c[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)}))||""}}])&&h(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function g(e){return g="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},g(e)}function b(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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,a=n.querySelector("a");a&&"frm_insert_fields_tab"===a.id&&!a.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{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.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&b(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function E(e){return E="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},E(e)}function w(e,t){for(var n=0;n0))return e.style.paddingLeft="",e.style.paddingTop="",void(e.style.height="");var i=t.offsetHeight;if(Math.max(1,Math.ceil(i/36))>1){var r=function(e){if(!e.length)return 0;var t=0;return e.forEach((function(e){t+=e.offsetWidth})),(t+=4*(e.length-1))+4}(function(e){if(!e.length)return[];var t=Array.from(e),n=-1;t.forEach((function(e){var t=e.getBoundingClientRect().bottom;t>n&&(n=t)}));return t.filter((function(e){var t=e.getBoundingClientRect();return Math.abs(t.bottom-n)<=2}))}(n));e.style.height="".concat(i,"px"),e.style.paddingTop="".concat(i-36+4,"px"),e.style.paddingLeft=r?"".concat(r+8,"px"):""}else e.style.height="",e.style.paddingTop="",e.style.paddingLeft="".concat(t.offsetWidth-4,"px")}}function R(e,t,n){e&&n&&t&&(n.innerHTML="",B(e).forEach((function(e){return function(e,t){var n=V({className:A,children:[V({text:e,className:T}),V({className:O,child:W({href:"#frm_close_icon"})})]});t.appendChild(n)}(e,n)})),D(t,n),t.focus())}function M(e,t,n){if(!e||!t||!n)return!1;var i=B(t.value);return i.includes(e)?(N(n),!1):(i.push(e),X(t,i),N(n),!0)}function F(e,t,n){if(e&&t&&n){var i=e.querySelector(".".concat(T)).textContent;X(t,B(t.value).filter((function(e){return e!==i}))),e.remove(),n.focus()}}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(e=e.trim())?e.split(/\s+/).filter(Boolean):[]}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&(e.value=t.join(" "),jQuery(e).trigger("change"))}function N(e){e&&(e.value="",e.focus())}function U(e){var n=(e?document.getElementById("frm-single-settings-".concat(e)):document.body).querySelectorAll(".".concat("frm-token-input-field"));if(n.length){var i=new Set;n.forEach((function(e){i.has(e.id)||(function(e){var n=function(e){var n=e.closest(".".concat("frm-with-right-icon"));if(n.querySelector(".".concat(C)))return null;n.classList.add(x);var i=V({className:C});n.insertBefore(i,n.firstChild);var r=j("input",{className:_,id:"".concat(e.id,"-proxy-input")});return r.type="text",e.parentNode.insertBefore(r,e.nextSibling),e.classList.add(t),n}(e);if(n){var i=n.querySelector(".".concat(_)),r=n.querySelector(".".concat(C));R(e.value,i,r),function(e,t,n){jQuery(e).on("change",(function(){return R(e.value,t,n)})),t.addEventListener("keydown",(function(i){return function(e,t,n,i){var r=e.key,a=n.value.trim();switch(r){case"Backspace":a||(e.preventDefault(),F(i.querySelector(".".concat(A,":last-child")),t,n));break;case" ":case",":case"Enter":e.preventDefault(),M(a,t,n)}D(n,i)}(i,e,t,n)})),t.addEventListener("blur",(function(){return M(t.value.trim(),e,t)})),n.addEventListener("click",(function(n){return function(e,t,n){var i=e.target.closest(".".concat(O));if(i){var r=i.closest(".".concat(A));if(r){var a=r.parentElement;F(r,t,n),D(n,a)}}}(n,e,t)}))}(e,i,r)}}(e),i.add(e.id))}))}}var z,G="frm-toggle-group",H="frm_toggle_block",J="data-group-name";function Q(e){var t=e.target,n=t.closest(".".concat(G));n&&K(t,n)}function K(e,i){var r,a=(null===(r=i.closest(".".concat("frm-single-settings")))||void 0===r?void 0:r.dataset.fid)||i.dataset.fid,o=e.checked,l=e.getAttribute("data-show");l&&document.querySelectorAll(Y(l,a)).forEach((function(e){return e.classList.toggle(t,!o)}));var s=e.getAttribute("data-disable");s&&document.querySelectorAll(Y(s,a)).forEach((function(e){e.classList.toggle(n,o),e.querySelectorAll("input, select, textarea").forEach((function(e){return e.disabled=o})),e.querySelectorAll(".frm-show-inline-modal[tabindex]").forEach((function(e){return e.tabIndex=o?-1:0}))}));var c=e.getAttribute("data-enable");c&&document.querySelectorAll(Y(c,a)).forEach((function(e){return e.classList.toggle(n,!o)}));var u=e.closest(".".concat(H));Array.from(i.querySelectorAll(".".concat(H))).filter((function(e){return e!==u})).forEach((function(e){e.classList.toggle(n,o);var t=e.querySelector(".frm_toggle");t.tabIndex=o?-1:0,t.setAttribute("aria-disabled",o)}))}function Y(e,t){return e.replace(/{id}/g,t)}function Z(e){var t=e.target.closest(".frm-unit-input"),n=t.querySelector(".frm-unit-input-control"),i=t.querySelector("select").value;e.target.matches("select")&&(n.type=""===i?"text":"number");var r=n.value.trim();t.querySelector('input[type="hidden"]').value=""!==r?r+i:""}z=function(){var e,t;new c,new y,new q,null===(t=document.getElementById("frm-form-add-field"))||void 0===t||t.addEventListener("click",(function(e){var t;e.preventDefault(),null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click()})),U(),document.addEventListener("frm_added_field",(function(e){return U(e.frmField.dataset.fid)})),document.addEventListener("frm_ajax_loaded_field",(function(e){return e.frmFields.forEach((function(e){return U(e.id)}))})),wp.hooks.addAction("frmShowedFieldSettings","formidable-token-input",I),(e=document.querySelectorAll(".".concat(G))).length&&e.forEach((function(e){var t=e.querySelector("[".concat(J,"]:checked"));t&&K(t,e)})),r("change",".".concat(G," [").concat(J,"]"),Q),r("change",".frm-unit-input .frm-unit-input-control",Z),r("change",".frm-unit-input select",Z)},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",z):z())})(); \ No newline at end of file diff --git a/js/formidable_admin.js b/js/formidable_admin.js index e8a27ed875..5bd2a231a3 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -1,10165 +1 @@ -/******/ (() => { // webpackBootstrap -/*!*******************************!*\ - !*** ./js/src/admin/admin.js ***! - \*******************************/ -function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/* exported frm_add_logic_row, frm_remove_tag, frm_show_div, frmCheckAll, frmCheckAllLevel */ -/* eslint-disable jsdoc/require-param, prefer-const, no-redeclare, @wordpress/no-unused-vars-before-return, jsdoc/check-types, jsdoc/check-tag-names, @wordpress/i18n-translator-comments, @wordpress/valid-sprintf, jsdoc/require-returns-description, jsdoc/require-param-type, no-unused-expressions, compat/compat */ - -window.FrmFormsConnect = window.FrmFormsConnect || function (document, window, $) { - /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl */ - - var el = { - messageBox: null, - reset: null, - setElements: function setElements() { - el.messageBox = document.querySelector('.frm_pro_license_msg'); - el.reset = document.getElementById('frm_reconnect_link'); - } - }; - - /** - * Public functions and properties. - * - * @since 4.03 - * - * @type {Object} - */ - var app = { - /** - * Register connect button event. - * - * @since 4.03 - */ - init: function init() { - el.setElements(); - $(document.getElementById('frm_deauthorize_link')).on('click', app.deauthorize); - $('.frm_authorize_link').on('click', app.authorize); - // Handles FF dashboard Authorize & Reauthorize events. - // Attach click event to parent as #frm_deauthorize_link & #frm_reconnect_link dynamically recreated by bootstrap.setupBootstrapDropdowns in dom.js - $('.frm-dashboard-license-options').on('click', '#frm_deauthorize_link', app.deauthorize); - $('.frm-dashboard-license-options').on('click', '#frm_reconnect_link', app.reauthorize); - if (el.reset !== null) { - $(el.reset).on('click', app.reauthorize); - } - }, - /* Manual license authorization */ - authorize: function authorize() { - /*jshint validthis:true */ - var button = this; - var pluginSlug = this.getAttribute('data-plugin'); - var input = document.getElementById('edd_' + pluginSlug + '_license_key'); - var license = input.value; - var wpmu = document.getElementById('proplug-wpmu'); - this.classList.add('frm_loading_button'); - if (wpmu === null) { - wpmu = 0; - } else if (wpmu.checked) { - wpmu = 1; - } else { - wpmu = 0; - } - $.ajax({ - type: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'frm_addon_activate', - license: license, - plugin: pluginSlug, - wpmu: wpmu, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - app.afterAuthorize(msg, input); - button.classList.remove('frm_loading_button'); - } - }); - }, - afterAuthorize: function afterAuthorize(msg, input) { - if (msg.success === true) { - input.value = '•••••••••••••••••••'; - } - wp.hooks.doAction('frm_after_authorize', msg); - app.showMessage(msg); - }, - showProgress: function showProgress(msg) { - if (el.messageBox === null) { - // In case the message box was added after page load. - el.setElements(); - } - var messageBox = el.messageBox; - if (messageBox === null) { - return; - } - if (msg.success === true) { - messageBox.classList.remove('frm_error_style'); - messageBox.classList.add('frm_message', 'frm_updated_message'); - } else { - messageBox.classList.add('frm_error_style'); - messageBox.classList.remove('frm_message', 'frm_updated_message'); - } - messageBox.classList.remove('frm_hidden'); - messageBox.innerHTML = msg.message; - }, - showMessage: function showMessage(msg) { - if (el.messageBox === null) { - // In case the message box was added after page load. - el.setElements(); - } - var messageBox = el.messageBox; - if (msg.success === true) { - app.showAuthorized(true); - app.showInlineSuccess(); - - /** - * Triggers the after license is authorized action for a confirmation/success modal. - * @param {Object} msg An object containing message data received from Authorize request. - */ - wp.hooks.doAction('frmAdmin.afterLicenseAuthorizeSuccess', { - msg: msg - }); - } - app.showProgress(msg); - if (msg.message !== '') { - setTimeout(function () { - messageBox.innerHTML = ''; - messageBox.classList.add('frm_hidden'); - messageBox.classList.remove('frm_error_style', 'frm_message', 'frm_updated_message'); - }, 10000); - var refreshPage = document.querySelector('.frm-admin-page-dashboard'); - if (refreshPage) { - setTimeout(function () { - window.location.reload(); - }, 1000); - } - } - }, - showAuthorized: function showAuthorized(show) { - var from = show ? 'unauthorized' : 'authorized'; - var to = show ? 'authorized' : 'unauthorized'; - var container = document.querySelectorAll('.frm_' + from + '_box'); - if (container.length) { - // Replace all authorized boxes with unauthorized boxes. - container.forEach(function (box) { - box.className = box.className.replace('frm_' + from + '_box', 'frm_' + to + '_box'); - }); - } - }, - /** - * Use the data-success element to replace the element content. - */ - showInlineSuccess: function showInlineSuccess() { - var successElement = document.querySelectorAll('.frm-confirm-msg [data-success]'); - if (successElement.length) { - successElement.forEach(function (element) { - element.innerHTML = frmAdminBuild.purifyHtml(element.getAttribute('data-success')); - }); - } - }, - /* Clear the site license cache */ - reauthorize: function reauthorize() { - /*jshint validthis:true */ - this.innerHTML = ''; - $.ajax({ - type: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'frm_reset_cache', - plugin: 'formidable_pro', - nonce: frmGlobal.nonce - }, - success: function success(msg) { - el.reset.textContent = msg.message; - if (el.reset.getAttribute('data-refresh') === '1') { - window.location.reload(); - } - } - }); - return false; - }, - deauthorize: function deauthorize() { - /*jshint validthis:true */ - if (!confirm(frmGlobal.deauthorize)) { - return false; - } - var pluginSlug = this.getAttribute('data-plugin'), - input = document.getElementById('edd_' + pluginSlug + '_license_key'), - license = input.value, - link = this; - this.innerHTML = ''; - $.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_addon_deactivate', - license: license, - plugin: pluginSlug, - nonce: frmGlobal.nonce - }, - success: function success() { - app.showAuthorized(false); - input.value = ''; - link.replaceWith('Disconnected'); - - /** - * Triggers the after license is deauthorized sruccess action. - */ - wp.hooks.doAction('frmAdmin.afterLicenseDeauthorizeSuccess', {}); - } - }); - return false; - } - }; - - // Provide access to public functions/properties. - return app; -}(document, window, jQuery); -window.frmAdminBuildJS = function () { - //'use strict'; - - /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */ - - var frmAdminJs = frm_admin_js; // eslint-disable-line camelcase - var _frmDom = frmDom, - tag = _frmDom.tag, - div = _frmDom.div, - span = _frmDom.span, - a = _frmDom.a, - svg = _frmDom.svg, - img = _frmDom.img; - var onClickPreventDefault = frmDom.util.onClickPreventDefault; - var _frmDom$ajax = frmDom.ajax, - doJsonFetch = _frmDom$ajax.doJsonFetch, - doJsonPost = _frmDom$ajax.doJsonPost; - frmAdminJs.contextualShortcodes = getContextualShortcodes(); - var icons = { - save: svg({ - href: '#frm_save_icon' - }), - drag: svg({ - href: '#frm_drag_icon', - classList: ['frm_drag_icon', 'frm-drag'] - }) - }; - var $newFields = jQuery(document.getElementById('frm-show-fields')), - builderForm = document.getElementById('new_fields'), - thisForm = document.getElementById('form_id'), - copyHelper = false, - fieldsUpdated = 0, - thisFormId = 0, - autoId = 0, - optionMap = {}, - lastNewActionIdReturned = 0; - var _wp$i18n = wp.i18n, - __ = _wp$i18n.__, - sprintf = _wp$i18n.sprintf; - var debouncedSyncAfterDragAndDrop, postBodyContent, $postBodyContent; - var dragState = { - dragging: false - }; - if (thisForm !== null) { - thisFormId = thisForm.value; - } - var currentURL = new URL(window.location.href); - var urlParams = currentURL.searchParams; - var builderPage = document.getElementById('frm_builder_page'); - - // Global settings - var s; - function showElement(element) { - if (!element[0]) { - return; - } - element[0].style.display = ''; - } - function empty($obj) { - if ($obj !== null) { - while ($obj.firstChild) { - $obj.removeChild($obj.firstChild); - } - } - } - function addClass($obj, className) { - if ($obj.classList) { - $obj.classList.add(className); - } else { - $obj.className += ' ' + className; - } - } - function confirmClick(e) { - /*jshint validthis:true */ - e.stopPropagation(); - e.preventDefault(); - confirmLinkClick(this); - } - function confirmLinkClick(link) { - var message = link.getAttribute('data-frmverify'), - loadedFrom = link.getAttribute('data-loaded-from'); - if (message === null || link.id === 'frm-confirmed-click') { - return true; - } - if ('entries-list' === loadedFrom) { - return wp.hooks.applyFilters('frm_on_multiple_entries_delete', { - link: link, - initModal: initModal - }); - } - return confirmModal(link); - } - function confirmModal(link) { - var verify, - $confirmMessage, - i, - dataAtts, - btnClass, - $info = initModal('#frm_confirm_modal', '400px'), - continueButton = document.getElementById('frm-confirmed-click'); - if ($info === false) { - return false; - } - verify = link.getAttribute('data-frmverify'); - btnClass = verify ? link.getAttribute('data-frmverify-btn') : ''; - $confirmMessage = jQuery('.frm-confirm-msg'); - $confirmMessage.empty(); - if (verify) { - $confirmMessage.append(document.createTextNode(verify)); - if (btnClass) { - continueButton.classList.add(btnClass); - } - } - removeAtts = continueButton.dataset; - for (i in dataAtts) { - continueButton.removeAttribute('data-' + i); - } - dataAtts = link.dataset; - for (i in dataAtts) { - if (i !== 'frmverify') { - continueButton.setAttribute('data-' + i, dataAtts[i]); - } - } - - /** - * Triggers the pre-open action for a confirmation modal. This action passes - * relevant modal information and associated link to any listening hooks. - * - * @param {Object} options An object containing modal elements and data. - * @param {HTMLElement} options.$info The HTML element containing modal information. - * @param {string} options.link The link associated with the modal action. - */ - wp.hooks.doAction('frmAdmin.beforeOpenConfirmModal', { - $info: $info, - link: link - }); - $info.dialog('open'); - continueButton.setAttribute('href', link.getAttribute('href') || link.getAttribute('data-href')); - return false; - } - function infoModal(msg) { - var $info = initModal('#frm_info_modal', '400px'); - if ($info === false) { - return false; - } - jQuery('.frm-info-msg').html(msg); - $info.dialog('open'); - return false; - } - function toggleItem(e) { - /*jshint validthis:true */ - var toggle = this.getAttribute('data-frmtoggle'); - var text = this.getAttribute('data-toggletext'); - var $items = jQuery(toggle); - e.preventDefault(); - $items.toggle(); - if (text !== null && text !== '') { - this.setAttribute('data-toggletext', this.innerHTML); - this.textContent = text; - } - return false; - } - - /** - * Toggle a class on target elements when an anchor is clicked, or when a radio or checkbox has been selected. - * - * @param {Event} e Event with either the change or click type. - * @return {false} - */ - function hideShowItem(e) { - /*jshint validthis:true */ - var hide = this.getAttribute('data-frmhide'); - var show = this.getAttribute('data-frmshow'); - var uncheckList = this.getAttribute('data-frmuncheck'); - var uncheckListArray = uncheckList ? uncheckList.split(',') : []; - - // Flip unchecked checkboxes so an off value undoes the on value. - if (isUncheckedCheckbox(this)) { - if (hide !== null) { - show = hide; - hide = null; - } else if (show !== null) { - hide = show; - show = null; - } - } - e.preventDefault(); - var toggleClass = this.getAttribute('data-toggleclass') || 'frm_hidden'; - if (hide !== null) { - jQuery(hide).addClass(toggleClass); - } - if (show !== null) { - jQuery(show).removeClass(toggleClass); - } - var current = this.parentNode.querySelectorAll('a.current'); - if (current !== null) { - for (var _i = 0; _i < current.length; _i++) { - current[_i].classList.remove('current'); - } - this.classList.add('current'); - } - if (uncheckListArray.length) { - uncheckListArray.forEach(function (uncheckItem) { - var uncheckItemElement = document.querySelector(uncheckItem); - if (uncheckItemElement) { - uncheckItemElement.checked = false; - } - }); - } - return false; - } - function isUncheckedCheckbox(element) { - return 'INPUT' === element.nodeName && 'checkbox' === element.type && !element.checked; - } - function loadTooltips() { - var wrapClass = jQuery('.wrap, .frm_wrap'), - confirmModal = document.getElementById('frm_confirm_modal'), - doAction = false, - confirmedBulkDelete = false; - jQuery(confirmModal).on('click', '[data-deletefield]', deleteFieldConfirmed); - jQuery(confirmModal).on('click', '[data-removeid]', removeThisTag); - jQuery(confirmModal).on('click', '[data-trashtemplate]', trashTemplate); - wrapClass.on('click', '.frm_remove_tag, .frm_remove_form_action', removeThisTag); - wrapClass.on('click', 'a[data-frmverify]', confirmClick); - wrapClass.on('click', 'a[data-frmtoggle]', toggleItem); - wrapClass.on('click', 'a[data-frmhide], a[data-frmshow]', hideShowItem); - wrapClass.on('change', 'input[data-frmhide], input[data-frmshow]', hideShowItem); - wrapClass.on('click', '.widget-top,a.widget-action', clickWidget); - wrapClass.on('mouseenter.frm', '.frm_bstooltip, .frm_help', function () { - jQuery(this).off('mouseenter.frm'); - jQuery('.frm_bstooltip, .frm_help').tooltip(); - jQuery(this).tooltip('show'); - }); - jQuery('.frm_bstooltip, .frm_help').tooltip(); - jQuery(document).on('click', '#doaction, #doaction2', function (event) { - var isTop = this.id === 'doaction', - suffix = isTop ? 'top' : 'bottom', - bulkActionSelector = document.getElementById('bulk-action-selector-' + suffix), - confirmBulkDelete = document.getElementById('confirm-bulk-delete-' + suffix); - if (bulkActionSelector !== null && confirmBulkDelete !== null) { - doAction = this; - if (!confirmedBulkDelete && bulkActionSelector.value === 'bulk_delete') { - event.preventDefault(); - confirmLinkClick(confirmBulkDelete); - return false; - } - } else { - doAction = false; - } - }); - jQuery(document).on('click', '#frm-confirmed-click', function (event) { - if (doAction === false || event.target.classList.contains('frm-btn-inactive')) { - return; - } - if (this.getAttribute('href') === 'confirm-bulk-delete') { - event.preventDefault(); - confirmedBulkDelete = true; - doAction.click(); - return false; - } - }); - } - function deleteTooltips() { - document.querySelectorAll('.tooltip').forEach(function (tooltip) { - tooltip.remove(); - }); - } - function removeThisTag() { - /*jshint validthis:true */ - var show, hide, removeMore; - if (parseInt(this.getAttribute('data-skip-frm-js')) || confirmLinkClick(this) === false) { - return; - } - var deleteButton = jQuery(this); - var id = deleteButton.attr('data-removeid'); - show = deleteButton.attr('data-showlast'); - if (typeof show === 'undefined') { - show = ''; - } - hide = deleteButton.attr('data-hidelast'); - if (typeof hide === 'undefined') { - hide = ''; - } - removeMore = deleteButton.attr('data-removemore'); - if (show !== '') { - if (deleteButton.closest('.frm_add_remove').find('.frm_remove_tag:visible').length > 1) { - show = ''; - hide = ''; - } - } else if (id.indexOf('frm_postmeta_') === 0) { - if (jQuery('#frm_postmeta_rows .frm_postmeta_row').length < 2) { - show = '.frm_add_postmeta_row.button'; - } - if (jQuery('.frm_toggle_cf_opts').length && jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().length) { - if (show !== '') { - show += ','; - } - show += '#' + jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().attr('id') + ' .frm_toggle_cf_opts'; - } - } - var fadeEle = document.getElementById(id); - var $fadeEle = jQuery(fadeEle); - $fadeEle.fadeOut(300, function () { - var _document$querySelect; - $fadeEle.remove(); - fieldUpdated(); - if (hide !== '') { - jQuery(hide).hide(); - } - if (show !== '') { - jQuery(show + ' a,' + show).removeClass('frm_hidden').fadeIn('slow'); - } - if (this.closest('.frm_form_action_settings')) { - var type = this.closest('.frm_form_action_settings').querySelector('.frm_action_name').value; - afterActionRemoved(type); - } - (_document$querySelect = document.querySelector('.tooltip')) === null || _document$querySelect === void 0 || _document$querySelect.remove(); - }); - if (typeof removeMore !== 'undefined') { - removeMore = jQuery(removeMore); - removeMore.fadeOut(400, function () { - removeMore.remove(); - }); - } - if (show !== '') { - jQuery(this).closest('.frm_logic_rows').fadeOut('slow'); - } - - /** - * Fires after a tag element has been removed in the admin interface. - * - * @param {string} id The ID of the removed element - * @param {HTMLElement} fadeEle The removed element that was faded out - */ - wp.hooks.doAction('frm_admin_tag_removed', id, fadeEle); - return false; - } - function afterActionRemoved(type) { - checkActiveAction(type); - var hookName = 'frm_after_action_removed'; - var hookArgs = { - type: type - }; - wp.hooks.doAction(hookName, hookArgs); - } - function clickWidget(event, b) { - /*jshint validthis:true */ - if (typeof b === 'undefined') { - b = this; - } - popCalcFields(b, false); - var cont = jQuery(b).closest('.frm_form_action_settings'); - var target = event.target; - if (cont.length && typeof target !== 'undefined') { - var className = target.parentElement.className; - if ('string' === typeof className) { - if (className.indexOf('frm_email_icons') > -1 || className.indexOf('frm_toggle') > -1) { - // clicking on delete icon shouldn't open it - event.stopPropagation(); - return; - } - } - } - var inside = cont.children('.widget-inside'); - if (cont.length && inside.find('p, div, table').length < 1) { - var actionId = cont.find('input[name$="[ID]"]').val(); - var actionType = cont.find('input[name$="[post_excerpt]"]').val(); - if (actionType) { - inside.html(''); - cont.find('.spinner').fadeIn('slow'); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_form_action_fill', - action_id: actionId, - action_type: actionType, - nonce: frmGlobal.nonce - }, - success: function success(html) { - inside.html(html); - initiateMultiselect(); - showInputIcon('#' + cont.attr('id')); - initAutocomplete(inside); - jQuery(b).trigger('frm-action-loaded'); - - /** - * Fires after filling form action content when opening. - * - * @since 5.5.4 - * - * @param {Object} insideElement JQuery object of form action inside element. - */ - wp.hooks.doAction('frm_filled_form_action', inside); - } - }); - } - } - jQuery(b).closest('.frm_field_box').siblings().find('.widget-inside').slideUp('fast'); - if (typeof b.className !== 'undefined' && b.className.indexOf('widget-action') !== -1 || jQuery(b).closest('.start_divider').length < 1) { - return; - } - inside = jQuery(b).closest('div.widget').children('.widget-inside'); - if (inside.is(':hidden')) { - inside.slideDown('fast'); - } else { - inside.slideUp('fast'); - } - } - function clickNewTab() { - /*jshint validthis:true */ - var t = this.getAttribute('href'); - if (typeof t === 'undefined') { - return false; - } - var c = t.replace('#', '.'); - var $link = jQuery(this); - $link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); - $link.closest('div').children('.tabs-panel').not(t).not(c).hide(); - var tabContent = document.getElementById(t.replace('#', '')); - if (tabContent) { - tabContent.style.display = 'block'; - } - - // clearSettingsBox would hide field settings when opening the fields modal and we want to skip it there. - if (this.id === 'frm_insert_fields_tab' && !this.closest('#frm_adv_info')) { - clearSettingsBox(); - } - return false; - } - function clickTab(link, auto) { - link = jQuery(link); - var t = link.attr('href'); - if (typeof t === 'undefined') { - return; - } - var c = t.replace('#', '.'); - link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); - if (link.closest('div').find('.tabs-panel').length) { - link.closest('div').children('.tabs-panel').not(t).not(c).hide(); - } else if (document.getElementById('form_global_settings') !== null) { - /* global settings */ - var ajax = link.data('frmajax'); - link.closest('.frm_wrap').find('.tabs-panel, .hide_with_tabs').hide(); - if (typeof ajax !== 'undefined' && ajax == '1') { - loadSettingsTab(t); - } - } else { - /* form settings page */ - jQuery('#frm-categorydiv .tabs-panel, .hide_with_tabs').hide(); - } - jQuery(t).show(); - jQuery(c).show(); - hideShortcodes(); - if (auto !== 'auto') { - // Hide success message on tab change. - jQuery('.frm_updated_message').hide(); - jQuery('.frm_warning_style').hide(); - } - if (jQuery(link).closest('#frm_adv_info').length) { - return; - } - if (jQuery('.frm_form_settings').length) { - jQuery('.frm_form_settings').attr('action', '?page=formidable&frm_action=settings&id=' + jQuery('.frm_form_settings input[name="id"]').val() + '&t=' + t.replace('#', '')); - } else { - jQuery('.frm_settings_form').attr('action', '?page=formidable-settings&t=' + t.replace('#', '')); - } - } - function setupSortable(sortableSelector) { - document.querySelectorAll(sortableSelector).forEach(function (list) { - makeDroppable(list); - Array.from(list.children).forEach(function (child) { - return makeDraggable(child, '.frm-move'); - }); - var $sectionTitle = jQuery(list).children('[data-type="divider"]').children('.divider_section_only'); - if ($sectionTitle.length) { - makeDroppable($sectionTitle); - } - }); - setupFieldOptionSorting(jQuery('#frm_builder_page')); - } - function makeDroppable(list) { - jQuery(list).droppable({ - accept: '.frmbutton, li.frm_field_box', - deactivate: handleFieldDrop, - over: onDragOverDroppable, - out: onDraggableLeavesDroppable, - tolerance: 'pointer' - }); - } - function onDragOverDroppable(event, ui) { - var droppable = getDroppableForOnDragOver(event.target); - var draggable = ui.draggable[0]; - if (!allowDrop(draggable, droppable, event)) { - droppable.classList.remove('frm-over-droppable'); - jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); - return; - } - document.querySelectorAll('.frm-over-droppable').forEach(function (droppable) { - return droppable.classList.remove('frm-over-droppable'); - }); - droppable.classList.add('frm-over-droppable'); - jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); - } - - /** - * Maybe change the droppable. - * Section titles are made droppable, but are not a list, so we need to change the droppable to the section's list instead. - * - * @param {Element} droppable - * @return {Element} - */ - function getDroppableForOnDragOver(droppable) { - if (droppable.classList.contains('divider_section_only')) { - droppable = jQuery(droppable).nextAll('.start_divider.frm_sorting').get(0); - } - return droppable; - } - function onDraggableLeavesDroppable(event) { - var droppable = event.target; - droppable.classList.remove('frm-over-droppable'); - } - function makeDraggable(draggable, handle) { - var settings = { - helper: getDraggableHelper, - revert: 'invalid', - delay: 10, - start: handleDragStart, - stop: handleDragStop, - drag: handleDrag, - cursor: 'grabbing', - refreshPositions: true, - cursorAt: { - top: 0, - left: 90 // The width of draggable button is 180. 90 should center the draggable on the cursor. - } - }; - if ('string' === typeof handle) { - settings.handle = handle; - } - jQuery(draggable).draggable(settings); - } - function getDraggableHelper(event) { - var draggable = event.delegateTarget; - if (isFieldGroup(draggable)) { - var newTextFieldClone = document.getElementById('frm-insert-fields').querySelector('.frm_ttext').cloneNode(true); - newTextFieldClone.querySelector('use').setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_field_group_layout_icon'); - newTextFieldClone.querySelector('span').textContent = __('Field Group', 'formidable'); - newTextFieldClone.classList.add('frm_field_box'); - newTextFieldClone.classList.add('ui-sortable-helper'); - return newTextFieldClone; - } - var copyTarget; - var isNewField = draggable.classList.contains('frmbutton'); - if (isNewField) { - copyTarget = draggable.cloneNode(true); - copyTarget.classList.add('ui-sortable-helper'); - draggable.classList.add('frm-new-field'); - return copyTarget; - } - if (draggable.hasAttribute('data-ftype')) { - var fieldType = draggable.getAttribute('data-ftype'); - copyTarget = document.getElementById('frm-insert-fields').querySelector('.frm_t' + fieldType); - copyTarget = copyTarget.cloneNode(true); - copyTarget.classList.add('form-field'); - copyTarget.classList.add('ui-sortable-helper'); - if (copyTarget) { - return copyTarget.cloneNode(true); - } - } - return div({ - className: 'frmbutton' - }); - } - function handleDragStart(event, ui) { - dragState.dragging = true; - var container = postBodyContent; - container.classList.add('frm-dragging-field'); - document.body.classList.add('frm-dragging'); - ui.helper.addClass('frm-sortable-helper'); - ui.helper.initialOffset = container.scrollTop; - event.target.classList.add('frm-drag-fade'); - unselectFieldGroups(); - deleteEmptyDividerWrappers(); - maybeRemoveGroupHoverTarget(); - closeOpenFieldDropdowns(); - deleteTooltips(); - } - function handleDragStop() { - var container = postBodyContent; - container.classList.remove('frm-dragging-field'); - document.body.classList.remove('frm-dragging'); - var fade = document.querySelector('.frm-drag-fade'); - if (fade) { - fade.classList.remove('frm-drag-fade'); - } - } - function handleDrag(event, ui) { - maybeScrollBuilder(event); - var draggable = event.target; - var droppable = getDroppableTarget(); - var placeholder = document.getElementById('frm_drag_placeholder'); - if (!allowDrop(draggable, droppable, event)) { - if (placeholder) { - placeholder.remove(); - } - return; - } - if (!placeholder) { - placeholder = tag('li', { - id: 'frm_drag_placeholder', - className: 'sortable-placeholder' - }); - } - var frmSortableHelper = ui.helper.get(0); - if (frmSortableHelper.classList.contains('form-field') || frmSortableHelper.classList.contains('frm_field_box')) { - // Sync the y position of the draggable so it still follows the cursor after scrolling up and down the field list. - frmSortableHelper.style.transform = 'translateY(' + getDragOffset(ui.helper) + 'px)'; - } - if ('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')) { - placeholder.style.left = 0; - handleDragOverYAxis({ - droppable: droppable, - y: event.clientY, - placeholder: placeholder - }); - return; - } - placeholder.style.top = ''; - handleDragOverFieldGroup({ - droppable: droppable, - x: event.clientX, - placeholder: placeholder - }); - } - function maybeScrollBuilder(event) { - $postBodyContent.scrollTop(function (_, v) { - var moved = event.clientY; - var h = postBodyContent.offsetHeight; - var relativePos = event.clientY - postBodyContent.offsetTop; - var y = relativePos - h / 2; - if (relativePos > h - 50 && moved > 5) { - // Scrolling down. - return v + y * 0.1; - } - if (relativePos < 70 && moved < 130) { - // Scrolling up. - return v - Math.abs(y * 0.1); - } - return v; - }); - } - function getDragOffset($helper) { - return postBodyContent.scrollTop - $helper.initialOffset; - } - function getDroppableTarget() { - var droppable = document.getElementById('frm-show-fields'); - while (droppable.querySelector('.frm-over-droppable')) { - droppable = droppable.querySelector('.frm-over-droppable'); - } - if ('frm-show-fields' === droppable.id && !droppable.classList.contains('frm-over-droppable')) { - droppable = false; - } - return droppable; - } - function handleFieldDrop(_, ui) { - if (!dragState.dragging) { - // dragState.dragging is set to true on drag start. - // The deactivate event gets called for every droppable. This check to make sure it happens once. - return; - } - dragState.dragging = false; - var draggable = ui.draggable[0]; - var placeholder = document.getElementById('frm_drag_placeholder'); - if (!placeholder) { - ui.helper.remove(); - debouncedSyncAfterDragAndDrop(); - return; - } - maybeOpenCollapsedPage(placeholder); - var $previousFieldContainer = ui.helper.parent(); - var previousSection = ui.helper.get(0).closest('ul.start_divider'); - var newSection = placeholder.closest('ul.start_divider'); - if (draggable.classList.contains('frm-new-field')) { - insertNewFieldByDragging(draggable.id); - } else { - moveFieldThatAlreadyExists(draggable, placeholder); - maybeMakeFieldGroupDraggableAfterDragging(placeholder.parentElement); - } - var previousSectionId = previousSection ? parseInt(previousSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; - var newSectionId = newSection ? parseInt(newSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; - placeholder.remove(); - ui.helper.remove(); - var $previousContainerFields = $previousFieldContainer.length ? getFieldsInRow($previousFieldContainer) : []; - maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields); - maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields); - if (previousSectionId !== newSectionId) { - updateFieldAfterMovingBetweenSections(jQuery(draggable), previousSection); - } - debouncedSyncAfterDragAndDrop(); - } - - /** - * When a field is moved into a field group, make sure the field group is draggable. - * - * @since 6.24 - * - * @param {HTMLElement} placeholderParent - * @return {void} - */ - function maybeMakeFieldGroupDraggableAfterDragging(placeholderParent) { - var isDroppingIntoFieldGroup = placeholderParent.nodeName === 'UL' && !placeholderParent.classList.contains('start_divider') && 'frm-show-fields' !== placeholderParent.id; - if (!isDroppingIntoFieldGroup) { - return; - } - var fieldGroupLi = placeholderParent.closest('li'); - if (fieldGroupLi && !fieldGroupLi.classList.contains('ui-draggable')) { - makeDraggable(fieldGroupLi, '.frm-move'); - } - } - - /** - * If a page if collapsed, expand it before dragging since only the page break will move. - * - * @param {Element} placeholder - * @return {void} - */ - function maybeOpenCollapsedPage(placeholder) { - if (!placeholder.previousElementSibling || !placeholder.previousElementSibling.classList.contains('frm-is-collapsed')) { - return; - } - var $pageBreakField = jQuery(placeholder).prevUntil('[data-type="break"]'); - if (!$pageBreakField.length) { - return; - } - var collapseButton = $pageBreakField.find('.frm-collapse-page').get(0); - if (collapseButton) { - collapseButton.click(); - } - } - function maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields) { - if (!$previousFieldContainer.length) { - return; - } - if ($previousContainerFields.length) { - syncLayoutClasses($previousContainerFields.first()); - } else { - maybeDeleteAnEmptyFieldGroup($previousFieldContainer.get(0)); - } - } - function maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields) { - if (0 !== $previousContainerFields.length || 1 !== getFieldsInRow(jQuery(draggable.parentNode)).length) { - syncLayoutClasses(jQuery(draggable)); - } - } - - /** - * Remove an empty field group, but don't remove an empty section. - * - * @param {Element} previousFieldContainer - * @return {void} - */ - function maybeDeleteAnEmptyFieldGroup(previousFieldContainer) { - var closestFieldBox = previousFieldContainer.closest('li.frm_field_box'); - if (closestFieldBox && !closestFieldBox.classList.contains('edit_field_type_divider')) { - closestFieldBox.remove(); - } - } - function handleDragOverYAxis(_ref) { - var droppable = _ref.droppable, - y = _ref.y, - placeholder = _ref.placeholder; - var $list = jQuery(droppable); - var top; - $children = $list.children().not('.edit_field_type_end_divider'); - if (0 === $children.length) { - $list.prepend(placeholder); - top = 0; - } else { - var insertAtIndex = determineIndexBasedOffOfMousePositionInList($list, y); - if (insertAtIndex === $children.length) { - var $lastChild = jQuery($children.get(insertAtIndex - 1)); - top = $lastChild.offset().top + $lastChild.outerHeight(); - $list.append(placeholder); - - // Make sure nothing gets inserted after the end divider. - var $endDivider = $list.children('.edit_field_type_end_divider'); - if ($endDivider.length) { - $list.append($endDivider); - } - } else { - top = jQuery($children.get(insertAtIndex)).offset().top; - jQuery($children.get(insertAtIndex)).before(placeholder); - } - } - top -= $list.offset().top; - placeholder.style.top = top + 'px'; - } - function determineIndexBasedOffOfMousePositionInList($list, y) { - var $items = $list.children().not('.edit_field_type_end_divider'); - var length = $items.length; - var index, item, itemTop, returnIndex; - if (!document.querySelector('.frm-has-fields .frm_no_fields')) { - // Always return 0 when there are no fields. - return 0; - } - returnIndex = 0; - for (index = length - 1; index >= 0; --index) { - item = $items.get(index); - itemTop = jQuery(item).offset().top; - if (y > itemTop) { - returnIndex = index; - if (y > itemTop + jQuery(item).outerHeight() / 2) { - returnIndex = index + 1; - } - break; - } - } - return returnIndex; - } - function handleDragOverFieldGroup(_ref2) { - var droppable = _ref2.droppable, - x = _ref2.x, - placeholder = _ref2.placeholder; - var $row = jQuery(droppable); - var $children = getFieldsInRow($row); - if (!$children.length) { - return; - } - var left; - var insertAtIndex = determineIndexBasedOffOfMousePositionInRow($row, x); - if (insertAtIndex === $children.length) { - var $lastChild = jQuery($children.get(insertAtIndex - 1)); - left = $lastChild.offset().left + $lastChild.outerWidth(); - $row.append(placeholder); - } else { - left = jQuery($children.get(insertAtIndex)).offset().left; - jQuery($children.get(insertAtIndex)).before(placeholder); - var amountToOffsetLeftBy = 0 === insertAtIndex ? 4 : 8; // Offset by 8 in between rows, but only 4 for the first item in a group. - left -= amountToOffsetLeftBy; // Offset the placeholder slightly so it appears between two fields. - } - left -= $row.offset().left; - placeholder.style.left = left + 'px'; - } - function syncAfterDragAndDrop() { - fixUnwrappedListItems(); - toggleSectionHolder(); - maybeFixEndDividers(); - maybeDeleteEmptyFieldGroups(); - updateFieldOrder(); - var event = new Event('frm_sync_after_drag_and_drop', { - bubbles: false - }); - document.dispatchEvent(event); - } - function maybeFixEndDividers() { - document.querySelectorAll('.edit_field_type_end_divider').forEach(function (endDivider) { - return endDivider.parentNode.appendChild(endDivider); - }); - } - function maybeDeleteEmptyFieldGroups() { - document.querySelectorAll('li.form_field_box:not(.form-field)').forEach(function (fieldGroup) { - return !fieldGroup.children.length && fieldGroup.remove(); - }); - } - function fixUnwrappedListItems() { - var lists = document.querySelectorAll('ul#frm-show-fields, ul.start_divider'); - lists.forEach(function (list) { - list.childNodes.forEach(function (child) { - if ('undefined' === typeof child.classList) { - return; - } - if (child.classList.contains('edit_field_type_end_divider')) { - // Never wrap end divider in place. - return; - } - if ('undefined' !== typeof child.classList && child.classList.contains('form-field')) { - wrapFieldLiInPlace(child); - } - }); - }); - } - function deleteEmptyDividerWrappers() { - var dividers = document.querySelectorAll('ul.start_divider'); - if (!dividers.length) { - return; - } - dividers.forEach(function (divider) { - var children = [].slice.call(divider.children); - children.forEach(function (child) { - if (0 === child.children.length) { - child.remove(); - } else if (1 === child.children.length && 'ul' === child.firstElementChild.nodeName.toLowerCase() && 0 === child.firstElementChild.children.length) { - child.remove(); - } - }); - }); - } - function getFieldsInRow($row) { - var $fields = jQuery(); - var row = $row.get(0); - if (!row.children) { - return $fields; - } - Array.from(row.children).forEach(function (child) { - if ('none' === child.style.display) { - return; - } - var classes = child.classList; - if (!classes.contains('form-field') || classes.contains('edit_field_type_end_divider') || classes.contains('frm-sortable-helper')) { - return; - } - $fields = $fields.add(child); - }); - return $fields; - } - function determineIndexBasedOffOfMousePositionInRow($row, x) { - var $inputs = getFieldsInRow($row), - length = $inputs.length, - index, - input, - inputLeft, - returnIndex; - returnIndex = 0; - for (index = length - 1; index >= 0; --index) { - input = $inputs.get(index); - inputLeft = jQuery(input).offset().left; - if (x > inputLeft) { - returnIndex = index; - if (x > inputLeft + jQuery(input).outerWidth() / 2) { - returnIndex = index + 1; - } - break; - } - } - return returnIndex; - } - function syncLayoutClasses($item, type) { - var $fields, size, layoutClasses, classToAddFunction; - if ('undefined' === typeof type) { - type = 'even'; - } - $fields = $item.parent().children('li.form-field, li.frmbutton_loadingnow').not('.edit_field_type_end_divider'); - size = $fields.length; - layoutClasses = getLayoutClasses(); - if ('even' === type && 5 !== size) { - $fields.each(getSyncLayoutClass(layoutClasses, getEvenClassForSize(size))); - } else if ('clear' === type) { - $fields.each(getSyncLayoutClass(layoutClasses, '')); - } else { - if (-1 !== ['left', 'right', 'middle', 'even'].indexOf(type)) { - classToAddFunction = function classToAddFunction(index) { - return getClassForBlock(size, type, index); - }; - } else { - classToAddFunction = function classToAddFunction(index) { - var size = type[index]; - return getLayoutClassForSize(size); - }; - } - $fields.each(getSyncLayoutClass(layoutClasses, classToAddFunction)); - } - updateFieldGroupControls($item.parent(), $fields.length); - } - function updateFieldGroupControls($row, count) { - var rowOffset, shouldShowControls, controls; - rowOffset = $row.offset(); - if ('undefined' === typeof rowOffset) { - return; - } - shouldShowControls = count >= 2; - controls = document.getElementById('frm_field_group_controls'); - if (null === controls) { - if (!shouldShowControls) { - // exit early. if we do not need controls and they do not exist, do nothing. - return; - } - controls = div(); - controls.id = 'frm_field_group_controls'; - controls.setAttribute('role', 'group'); - controls.setAttribute('tabindex', 0); - setFieldControlsHtml(controls); - builderPage.appendChild(controls); - } - $row.append(controls); - controls.style.display = shouldShowControls ? 'block' : 'none'; - } - function setFieldControlsHtml(controls) { - var layoutOption, moveOption; - layoutOption = document.createElement('span'); - layoutOption.innerHTML = ''; - var layoutOptionLabel = __('Set Row Layout', 'formidable'); - addTooltip(layoutOption, layoutOptionLabel); - makeTabbable(layoutOption, layoutOptionLabel); - moveOption = document.createElement('span'); - moveOption.innerHTML = ''; - moveOption.classList.add('frm-move'); - var moveOptionLabel = __('Move Field Group', 'formidable'); - addTooltip(moveOption, moveOptionLabel); - makeTabbable(moveOption, moveOptionLabel); - controls.innerHTML = ''; - controls.appendChild(layoutOption); - controls.appendChild(moveOption); - controls.appendChild(getFieldControlsDropdown()); - } - function addTooltip(element, title) { - element.setAttribute('data-toggle', 'tooltip'); - element.setAttribute('data-container', 'body'); - element.setAttribute('title', title); - element.addEventListener('mouseover', function () { - if (null === element.getAttribute('data-original-title')) { - jQuery(element).tooltip(); - } - }); - } - function getFieldControlsDropdown() { - var dropdown = span({ - className: 'dropdown' - }); - var trigger = a({ - className: 'frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle', - children: [span({ - child: svg({ - href: '#frm_thick_more_vert_icon' - }) - }), span({ - className: 'screen-reader-text', - text: __('Toggle More Options Dropdown', 'formidable') - })] - }); - frmDom.setAttributes(trigger, { - title: __('More Options', 'formidable'), - 'data-toggle': 'dropdown', - 'data-container': 'body' - }); - makeTabbable(trigger, __('More Options', 'formidable')); - dropdown.appendChild(trigger); - var ul = div({ - className: 'frm-dropdown-menu dropdown-menu dropdown-menu-right' - }); - ul.setAttribute('role', 'menu'); - dropdown.appendChild(ul); - return dropdown; - } - function getSyncLayoutClass(layoutClasses, classToAdd) { - return function (itemIndex) { - var currentClassToAdd, length, layoutClassIndex, currentClass, activeLayoutClass, fieldId, layoutClassesInput; - currentClassToAdd = 'function' === typeof classToAdd ? classToAdd(itemIndex) : classToAdd; - length = layoutClasses.length; - activeLayoutClass = false; - for (layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex) { - currentClass = layoutClasses[layoutClassIndex]; - if (this.classList.contains(currentClass)) { - activeLayoutClass = currentClass; - break; - } - } - fieldId = this.dataset.fid; - if ('undefined' === typeof fieldId) { - // we are syncing the drag/drop placeholder before the actual field has loaded. - // this will get called again afterward and the input will exist then. - this.classList.add(currentClassToAdd); - return; - } - moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); - layoutClassesInput = document.getElementById('frm_classes_' + fieldId); - if (null === layoutClassesInput) { - // not every field type has a layout class input. - return; - } - if (false === activeLayoutClass) { - if ('' !== currentClassToAdd) { - layoutClassesInput.value = layoutClassesInput.value.concat(' ' + currentClassToAdd); - } - } else { - this.classList.remove(activeLayoutClass); - layoutClassesInput.value = layoutClassesInput.value.replace(activeLayoutClass, currentClassToAdd); - } - if (this.classList.contains('frm_first')) { - this.classList.remove('frm_first'); - layoutClassesInput.value = layoutClassesInput.value.replace('frm_first', '').trim(); - } - if (0 === itemIndex) { - this.classList.add('frm_first'); - layoutClassesInput.value = layoutClassesInput.value.concat(' frm_first'); - } - jQuery(layoutClassesInput).trigger('change'); - }; - } - function getLayoutClasses() { - return ['frm_full', 'frm_half', 'frm_third', 'frm_fourth', 'frm_sixth', 'frm_two_thirds', 'frm_three_fourths', 'frm1', 'frm2', 'frm3', 'frm4', 'frm5', 'frm6', 'frm7', 'frm8', 'frm9', 'frm10', 'frm11', 'frm12']; - } - function setupFieldOptionSorting(sort) { - var opts = { - items: '.frm_sortable_field_opts li', - axis: 'y', - opacity: 0.65, - forcePlaceholderSize: false, - handle: '.frm-drag', - helper: function helper(e, li) { - copyHelper = li.clone().insertAfter(li); - return li.clone(); - }, - stop: function stop(e, ui) { - copyHelper && copyHelper.remove(); - var fieldId = ui.item.attr('id').replace('frm_delete_field_', '').replace('-' + ui.item.data('optkey') + '_container', ''); - resetDisplayedOpts(fieldId); - fieldUpdated(); - } - }; - jQuery(sort).sortable(opts); - } - - // Get the section where a field is dropped - function getSectionForFieldPlacement(currentItem) { - var section = ''; - if (typeof currentItem !== 'undefined' && !currentItem.hasClass('edit_field_type_divider')) { - section = currentItem.closest('.edit_field_type_divider'); - } - return section; - } - - // Get the form ID where a field is dropped - function getFormIdForFieldPlacement(section) { - var formId = ''; - if (typeof section[0] !== 'undefined') { - var sDivide = section.children('.start_divider'); - sDivide.children('.edit_field_type_end_divider').appendTo(sDivide); - if (typeof section.attr('data-formid') !== 'undefined') { - var fieldId = section.attr('data-fid'); - formId = jQuery('input[name="field_options[form_select_' + fieldId + ']"]').val(); - } - } - if (typeof formId === 'undefined' || formId === '') { - formId = thisFormId; - } - return formId; - } - - // Get the section ID where a field is dropped - function getSectionIdForFieldPlacement(section) { - var sectionId = 0; - if (typeof section[0] !== 'undefined') { - sectionId = section.attr('id').replace('frm_field_id_', ''); - } - return sectionId; - } - - /** - * Update a field after it is dragged and dropped into, out of, or between sections - * - * @param {Object} currentItem - * @param {Object} previousSection - * @return {void} - */ - function updateFieldAfterMovingBetweenSections(currentItem, previousSection) { - if (!currentItem.hasClass('form-field')) { - // currentItem is a field group. Call for children recursively. - getFieldsInRow(jQuery(currentItem.get(0).firstChild)).each(function () { - updateFieldAfterMovingBetweenSections(jQuery(this), previousSection); - }); - return; - } - var fieldId = currentItem.attr('id').replace('frm_field_id_', ''); - var section = getSectionForFieldPlacement(currentItem); - var formId = getFormIdForFieldPlacement(section); - var sectionId = getSectionIdForFieldPlacement(section); - var previousFormId = previousSection ? getFormIdForFieldPlacement(jQuery(previousSection.parentNode)) : 0; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_update_field_after_move', - form_id: formId, - field: fieldId, - section_id: sectionId, - previous_form_id: previousFormId, - nonce: frmGlobal.nonce - }, - success: function success() { - toggleSectionHolder(); - updateInSectionValue(fieldId, sectionId); - } - }); - } - - // Update the in_section field value - function updateInSectionValue(fieldId, sectionId) { - document.getElementById('frm_in_section_' + fieldId).value = sectionId; - } - - /** - * Get the arguments for inserting a new field. - * - * @since 6.23 - * - * @param {string} fieldType - * @param {string} sectionId - * @param {string} formId - * @param {Number} hasBreak - * - * @return {Object} - */ - function getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak) { - return { - action: 'frm_insert_field', - form_id: formId, - field_type: fieldType, - section_id: sectionId, - nonce: frmGlobal.nonce, - has_break: hasBreak, - last_row_field_ids: getFieldIdsInSubmitRow() - }; - } - - /** - * Returns true if it's a range field type and slider type is not selected. - * - * @since 6.23 - * - * @param {string} fieldType - * @return {boolean} - */ - function shouldStopInsertingField(fieldType) { - return wp.hooks.applyFilters('frm_should_stop_inserting_field', false, fieldType); - } - - /** - * Add a new field by dragging and dropping it from the Fields sidebar - * - * @param {string} fieldType - */ - function insertNewFieldByDragging(fieldType) { - if (shouldStopInsertingField(fieldType)) { - wp.hooks.doAction('frm_stopped_inserting_by_dragging', fieldType); - return; - } - var placeholder = document.getElementById('frm_drag_placeholder'); - var loadingID = fieldType.replace('|', '-') + '_' + getAutoId(); - var loading = tag('li', { - id: loadingID, - className: 'frm-wait frmbutton_loadingnow' - }); - var $placeholder = jQuery(loading); - var currentItem = jQuery(placeholder); - var section = getSectionForFieldPlacement(currentItem); - var formId = getFormIdForFieldPlacement(section); - var sectionId = getSectionIdForFieldPlacement(section); - placeholder.parentNode.insertBefore(loading, placeholder); - placeholder.remove(); - syncLayoutClasses($placeholder); - var hasBreak = 0; - if ('summary' === fieldType) { - // see if we need to insert a page break before this newly-added summary field. Check for at least 1 page break - hasBreak = jQuery('.frmbutton_loadingnow#' + loadingID).prevAll('li[data-type="break"]').length ? 1 : 0; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak), - success: function success(msg) { - handleInsertFieldByDraggingResponse(msg, $placeholder); - var fieldId = checkMsgForFieldId(msg); - if (fieldId) { - /** - * Fires after a field is added. - * - * @since 6.23 - * - * @param {Object} fieldData The field data. - * @param {string} fieldData.field The field HTML. - * @param {string} fieldData.field_type The field type. - * @param {string} fieldData.form_id The form ID. - */ - wp.hooks.doAction('frm_after_field_added_in_form_builder', { - field: msg, - fieldId: fieldId, - fieldType: fieldType, - form_id: formId - }); - } - }, - error: handleInsertFieldError - }); - } - - /** - * @param {string} msg - * @param {Object} $placeholder jQuery object. - */ - function handleInsertFieldByDraggingResponse(msg, $placeholder) { - var replaceWith; - document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); - var $siblings = $placeholder.siblings('li.form-field').not('.edit_field_type_end_divider'); - if (!$siblings.length) { - // if dragging into a new row, we need to wrap the li first. - replaceWith = wrapFieldLi(msg); - } else { - replaceWith = msgAsjQueryObject(msg); - if (!$placeholder.get(0).parentNode.parentNode.classList.contains('ui-draggable')) { - // If a field group wasn't draggable because it only had a single field, make it draggable. - makeDraggable($placeholder.get(0).parentNode.parentNode, '.frm-move'); - } - } - $placeholder.replaceWith(replaceWith); - updateFieldOrder(); - afterAddField(msg, false); - if ($siblings.length) { - syncLayoutClasses($siblings.first()); - } - toggleSectionHolder(); - if (!$siblings.length) { - makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); - makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); - } else { - makeDraggable(replaceWith.get(0), '.frm-move'); - } - } - - /** - * Get the field ID from the response message. - * - * @since 6.23 - * - * @param {string} msg - * @return {Number} - */ - function checkMsgForFieldId(msg) { - var result = msg.match(/data-fid="(\d+)"/); - return result ? parseInt(result[1]) : 0; - } - function getFieldIdsInSubmitRow() { - var submitField = document.querySelector('.edit_field_type_submit'); - if (!submitField) { - return []; - } - var lastRowFields = submitField.parentNode.children; - var ids = []; - for (var _i2 = 0; _i2 < lastRowFields.length; _i2++) { - ids.push(lastRowFields[_i2].dataset.fid); - } - return ids; - } - function moveFieldThatAlreadyExists(draggable, placeholder) { - placeholder.parentNode.insertBefore(draggable, placeholder); - } - function msgAsjQueryObject(msg) { - var element = div(); - element.innerHTML = msg; - return jQuery(element.firstChild); - } - function handleInsertFieldError(jqXHR, _, errorThrown) { - maybeShowInsertFieldError(errorThrown, jqXHR); - } - function maybeShowInsertFieldError(errorThrown, jqXHR) { - if (!jqXHRAborted(jqXHR)) { - infoModal(errorThrown + '. Please try again.'); - } - } - function jqXHRAborted(jqXHR) { - return jqXHR.status === 0 || jqXHR.readyState === 0; - } - - /** - * Get a unique id that automatically increments with every function call. - * Can be used for any UI that requires a unique id. - * Not to be used in data. - * - * @return {number} - */ - function getAutoId() { - return ++autoId; - } - - /** - * Determine if a draggable element can be droppable into a droppable element. - * - * Don't allow page break, embed form, or section inside section field - * Don't allow page breaks inside of field groups. - * Don't allow field groups with sections inside of sections. - * Don't allow field groups in field groups. - * Don't allow hidden fields inside of field groups but allow them in sections. - * Don't allow any fields below the submit button field. - * Don't allow submit button field above any fields. - * Don't allow GDPR fields in repeaters. - * - * @param {HTMLElement} draggable - * @param {HTMLElement} droppable - * @param {Event} event - * @return {Boolean} - */ - function allowDrop(draggable, droppable, event) { - if (false === droppable) { - // Don't show drop placeholder if dragging somewhere off of the droppable area. - return false; - } - if (droppable.closest('.frm-sortable-helper')) { - // Do not allow drop into draggable. - return false; - } - var isSubmitBtn = draggable.classList.contains('edit_field_type_submit'); - var containSubmitBtn = !draggable.classList.contains('form_field') && !!draggable.querySelector('.edit_field_type_submit'); - if ('frm-show-fields' === droppable.id) { - var draggableIndex = determineIndexBasedOffOfMousePositionInList(jQuery(droppable), event.clientY); - if (isSubmitBtn || containSubmitBtn) { - // Do not allow dropping submit button to above position. - var lastRowIndex = droppable.childElementCount - 1; - return draggableIndex > lastRowIndex; - } - - // Do not allow dropping other fields to below submit button. - var submitButtonIndex = jQuery(droppable.querySelector('.edit_field_type_submit').closest('#frm-show-fields > li')).index(); - return draggableIndex <= submitButtonIndex; - } - if (isSubmitBtn) { - if (droppable.classList.contains('start_divider')) { - // Don't allow dropping submit button into a repeater. - return false; - } - if (isLastRow(droppable.parentElement)) { - // Allow dropping submit button into the last row. - return true; - } - if (!isLastRow(droppable.parentElement.nextElementSibling)) { - // Don't a dropping submit button into the row that isn't the second one from bottom. - return false; - } - - // Allow dropping submit button into the second row from bottom if there is only submit button in the last row. - return !draggable.parentElement.querySelector('li.frm_field_box:not(.edit_field_type_submit)'); - } - if (droppable.classList.contains('start_divider') && (draggable.classList.contains('edit_field_type_gdpr') || draggable.id === 'gdpr') && droppable.closest('.repeat_section')) { - // Don't allow GDPR fields in repeaters. - return false; - } - if (!droppable.classList.contains('start_divider')) { - var $fieldsInRow = getFieldsInRow(jQuery(droppable)); - if (!groupCanFitAnotherField($fieldsInRow, jQuery(draggable))) { - // Field group is full and cannot accept another field. - return false; - } - if (draggable.id === 'divider' && droppable.closest('.start_divider')) { - return false; - } - } - var isNewField = draggable.classList.contains('frm-new-field'); - if (isNewField) { - return allowNewFieldDrop(draggable, droppable); - } - return allowMoveField(draggable, droppable); - } - - /** - * Checks if given element is the last row in form builder. - * - * @param {HTMLElement} element Element. - * @return {Boolean} - */ - function isLastRow(element) { - return element && element.matches('#frm-show-fields > li:last-child'); - } - - // Don't allow a new page break or hidden field in a field group. - // Don't allow a new field into a field group that includes a page break or hidden field. - // Don't allow a new section inside of a section. - // Don't allow an embedded form in a section. - function allowNewFieldDrop(draggable, droppable) { - var classes = draggable.classList; - var newPageBreakField = classes.contains('frm_tbreak'); - var newHiddenField = classes.contains('frm_thidden'); - var newSectionField = classes.contains('frm_tdivider'); - var newEmbedField = classes.contains('frm_tform'); - var newUserIdField = classes.contains('frm_tuser_id'); - var newFieldWillBeAddedToAGroup = !('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')); - if (newFieldWillBeAddedToAGroup) { - if (groupIncludesBreakOrHiddenOrUserId(droppable)) { - // Never allow any field beside a page break or a hidden field. - return false; - } - return !newHiddenField && !newPageBreakField && !newUserIdField; - } - var fieldTypeIsAlwaysAllowed = !newPageBreakField && !newHiddenField && !newSectionField && !newEmbedField; - if (fieldTypeIsAlwaysAllowed) { - return true; - } - var newFieldWillBeAddedToASection = droppable.classList.contains('start_divider') || null !== droppable.closest('.start_divider'); - if (newFieldWillBeAddedToASection) { - // Don't allow a section or an embedded form in a section. - return !newEmbedField && !newSectionField; - } - return true; - } - function allowMoveField(draggable, droppable) { - if (isFieldGroup(draggable)) { - return allowMoveFieldGroup(draggable, droppable); - } - var isPageBreak = draggable.classList.contains('edit_field_type_break'); - if (isPageBreak) { - // Page breaks are only allowed in the main list of fields, not in sections or in field groups. - return false; - } - if (droppable.classList.contains('start_divider')) { - return allowMoveFieldToSection(draggable); - } - var isHiddenField = draggable.classList.contains('edit_field_type_hidden'); - var isUserIdField = draggable.classList.contains('edit_field_type_user_id'); - if (isHiddenField || isUserIdField) { - // Hidden fields and user id fields should not be added to field groups since they're not shown - // and don't make sense with the grid distribution. - return false; - } - return allowMoveFieldToGroup(draggable, droppable); - } - function isFieldGroup(draggable) { - return draggable.classList.contains('frm_field_box') && !draggable.classList.contains('form-field'); - } - function allowMoveFieldGroup(fieldGroup, droppable) { - if (droppable.classList.contains('start_divider') && null === fieldGroup.querySelector('.start_divider')) { - // Allow a field group with no section inside of a section. - return true; - } - return false; - } - function allowMoveFieldToSection(draggable) { - var draggableIncludeEmbedForm = draggable.classList.contains('edit_field_type_form') || draggable.querySelector('.edit_field_type_form'); - if (draggableIncludeEmbedForm) { - // Do not allow an embedded form inside of a section. - return false; - } - var draggableIncludesSection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); - if (draggableIncludesSection) { - // Do not allow a section inside of a section. - return false; - } - return true; - } - function allowMoveFieldToGroup(draggable, group) { - if (groupIncludesBreakOrHiddenOrUserId(group)) { - // Never allow any field beside a page break or a hidden field. - return false; - } - var isFieldGroup = jQuery(draggable).children('ul.frm_sorting').not('.start_divider').length > 0; - if (isFieldGroup) { - // Do not allow a field group directly inside of a field group unless it's in a section. - return false; - } - var draggableIncludesASection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); - var draggableIsEmbedField = draggable.classList.contains('edit_field_type_form'); - var groupIsInASection = null !== group.closest('.start_divider'); - if (groupIsInASection && (draggableIncludesASection || draggableIsEmbedField)) { - // Do not allow a section or an embed field inside of a section. - return false; - } - return true; - } - function groupIncludesBreakOrHiddenOrUserId(group) { - return null !== group.querySelector('.edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id'); - } - function groupCanFitAnotherField(fieldsInRow, $field) { - var fieldId; - if (fieldsInRow.length < 6) { - return true; - } - if (fieldsInRow.length > 6) { - return false; - } - fieldId = $field.attr('data-fid'); - // allow 6 if we're not changing field groups. - return 1 === jQuery(fieldsInRow).filter('[data-fid="' + fieldId + '"]').length; - } - function loadFields(fieldId) { - var thisField = document.getElementById(fieldId); - var $thisField = jQuery(thisField); - var field = []; - var addHtmlToField = function addHtmlToField(element) { - var frmHiddenFdata = element.querySelector('.frm_hidden_fdata'); - element.classList.add('frm_load_now'); - if (frmHiddenFdata !== null) { - field.push(frmHiddenFdata.innerHTML); - } - }; - var nextElement = thisField; - addHtmlToField(nextElement); - var nextField = getNextField(nextElement); - while (nextField && field.length < 15) { - addHtmlToField(nextField); - nextElement = nextField; - nextField = getNextField(nextField); - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_load_field', - field: field, - form_id: thisFormId, - nonce: frmGlobal.nonce - }, - success: function success(html) { - return handleAjaxLoadFieldSuccess(html, $thisField, field); - } - }); - } - function getNextField(field) { - var _field$parentNode; - if (field.nextElementSibling) { - return field.nextElementSibling; - } - return (_field$parentNode = field.parentNode) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.closest('.frm_field_box')) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.nextElementSibling) === null || _field$parentNode === void 0 ? void 0 : _field$parentNode.querySelector('.form-field'); - } - function handleAjaxLoadFieldSuccess(html, $thisField, field) { - var key, $nextSet; - html = html.replace(/^\s+|\s+$/g, ''); - if (html.indexOf('{') !== 0) { - jQuery('.frm_load_now').removeClass('.frm_load_now').html('Error'); - return; - } - html = JSON.parse(html); - for (key in html) { - jQuery('#frm_field_id_' + key).replaceWith(html[key]); - setupSortable('#frm_field_id_' + key + '.edit_field_type_divider ul.frm_sorting'); - makeDraggable(document.getElementById('frm_field_id_' + key)); - } - $nextSet = $thisField.nextAll('.frm_field_loading:not(.frm_load_now)'); - if ($nextSet.length) { - loadFields($nextSet.attr('id')); - } else { - // go up a level - $nextSet = jQuery(document.getElementById('frm-show-fields')).find('.frm_field_loading:not(.frm_load_now)'); - if ($nextSet.length) { - loadFields($nextSet.attr('id')); - } - } - initiateMultiselect(); - renumberPageBreaks(); - maybeHideQuantityProductFieldOption(); - var loadedEvent = new Event('frm_ajax_loaded_field', { - bubbles: false - }); - loadedEvent.frmFields = field.map(function (f) { - return JSON.parse(f); - }); - document.dispatchEvent(loadedEvent); - } - function addFieldClick() { - /*jshint validthis:true */ - var $thisObj = jQuery(this); - // there is no real way to disable a (with a valid href attribute) in HTML - https://css-tricks.com/how-to-disable-links/ - if ($thisObj.hasClass('disabled')) { - return false; - } - var $button = $thisObj.closest('.frmbutton'); - var fieldType = $button.attr('id'); - if (shouldStopInsertingField(fieldType)) { - return; - } - var hasBreak = 0; - if ('summary' === fieldType) { - hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; - } - var formId = thisFormId; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), - success: function success(msg) { - handleAddFieldClickResponse(msg); - var fieldId = checkMsgForFieldId(msg); - if (fieldId) { - /** - * Fires after a field is added. - * - * @since 6.23 - * - * @param {Object} fieldData The field data. - * @param {string} fieldData.field The field HTML. - * @param {string} fieldData.field_type The field type. - * @param {string} fieldData.form_id The form ID. - */ - wp.hooks.doAction('frm_after_field_added_in_form_builder', { - field: msg, - fieldId: fieldId, - fieldType: fieldType, - form_id: formId - }); - } - }, - error: handleInsertFieldError - }); - return false; - } - function handleAddFieldClickResponse(msg) { - document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); - var replaceWith = wrapFieldLi(msg); - var submitField = $newFields[0].querySelector('.edit_field_type_submit'); - if (!submitField) { - $newFields.append(replaceWith); - } else { - jQuery(submitField.closest('.frm_field_box:not(.form-field)')).before(replaceWith); - } - afterAddField(msg, true); - replaceWith.each(function () { - makeDroppable(this.querySelector('ul.frm_sorting')); - makeDraggable(this.querySelector('.form-field'), '.frm-move'); - }); - } - function insertFormField(fieldType) { - var fieldOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return new Promise(function (resolve) { - var formId = thisFormId; - var hasBreak = 0; - if ('summary' === fieldType) { - hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: Object.assign(getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), { - field_options: fieldOptions - }), - success: function success(msg) { - resolve(msg); - setTimeout(function () { - updateFieldOrder(); - afterAddField(msg, true); - var fieldId = checkMsgForFieldId(msg); - if (fieldId) { - /** - * Fires after a field is added. - * - * @since 6.23 - * - * @param {Object} fieldData The field data. - * @param {string} fieldData.field The field HTML. - * @param {string} fieldData.field_type The field type. - * @param {string} fieldData.form_id The form ID. - */ - wp.hooks.doAction('frm_after_field_added_in_form_builder', { - field: msg, - fieldId: fieldId, - fieldType: fieldType, - form_id: formId - }); - } - }, 10); - }, - error: handleInsertFieldError - }); - }); - } - function maybeHideQuantityProductFieldOption() { - var hide = true, - opts = document.querySelectorAll('.frmjs_prod_field_opt_cont'); - if ($newFields.find('li.edit_field_type_product').length > 1) { - hide = false; - } - for (var _i3 = 0; _i3 < opts.length; _i3++) { - if (hide) { - opts[_i3].classList.add('frm_hidden'); - } else { - opts[_i3].classList.remove('frm_hidden'); - } - } - } - - /** - * Returns true if a field can be duplicated. - * - * @since 6.19 - * - * @param {HTMLElement} field - * @param {number} maxFieldsInGroup - * - * @return {Boolean} - */ - function canDuplicateField(field, maxFieldsInGroup) { - if (field.classList.contains('frm-page-collapsed')) { - return false; - } - var fieldGroup = field.closest('li.frm_field_box:not(.form-field)'); - if (!fieldGroup) { - return true; - } - var fieldsInGroup = getFieldsInRow(jQuery(fieldGroup.querySelector('ul'))).length; - return fieldsInGroup < maxFieldsInGroup; - } - function duplicateField() { - var $field, fieldId, children, newRowId, fieldOrder; - var maxFieldsInGroup = 6; - $field = jQuery(this).closest('li.form-field'); - newRowId = this.getAttribute('frm-target-row-id'); - if (!(newRowId && newRowId.startsWith('frm_field_group_')) && !canDuplicateField($field.get(0), maxFieldsInGroup)) { - /* translators: %1$d: Maximum number of fields allowed in a field group. */ - infoModal(sprintf(__('You can only have a maximum of %1$d fields in a field group. Delete or move out a field from the group and try again.', 'formidable'), maxFieldsInGroup)); - return; - } - closeOpenFieldDropdowns(); - fieldId = $field.data('fid'); - children = fieldsInSection(fieldId); - if (null !== newRowId) { - fieldOrder = this.getAttribute('frm-field-order'); - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_duplicate_field', - field_id: fieldId, - form_id: thisFormId, - children: children, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - var _$field$0$querySelect; - var newRow; - var replaceWith; - if (null !== newRowId) { - newRow = document.getElementById(newRowId); - if (null !== newRow) { - replaceWith = msgAsjQueryObject(msg); - jQuery(newRow).append(replaceWith); - makeDraggable(replaceWith.get(0), '.frm-move'); - if (null !== fieldOrder) { - newRow.lastElementChild.setAttribute('frm-field-order', fieldOrder); - } - jQuery(newRow).trigger('frm_added_duplicated_field_to_row', { - duplicatedFieldHtml: msg, - originalFieldId: fieldId - }); - afterAddField(msg, false); - setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); - return; - } - } - if ($field.siblings('li.form-field').length) { - replaceWith = msgAsjQueryObject(msg); - $field.after(replaceWith); - syncLayoutClasses($field); - makeDraggable(replaceWith.get(0), '.frm-move'); - } else { - replaceWith = wrapFieldLi(msg); - $field.parent().parent().after(replaceWith); - makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); - makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); - } - updateFieldOrder(); - afterAddField(msg, false); - maybeDuplicateUnsavedSettings(fieldId, msg); - toggleOneSectionHolder(replaceWith.find('.start_divider')); - (_$field$0$querySelect = $field[0].querySelector('.frm-dropdown-menu.dropdown-menu-right')) === null || _$field$0$querySelect === void 0 || _$field$0$querySelect.classList.remove('show'); - setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); - } - }); - return false; - } - - /** - * Sets the layout classes for a duplicated field in a field group from the layout classes of the original field. - * - * @param {HTMLElement} field The original field. - * @param {HTMLElement} newField The duplicated field. - * - * @return {void} - */ - function setLayoutClassesForDuplicatedFieldInGroup(field, newField) { - var _document$getElementB; - var hoverTarget = field.closest('.frm-field-group-hover-target'); - if (!hoverTarget || !isFieldGroup(hoverTarget.parentElement)) { - return; - } - var fieldId = field.dataset.fid; - var fieldClasses = (_document$getElementB = document.getElementById('frm_classes_' + fieldId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.value; - if (!fieldClasses) { - return; - } - fieldClasses = fieldClasses.replace('frm_first', ''); - if (!newField.className.includes(fieldClasses)) { - newField.className += ' ' + fieldClasses; - var classesInput = document.getElementById('frm_classes_' + newField.dataset.fid); - if (classesInput) { - classesInput.value = fieldClasses; - } - } - } - function maybeDuplicateUnsavedSettings(originalFieldId, newFieldHtml) { - var originalSettings, newFieldId, copySettings, fieldOptionKeys, originalDefault, copyDefault; - originalSettings = document.getElementById('frm-single-settings-' + originalFieldId); - if (null === originalSettings) { - return; - } - newFieldId = jQuery(newFieldHtml).attr('data-fid'); - if ('undefined' === typeof newFieldId) { - return; - } - copySettings = document.getElementById('frm-single-settings-' + newFieldId); - if (null === copySettings) { - return; - } - fieldOptionKeys = ['name', 'required', 'unique', 'read_only', 'placeholder', 'description', 'size', 'max', 'format', 'prepend', 'append', 'separate_value']; - originalSettings.querySelectorAll('input[name^="field_options["], textarea[name^="field_options["]').forEach(function (originalSetting) { - var key, tagType, copySetting; - key = getKeyFromSettingInput(originalSetting); - if ('options' === key) { - copyOption(originalSetting, copySettings, originalFieldId, newFieldId); - return; - } - if (-1 === fieldOptionKeys.indexOf(key)) { - return; - } - tagType = originalSetting.matches('input') ? 'input' : 'textarea'; - copySetting = copySettings.querySelector(tagType + '[name="field_options[' + key + '_' + newFieldId + ']"]'); - if (null === copySetting) { - return; - } - if ('checkbox' === originalSetting.type) { - if (originalSetting.checked !== copySetting.checked) { - jQuery(copySetting).trigger('click'); - } - } else if ('text' === originalSetting.type || 'textarea' === tagType) { - if (originalSetting.value !== copySetting.value) { - copySetting.value = originalSetting.value; - jQuery(copySetting).trigger('change'); - } - } - }); - originalDefault = originalSettings.querySelector('input[name="default_value_' + originalFieldId + '"]'); - if (null !== originalDefault) { - copyDefault = copySettings.querySelector('input[name="default_value_' + newFieldId + '"]'); - if (null !== copyDefault && originalDefault.value !== copyDefault.value) { - copyDefault.value = originalDefault.value; - jQuery(copyDefault).trigger('change'); - } - } - } - function copyOption(originalSetting, copySettings, originalFieldId, newFieldId) { - var remainingKeyDetails, copyKey, copySetting; - remainingKeyDetails = originalSetting.name.substr(23 + ('' + originalFieldId).length); - copyKey = 'field_options[options_' + newFieldId + ']' + remainingKeyDetails; - copySetting = copySettings.querySelector('input[name="' + copyKey + '"]'); - if (null !== copySetting && copySetting.value !== originalSetting.value) { - copySetting.value = originalSetting.value; - jQuery(copySetting).trigger('change'); - } - } - function getKeyFromSettingInput(input) { - var nameWithoutPrefix, nameSplit; - nameWithoutPrefix = input.name.substr(14); - nameSplit = nameWithoutPrefix.split('_'); - nameSplit.pop(); - return nameSplit.join('_'); - } - function closeOpenFieldDropdowns() { - var openSettings = document.querySelector('.frm-field-settings-open'); - if (null !== openSettings) { - openSettings.classList.remove('frm-field-settings-open'); - jQuery(document).off('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); - jQuery('.frm-field-action-icons .dropdown.open').removeClass('open'); - } - } - function handleClickOutsideOfFieldSettings(event) { - if (!jQuery(event.originalEvent.target).closest('.frm-field-action-icons').length) { - closeOpenFieldDropdowns(); - } - } - function checkForMultiselectKeysOnMouseMove(event) { - var keyIsDown = !!(event.ctrlKey || event.metaKey || event.shiftKey); - jQuery(builderPage).toggleClass('frm-multiselect-key-is-down', keyIsDown); - checkForActiveHoverTarget(event); - } - function checkForActiveHoverTarget(event) { - var container, elementFromPoint, list, previousHoverTarget; - container = postBodyContent; - if (container.classList.contains('frm-dragging-field')) { - return; - } - if (null !== document.querySelector('.frm-field-group-hover-target .frm-field-settings-open')) { - // do not set a hover target if a dropdown is open for the current hover target. - return; - } - elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); - if (null !== elementFromPoint && !elementFromPoint.classList.contains('edit_field_type_divider')) { - list = elementFromPoint.closest('ul.frm_sorting'); - if (null !== list && !list.classList.contains('start_divider') && 'frm-show-fields' !== list.id) { - previousHoverTarget = maybeRemoveGroupHoverTarget(); - if (false !== previousHoverTarget && !jQuery(previousHoverTarget).is(list)) { - destroyFieldGroupPopup(); - } - updateFieldGroupControls(jQuery(list), getFieldsInRow(jQuery(list)).length); - list.classList.add('frm-field-group-hover-target'); - jQuery('#wpbody-content').on('mousemove', maybeRemoveHoverTargetOnMouseMove); - } - } - } - function maybeRemoveGroupHoverTarget() { - var controls, previousHoverTarget; - controls = document.getElementById('frm_field_group_controls'); - if (null !== controls) { - controls.style.display = 'none'; - } - previousHoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === previousHoverTarget) { - return false; - } - jQuery('#wpbody-content').off('mousemove', maybeRemoveHoverTargetOnMouseMove); - previousHoverTarget.classList.remove('frm-field-group-hover-target'); - return previousHoverTarget; - } - function maybeRemoveHoverTargetOnMouseMove(event) { - var elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); - if (null !== elementFromPoint && null !== elementFromPoint.closest('#frm-show-fields')) { - return; - } - maybeRemoveGroupHoverTarget(); - } - function onFieldActionDropdownShow(isFieldGroup) { - unselectFieldGroups(); - // maybe offset the dropdown if it goes off of the right of the screen. - setTimeout(function () { - var ul, $ul; - ul = document.querySelector('.dropdown.show .frm-dropdown-menu'); - if (null === ul) { - return; - } - if (null === ul.getAttribute('aria-label')) { - ul.setAttribute('aria-label', __('More Options', 'formidable')); - } - if (0 === ul.children.length) { - fillFieldActionDropdown(ul, true === isFieldGroup); - } - $ul = jQuery(ul); - if ($ul.offset().left > jQuery(window).width() - $ul.outerWidth()) { - ul.style.left = -$ul.outerWidth() + 'px'; - } - var firstAnchor = ul.firstElementChild.querySelector('a'); - if (firstAnchor) { - firstAnchor.focus(); - } - }, 0); - } - function onFieldGroupActionDropdownShow() { - onFieldActionDropdownShow(true); - } - function changeSectionStyle(e) { - var collapsedSection = e.target.closest('.frm-section-collapsed'); - if (!collapsedSection) { - return; - } - if (e.type === 'show') { - collapsedSection.style.zIndex = 3; - } else { - collapsedSection.style.zIndex = 1; - } - } - function fillFieldActionDropdown(ul, isFieldGroup) { - var classSuffix, options; - classSuffix = isFieldGroup ? '_field_group' : '_field'; - options = [getDeleteActionOption(isFieldGroup), getDuplicateActionOption(isFieldGroup)]; - if (!isFieldGroup) { - options.push({ - class: 'frm_select', - icon: 'frm_settings_icon', - label: __('Field Settings', 'formidable') - }); - } - options.forEach(function (option) { - var li, anchor, span; - li = document.createElement('div'); - li.classList.add('frm_more_options_li', 'dropdown-item'); - anchor = document.createElement('a'); - anchor.classList.add(option.class + classSuffix); - anchor.setAttribute('href', '#'); - makeTabbable(anchor); - span = document.createElement('span'); - span.textContent = option.label; - anchor.innerHTML = ''; - anchor.appendChild(document.createTextNode(' ')); - anchor.appendChild(span); - li.appendChild(anchor); - ul.appendChild(li); - }); - } - function getDeleteActionOption(isFieldGroup) { - var option = { - class: 'frm_delete', - icon: 'frm_delete_icon' - }; - option.label = isFieldGroup ? __('Delete Group', 'formidable') : __('Delete', 'formidable'); - return option; - } - function getDuplicateActionOption(isFieldGroup) { - var option = { - class: 'frm_clone', - icon: 'frm_clone_icon' - }; - option.label = isFieldGroup ? __('Duplicate Group', 'formidable') : __('Duplicate', 'formidable'); - return option; - } - function wrapFieldLi(field) { - var wrapper = div(); - if ('string' === typeof field) { - wrapper.innerHTML = field; - } else { - wrapper.appendChild(field); - } - var result = jQuery(); - Array.from(wrapper.children).forEach(function (li) { - result = result.add(jQuery('
            • ').addClass('frm_field_box').html(jQuery('
                ').addClass('frm_grid_container frm_sorting').append(li))); - }); - return result; - } - function wrapFieldLiInPlace(li) { - var ul = tag('ul', { - className: 'frm_grid_container frm_sorting' - }); - var wrapper = tag('li', { - className: 'frm_field_box', - child: ul - }); - li.replaceWith(wrapper); - ul.appendChild(li); - makeDroppable(ul); - makeDraggable(wrapper, '.frm-move'); - } - function afterAddField(msg, addFocus) { - var regex = /id="(\S+)"/; - var match = regex.exec(msg); - var field = document.getElementById(match[1]); - var section = '#' + match[1] + '.edit_field_type_divider ul.frm_sorting.start_divider'; - var $thisSection = jQuery(section); - var type = field.getAttribute('data-type'); - checkHtmlForNewFields(msg); - var toggled = false; - fieldUpdated(); - setupSortable(section); - if ('quantity' === type) { - // try to automatically attach a product field - maybeSetProductField(field); - } - if ('product' === type || 'quantity' === type) { - // quantity too needs to be a part of the if stmt especially cos of the very - // 1st quantity field (or even if it's just one quantity field in the form). - maybeHideQuantityProductFieldOption(); - } - if ($thisSection.length) { - $thisSection.parent('.frm_field_box').children('.frm_no_section_fields').addClass('frm_block'); - } else { - var $parentSection = jQuery(field).closest('ul.frm_sorting.start_divider'); - if ($parentSection.length) { - toggleOneSectionHolder($parentSection); - toggled = true; - } - } - if (msg.indexOf('frm-collapse-page') !== -1) { - renumberPageBreaks(); - } - addClass(field, 'frm-newly-added'); - setTimeout(function () { - field.classList.remove('frm-newly-added'); - }, 1000); - if (addFocus) { - var bounding = field.getBoundingClientRect(), - container = document.getElementById('post-body-content'), - inView = bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight); - if (!inView) { - container.scroll({ - top: container.scrollHeight, - left: 0, - behavior: 'smooth' - }); - } - if (toggled === false) { - toggleOneSectionHolder($thisSection); - } - } - deselectFields(); - initiateMultiselect(); - document.getElementById('frm-show-fields').classList.remove('frm-over-droppable'); - var addedEvent = new Event('frm_added_field', { - bubbles: false - }); - addedEvent.frmField = field; - addedEvent.frmSection = section; - addedEvent.frmType = type; - addedEvent.frmToggles = toggled; - document.dispatchEvent(addedEvent); - } - - /** - * Since multiple new fields may get added when a new field is inserted, check the HTML. - * - * @param {string} html - * @return {void} - */ - function checkHtmlForNewFields(html) { - var element = div(); - element.innerHTML = html; - element.querySelectorAll('.form-field').forEach(addFieldIdToDraftFieldsInput); - } - - /** - * @param {HTMLElement} field - * @return {void} - */ - function addFieldIdToDraftFieldsInput(field) { - if (!field.dataset.fid) { - return; - } - var draftInput = document.getElementById('draft_fields'); - if (!draftInput) { - return; - } - if ('' === draftInput.value) { - draftInput.value = field.dataset.fid; - } else { - var split = draftInput.value.split(','); - if (!split.includes(field.dataset.fid)) { - draftInput.value += ',' + field.dataset.fid; - } - } - } - function clearSettingsBox(preventFieldGroups) { - jQuery('#new_fields .frm-single-settings').addClass('frm_hidden'); - jQuery('#frm-options-panel > .frm-single-settings').removeClass('frm_hidden'); - deselectFields(preventFieldGroups); - } - function deselectFields(preventFieldGroups) { - jQuery('li.ui-state-default.selected').removeClass('selected'); - jQuery('.frm-show-field-settings.selected').removeClass('selected'); - if (!preventFieldGroups) { - unselectFieldGroups(); - } - } - function scrollToField(field) { - var newPos = field.getBoundingClientRect().top, - container = document.getElementById('post-body-content'); - if (typeof animate === 'undefined') { - jQuery(container).scrollTop(newPos); - } else { - // TODO: smooth scroll - jQuery(container).animate({ - scrollTop: newPos - }, 500); - } - } - function checkCalculationCreatedByUser() { - var calculation = this.value; - var warningMessage = checkMatchingParens(calculation); - warningMessage += checkShortcodes(calculation, this); - if (warningMessage !== '') { - infoModal(calculation + '\n\n' + warningMessage); - } - } - - /** - * Checks a string for parens, brackets, and curly braces and returns a message if any unmatched are found. - * @param formula - * @return {string} - */ - function checkMatchingParens(formula) { - var stack = [], - formulaArray = formula.split(''), - length = formulaArray.length, - opening = ['{', '[', '('], - closing = { - '}': '{', - ')': '(', - ']': '[' - }, - unmatchedClosing = [], - msg = '', - i, - top; - for (i = 0; i < length; i++) { - if (opening.includes(formulaArray[i])) { - stack.push(formulaArray[i]); - continue; - } - if (closing.hasOwnProperty(formulaArray[i])) { - top = stack.pop(); - if (top !== closing[formulaArray[i]]) { - unmatchedClosing.push(formulaArray[i]); - } - } - } - if (stack.length > 0 || unmatchedClosing.length > 0) { - msg = frmAdminJs.unmatched_parens + '\n\n'; - return msg; - } - return ''; - } - - /** - * Checks a calculation for shortcodes that shouldn't be in it and returns a message if found. - * @param calculation - * @param inputElement - * @return {string} - */ - function checkShortcodes(calculation, inputElement) { - var msg = checkNonNumericShortcodes(calculation, inputElement); - msg += checkNonFormShortcodes(calculation); - return msg; - } - - /** - * Checks if a numeric calculation has shortcodes that output non-numeric strings and returns a message if found. - * @param calculation - * - * @param inputElement - * @return {string} - */ - function checkNonNumericShortcodes(calculation, inputElement) { - var msg = ''; - if (isTextCalculation(inputElement)) { - return msg; - } - var nonNumericShortcodes = getNonNumericShortcodes(); - if (nonNumericShortcodes.test(calculation)) { - msg = frmAdminJs.text_shortcodes + '\n\n'; - } - return msg; - } - - /** - * Determines if the calculation input is from a text calculation. - * - * @param inputElement - */ - function isTextCalculation(inputElement) { - return jQuery(inputElement).siblings('label[for^="calc_type"]').children('input').prop('checked'); - } - - /** - * Returns a regular expression of shortcodes that can't be used in numeric calculations. - * @return {RegExp} - */ - function getNonNumericShortcodes() { - return /\[(date|time|email|ip)\]/; - } - - /** - * Checks if a string has any shortcodes that do not belong in forms and returns a message if any are found. - * @param formula - * @return {string} - */ - function checkNonFormShortcodes(formula) { - var nonFormShortcodes = getNonFormShortcodes(), - msg = ''; - if (nonFormShortcodes.test(formula)) { - msg += frmAdminJs.view_shortcodes + '\n\n'; - } - return msg; - } - - /** - * Returns a regular expression of shortcodes that can't be used in forms but can be used in Views, Email - * Notifications, and other Formidable areas. - * - * @return {RegExp} - */ - function getNonFormShortcodes() { - return /\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g; - } - function isCalcBoxType(box, listClass) { - var list = jQuery(box).find('.frm_code_list'); - return 1 === list.length && list.hasClass(listClass); - } - function extractExcludedOptions(exclude) { - var opts = []; - if (!Array.isArray(exclude)) { - return opts; - } - for (var _i4 = 0; _i4 < exclude.length; _i4++) { - if (exclude[_i4].startsWith('[')) { - opts.push(exclude[_i4]); - // remove it - exclude.splice(_i4, 1); - // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value - _i4--; - } - } - return opts; - } - function hasExcludedOption(field, excludedOpts) { - var hasOption = false; - for (var _i5 = 0; _i5 < excludedOpts.length; _i5++) { - var inputs = document.getElementsByName(getFieldOptionInputName(excludedOpts[_i5], field.fieldId)); - // 2nd condition checks that there's at least one non-empty value - if (inputs.length && jQuery(inputs[0]).val()) { - hasOption = true; - break; - } - } - return hasOption; - } - function getFieldOptionInputName(opt, fieldId) { - var at = opt.indexOf(']'); - return 'field_options' + opt.substring(0, at) + '_' + fieldId + opt.substring(at); - } - function popCalcFields(v, force) { - var box, - exclude, - fields, - i, - list, - p = jQuery(v).closest('.frm-single-settings'), - calc = p.find('.frm-calc-field'); - if (!force && (!calc.length || calc.val() === '' || calc.is(':hidden'))) { - return; - } - var isSummary = isCalcBoxType(v, 'frm_js_summary_list'); - var fieldId = p.find('input[name="frm_fields_submitted[]"]').val(); - if (force) { - box = v; - } else { - box = document.getElementById('frm-calc-box-' + fieldId); - } - exclude = getExcludeArray(box, isSummary); - var excludedOpts = extractExcludedOptions(exclude); - fields = getFieldList(); - list = document.getElementById('frm-calc-list-' + fieldId); - list.innerHTML = ''; - for (i = 0; i < fields.length; i++) { - if (exclude && exclude.includes(fields[i].fieldType) || excludedOpts.length && hasExcludedOption(fields[i], excludedOpts)) { - continue; - } - var _a = document.createElement('a'); - _a.setAttribute('href', '#'); - _a.setAttribute('data-code', fields[i].fieldId); - _a.classList.add('frm_insert_code'); - _a.appendChild(span(fields[i].fieldName)); - _a.appendChild(span({ - className: 'frm-text-sm frm-text-grey-500', - text: '[' + fields[i].fieldId + ']' - })); - var li = document.createElement('li'); - li.classList.add('frm-field-list-' + fieldId); - li.classList.add('frm-field-list-' + fields[i].fieldType); - li.appendChild(_a); - list.appendChild(li); - } - } - function getExcludeArray(calcBox, isSummary) { - var codeList = calcBox.querySelector('.frm_code_list'); - var exclude = JSON.parse(codeList.getAttribute('data-exclude')); - if (isSummary) { - // includedExtras are those that are normally excluded from the summary but the form owner can choose to include, - // when they have been chosen to be included, then they can now be manually excluded in the calc box. - var includedExtras = getIncludedExtras(); - if (includedExtras.length) { - for (var _i6 = 0; _i6 < exclude.length; _i6++) { - if (includedExtras.includes(exclude[_i6])) { - // remove it - exclude.splice(_i6, 1); - // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value - _i6--; - } - } - } - } - return exclude; - } - function getIncludedExtras() { - var checked = []; - var checkboxes = document.getElementsByClassName('frm_include_extras_field'); - for (var _i7 = 0; _i7 < checkboxes.length; _i7++) { - if (checkboxes[_i7].checked) { - checked.push(checkboxes[_i7].value); - } - } - return checked; - } - function rePopCalcFieldsForSummary() { - popCalcFields(jQuery('.frm-inline-modal.postbox:has(.frm_js_summary_list)')[0], true); - } - function getFieldList(fieldType) { - var i, - fields = [], - allFields = document.querySelectorAll('li.frm_field_box'), - checkType = 'undefined' !== typeof fieldType; - for (i = 0; i < allFields.length; i++) { - // data-ftype is better (than data-type) cos of fields loaded by AJAX - which might not be ready yet - if (checkType && allFields[i].getAttribute('data-ftype') !== fieldType) { - continue; - } - var fieldId = allFields[i].getAttribute('data-fid'); - if (typeof fieldId !== 'undefined' && fieldId) { - fields.push({ - fieldId: fieldId, - fieldName: getPossibleValue('frm_name_' + fieldId), - fieldType: getPossibleValue('field_options_type_' + fieldId), - fieldKey: getPossibleValue('field_options_field_key_' + fieldId) - }); - } - } - return wp.hooks.applyFilters('frm_admin_get_field_list', fields, fieldType, allFields); - } - function popProductFields(field) { - var i, - checked, - id, - options = [], - current = getCurrentProductFields(field), - fName = field.getAttribute('data-frmfname'), - products = getFieldList('product'), - quantities = getFieldList('quantity'), - isSelect = field.tagName === 'SELECT', - // for reverse compatibility. - // whether we have just 1 product and 1 quantity field & should therefore attach the latter to the former - auto = 1 === quantities.length && 1 === products.length; - if (isSelect) { - // This fallback can be removed after 4.05. - current = field.getAttribute('data-frmcurrent'); - } - for (i = 0; i < products.length; i++) { - // let's be double sure it's string, else indexOf will fail - id = products[i].fieldId.toString(); - checked = auto || -1 !== current.indexOf(id); - if (isSelect) { - // This fallback can be removed after 4.05. - checked = checked ? ' selected' : ''; - options.push(''); - } else { - checked = checked ? ' checked' : ''; - options.push(''); - } - } - field.innerHTML = options.join(''); - } - function getCurrentProductFields(prodFieldOpt) { - var products = prodFieldOpt.querySelectorAll('[type="checkbox"]:checked'), - idsArray = []; - for (var _i8 = 0; _i8 < products.length; _i8++) { - idsArray.push(products[_i8].value); - } - return idsArray; - } - function popAllProductFields() { - var opts = document.querySelectorAll('.frmjs_prod_field_opt'); - for (var _i9 = 0; _i9 < opts.length; _i9++) { - popProductFields(opts[_i9]); - } - } - function maybeSetProductField(field) { - var fieldId = field.getAttribute('data-fid'), - productFieldOpt = document.getElementById('field_options[product_field_' + fieldId + ']'); - if (null === productFieldOpt) { - return; - } - popProductFields(productFieldOpt); - // in order to move its settings to that LHS panel where - // the update form resides, else it'll lose this setting - moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); - } - - /** - * If the element doesn't exist, use a blank value. - */ - function getPossibleValue(id) { - var field = document.getElementById(id); - if (field !== null) { - return field.value; - } - return ''; - } - function liveChanges() { - /*jshint validthis:true */ - var option, - newValue = this.value, - changes = document.getElementById(this.getAttribute('data-changeme')), - att = this.getAttribute('data-changeatt'); - if (changes === null) { - return; - } - if (att !== null) { - if (changes.tagName === 'SELECT' && att === 'placeholder') { - option = changes.options[0]; - if (option.value === '') { - option.innerHTML = newValue; - } else { - // Create a placeholder option if there are no blank values. - addBlankSelectOption(changes, newValue); - } - } else if (att === 'class') { - changeFieldClass(changes, this); - } else if (isSliderField(changes)) { - updateSliderFieldPreview(changes, att, newValue); - } else { - changes.setAttribute(att, newValue); - } - } else if (changes.id.indexOf('setup-message') === 0) { - if (newValue !== '') { - changes.innerHTML = ''; - } - } else { - changes.innerHTML = purifyHtml(newValue); - if ('TEXTAREA' === changes.nodeName && changes.classList.contains('wp-editor-area')) { - // Trigger change events on wysiwyg textareas so we can also sync default values in the visual tab. - jQuery(changes).trigger('change'); - } - if (changes.classList.contains('frm_primary_label') && 'break' === changes.nextElementSibling.getAttribute('data-ftype')) { - changes.nextElementSibling.querySelector('.frm_button_submit').textContent = newValue; - } - } - } - function updateSliderFieldPreview(field, att, newValue) { - if (frmGlobal.proIncludesSliderJs) { - var hookName = 'frm_update_slider_field_preview'; - var hookArgs = { - field: field, - att: att, - newValue: newValue - }; - wp.hooks.doAction(hookName, hookArgs); - return; - } - - // This functionality has been moved to pro since v5.4.3. This code should be removed eventually. - if ('value' === att) { - if ('' === newValue) { - newValue = getSliderMidpoint(field); - } - field.value = newValue; - } else { - field.setAttribute(att, newValue); - } - if (-1 === ['value', 'min', 'max'].indexOf(att)) { - return; - } - if (('max' === att || 'min' === att) && '' === getSliderDefaultValueInput(field.id)) { - field.value = getSliderMidpoint(field); - } - field.parentNode.querySelector('.frm_range_value').textContent = field.value; - } - function getSliderDefaultValueInput(previewInputId) { - return document.querySelector('input[data-changeme="' + previewInputId + '"][data-changeatt="value"]').value; - } - function getSliderMidpoint(sliderInput) { - var max = parseFloat(sliderInput.getAttribute('max')); - var min = parseFloat(sliderInput.getAttribute('min')); - return (max - min) / 2 + min; - } - function isSliderField(previewInput) { - return 'range' === previewInput.type && previewInput.parentNode.classList.contains('frm_range_container'); - } - function toggleInvalidMsg() { - /*jshint validthis:true */ - var typeDropdown, - fieldType, - fieldId = this.getAttribute('data-fid'), - value = ''; - ['field_options_max_', 'frm_format_'].forEach(function (id) { - var input = document.getElementById(id + fieldId); - if (!input) { - return; - } - value += input.value; - }); - typeDropdown = document.getElementsByName('field_options[type_' + fieldId + ']')[0]; - fieldType = typeDropdown.options[typeDropdown.selectedIndex].value; - if (fieldType === 'text') { - toggleValidationBox('' !== value, '.frm_invalid_msg' + fieldId); - } - } - function markRequired() { - /*jshint validthis:true */ - var thisid = this.id.replace('frm_', ''), - fieldId = thisid.replace('req_field_', ''), - checked = this.checked, - label = jQuery('#field_label_' + fieldId + ' .frm_required'); - toggleValidationBox(checked, '.frm_required_details' + fieldId); - if (checked) { - var $reqBox = jQuery('input[name="field_options[required_indicator_' + fieldId + ']"]'); - if ($reqBox.val() === '') { - $reqBox.val('*'); - } - label.removeClass('frm_hidden'); - } else { - label.addClass('frm_hidden'); - } - } - function toggleValidationBox(hasValue, messageClass) { - $msg = jQuery(messageClass); - if (hasValue) { - $msg.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); - } else { - // Fade out validation options - var $validationBox = $msg.fadeOut('fast').closest('.frm_validation_box'); - var v = $validationBox.css('display', 'block').children(':not(' + messageClass + '):visible').length; - $validationBox.css('display', ''); - if (v === 0) { - $msg.closest('.frm_validation_msg').fadeOut('fast'); - } - } - } - function markUnique() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - var $thisField = jQuery('.frm_unique_details' + fieldId); - if (this.checked) { - $thisField.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); - $unqDetail = jQuery('.frm_unique_details' + fieldId + ' input'); - if ($unqDetail.val() === '') { - $unqDetail.val(frmAdminJs.default_unique); - } - } else { - var $validationBox = $thisField.fadeOut('fast').closest('.frm_validation_box'); - var v = $validationBox.css('display', 'block').children(':not(.frm_unique_details' + fieldId + '):visible').length; - $validationBox.css('display', ''); - if (v === 0) { - $thisField.closest('.frm_validation_msg').fadeOut('fast'); - } - } - } - - //Fade confirmation field and validation option in or out - function addConf() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - var val = jQuery(this).val(); - var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)); - toggleValidationBox(val !== '', '.frm_conf_details' + fieldId); - if (val !== '') { - //Add default validation message if empty - var valMsg = jQuery('.frm_validation_box .frm_conf_details' + fieldId + ' input'); - if (valMsg.val() === '') { - valMsg.val(frmAdminJs.default_conf); - } - setConfirmationFieldDescriptions(fieldId); - - //Add or remove class for confirmation field styling - if (val === 'inline') { - $thisField.removeClass('frm_conf_below').addClass('frm_conf_inline'); - } else if (val === 'below') { - $thisField.removeClass('frm_conf_inline').addClass('frm_conf_below'); - } - jQuery('.frm-conf-box-' + fieldId).removeClass('frm_hidden'); - } else { - jQuery('.frm-conf-box-' + fieldId).addClass('frm_hidden'); - setTimeout(function () { - $thisField.removeClass('frm_conf_inline frm_conf_below'); - }, 200); - } - } - function setConfirmationFieldDescriptions(fieldId) { - var fieldType = document.getElementsByName('field_options[type_' + fieldId + ']')[0].value; - var fieldDescription = document.getElementById('field_description_' + fieldId); - var hiddenDescName = 'field_options[description_' + fieldId + ']'; - var newValue = frmAdminJs['enter_' + fieldType]; - maybeSetNewDescription(fieldDescription, hiddenDescName, newValue); - var confFieldDescription = document.getElementById('conf_field_description_' + fieldId); - var hiddenConfName = 'field_options[conf_desc_' + fieldId + ']'; - var newConfValue = frmAdminJs['confirm_' + fieldType]; - maybeSetNewDescription(confFieldDescription, hiddenConfName, newConfValue); - } - function maybeSetNewDescription(descriptionDiv, hiddenName, newValue) { - if (descriptionDiv.innerHTML === frmAdminJs.desc) { - // Set the visible description value and the hidden description value - descriptionDiv.innerHTML = newValue; - document.getElementsByName(hiddenName)[0].value = newValue; - } - } - function initBulkOptionsOverlay() { - /*jshint validthis:true */ - var $info = initModal('#frm-bulk-modal', '700px'); - if ($info === false) { - return; - } - jQuery('.frm-insert-preset').on('click', insertBulkPreset); - jQuery(builderForm).on('click', 'a.frm-bulk-edit-link', function (event) { - event.preventDefault(); - var i, - key, - label, - content = '', - optList, - opts, - fieldId = jQuery(this).closest('[data-fid]').data('fid'), - separate = usingSeparateValues(fieldId), - product = isProductField(fieldId); - optList = document.getElementById('frm_field_' + fieldId + '_opts'); - if (!optList) { - return; - } - opts = optList.getElementsByTagName('li'); - document.getElementById('bulk-field-id').value = fieldId; - for (i = 0; i < opts.length; i++) { - key = opts[i].getAttribute('data-optkey'); - if (key !== '000') { - label = document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][label]')[0]; - if (typeof label !== 'undefined') { - content += label.value; - if (separate) { - content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][value]')[0].value; - } - if (product) { - content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][price]')[0].value; - } - content += '\r\n'; - } - } - if (i >= opts.length - 1) { - document.getElementById('frm_bulk_options').value = content; - } - } - $info.dialog('open'); - return false; - }); - jQuery('#frm-update-bulk-opts').on('click', function () { - var fieldId = document.getElementById('bulk-field-id').value; - var optionType = document.getElementById('bulk-option-type').value; - if (optionType) { - // Use custom handler for custom option type. - return; - } - this.classList.add('frm_loading_button'); - frmAdminBuild.updateOpts(fieldId, document.getElementById('frm_bulk_options').value, $info); - fieldUpdated(); - }); - } - function insertBulkPreset(event) { - /*jshint validthis:true */ - var opts = JSON.parse(this.getAttribute('data-opts')); - event.preventDefault(); - document.getElementById('frm_bulk_options').value = opts.join('\n'); - return false; - } - - //Add new option or "Other" option to radio/checkbox/dropdown - function addFieldOption() { - var _this$closest; - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'), - newOption = jQuery('#frm_field_' + fieldId + '_opts .frm_option_template').prop('outerHTML'), - optType = jQuery(this).data('opttype'), - optKey = 0, - oldKey = '000', - lastKey = getHighestOptKey(fieldId); - if (lastKey !== oldKey) { - optKey = lastKey + 1; - } - - //Update hidden field - if (optType === 'other') { - document.getElementById('other_input_' + fieldId).value = 1; - - //Hide "Add Other" option now if this is radio field - var ftype = jQuery(this).data('ftype'); - if (ftype === 'radio' || ftype === 'select') { - jQuery(this).fadeOut('slow'); - } - var _data = { - action: 'frm_add_field_option', - field_id: fieldId, - opt_key: optKey, - opt_type: optType, - nonce: frmGlobal.nonce - }; - jQuery.post(ajaxurl, _data, function (msg) { - jQuery(document.getElementById('frm_field_' + fieldId + '_opts')).append(msg); - resetDisplayedOpts(fieldId); - }); - } else { - newOption = newOption.replace(new RegExp('optkey="' + oldKey + '"', 'g'), 'optkey="' + optKey + '"'); - newOption = newOption.replace(new RegExp('-' + oldKey + '_', 'g'), '-' + optKey + '_'); - newOption = newOption.replace(new RegExp('-' + oldKey + '"', 'g'), '-' + optKey + '"'); - newOption = newOption.replace(new RegExp('\\[' + oldKey + '\\]', 'g'), '[' + optKey + ']'); - newOption = newOption.replace('frm_hidden frm_option_template', ''); - newOption = { - newOption: newOption - }; - addSaveAndDragIconsToOption(fieldId, newOption); - this.closest('.frm_single_option').after(newOption.newOption); - resetDisplayedOpts(fieldId); - } - - // Make sure all remove buttons are enabled - (_this$closest = this.closest('.frm_sortable_field_opts')) === null || _this$closest === void 0 || (_this$closest = _this$closest.querySelectorAll('.frm_remove_tag.frm_disabled')) === null || _this$closest === void 0 || _this$closest.forEach(function (button) { - return button.classList.remove('frm_disabled'); - }); - fieldUpdated(); - } - function getHighestOptKey(fieldId) { - var i = 0, - optKey = 0, - opts = jQuery('#frm_field_' + fieldId + '_opts li'), - lastKey = 0; - for (i; i < opts.length; i++) { - optKey = opts[i].getAttribute('data-optkey'); - if (opts.length === 1) { - return optKey; - } - if (optKey !== '000') { - optKey = optKey.replace('other_', ''); - optKey = parseInt(optKey, 10); - } - if (!isNaN(lastKey) && (optKey > lastKey || lastKey === '000')) { - lastKey = optKey; - } - } - return lastKey; - } - function toggleMultSel() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - toggleMultiSelect(fieldId, this.value); - } - function toggleMultiSelect(fieldId, value) { - var setting = jQuery('.frm_multiple_cont_' + fieldId); - if (value === 'select') { - setting.fadeIn('fast'); - } else { - setting.fadeOut('fast'); - } - } - function toggleSepValues() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - toggle(jQuery('.field_' + fieldId + '_option_key')); - jQuery('.field_' + fieldId + '_option').toggleClass('frm_with_key'); - } - function toggleImageOptions() { - /*jshint validthis:true */ - var hasImageOptions, - imageSize, - $field = jQuery(this).closest('.frm-single-settings'), - fieldId = $field.data('fid'), - displayField = document.getElementById('frm_field_id_' + fieldId); - refreshOptionDisplayNow(jQuery(this)); - toggle(jQuery('.field_' + fieldId + '_image_id')); - toggle(jQuery('.frm_toggle_image_options_' + fieldId)); - toggle(jQuery('.frm_image_size_' + fieldId)); - toggle(jQuery('.frm_alignment_' + fieldId)); - toggle(jQuery('.frm-add-other#frm_add_field_' + fieldId)); - hasImageOptions = imagesAsOptions(fieldId); - if (hasImageOptions) { - setAlignment(fieldId, 'inline'); - removeImageSizeClasses(displayField); - imageSize = getImageOptionSize(fieldId); - displayField.classList.add('frm_image_options'); - displayField.classList.add('frm_image_size_' + imageSize); - $field.find('.frm-bulk-edit-link').hide(); - } else { - displayField.classList.remove('frm_image_options'); - removeImageSizeClasses(displayField); - setAlignment(fieldId, 'block'); - $field.find('.frm-bulk-edit-link').show(); - } - - /** - * Fires when image options are toggled for a field. - * - * @param {HTMLElement} field The field element. - * @param {boolean} hasImageOptions Whether the field has image options enabled. - */ - wp.hooks.doAction('frm_image_options_toggled', $field[0], hasImageOptions); - } - function removeImageSizeClasses(field) { - field.classList.remove('frm_image_size_', 'frm_image_size_small', 'frm_image_size_medium', 'frm_image_size_large', 'frm_image_size_xlarge'); - } - function setAlignment(fieldId, alignment) { - jQuery('#field_options_align_' + fieldId).val(alignment).trigger('change'); - } - function setImageSize() { - var $field = jQuery(this).closest('.frm-single-settings'), - fieldId = $field.data('fid'), - displayField = document.getElementById('frm_field_id_' + fieldId); - refreshOptionDisplay(); - if (imagesAsOptions(fieldId)) { - removeImageSizeClasses(displayField); - displayField.classList.add('frm_image_options'); - displayField.classList.add('frm_image_size_' + getImageOptionSize(fieldId)); - } - } - function refreshOptionDisplayNow(object) { - var $field = object.closest('.frm-single-settings'), - fieldID = $field.data('fid'); - jQuery('.field_' + fieldID + '_option').trigger('change'); - } - function refreshOptionDisplay() { - /*jshint validthis:true */ - refreshOptionDisplayNow(jQuery(this)); - } - function addImageToOption(event) { - var imagePreview = event.target.closest('.frm_image_preview_wrapper'); - event.preventDefault(); - wp.media.model.settings.post.id = 0; - var fileFrame = wp.media.frames.file_frame = wp.media({ - multiple: false, - library: { - type: ['image'] - } - }); - fileFrame.on('select', function () { - var attachment = fileFrame.state().get('selection').first().toJSON(); - var img = imagePreview.querySelector('img'); - img.setAttribute('src', attachment.url); - img.classList.remove('frm_hidden'); - img.removeAttribute('srcset'); // Prevent the old image from sticking around. - - imagePreview.querySelector('.frm_image_preview_frame').style.display = 'block'; - imagePreview.querySelector('.frm_image_preview_title').textContent = attachment.filename; - imagePreview.querySelector('.frm_choose_image_box').style.display = 'none'; - var $imagePreview = jQuery(imagePreview); - $imagePreview.siblings('input[name*="[label]"]').data('frmimgurl', attachment.url); - $imagePreview.find('input.frm_image_id').val(attachment.id).trigger('change'); - wp.media.model.settings.post.id = 0; - }); - fileFrame.open(); - } - function removeImageFromOption(event) { - var $this = jQuery(this), - previewWrapper = $this.closest('.frm_image_preview_wrapper'); - event.preventDefault(); - event.stopPropagation(); - previewWrapper.find('img').attr('src', ''); - previewWrapper.find('.frm_image_preview_frame').hide(); - previewWrapper.find('.frm_choose_image_box').show(); - previewWrapper.find('input.frm_image_id').val(0).trigger('change'); - } - function toggleMultiselect() { - /*jshint validthis:true */ - var dropdown = jQuery(this).closest('li').find('.frm_form_fields select'); - if (this.checked) { - dropdown.attr('multiple', 'multiple'); - } else { - dropdown.removeAttr('multiple'); - } - } - - /** - * Allow typing on form switcher click without an extra click to search. - */ - function focusSearchBox() { - var searchBox = document.getElementById('dropform-search-input'); - if (searchBox !== null) { - setTimeout(function () { - searchBox.focus(); - }, 100); - } - } - - /** - * Dismiss a warning message and send an AJAX request to update the dismissal state. - * - * @since 6.3 - * - * @param {Event} event The event object associated with the click on the dismiss icon. - */ - function dismissWarningMessage(event) { - var target = event.target; - var warningEl = target.closest('.frm_warning_style'); - jQuery(warningEl).fadeOut(400, function () { - return warningEl.remove(); - }); - var action = target.dataset.action; - var formData = new FormData(); - doJsonPost(action, formData); - } - - /** - * If a field is clicked in the builder, prevent inputs from changing. - */ - function stopFieldFocus(e) { - e.preventDefault(); - } - - /** - * Delete a field option. - */ - function deleteFieldOption() { - var parentLi = this.parentNode; - var parentUl = parentLi.parentNode; - - // If only 2 visible options, add disabled class to the other delete button - var visibleOptions = parentUl.querySelectorAll('li:not(.frm_hidden)'); - if (visibleOptions.length === 2) { - var _Array$from$find$quer; - (_Array$from$find$quer = Array.from(visibleOptions).find(function (li) { - return li !== parentLi; - }).querySelector('.frm_remove_tag')) === null || _Array$from$find$quer === void 0 || _Array$from$find$quer.classList.add('frm_disabled'); - } - - /*jshint validthis:true */ - var otherInput, - fieldId = this.getAttribute('data-fid'); - jQuery(parentLi).fadeOut('fast', function () { - wp.hooks.doAction('frm_before_delete_field_option', this); - jQuery(parentLi).remove(); - var hasOther = jQuery(parentUl).find('.frm_other_option'); - if (hasOther.length < 1) { - otherInput = document.getElementById('other_input_' + fieldId); - if (otherInput !== null) { - otherInput.value = 0; - } - jQuery('#other_button_' + fieldId).fadeIn('fast'); - } - }); - fieldUpdated(); - } - - /** - * If a radio button is set as default, allow a click to - * deselect it. - */ - function maybeUncheckRadio() { - var $self, uncheck, unbind, up; - - /*jshint validthis:true */ - $self = jQuery(this); - if ($self.is(':checked')) { - uncheck = function uncheck() { - setTimeout(function () { - $self.prop('checked', false); - }, 0); - }; - unbind = function unbind() { - $self.off('mouseup', up); - }; - up = function up() { - uncheck(); - unbind(); - }; - $self.on('mouseup', up); - $self.one('mouseout', unbind); - } - } - - /** - * If the field option has the default text, clear it out on click. - */ - function maybeClearOptText() { - /*jshint validthis:true */ - if (this.value === frmAdminJs.new_option) { - this.setAttribute('data-value-on-focus', this.value); - this.value = ''; - } - } - function confirmFieldsDeleteMessage(numberOfFields) { - /* translators: %1$s: Number of fields that are selected to be deleted. */ - return sprintf(__('Are you sure you want to delete these %1$s selected field(s)?', 'formidable'), numberOfFields); - } - function clickDeleteField() { - /*jshint validthis:true */ - var confirmMsg = frmAdminJs.conf_delete, - maybeDivider = this.parentNode.parentNode.parentNode.parentNode.parentNode, - li = maybeDivider.parentNode, - field = jQuery(this).closest('li.form-field'), - fieldId = field.data('fid'); - if (field.data('ftype') === 'divider') { - var fieldBoxes = document.querySelectorAll('.frm-field-group-hover-target .start_divider .frm_field_box'); - var fieldIdsToDelete = 0; - fieldBoxes.forEach(function (fieldBox) { - var fieldsInsideFieldBox = fieldBox.querySelectorAll('li.form-field'); - if (fieldsInsideFieldBox) { - fieldIdsToDelete += fieldsInsideFieldBox.length; - } - }); - if (fieldIdsToDelete) { - confirmMsg = confirmFieldsDeleteMessage(++fieldIdsToDelete); - } - } - if (li.classList.contains('frm-section-collapsed') || li.classList.contains('frm-page-collapsed')) { - return false; - } - - // If deleting a section, use a special message. - if (maybeDivider.className === 'divider_section_only') { - confirmMsg = frmAdminJs.conf_delete_sec; - } - this.setAttribute('data-frmverify', confirmMsg); - this.setAttribute('data-frmverify-btn', 'frm-button-red'); - this.setAttribute('data-deletefield', fieldId); - closeOpenFieldDropdowns(); - confirmLinkClick(this); - return false; - } - function clickSelectField() { - this.closest('li.form-field').click(); - } - function clickDeleteFieldGroup() { - var hoverTarget, decoy; - hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === hoverTarget) { - return; - } - hoverTarget.classList.add('frm-selected-field-group'); - decoy = document.createElement('div'); - decoy.classList.add('frm-delete-field-groups', 'frm_hidden'); - document.body.appendChild(decoy); - decoy.click(); - } - function duplicateFieldGroup() { - var hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === hoverTarget) { - return; - } - var newRowId = 'frm_field_group_' + getAutoId(); - var placeholderUlChild = document.createTextNode(''); - wrapFieldLiInPlace(placeholderUlChild); - var newRow = jQuery(placeholderUlChild).closest('li').get(0); - newRow.classList.add('frm_hidden'); - var newRowUl = newRow.querySelector('ul'); - newRowUl.id = newRowId; - jQuery(hoverTarget.closest('li.frm_field_box')).after(newRow); - var $fields = getFieldsInRow(jQuery(hoverTarget)); - var syncDetails = []; - var injectedCloneOptions = []; - var expectedLength = $fields.length; - var originalFieldIdByDuplicatedFieldId = {}; - var duplicatedCount = 0; - jQuery(newRow).on('frm_added_duplicated_field_to_row', function (_, args) { - originalFieldIdByDuplicatedFieldId[jQuery(args.duplicatedFieldHtml).attr('data-fid')] = args.originalFieldId; - if (expectedLength > ++duplicatedCount) { - return; - } - var $newRowUl = jQuery(newRowUl); - var $duplicatedFields = getFieldsInRow($newRowUl); - injectedCloneOptions.forEach(function (cloneOption) { - cloneOption.remove(); - }); - for (var index = 0; index < expectedLength; ++index) { - $newRowUl.append($newRowUl.children('li.form-field[frm-field-order="' + index + '"]')); - } - syncLayoutClasses($duplicatedFields.first(), syncDetails); - newRow.classList.remove('frm_hidden'); - updateFieldOrder(); - getFieldsInRow($newRowUl).each(function () { - maybeDuplicateUnsavedSettings(originalFieldIdByDuplicatedFieldId[this.getAttribute('data-fid')], jQuery(this).prop('outerHTML')); - }); - }); - $fields.each(function (index) { - var cloneOption; - cloneOption = document.createElement('li'); - cloneOption.classList.add('frm_clone_field'); - cloneOption.setAttribute('frm-target-row-id', newRowId); - cloneOption.setAttribute('frm-field-order', index); - this.appendChild(cloneOption); - cloneOption.click(); - injectedCloneOptions.push(cloneOption); - syncDetails.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); - }); - } - function clickFieldGroupLayout() { - var hoverTarget, sizeOfFieldGroup, popupWrapper; - hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === hoverTarget) { - return; - } - deselectFields(); - sizeOfFieldGroup = getSizeOfFieldGroupFromChildElement(hoverTarget.querySelector('li.form-field')); - hoverTarget.classList.add('frm-has-open-field-group-popup'); - jQuery(document).on('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); - popupWrapper = div(); - popupWrapper.style.position = 'relative'; - popupWrapper.appendChild(getFieldGroupPopup(sizeOfFieldGroup, this)); - this.parentNode.appendChild(popupWrapper); - var firstLayoutOption = popupWrapper.querySelector('.frm-row-layout-option'); - if (firstLayoutOption) { - firstLayoutOption.focus(); - } - } - function destroyFieldGroupPopupOnOutsideClick(event) { - if (event.target.classList.contains('frm-custom-field-group-layout') || event.target.classList.contains('frm-cancel-custom-field-group-layout')) { - return; - } - if (!jQuery(event.target).closest('#frm_field_group_controls').length && !jQuery(event.target).closest('#frm_field_group_popup').length) { - destroyFieldGroupPopup(); - } - } - function getSizeOfFieldGroupFromChildElement(element) { - var $ul = jQuery(element).closest('ul'); - if ($ul.length) { - return getFieldsInRow($ul).length; - } - return getSelectedFieldCount(); - } - function getFieldGroupPopup(sizeOfFieldGroup, childElement) { - var popup, wrapper, rowLayoutOptions, ul; - popup = document.getElementById('frm_field_group_popup'); - if (null === popup) { - popup = div(); - } else { - popup.innerHTML = ''; - } - popup.id = 'frm_field_group_popup'; - wrapper = div(); - wrapper.style.padding = '0 24px 12px'; - wrapper.appendChild(getRowLayoutTitle()); - rowLayoutOptions = getRowLayoutOptions(sizeOfFieldGroup); - ul = childElement.closest('ul.frm_sorting'); - if (null !== ul) { - maybeMarkRowLayoutAsActive(ul, rowLayoutOptions); - } - wrapper.appendChild(rowLayoutOptions); - popup.appendChild(wrapper); - popup.appendChild(separator()); - popup.appendChild(getCustomLayoutOption()); - popup.appendChild(getBreakIntoDifferentRowsOption()); - return popup; - } - function maybeMarkRowLayoutAsActive(activeRow, options) { - var length, index, currentRow; - length = options.children.length; - for (index = 0; index < length; ++index) { - currentRow = options.children[index]; - if (rowLayoutsMatch(currentRow, activeRow)) { - currentRow.classList.add('frm-active-row-layout'); - return; - } - } - } - function separator() { - return document.createElement('hr'); - } - function getCustomLayoutOption() { - var option = div(); - option.textContent = __('Custom layout', 'formidable'); - jQuery(option).prepend(getIconClone('frm_gear_svg')); - option.classList.add('frm-custom-field-group-layout'); - makeTabbable(option); - return option; - } - function makeTabbable(element, ariaLabel) { - element.setAttribute('tabindex', 0); - element.setAttribute('role', 'button'); - if ('undefined' !== typeof ariaLabel) { - element.setAttribute('aria-label', ariaLabel); - } - } - function getIconClone(iconId) { - var clone = document.getElementById(iconId).cloneNode(true); - clone.id = ''; - return clone; - } - function getBreakIntoDifferentRowsOption() { - var option = div(); - option.textContent = __('Break into rows', 'formidable'); - jQuery(option).prepend(getIconClone('frm_break_field_group_svg')); - option.classList.add('frm-break-field-group'); - makeTabbable(option); - return option; - } - function getRowLayoutTitle() { - var rowLayoutTitle = div(); - rowLayoutTitle.classList.add('frm-row-layout-title'); - rowLayoutTitle.textContent = __('Row Layout', 'formidable'); - return rowLayoutTitle; - } - function getRowLayoutOptions(size) { - var wrapper, padding; - wrapper = getEmptyGridContainer(); - if (5 !== size) { - wrapper.appendChild(getRowLayoutOption(size, 'even')); - } - if (size % 2 === 1) { - // only include the middle option for odd numbers because even doesn't make a lot of sense. - wrapper.appendChild(getRowLayoutOption(size, 'middle')); - } - if (size < 6) { - wrapper.appendChild(getRowLayoutOption(size, 'left')); - wrapper.appendChild(getRowLayoutOption(size, 'right')); - } else { - padding = div(); - padding.classList.add('frm_fourth'); - wrapper.prepend(padding); - } - return wrapper; - } - function getRowLayoutOption(size, type) { - var option, useClass; - option = div(); - option.classList.add('frm-row-layout-option'); - makeTabbable(option, type); - switch (size) { - case 6: - useClass = 'frm_half'; - break; - case 5: - useClass = 'frm_third'; - break; - default: - useClass = size % 2 === 1 ? 'frm_fourth' : 'frm_third'; - break; - } - option.classList.add(useClass); - option.setAttribute('layout-type', type); - option.appendChild(getRowForSizeAndType(size, type)); - return option; - } - function rowLayoutsMatch(row1, row2) { - return getRowLayoutAsKey(row1) === getRowLayoutAsKey(row2); - } - function getRowLayoutAsKey(row) { - var $fields, sizes; - if (row.classList.contains('frm-row-layout-option')) { - $fields = jQuery(row).find('.frm_grid_container').children(); - } else { - $fields = getFieldsInRow(jQuery(row)); - } - sizes = []; - $fields.each(function () { - sizes.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); - }); - return sizes.join('-'); - } - function getRowForSizeAndType(size, type) { - var row, index, block; - row = getEmptyGridContainer(); - for (index = 0; index < size; ++index) { - block = div(); - block.classList.add(getClassForBlock(size, type, index)); - block.style.height = '16px'; - block.style.background = '#9EA9B8'; - block.style.borderRadius = '1px'; - row.appendChild(block); - } - return row; - } - - /** - * @param {number} size 2-6. - * @param {string} type even, middle, left, or right. - * @param {number} index 0-5. - * @return {string} The class name. - */ - function getClassForBlock(size, type, index) { - if ('even' === type) { - return getEvenClassForSize(size, index); - } else if ('middle' === type) { - if (3 === size) { - return 1 === index ? 'frm6' : 'frm3'; - } - if (5 === size) { - return 2 === index ? 'frm4' : 'frm2'; - } - } else if ('left' === type) { - return 0 === index ? getLargeClassForSize(size) : getSmallClassForSize(size); - } else if ('right' === type) { - return index === size - 1 ? getLargeClassForSize(size) : getSmallClassForSize(size); - } - return 'frm12'; - } - function getEvenClassForSize(size, index) { - if (-1 !== [2, 3, 4, 6].indexOf(size)) { - return getLayoutClassForSize(12 / size); - } - if (5 === size && 'undefined' !== typeof index) { - return 0 === index ? 'frm4' : 'frm2'; - } - return 'frm12'; - } - function getSmallClassForSize(size) { - switch (size) { - case 2: - case 3: - return 'frm3'; - case 4: - return 'frm2'; - case 5: - return 'frm2'; - case 6: - return 'frm1'; - } - return 'frm12'; - } - function getLargeClassForSize(size) { - switch (size) { - case 2: - return 'frm9'; - case 3: - case 4: - return 'frm6'; - case 5: - return 'frm4'; - case 6: - return 'frm7'; - } - return 'frm12'; - } - function getEmptyGridContainer() { - var wrapper = div(); - wrapper.classList.add('frm_grid_container'); - return wrapper; - } - - /** - * Handle when a field group layout option (that sets grid classes/column sizing) is selected in the "Row Layout" popup. - * - * @return {void} - */ - function handleFieldGroupLayoutOptionClick() { - var row = document.querySelector('.frm-field-group-hover-target'); - if (!row) { - // The field group layout options also get clicked when merging multiple rows. - // The following code isn't required for multiple rows though so just exit early. - return; - } - var type = this.getAttribute('layout-type'); - syncLayoutClasses(getFieldsInRow(jQuery(row)).first(), type); - destroyFieldGroupPopup(); - } - function handleFieldGroupLayoutOptionInsideMergeClick() { - var $ul, type; - $ul = mergeSelectedFieldGroups(); - type = this.getAttribute('layout-type'); - syncLayoutClasses(getFieldsInRow($ul).first(), type); - unselectFieldGroups(); - } - function mergeSelectedFieldGroups() { - var $selectedFieldGroups = jQuery('.frm-selected-field-group'), - $firstGroupUl = $selectedFieldGroups.first(); - $selectedFieldGroups.not($firstGroupUl).each(function () { - getFieldsInRow(jQuery(this)).each(function () { - var previousParent = this.parentNode; - getFieldsInRow($firstGroupUl).last().after(this); - if (!jQuery(previousParent).children('li.form-field').length) { - // clean up the previous field group if we've removed all of its fields. - previousParent.closest('li.frm_field_box').remove(); - } - }); - }); - updateFieldOrder(); - syncLayoutClasses(getFieldsInRow($firstGroupUl).first()); - return $firstGroupUl; - } - function customFieldGroupLayoutClick() { - var $fields; - if (null !== this.closest('.frm-merge-fields-into-row')) { - return; - } - $fields = getFieldsInRow(jQuery('.frm-field-group-hover-target')); - setupCustomLayoutOptions($fields); - } - function setupCustomLayoutOptions($fields) { - var size, popup, wrapper, layoutClass, inputRow, paddingElement, inputValueOverride, index, inputField, heading, label, buttonsWrapper, cancelButton, saveButton; - size = $fields.length; - popup = document.getElementById('frm_field_group_popup'); - popup.innerHTML = ''; - wrapper = div(); - wrapper.style.padding = '0 24px'; - layoutClass = getEvenClassForSize(5 === size ? 6 : size); - inputRow = div(); - inputRow.style.padding = '20px 0'; - inputRow.classList.add('frm_grid_container'); - if (5 === size) { - // add a span to pad the inputs by 1 column, to account for the missing 2 columns. - paddingElement = document.createElement('span'); - paddingElement.classList.add('frm1'); - inputRow.appendChild(paddingElement); - } - inputValueOverride = getSelectedFieldCount() > 0 ? getSizeOfLayoutClass(getEvenClassForSize(size)) : false; - if (false !== inputValueOverride && inputValueOverride >= 12) { - inputValueOverride = Math.floor(12 / size); - } - for (index = 0; index < size; ++index) { - inputField = document.createElement('input'); - inputField.type = 'text'; - inputField.classList.add(layoutClass); - inputField.classList.add('frm-custom-grid-size-input'); - inputField.value = false !== inputValueOverride ? inputValueOverride : getSizeOfLayoutClass(getLayoutClassName($fields.get(index).classList)); - inputRow.appendChild(inputField); - } - heading = div(); - heading.classList.add('frm-builder-popup-heading'); - heading.textContent = __('Enter number of columns for each field', 'formidable'); - label = div(); - label.classList.add('frm-builder-popup-subheading'); - label.textContent = __('Layouts are based on a 12-column grid system', 'formidable'); - wrapper.appendChild(heading); - wrapper.appendChild(label); - wrapper.appendChild(inputRow); - buttonsWrapper = div(); - buttonsWrapper.style.textAlign = 'right'; - cancelButton = getSecondaryButton(); - cancelButton.textContent = __('Cancel', 'formidable'); - cancelButton.classList.add('frm-cancel-custom-field-group-layout'); - cancelButton.style.marginRight = '10px'; - saveButton = getPrimaryButton(); - saveButton.textContent = __('Save', 'formidable'); - saveButton.classList.add('frm-save-custom-field-group-layout'); - buttonsWrapper.appendChild(cancelButton); - buttonsWrapper.appendChild(saveButton); - wrapper.appendChild(buttonsWrapper); - popup.appendChild(wrapper); - setTimeout(function () { - var firstInput = popup.querySelector('input.frm-custom-grid-size-input').focus(); - if (firstInput) { - firstInput.focus(); - } - }, 0); - } - function customFieldGroupLayoutInsideMergeClick() { - $fields = jQuery('.frm-selected-field-group li.form-field'); - setupCustomLayoutOptions($fields); - } - function getPrimaryButton() { - var button = getButton(); - button.classList.add('button-primary', 'frm-button-primary'); - return button; - } - function getSecondaryButton() { - var button = getButton(); - button.classList.add('button-secondary', 'frm-button-secondary'); - return button; - } - function getButton() { - var button = document.createElement('a'); - button.setAttribute('href', '#'); - button.classList.add('button'); - button.style.textDecoration = 'none'; - return button; - } - function getSizeOfLayoutClass(className) { - switch (className) { - case 'frm_half': - return 6; - case 'frm_third': - return 4; - case 'frm_two_thirds': - return 8; - case 'frm_fourth': - return 3; - case 'frm_three_fourths': - return 9; - case 'frm_sixth': - return 2; - } - if (0 === className.indexOf('frm')) { - return parseInt(className.substr(3)); - } - - // Anything missing a layout class should be a full width row. - return 12; - } - function getLayoutClassName(classList) { - var classes, index, currentClass; - classes = getLayoutClasses(); - for (index = 0; index < classes.length; ++index) { - currentClass = classes[index]; - if (classList.contains(currentClass)) { - return currentClass; - } - } - return ''; - } - function getLayoutClassForSize(size) { - return 'frm' + size; - } - function breakFieldGroupClick() { - var row = document.querySelector('.frm-field-group-hover-target'); - breakRow(row); - destroyFieldGroupPopup(); - } - function breakRow(row) { - var $row = jQuery(row); - getFieldsInRow($row).each(function (index) { - var field = this; - if (0 !== index) { - $row.parent().after(wrapFieldLi(field)); - } - stripLayoutFromFields(jQuery(field)); - }); - } - function stripLayoutFromFields(field) { - syncLayoutClasses(field, 'clear'); - } - function focusFieldGroupInputOnClick() { - this.select(); - } - function cancelCustomFieldGroupClick() { - revertToFieldGroupPopupFirstPage(this); - } - function revertToFieldGroupPopupFirstPage(triggerElement) { - jQuery(document.getElementById('frm_field_group_popup')).replaceWith(getFieldGroupPopup(getSizeOfFieldGroupFromChildElement(triggerElement), triggerElement)); - } - function destroyFieldGroupPopup() { - var popup, wrapper; - popup = document.getElementById('frm_field_group_popup'); - if (popup === null) { - return; - } - wrapper = document.querySelector('.frm-has-open-field-group-popup'); - if (null !== wrapper) { - wrapper.classList.remove('frm-has-open-field-group-popup'); - popup.parentNode.remove(); - } - jQuery(document).off('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); - } - function saveCustomFieldGroupClick() { - var syncDetails, $controls, $ul; - syncDetails = []; - jQuery(document.getElementById('frm_field_group_popup').querySelectorAll('.frm_grid_container input')).each(function () { - syncDetails.push(parseInt(this.value)); - }); - $controls = jQuery(document.getElementById('frm_field_group_controls')); - if ($controls.length && 'none' !== $controls.get(0).style.display) { - syncLayoutClasses(getFieldsInRow(jQuery(document.querySelector('.frm-field-group-hover-target'))).first(), syncDetails); - } else { - $ul = mergeSelectedFieldGroups(); - syncLayoutClasses(getFieldsInRow($ul).first(), syncDetails); - unselectFieldGroups(); - } - destroyFieldGroupPopup(); - } - function getSelectedRange($firstGroup, hoverTarget) { - var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); - var targetSection, $range; - if (hoverTargetSection) { - targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); - } - if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { - // If field target field is in a section. - $range = $firstGroup.parent().nextUntil(targetSection || hoverTarget.parentNode); - if (!hoverTargetSection) { - return $range; - } - var _fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); - $range = $range.add(_fieldsInSection.slice(0, _fieldsInSection.indexOf(hoverTarget) + 1)); - return $range; - } - - // Select fields back to the first group. - $range = $firstGroup.parent().prevUntil(targetSection || hoverTarget.parentNode); - if (!hoverTargetSection) { - return $range; - } - var fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); - $range = $range.add(fieldsInSection.slice(-fieldsInSection.indexOf(hoverTarget) + 1)); - return $range; - } - function fieldGroupClick(e) { - maybeShowFieldGroupMessage(); - if ('ul' !== e.originalEvent.target.nodeName.toLowerCase()) { - // only continue if the group itself was clicked / ignore when a field is clicked. - return; - } - var hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (!hoverTarget) { - return; - } - var ctrlOrCmdKeyIsDown = e.ctrlKey || e.metaKey; - var shiftKeyIsDown = e.shiftKey; - var groupIsActive = hoverTarget.classList.contains('frm-selected-field-group'); - var $selectedFieldGroups = getSelectedFieldGroups(); - var numberOfSelectedGroups = $selectedFieldGroups.length; - if (ctrlOrCmdKeyIsDown || shiftKeyIsDown) { - // multi-selecting - - var selectedField = getSelectedField(); - if (null !== selectedField && !jQuery(selectedField).siblings('li.form-field').length) { - // count a selected field on its own as a selected field group when multiselecting. - selectedField.parentNode.classList.add('frm-selected-field-group'); - ++numberOfSelectedGroups; - } - if (ctrlOrCmdKeyIsDown) { - if (groupIsActive) { - // unselect if holding ctrl or cmd and the group was already active. - --numberOfSelectedGroups; - hoverTarget.classList.remove('frm-selected-field-group'); - syncAfterMultiSelect(numberOfSelectedGroups); - return; // exit early to avoid adding back frm-selected-field-group - } - ++numberOfSelectedGroups; - } else if (shiftKeyIsDown && !groupIsActive) { - ++numberOfSelectedGroups; // include the one we're selecting right now. - var $firstGroup = $selectedFieldGroups.first(); - var $range = getSelectedRange($firstGroup, hoverTarget); - $range.each(function () { - var $fieldGroup = jQuery(this).closest('li').find('ul.frm_sorting'); - if (!$fieldGroup.hasClass('frm-selected-field-group')) { - ++numberOfSelectedGroups; - $fieldGroup.addClass('frm-selected-field-group'); - } - }); - } - } else { - // not multi-selecting - unselectFieldGroups(); - numberOfSelectedGroups = 1; - } - hoverTarget.classList.add('frm-selected-field-group'); - syncAfterMultiSelect(numberOfSelectedGroups); - maybeHideFieldGroupMessage(); - jQuery(document).off('click', unselectFieldGroups); - jQuery(document).on('click', unselectFieldGroups); - } - - /** - * Hide the field group message by manipulating classes. - * - * @param {Element} fieldGroupMessage The field group message element. - * @return {void} - */ - function hideFieldGroupMessage(fieldGroupMessage) { - if (!fieldGroupMessage) { - return; - } - fieldGroupMessage.classList.add('frm_hidden'); - fieldGroupMessage.classList.remove('frm-fadein-up-back'); - } - - /** - * Show the field group message by manipulating classes. - * - * @param {Element} fieldGroupMessage The field group message element. - * @return {void} - */ - function showFieldGroupMessage(fieldGroupMessage) { - if (!fieldGroupMessage) { - return; - } - fieldGroupMessage.classList.remove('frm_hidden'); - fieldGroupMessage.classList.add('frm-fadein-up-back'); - } - - /** - * Maybe show a message if there are at least two rows. - * - * @return {void} - */ - function maybeShowFieldGroupMessage() { - var fieldGroupMessage = document.getElementById('frm-field-group-message'); - var rows = document.querySelectorAll('.edit_form_item:not(.edit_field_type_end_divider)'); - if (rows.length < 2) { - hideFieldGroupMessage(fieldGroupMessage); - return; - } - if (fieldGroupMessage) { - showFieldGroupMessage(fieldGroupMessage); - return; - } - fieldGroupMessage = div({ - id: 'frm-field-group-message', - className: 'frm-flex-center frm-fadein-up-back', - children: [span({ - id: 'frm-field-group-message-dismiss', - className: 'frm-flex-center', - child: svg({ - href: '#frm_close_icon' - }) - })] - }); - - // Insert the field group into the DOM - document.getElementById('post-body-content').appendChild(fieldGroupMessage); - - // Get and add the field group message text - var messageText = getFieldGroupMessageText(); - fieldGroupMessage.prepend(messageText); - - // Set up a click event listener - document.getElementById('frm-field-group-message-dismiss').addEventListener('click', function () { - hideFieldGroupMessage(document.getElementById('frm-field-group-message')); - }); - } - - /** - * Get a span element with text about selecting multiple fields. - * - * @return {HTMLElement} A span element with the message and style classes. - */ - function getFieldGroupMessageText() { - var text = document.createElement('span'); - text.classList.add('frm-field-group-message-text', 'frm-flex-center'); - text.innerHTML = sprintf(/* translators: %1$s: Start span HTML, %2$s: end span HTML */ - frm_admin_js.holdShiftMsg, - // eslint-disable-line camelcase - '', ''); - return text; - } - - /** - * Maybe hide the field group message based on the number of selected rows. - * - * @return {void} - */ - function maybeHideFieldGroupMessage() { - var selectedRowCount = document.querySelectorAll('.frm-selected-field-group').length; - if (selectedRowCount < 2) { - return; - } - var fieldGroupMessage = document.getElementById('frm-field-group-message'); - hideFieldGroupMessage(fieldGroupMessage); - } - function getSelectedField() { - return document.getElementById('frm-show-fields').querySelector('li.form-field.selected'); - } - function getSelectedFieldGroups() { - var $fieldGroups = jQuery('.frm-selected-field-group'); - if ($fieldGroups.length) { - return $fieldGroups; - } - var selectedField = getSelectedField(); - if (selectedField) { - // If there is only one field in a group and the field is selected, consider the field's group as selected for multi-select. - var selectedFieldGroup = selectedField.closest('ul'); - if (selectedFieldGroup && 1 === getFieldsInRow(jQuery(selectedFieldGroup)).length) { - selectedFieldGroup.classList.add('frm-selected-field-group'); - return jQuery(selectedFieldGroup); - } - } - return jQuery(); - } - function syncAfterMultiSelect(numberOfSelectedGroups) { - clearSettingsBox(true); // unselect any fields if one is selected. - if (numberOfSelectedGroups >= 2 || 1 === numberOfSelectedGroups && selectedGroupHasMultipleFields()) { - addFieldMultiselectPopup(); - } else { - maybeRemoveMultiselectPopup(); - } - maybeRemoveGroupHoverTarget(); - } - function selectedGroupHasMultipleFields() { - return getFieldsInRow(jQuery(document.querySelector('.frm-selected-field-group'))).length > 1; - } - function unselectFieldGroups(event) { - if ('undefined' !== typeof event) { - if (null !== event.originalEvent.target.closest('#frm-show-fields')) { - return; - } - if (event.originalEvent.target.classList.contains('frm-merge-fields-into-row')) { - return; - } - if (null !== event.originalEvent.target.closest('.frm-merge-fields-into-row')) { - return; - } - if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { - return; - } - if (event.originalEvent.target.classList.contains('frm-cancel-custom-field-group-layout')) { - return; - } - } - jQuery('.frm-selected-field-group').removeClass('frm-selected-field-group'); - jQuery(document).off('click', unselectFieldGroups); - maybeRemoveMultiselectPopup(); - } - function maybeRemoveMultiselectPopup() { - var popup = document.getElementById('frm_field_multiselect_popup'); - if (null !== popup) { - popup.remove(); - } - } - function addFieldMultiselectPopup() { - getFieldMultiselectPopup(); - } - function getFieldMultiselectPopup() { - var popup, mergeOption, caret, verticalSeparator, deleteOption; - popup = document.getElementById('frm_field_multiselect_popup'); - if (null !== popup) { - popup.classList.toggle('frm-unmergable', !selectedFieldsAreMergeable()); - return popup; - } - popup = div(); - popup.id = 'frm_field_multiselect_popup'; - if (!selectedFieldsAreMergeable()) { - popup.classList.add('frm-unmergable'); - } - mergeOption = div(); - mergeOption.classList.add('frm-merge-fields-into-row'); - mergeOption.textContent = __('Merge into row', 'formidable'); - caret = document.createElement('a'); - caret.style.marginLeft = '5px'; - caret.classList.add('frm_icon_font', 'frm_arrowdown6_icon'); - caret.setAttribute('href', '#'); - mergeOption.appendChild(caret); - popup.appendChild(mergeOption); - verticalSeparator = div(); - verticalSeparator.classList.add('frm-multiselect-popup-separator'); - popup.appendChild(verticalSeparator); - deleteOption = div(); - deleteOption.classList.add('frm-delete-field-groups'); - deleteOption.appendChild(getIconClone('frm_trash_svg')); - popup.appendChild(deleteOption); - document.getElementById('post-body-content').appendChild(popup); - jQuery(popup).hide().fadeIn(); - return popup; - } - function selectedFieldsAreMergeable() { - var selectedFieldGroups, totalFieldCount, length, index, fieldGroup; - selectedFieldGroups = document.querySelectorAll('.frm-selected-field-group'); - length = selectedFieldGroups.length; - if (1 === length) { - return false; - } - totalFieldCount = 0; - for (index = 0; index < length; ++index) { - fieldGroup = selectedFieldGroups[index]; - if (null !== fieldGroup.querySelector('.edit_field_type_break, .edit_field_type_hidden')) { - return false; - } - totalFieldCount += getFieldsInRow(jQuery(fieldGroup)).length; - if (totalFieldCount > 6) { - return false; - } - } - return true; - } - function mergeFieldsIntoRowClick(event) { - var size, popup; - if (null !== event.originalEvent.target.closest('#frm_field_group_popup')) { - // prevent clicks within the popup from triggering the button again. - return; - } - if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { - // avoid switching back to the first page when clicking the custom option nested inside of the merge option. - return; - } - size = getSelectedFieldCount(); - popup = getFieldGroupPopup(size, document.querySelector('.frm-selected-field-group').firstChild); - this.appendChild(popup); - } - function getSelectedFieldCount() { - var count = 0; - jQuery(document.querySelectorAll('.frm-selected-field-group')).each(function () { - count += getFieldsInRow(jQuery(this)).length; - }); - return count; - } - function deleteFieldGroupsClick() { - var fieldIdsToDelete, deleteOnConfirm, multiselectPopup; - fieldIdsToDelete = getSelectedFieldIds(); - deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction(fieldIdsToDelete); - multiselectPopup = document.getElementById('frm_field_multiselect_popup'); - if (null !== multiselectPopup) { - multiselectPopup.remove(); - } - this.setAttribute('data-frmverify', confirmFieldsDeleteMessage(fieldIdsToDelete.length)); - confirmLinkClick(this); - var confirmedClick = document.getElementById('frm-confirmed-click'); - - // Remove any previous delete field data so delete confirmation does not attempt - // to delete a field that was already deleted or previously attempted and cancelled. - confirmedClick === null || confirmedClick === void 0 || confirmedClick.removeAttribute('data-deletefield'); - jQuery(confirmedClick).on('click', deleteOnConfirm); - jQuery('#frm_confirm_modal').one('dialogclose', function () { - jQuery(confirmedClick).off('click', deleteOnConfirm); - }); - } - function getSelectedFieldIds() { - var deleteFieldIds = []; - jQuery('.frm-selected-field-group > li.form-field').each(function () { - deleteFieldIds.push(this.dataset.fid); - }); - return deleteFieldIds; - } - function getDeleteSelectedFieldGroupsOnConfirmFunction(deleteFieldIds) { - return function (event) { - event.preventDefault(); - deleteAllSelectedFieldGroups(deleteFieldIds); - }; - } - function deleteAllSelectedFieldGroups(deleteFieldIds) { - deleteFieldIds.forEach(function (fieldId) { - deleteFields(fieldId); - }); - } - function deleteFieldConfirmed() { - /*jshint validthis:true */ - deleteFields(this.getAttribute('data-deletefield')); - } - function deleteFields(fieldId) { - var field = jQuery('#frm_field_id_' + fieldId); - deleteField(fieldId); - if (field.hasClass('edit_field_type_divider')) { - field.find('li.frm_field_box[data-fid]').each(function () { - deleteField(this.getAttribute('data-fid')); - }); - } - toggleSectionHolder(); - } - - /** - * Checks if there is only submit field in the form builder. - * - * @return {Boolean} - */ - function hasOnlySubmitField() { - // If there are at least 2 rows, return false. - if ($newFields.get(0).childElementCount > 1) { - return false; - } - var childUl = $newFields.get(0).firstElementChild.firstElementChild; - - // Use query instead of children because there might be a div inside this ul. - var childLi = childUl.querySelectorAll('li.frm_field_box'); - - // If there are at least 2 items in the row, return false. - if (childLi.length > 1) { - return false; - } - return childLi[0].classList.contains('edit_field_type_submit'); - } - - /** - * Moves open modals out of the field options form. - * - * When a modal is open, it is moved in the DOM and appended to the parent element of the modal trigger input. That - * creates a problem since deleting the field also deletes the modal and this function fixes that problem. - * - * @since 6.22 - * - * @param {Object} settings - * @return {void} - */ - function moveOpenModalsOutOfFieldOptions(settings) { - var openModals = settings[0].querySelectorAll('.frm-inline-modal[data-fills]'); - if (!openModals.length) { - return; - } - openModals.forEach(function (modal) { - modal.classList.add('frm_hidden'); - modal.removeAttribute('data-fills'); - modal.closest('form').appendChild(modal); - }); - } - function deleteField(fieldId) { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_delete_field', - field_id: fieldId, - nonce: frmGlobal.nonce - }, - success: function success() { - var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)), - settings = jQuery('#frm-single-settings-' + fieldId); - - // Remove settings from sidebar. - if (settings.is(':visible')) { - var _document$querySelect2; - (_document$querySelect2 = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect2 === void 0 || _document$querySelect2.click(); - document.querySelector('#frm-options-panel .frm-single-settings').classList.remove('frm_hidden'); - } - moveOpenModalsOutOfFieldOptions(settings); - settings.remove(); - $thisField.fadeOut('slow', function () { - var $section = $thisField.closest('.start_divider'), - type = $thisField.data('type'), - $adjacentFields = $thisField.siblings('li.form-field'), - $liWrapper; - if (!$adjacentFields.length) { - if ($thisField.is('.edit_field_type_end_divider')) { - $adjacentFields.length = $thisField.closest('li.form-field').siblings(); - } else { - $liWrapper = $thisField.closest('ul.frm_sorting').parent(); - } - } - $thisField.remove(); - if (type === 'break') { - renumberPageBreaks(); - } else if (type === 'product') { - maybeHideQuantityProductFieldOption(); - // a product field attached to a quantity field earlier might be the one deleted, so re-populate - popAllProductFields(); - } - if ($adjacentFields.length) { - syncLayoutClasses($adjacentFields.first()); - } else { - $liWrapper.remove(); - } - if (jQuery('#frm-show-fields li').length === 0 || hasOnlySubmitField()) { - var formEditorContainer = document.getElementById('frm_form_editor_container'); - formEditorContainer.classList.remove('frm-has-fields'); - formEditorContainer.classList.add('frm-empty-fields'); - } else if ($section.length) { - toggleOneSectionHolder($section); - } - - // prevent "More Options" tooltips from staying around after their target field is deleted. - deleteTooltips(); - }); - if ($thisField.length) { - wp.hooks.doAction('frm_after_delete_field', $thisField[0]); - } - } - }); - } - function addFieldLogicRow() { - /*jshint validthis:true */ - var id = jQuery(this).closest('.frm-single-settings').data('fid'), - formId = thisFormId, - logicRows = document.getElementById('frm_logic_row_' + id).querySelectorAll('.frm_logic_row'); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_logic_row', - form_id: formId, - field_id: id, - nonce: frmGlobal.nonce, - meta_name: getNewRowId(logicRows, 'frm_logic_' + id + '_'), - fields: getFieldList() - }, - success: function success(html) { - jQuery(document.getElementById('logic_' + id)).fadeOut('fast', function () { - var logicRow = document.getElementById('frm_logic_row_' + id); - logicRow.insertAdjacentHTML('beforeend', html); - var logicRowText = logicRow.querySelector('.frm_logic_row:last-child .frm-logic-rule-text'); - if (logicRowText) { - logicRowText.textContent = logicRow.dataset.ruleText; - } - var logicRows = logicRow.closest('.frm_logic_rows'); - logicRows.style.height = 'auto'; - jQuery(logicRows).fadeIn('fast'); - }); - } - }); - return false; - } - function getNewRowId(rows, replace, defaultValue) { - if (!rows.length) { - return 'undefined' !== typeof defaultValue ? defaultValue : 0; - } - return parseInt(rows[rows.length - 1].id.replace(replace, ''), 10) + 1; - } - function addWatchLookupRow() { - /*jshint validthis:true */ - var lastRowId, - id = jQuery(this).closest('.frm-single-settings').data('fid'), - formId = thisFormId, - lookupBlockRows = document.getElementById('frm_watch_lookup_block_' + id).children; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_watch_lookup_row', - form_id: formId, - field_id: id, - row_key: getNewRowId(lookupBlockRows, 'frm_watch_lookup_' + id + '_'), - nonce: frmGlobal.nonce - }, - success: function success(newRow) { - var _document$getElementB2; - var watchRowBlock = jQuery(document.getElementById('frm_watch_lookup_block_' + id)); - watchRowBlock.append(newRow); - watchRowBlock.fadeIn('slow'); - - // Show the "Watch Lookup Fields" label if it was hidden - (_document$getElementB2 = document.getElementById("frm_watch_lookup_label_".concat(id))) === null || _document$getElementB2 === void 0 || _document$getElementB2.classList.remove('frm-force-hidden'); - } - }); - return false; - } - function resetOptionTextDetails() { - jQuery('.frm-single-settings ul input[type="text"][name^="field_options[options_"]').filter('[data-value-on-load]').removeAttr('data-value-on-load'); - jQuery('input[type="hidden"][name^=optionmap]').remove(); - } - function optionTextAlreadyExists(input) { - var fieldId = jQuery(input).closest('.frm-single-settings').attr('data-fid'), - optionInputs = jQuery(input).closest('ul').get(0).querySelectorAll('.field_' + fieldId + '_option'), - index, - optionInput; - for (index in optionInputs) { - optionInput = optionInputs[index]; - if (optionInput.id !== input.id && optionInput.value === input.value && optionInput.getAttribute('data-duplicate') !== 'true') { - return true; - } - } - return false; - } - function onOptionTextFocus() { - var input, fieldId; - if (this.getAttribute('data-value-on-load') === null) { - this.setAttribute('data-value-on-load', this.value); - fieldId = jQuery(this).closest('.frm-single-settings').attr('data-fid'); - input = document.createElement('input'); - input.value = this.value; - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'optionmap[' + fieldId + '][' + this.value + ']'); - this.parentNode.appendChild(input); - if (typeof optionMap[fieldId] === 'undefined') { - optionMap[fieldId] = {}; - } - optionMap[fieldId][this.value] = input; - } - if (this.getAttribute('data-duplicate') === 'true') { - this.removeAttribute('data-duplicate'); - - // we want to use original value if actually still a duplicate - if (optionTextAlreadyExists(this)) { - this.setAttribute('data-value-on-focus', this.getAttribute('data-value-on-load')); - return; - } - } - if ('' !== this.value || frmAdminJs.new_option !== this.getAttribute('data-value-on-focus')) { - this.setAttribute('data-value-on-focus', this.value); - } - } - - /** - * Returns an object that has the old and new values and labels, when a field choice is changed. - * - * @param {HTMLElement} input - * @return {Object} - */ - function getChoiceOldAndNewValues(input) { - var _getChoiceOldValueAnd = getChoiceOldValueAndLabel(input), - oldValue = _getChoiceOldValueAnd.oldValue, - oldLabel = _getChoiceOldValueAnd.oldLabel; - var _getChoiceNewValueAnd = getChoiceNewValueAndLabel(input), - newValue = _getChoiceNewValueAnd.newValue, - newLabel = _getChoiceNewValueAnd.newLabel; - return { - oldValue: oldValue, - oldLabel: oldLabel, - newValue: newValue, - newLabel: newLabel - }; - } - - /** - * Returns an object that has the new value and label, when a field choice is changed. - * - * @param {HTMLElement} choiceElement - * @return {Object} - */ - function getChoiceNewValueAndLabel(choiceElement) { - var singleOptionContainer = choiceElement.closest('.frm_single_option'); - var newValue, newLabel; - if (choiceElement.parentElement.classList.contains('frm_single_option')) { - // label changed - newValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').value; - newLabel = choiceElement.value; - return { - newValue: newValue, - newLabel: newLabel - }; - } - - // saved value changed - newLabel = singleOptionContainer.querySelector('input[type="text"]').value; - newValue = choiceElement.value; - return { - newValue: newValue, - newLabel: newLabel - }; - } - - /** - * Returns an object that has the old value and label, when a field choice is changed. - * - * @param {HTMLElement} choiceElement - * @return {Object} - */ - function getChoiceOldValueAndLabel(choiceElement) { - var _choiceElement$closes, _choiceElement$closes2; - var usingSeparateValues = (_choiceElement$closes = (_choiceElement$closes2 = choiceElement.closest('.frm-single-settings').querySelector('.frm_toggle_sep_values')) === null || _choiceElement$closes2 === void 0 ? void 0 : _choiceElement$closes2.checked) !== null && _choiceElement$closes !== void 0 ? _choiceElement$closes : false; - var singleOptionContainer = choiceElement.closest('.frm_single_option'); - var oldValue, oldLabel; - if (usingSeparateValues) { - if (choiceElement.parentElement.classList.contains('frm_single_option')) { - // label changed - oldValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').getAttribute('data-value-on-focus'); - oldLabel = choiceElement.getAttribute('data-value-on-focus'); - return { - oldValue: oldValue, - oldLabel: oldLabel - }; - } - } - oldValue = choiceElement.getAttribute('data-value-on-focus'); - oldLabel = singleOptionContainer.querySelector('input[type="text"]').getAttribute('data-value-on-focus'); - return { - oldValue: oldValue, - oldLabel: oldLabel - }; - } - function onOptionTextBlur() { - var originalValue, fieldId, fieldIndex, logicId, row, rowLength, rowIndex, valueSelect, opts, fieldIds, settingId, setting, optionMatches, option; - var _getChoiceOldAndNewVa = getChoiceOldAndNewValues(this), - oldValue = _getChoiceOldAndNewVa.oldValue, - oldLabel = _getChoiceOldAndNewVa.oldLabel, - newValue = _getChoiceOldAndNewVa.newValue, - newLabel = _getChoiceOldAndNewVa.newLabel; - if (oldValue === newValue && oldLabel === newLabel) { - return; - } - var singleSettingsContainer = this.closest('.frm-single-settings'); - fieldId = singleSettingsContainer.getAttribute('data-fid'); - originalValue = this.getAttribute('data-value-on-load'); - - // check if the newValue is already mapped to another option - // if it is, mark as duplicate and return - if (optionTextAlreadyExists(this)) { - this.setAttribute('data-duplicate', 'true'); - if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { - // unmap any other change that may have happened before instead of changing it to something unused - optionMap[fieldId][originalValue].value = originalValue; - } - return; - } - if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { - optionMap[fieldId][originalValue].value = newValue; - } - fieldIds = []; - rows = builderPage.querySelectorAll('.frm_logic_row'); - rowLength = rows.length; - for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { - row = rows[rowIndex]; - opts = row.querySelector('.frm_logic_field_opts'); - if (opts.value !== fieldId) { - continue; - } - logicId = row.id.split('_')[2]; - valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); - if ('' === oldValue) { - optionMatches = []; - } else { - optionMatches = valueSelect.querySelectorAll('option[value="' + oldValue + '"]'); - } - if (!optionMatches.length) { - optionMatches = valueSelect.querySelectorAll('option[value="' + newValue + '"]'); - if (!optionMatches.length) { - var _singleSettingsContai; - if (!((_singleSettingsContai = singleSettingsContainer.querySelector('.frm_toggle_sep_values')) !== null && _singleSettingsContai !== void 0 && _singleSettingsContai.checked)) { - option = searchSelectByText(valueSelect, oldValue); // Find conditional logic option with oldValue - } - if (!option) { - option = document.createElement('option'); - valueSelect.appendChild(option); - } - } - } - if (optionMatches.length) { - option = optionMatches[optionMatches.length - 1]; - } - option.setAttribute('value', newValue); - option.textContent = newLabel; - if (fieldIds.indexOf(logicId) === -1) { - fieldIds.push(logicId); - } - } - for (fieldIndex in fieldIds) { - settingId = fieldIds[fieldIndex]; - setting = document.getElementById('frm-single-settings-' + settingId); - moveFieldSettings(setting); - } - } - - /** - * Returns an option element that matches a string with its text content. - * - * @param {HTMLElement} selectElement - * @param {string} searchText - * @return {HTMLElement|null} - */ - function searchSelectByText(selectElement, searchText) { - var options = selectElement.options; - for (var _i10 = 0; _i10 < options.length; _i10++) { - var option = options[_i10]; - if (searchText === option.textContent) { - return option; - } - } - return null; - } - function updateGetValueFieldSelection() { - /*jshint validthis:true */ - var fieldID = this.id.replace('get_values_form_', ''); - var fieldSelect = document.getElementById('get_values_field_' + fieldID); - var fieldType = this.getAttribute('data-fieldtype'); - if (this.value === '') { - fieldSelect.options.length = 1; - } else { - var formID = this.value; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_get_options_for_get_values_field', - form_id: formID, - field_type: fieldType, - nonce: frmGlobal.nonce - }, - success: function success(fields) { - fieldSelect.innerHTML = fields; - } - }); - } - } - - // Clear the Watch Fields option when Lookup field switches to "Text" option - function maybeClearWatchFields() { - /*jshint validthis:true */ - var link, - lookupBlock, - fieldID = this.name.replace('field_options[data_type_', '').replace(']', ''); - link = document.getElementById('frm_add_watch_lookup_link_' + fieldID); - if (!link) { - return; - } - link = link.parentNode; - if (this.value === 'text') { - lookupBlock = document.getElementById('frm_watch_lookup_block_' + fieldID); - if (lookupBlock !== null) { - // Clear and hide the Watch Fields option - lookupBlock.innerHTML = ''; - link.classList.add('frm_hidden'); - - // Hide the Watch Fields row - link.previousElementSibling.style.display = 'none'; - link.previousElementSibling.previousElementSibling.style.display = 'none'; - link.previousElementSibling.previousElementSibling.previousElementSibling.style.display = 'none'; - } - } else { - // Show the Watch Fields option - link.classList.remove('frm_hidden'); - } - toggleMultiSelect(fieldID, this.value); - } - - // Number the pages and hide/show the first page as needed. - function renumberPageBreaks() { - var i, - containerClass, - pages = document.getElementsByClassName('frm-page-num'); - if (pages.length > 1) { - document.getElementById('frm-fake-page').style.display = 'block'; - for (i = 0; i < pages.length; i++) { - containerClass = pages[i].parentNode.parentNode.parentNode.classList; - if (i === 1) { - // Hide previous button on page 1 - containerClass.add('frm-first-page'); - } else { - containerClass.remove('frm-first-page'); - } - pages[i].textContent = i + 1; - } - } else { - document.getElementById('frm-fake-page').style.display = 'none'; - } - wp.hooks.doAction('frm_renumber_page_breaks', pages); - } - - // The fake field works differently than real fields. - function maybeCollapsePage() { - /*jshint validthis:true */ - var field = jQuery(this).closest('.frm_field_box[data-ftype=break]'); - if (field.length) { - toggleCollapsePage(field); - } else { - toggleCollapseFakePage(); - } - } - - // Find all fields in a page and hide/show them - function toggleCollapsePage(field) { - var toCollapse = getAllFieldsForPage(field.get(0).parentNode.closest('li.frm_field_box').nextElementSibling); - togglePage(field, toCollapse); - } - function toggleCollapseFakePage() { - var topLevel = document.getElementById('frm-fake-page'), - firstField = document.getElementById('frm-show-fields').firstElementChild, - toCollapse = getAllFieldsForPage(firstField); - if (firstField.getAttribute('data-ftype') === 'break') { - // Don't collapse if the first field is a page break. - return; - } - togglePage(jQuery(topLevel), toCollapse); - } - function getAllFieldsForPage(firstWrapper) { - var $fieldsForPage, currentWrapper; - $fieldsForPage = jQuery(); - if (null === firstWrapper) { - return $fieldsForPage; - } - currentWrapper = firstWrapper; - do { - if (null !== currentWrapper.querySelector('.edit_field_type_break')) { - break; - } - $fieldsForPage = $fieldsForPage.add(jQuery(currentWrapper)); - currentWrapper = currentWrapper.nextElementSibling; - } while (null !== currentWrapper); - return $fieldsForPage; - } - function togglePage(field, toCollapse) { - var i, - fieldCount = toCollapse.length, - slide = Math.min(fieldCount, 3); - if (field.hasClass('frm-page-collapsed')) { - field.removeClass('frm-page-collapsed'); - toCollapse.removeClass('frm-is-collapsed'); - for (i = 0; i < slide; i++) { - if (i === slide - 1) { - jQuery(toCollapse[i]).slideDown(150, function () { - toCollapse.show(); - }); - } else { - jQuery(toCollapse[i]).slideDown(150); - } - } - } else { - field.addClass('frm-page-collapsed'); - toCollapse.addClass('frm-is-collapsed'); - for (i = 0; i < slide; i++) { - if (i === slide - 1) { - jQuery(toCollapse[i]).slideUp(150, function () { - toCollapse.css('cssText', 'display:none !important;'); - }); - } else { - jQuery(toCollapse[i]).slideUp(150); - } - } - } - } - function maybeCollapseSection() { - /*jshint validthis:true */ - var parentCont = this.parentNode.parentNode.parentNode.parentNode; - parentCont.classList.toggle('frm-section-collapsed'); - } - function maybeCollapseSettings() { - /*jshint validthis:true */ - this.classList.toggle('frm-collapsed'); - - // Toggles the "aria-expanded" attribute - var expanded = this.getAttribute('aria-expanded') === 'true' || false; - this.setAttribute('aria-expanded', !expanded); - addSlideAnimationCssVars(this.nextElementSibling); - } - - /** - * Add slide animation CSS variables to the element - * - * @param {HTMLElement} element The element to add CSS variables to - * @return {void} - */ - function addSlideAnimationCssVars(element) { - if (!element) { - return; - } - var height = element.scrollHeight; - if (height <= 0) { - return; - } - height += 250; - element.style.setProperty('--slide-height', "".concat(height, "px")); - element.style.setProperty('--slide-time', "".concat(Math.ceil(height * 0.8), "ms")); - } - function clickLabel() { - if (!this.id) { - return; - } - - /*jshint validthis:true */ - var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0], - fieldId = this.id.replace('field_label_', ''), - fieldType = document.getElementById('field_options_type_' + fieldId), - fieldTypeName = fieldType.value; - if (typeof setting !== 'undefined') { - if (fieldType.tagName === 'SELECT') { - fieldTypeName = fieldType.options[fieldType.selectedIndex].text.toLowerCase(); - } else { - fieldTypeName = fieldTypeName.replace('_', ' '); - } - fieldTypeName = normalizeFieldName(fieldTypeName); - setTimeout(function () { - if (setting.value.toLowerCase() === fieldTypeName) { - setting.select(); - } else { - setting.focus(); - } - }, 50); - } - } - function clickDescription() { - /*jshint validthis:true */ - var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0]; - if (typeof setting !== 'undefined') { - setTimeout(function () { - setting.focus(); - autoExpandSettings(setting); - }, 50); - } - } - function autoExpandSettings(setting) { - var inSection = setting.closest('.frm-collapse-me'); - if (inSection !== null) { - inSection.previousElementSibling.classList.remove('frm-collapsed'); - } - } - function normalizeFieldName(fieldTypeName) { - if (fieldTypeName === 'divider') { - fieldTypeName = 'section'; - } else if (fieldTypeName === 'range') { - fieldTypeName = 'slider'; - } else if (fieldTypeName === 'data') { - fieldTypeName = 'dynamic'; - } else if (fieldTypeName === 'form') { - fieldTypeName = 'embed form'; - } - return fieldTypeName; - } - function clickVis(e) { - /*jshint validthis:true */ - var currentClass, originalList; - currentClass = e.target.classList; - if (currentClass.contains('frm-collapse-page') || currentClass.contains('frm-sub-label') || e.target.closest('.dropdown') !== null) { - return; - } - if (this.closest('.start_divider') !== null) { - e.stopPropagation(); - } - if (this.classList.contains('edit_field_type_divider')) { - originalList = e.originalEvent.target.closest('ul.frm_sorting'); - if (null !== originalList) { - // prevent section click if clicking a field group within a section. - if (originalList.classList.contains('edit_field_type_divider') || originalList.parentNode.parentNode.classList.contains('start_divider')) { - return; - } - } - } - clickAction(this); - } - - /** - * Update the format input based on the selected format type. - * - * @since 6.9 - * - * @param {Event} event The event object from the format type selection. - * @return {void} - */ - function maybeUpdateFormatInput(event) { - var formatElement = event.target; - var type = formatElement.value; - if ('custom' === type) { - var fieldId = formatElement.dataset.fieldId; - var formatInput = document.getElementById("frm-field-format-custom-".concat(fieldId)).querySelector('.frm_format_opt'); - if ('international' === formatInput.value || 'currency' === formatInput.value || 'number' === formatInput.value) { - formatInput.setAttribute('value', ''); - } - } - setTimeout(function () { - formatElement.querySelectorAll('option').forEach(function (option) { - if (option.selected && option.classList.contains('frm_show_upgrade')) { - formatElement.value = 'none'; - } - }); - }, 0); - } - - /** - * Open Advanced settings on double click. - */ - function openAdvanced() { - var fieldId = this.getAttribute('data-fid'); - autoExpandSettings(document.getElementById('field_options_field_key_' + fieldId)); - } - function toggleRepeatButtons() { - /*jshint validthis:true */ - var $thisField = jQuery(this).closest('.frm_field_box'); - $thisField.find('.repeat_icon_links').removeClass('repeat_format repeat_formatboth repeat_formattext').addClass('repeat_format' + this.value); - if (this.value === 'text' || this.value === 'both') { - $thisField.find('.frm_repeat_text').show(); - $thisField.find('.repeat_icon_links a').addClass('frm_button'); - } else { - $thisField.find('.frm_repeat_text').hide(); - $thisField.find('.repeat_icon_links a').removeClass('frm_button'); - } - } - function checkRepeatLimit() { - /*jshint validthis:true */ - var val = this.value; - if (val !== '' && (val < 2 || val > 200)) { - infoModal(frmAdminJs.repeat_limit_min); - this.value = ''; - } - } - function checkCheckboxSelectionsLimit() { - /*jshint validthis:true */ - var val = this.value; - if (val !== '' && (val < 1 || val > 200)) { - infoModal(frmAdminJs.checkbox_limit); - this.value = ''; - } - } - function updateRepeatText(obj, addRemove) { - var $thisField = jQuery(obj).closest('.frm_field_box'); - $thisField.find('.frm_' + addRemove + '_form_row .frm_repeat_label').text(obj.value); - } - function fieldsInSection(id) { - var children = []; - jQuery(document.getElementById('frm_field_id_' + id)).find('li.frm_field_box:not(.no_repeat_section .edit_field_type_end_divider)').each(function () { - children.push(jQuery(this).data('fid')); - }); - return children; - } - function toggleFormTax() { - /*jshint validthis:true */ - var id = jQuery(this).closest('.frm-single-settings').data('fid'); - var val = this.value; - var $showFields = document.getElementById('frm_show_selected_fields_' + id); - var $showForms = document.getElementById('frm_show_selected_forms_' + id); - jQuery($showForms).find('select').val(''); - if (val === 'form') { - $showForms.style.display = 'inline'; - empty($showFields); - } else { - $showFields.style.display = 'none'; - $showForms.style.display = 'none'; - getTaxOrFieldSelection(val, id); - } - } - function resetOptOnChange() { - /*jshint validthis:true */ - var field, thisOpt; - field = getFieldKeyFromOpt(this); - if (!field) { - return; - } - thisOpt = jQuery(this).closest('.frm_single_option'); - resetSingleOpt(field.fieldId, field.fieldKey, thisOpt); - } - function getFieldKeyFromOpt(object) { - var allOpts, fieldId, fieldKey; - allOpts = jQuery(object).closest('.frm_sortable_field_opts'); - if (!allOpts.length) { - return false; - } - fieldId = allOpts.attr('id').replace('frm_field_', '').replace('_opts', ''); - fieldKey = allOpts.data('key'); - return { - fieldId: fieldId, - fieldKey: fieldKey - }; - } - function resetSingleOpt(fieldId, fieldKey, thisOpt) { - var saved, - text, - defaultVal, - previewInput, - labelForDisplay, - optContainer, - optKey = thisOpt.data('optkey'), - separateValues = usingSeparateValues(fieldId), - single = jQuery('label[for="field_' + fieldKey + '-' + optKey + '"]'), - baseName = 'field_options[options_' + fieldId + '][' + optKey + ']', - label = jQuery('input[name="' + baseName + '[label]"]'); - if (single.length < 1) { - resetDisplayedOpts(fieldId); - - // Set the default value. - defaultVal = thisOpt.find('input[name^="default_value_"]'); - if (defaultVal.is(':checked') && label.length > 0) { - jQuery('select[name^="item_meta[' + fieldId + ']"]').val(label.val()); - } - return; - } - previewInput = single.children('input'); - if (label.length < 1) { - // Check for other label. - label = jQuery('input[name="' + baseName + '"]'); - saved = label.val(); - } else if (separateValues) { - saved = jQuery('input[name="' + baseName + '[value]"]').val(); - } else { - saved = label.val(); - } - if (label.length < 1) { - return; - } - - // Set the displayed value. - text = single[0].childNodes; - if (imagesAsOptions(fieldId)) { - labelForDisplay = getImageDisplayValue(thisOpt, fieldId, label); - optContainer = single.find('.frm_image_option_container'); - if (optContainer.length > 0) { - optContainer.replaceWith(labelForDisplay); - } else { - text[text.length - 1].nodeValue = ''; - single.append(labelForDisplay); - } - } else { - var firstInputIndex = false; - text.forEach(function (node, index) { - if (firstInputIndex === false) { - if (node.tagName === 'INPUT') { - firstInputIndex = index; - } - } else if (index === firstInputIndex + 1) { - var nodeValue = ''; - if (buttonsAsOptions(fieldId)) { - nodeValue = div({ - className: 'frm_label_button_container', - text: ' ' + label.val() - }); - single[0].replaceChild(nodeValue, node); - } else { - node.nodeValue = ' ' + label.val(); - } - } else { - single[0].removeChild(node); - } - }); - } - - // Set saved value. - previewInput.val(saved); - - // Set the default value. - defaultVal = thisOpt.find('input[name^="default_value_"]'); - previewInput.prop('checked', defaultVal.is(':checked') ? true : false); - } - function buttonsAsOptions(fieldId) { - var fields = document.getElementsByName('field_options[image_options_' + fieldId + ']'); - var result = Array.from(fields).find(function (field) { - return field.checked && 'buttons' === field.value; - }); - return typeof result !== 'undefined'; - } - - /** - * Set the displayed value for an image option. - */ - function getImageDisplayValue(thisOpt, fieldId, label) { - var image, imageUrl, showLabelWithImage, fieldType; - image = thisOpt.find('img'); - if (image) { - imageUrl = image.attr('src'); - } - showLabelWithImage = showingLabelWithImage(fieldId); - fieldType = radioOrCheckbox(fieldId); - return getImageLabel(label.val(), showLabelWithImage, imageUrl, fieldType); - } - function getImageOptionSize(fieldId) { - var val, - field = document.getElementById('field_options_image_size_' + fieldId), - size = ''; - if (field !== null) { - val = field.value; - if (val !== '') { - size = val; - } - } - return size; - } - function resetDisplayedOpts(fieldId) { - var i, - opts, - type, - placeholder, - fieldInfo, - input = jQuery('[name^="item_meta[' + fieldId + ']"]'); - if (input.length < 1) { - return; - } - if (input.is('select')) { - placeholder = document.getElementById('frm_placeholder_' + fieldId); - if (placeholder !== null && placeholder.value === '') { - fillDropdownOpts(input[0], { - sourceID: fieldId - }); - } else { - fillDropdownOpts(input[0], { - sourceID: fieldId, - placeholder: placeholder.value - }); - } - } else { - opts = getMultipleOpts(fieldId); - jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields').html(''); - fieldInfo = getFieldKeyFromOpt(jQuery('#frm_delete_field_' + fieldId + '-000_container')); - var container = jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields'), - hasImageOptions = imagesAsOptions(fieldId), - imageSize = hasImageOptions ? getImageOptionSize(fieldId) : '', - imageOptionClass = hasImageOptions ? 'frm_image_option frm_image_' + imageSize + ' ' : '', - isProduct = isProductField(fieldId); - type = 'hidden' === input.attr('type') ? input.data('field-type') : input.attr('type'); - for (i = 0; i < opts.length; i++) { - container.append(addRadioCheckboxOpt(type, opts[i], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass)); - } - } - adjustConditionalLogicOptionOrders(fieldId); - } - - /** - * Returns an object that has a value and label for new conditional logic option, for a given option value. - * - * @param {Number} fieldId - * @param {string} expectedOption - * @return {Object} - */ - function getNewConditionalLogicOption(fieldId, expectedOption) { - var optionsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); - var expectedOptionInput = optionsContainer.querySelector('input[value="' + expectedOption + '"]'); - if (expectedOptionInput) { - return getChoiceNewValueAndLabel(expectedOptionInput); - } - return { - newValue: expectedOption, - newLabel: expectedOption - }; - } - function adjustConditionalLogicOptionOrders(fieldId, type) { - var row, - opts, - logicId, - valueSelect, - optionLength, - optionIndex, - expectedOption, - optionMatch, - fieldOptions, - rows = builderPage.querySelectorAll('.frm_logic_row'), - rowLength = rows.length; - fieldOptions = wp.hooks.applyFilters('frm_conditional_logic_field_options', getFieldOptions(fieldId), { - type: type, - fieldId: fieldId - }); - optionLength = fieldOptions.length; - for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { - row = rows[rowIndex]; - opts = row.querySelector('.frm_logic_field_opts'); - if (opts.value != fieldId) { - continue; - } - logicId = row.id.split('_')[2]; - valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); - for (optionIndex = optionLength - 1; optionIndex >= 0; optionIndex--) { - var _document$getElementB3; - expectedOption = fieldOptions[optionIndex]; - var expectedOptionValue = (_document$getElementB3 = document.getElementById('frm_field_' + fieldId + '_opts').querySelector('.frm_option_key input[type="text"]')) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.value; - if (!expectedOptionValue) { - expectedOptionValue = expectedOption; - } - optionMatch = valueSelect.querySelector('option[value="' + expectedOptionValue + '"]'); - var _getNewConditionalLog = getNewConditionalLogicOption(fieldId, expectedOption), - newValue = _getNewConditionalLog.newValue, - newLabel = _getNewConditionalLog.newLabel; - var fieldChoices = document.querySelectorAll('#frm_field_' + fieldId + '_opts input[data-value-on-focus]'); - var expectedChoiceEl = Array.from(fieldChoices).find(function (element) { - return element.value === expectedOption; - }); - if (expectedChoiceEl) { - var oldValue = expectedChoiceEl.dataset.valueOnFocus; - var hasMatch = oldValue && valueSelect.querySelector('option[value="' + oldValue + '"]'); - if (hasMatch) { - continue; - } - } - prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel); - } - optionMatch = valueSelect.querySelector('option[value=""]'); - if (optionMatch !== null) { - valueSelect.prepend(optionMatch); - } - } - } - function prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel) { - if (optionMatch === null && !valueSelect.querySelector('option[value="' + newValue + '"]')) { - optionMatch = frmDom.tag('option', { - text: newLabel - }); - optionMatch.value = newValue; - } - valueSelect.prepend(optionMatch); - } - function getFieldOptions(fieldId) { - var index, - input, - li, - listItems, - optsContainer, - length, - options = []; - optsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); - if (!optsContainer) { - return options; - } - listItems = optsContainer.querySelectorAll('.frm_single_option'); - length = listItems.length; - for (index = 0; index < length; index++) { - li = listItems[index]; - if (li.classList.contains('frm_hidden')) { - continue; - } - input = li.querySelector('.field_' + fieldId + '_option'); - options.push(input.value); - } - return options; - } - function addRadioCheckboxOpt(type, opt, fieldId, fieldKey, isProduct, classes) { - var other, - single = '', - isOther = opt.key.indexOf('other') !== -1, - id = 'field_' + fieldKey + '-' + opt.key, - inputType = type === 'scale' ? 'radio' : type; - other = ''; - this.getSingle = function () { - /** - * Get single option template. - * @param {Object} option Object containing the option data. - * @param {string} type The field type. - * @param {string} fieldId The field id. - * @param {string} classes The option clasnames. - * @param {string} id The input id attribute. - */ - single = wp.hooks.applyFilters('frm_admin.build_single_option_template', single, { - opt: opt, - type: type, - fieldId: fieldId, - classes: classes, - id: id - }); - if ('' !== single) { - return single; - } - return '
                ' + (isOther ? other : '') + '
                '; - }; - return this.getSingle(); - } - function fillDropdownOpts(field, atts) { - if (field === null) { - return; - } - var sourceID = atts.sourceID, - placeholder = atts.placeholder, - isProduct = isProductField(sourceID), - showOther = atts.other; - removeDropdownOpts(field); - var opts = getMultipleOpts(sourceID), - hasPlaceholder = typeof placeholder !== 'undefined'; - for (var _i11 = 0; _i11 < opts.length; _i11++) { - var label = opts[_i11].label, - isOther = opts[_i11].key.indexOf('other') !== -1; - if (hasPlaceholder && label !== '') { - addBlankSelectOption(field, placeholder); - } else if (hasPlaceholder) { - label = placeholder; - } - hasPlaceholder = false; - if (!isOther || showOther) { - var opt = document.createElement('option'); - opt.value = opts[_i11].saved; - opt.innerHTML = purifyHtml(label); - if (isProduct) { - opt.setAttribute('data-price', opts[_i11].price); - } - field.appendChild(opt); - } - } - } - function addBlankSelectOption(field, placeholder) { - var opt = document.createElement('option'), - firstChild = field.firstChild; - opt.value = ''; - opt.innerHTML = placeholder; - if (firstChild !== null) { - field.insertBefore(opt, firstChild); - field.selectedIndex = 0; - } else { - field.appendChild(opt); - } - } - function getMultipleOpts(fieldId) { - var i, - saved, - labelName, - label, - key, - optObj, - fieldType, - checked = false, - opts = [], - imageUrl = ''; - var optVals = jQuery('input[name^="field_options[options_' + fieldId + ']"]'); - var isProduct = isProductField(fieldId); - var showLabelWithImage = showingLabelWithImage(fieldId); - var hasImageOptions = imagesAsOptions(fieldId); - var separateValues = usingSeparateValues(fieldId); - for (i = 0; i < optVals.length; i++) { - if (optVals[i].name.indexOf('[000]') > 0 || optVals[i].name.indexOf('[value]') > 0 || optVals[i].name.indexOf('[image]') > 0 || optVals[i].name.indexOf('[price]') > 0) { - continue; - } - saved = optVals[i].value; - label = saved; - key = optVals[i].name.replace('field_options[options_' + fieldId + '][', '').replace('[label]', '').replace(']', ''); - if (separateValues) { - labelName = optVals[i].name.replace('[label]', '[value]'); - saved = jQuery('input[name="' + labelName + '"]').val(); - } - if (hasImageOptions) { - imageUrl = getImageUrlFromInput(optVals[i]); - fieldType = radioOrCheckbox(fieldId); - label = getImageLabel(label, showLabelWithImage, imageUrl, fieldType); - } - - /** - * @since 5.0.04 - */ - label = frmAdminBuild.hooks.applyFilters('frm_choice_field_label', label, fieldId, optVals[i], hasImageOptions); - checked = getChecked(optVals[i].id); - optObj = { - saved: saved, - label: label, - checked: checked, - key: key - }; - if (isProduct) { - labelName = optVals[i].name.replace('[label]', '[price]'); - optObj.price = jQuery('input[name="' + labelName + '"]').val(); - } - opts.push(optObj); - } - return opts; - } - function radioOrCheckbox(fieldId) { - var settings = document.getElementById('frm-single-settings-' + fieldId); - if (settings === null) { - return 'radio'; - } - return settings.classList.contains('frm-type-checkbox') ? 'checkbox' : 'radio'; - } - function getImageUrlFromInput(optVal) { - var img, - wrapper = jQuery(optVal).siblings('.frm_image_preview_wrapper'); - if (!wrapper.length) { - return ''; - } - img = wrapper.find('img'); - if (!img.length) { - return ''; - } - return img.attr('src'); - } - function purifyHtml(html) { - if (html instanceof Element || html instanceof Document) { - html = html.outerHTML; - } - var clean = jQuery.parseHTML(html).reduce(function (total, currentNode) { - var cleanNode = frmDom.cleanNode(currentNode); - if ('#text' === cleanNode.nodeName) { - return total += cleanNode.textContent; - } - return total + cleanNode.outerHTML; - }, ''); - if (clean !== html) { - // Clean it until nothing changes, in case the stripped result is now unsafe. - return purifyHtml(clean); - } - return clean; - } - function getImageLabel(label, showLabelWithImage, imageUrl, fieldType) { - var imageLabelClass, - originalLabel = label, - shape = fieldType === 'checkbox' ? 'square' : 'circle', - labelImage, - labelNode, - imageLabel; - originalLabel = purifyHtml(originalLabel); - if (imageUrl) { - labelImage = img({ - src: imageUrl, - alt: originalLabel - }); - } else { - labelImage = div({ - className: 'frm_empty_url' - }); - labelImage.innerHTML = frmAdminJs.image_placeholder_icon; - } - imageLabelClass = showLabelWithImage ? ' frm_label_with_image' : ''; - imageLabel = tag('span', { - className: 'frm_text_label_for_image_inner' - }); - imageLabel.innerHTML = originalLabel; - labelNode = tag('span', { - className: 'frm_image_option_container' + imageLabelClass, - children: [labelImage, tag('span', { - className: 'frm_text_label_for_image', - child: imageLabel - })] - }); - return labelNode; - } - function getChecked(id) { - field = jQuery('#' + id); - if (field.length === 0) { - return false; - } - checkbox = field.siblings('input[type=checkbox]'); - return checkbox.length && checkbox.prop('checked'); - } - function removeDropdownOpts(field) { - var i; - if (typeof field.options === 'undefined') { - return; - } - for (i = field.options.length - 1; i >= 0; i--) { - field.remove(i); - } - } - - /** - * Is the box checked to use separate values? - */ - function usingSeparateValues(fieldId) { - return isChecked('separate_value_' + fieldId); - } - - /** - * Is the box checked to use images as options? - */ - function imagesAsOptions(fieldId) { - var checked = false, - field = document.getElementsByName('field_options[image_options_' + fieldId + ']'); - for (var _i12 = 0; _i12 < field.length; _i12++) { - if (field[_i12].checked) { - checked = '0' !== field[_i12].value; - } - } - - /** - * @since 5.0.04 - */ - return frmAdminBuild.hooks.applyFilters('frm_choice_field_images_as_options', checked, fieldId); - } - function showingLabelWithImage(fieldId) { - var isShowing = !isChecked('hide_image_text_' + fieldId); - - /** - * @since 5.0.04 - */ - return frmAdminBuild.hooks.applyFilters('frm_choice_field_showing_label_with_image', isShowing, fieldId); - } - function isChecked(id) { - var field = document.getElementById(id); - if (field === null) { - return false; - } - return field.checked; - } - function checkUniqueOpt(targetInput) { - var settingsContainer = targetInput.closest('.frm-single-settings'); - var fieldId = settingsContainer.getAttribute('data-fid'); - var areValuesSeparate = settingsContainer.querySelector('[name="field_options[separate_value_' + fieldId + ']"]').checked; - if (areValuesSeparate && !targetInput.name.endsWith('[value]')) { - return; - } - var container = document.getElementById('frm_field_' + fieldId + '_opts'); - var conflicts = Array.from(container.querySelectorAll('input[type="text"]')).filter(function (input) { - return input.id !== targetInput.id && areValuesSeparate === input.name.endsWith('[value]') && input.value === targetInput.value; - }); - if (conflicts.length) { - /* translators: %s: The detected option value. */ - infoModal(sprintf(__('Duplicate option value "%s" detected', 'formidable'), purifyHtml(targetInput.value))); - } - } - function getFieldValues() { - /*jshint validthis:true */ - var isTaxonomy, - val = this.value; - if (val) { - var parentIDs = this.parentNode.id.replace('frm_logic_', '').split('_'); - var fieldID = parentIDs[0]; - var metaKey = parentIDs[1]; - var valueField = document.getElementById('frm_field_id_' + val); - var valueFieldType = valueField.getAttribute('data-ftype'); - var fill = document.getElementById('frm_show_selected_values_' + fieldID + '_' + metaKey); - var optionName = 'field_options[hide_opt_' + fieldID + '][]'; - var optionID = 'frm_field_logic_opt_' + fieldID; - var input = false; - var showSelect = valueFieldType === 'select' || valueFieldType === 'checkbox' || valueFieldType === 'radio'; - var showText = valueFieldType === 'text' || valueFieldType === 'email' || valueFieldType === 'phone' || valueFieldType === 'url' || valueFieldType === 'number'; - if (showSelect) { - isTaxonomy = document.getElementById('frm_has_hidden_options_' + val); - if (isTaxonomy !== null) { - // get the category options with ajax - showSelect = false; - } - } - if (showSelect || showText) { - var comparison = document.querySelector("#frm_logic_".concat(fieldID, "_").concat(metaKey, " [name=\"field_options[hide_field_cond_").concat(fieldID, "][]\"]")).value; - fill.innerHTML = ''; - var creatingValuesDropdown = showSelect && !['LIKE', 'not LIKE', 'LIKE%', '%LIKE'].includes(comparison); - if (creatingValuesDropdown) { - input = document.createElement('select'); - } else { - input = document.createElement('input'); - input.type = 'text'; - } - input.name = optionName; - input.id = optionID + '_' + metaKey; - fill.appendChild(input); - if (creatingValuesDropdown) { - var fillField = document.getElementById(input.id); - fillDropdownOpts(fillField, { - sourceID: val, - placeholder: '', - other: true - }); - } - } else { - var thisType = this.getAttribute('data-type'); - var callback = function callback() { - var event = new CustomEvent('frm_logic_options_loaded'); - event.frmData = { - valueFieldType: valueFieldType, - fieldID: fieldID, - metaKey: metaKey - }; - document.dispatchEvent(event); - }; - frmGetFieldValues(val, fieldID, metaKey, thisType, undefined, callback); - } - } - } - function getFieldSelection() { - /*jshint validthis:true */ - var formId = this.value; - if (formId) { - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - getTaxOrFieldSelection(formId, fieldId); - } - } - function getTaxOrFieldSelection(formId, fieldId) { - if (formId) { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_get_field_selection', - field_id: fieldId, - form_id: formId, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - var $selectedFields = jQuery('#frm_show_selected_fields_' + fieldId); - $selectedFields.toggleClass('frm6', !msg.includes('frm-inline-message')); - $selectedFields.html(msg).show(); - } - }); - } - } - function updateFieldOrder() { - var self = this; - this.initOnceInAllInstances = function () { - if ('undefined' !== typeof updateFieldOrder.prototype.orderFieldsObject) { - return; - } - - // It will store the order input fields ( input[name="field_options[field_order_{fieldId}]"] ). - // It will help to reduce the DOM searches based on fieldId. - // The same object data is used across all "updateFieldOrder" instances. - updateFieldOrder.prototype.orderFieldsObject = {}; - - // Get the Form group that will handle the fields settings. - // Perform a single DOM search and use it across all "updateFieldOrder" instances. - updateFieldOrder.prototype.fieldSettingsForm = document.getElementById('frm-end-form-marker').closest('form'); - }; - this.getFieldOrderInputById = function (fieldId, parent) { - var field; - var orderFieldsObject = updateFieldOrder.prototype.orderFieldsObject; - var fieldSettingsForm = updateFieldOrder.prototype.fieldSettingsForm; - if ('undefined' === typeof orderFieldsObject[fieldId]) { - field = fieldSettingsForm.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); - if (null === field) { - field = parent.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); - } - orderFieldsObject[fieldId] = field; - return field; - } - return orderFieldsObject[fieldId]; - }; - this.initOnceInAllInstances(); - renumberPageBreaks(); - return function () { - var fieldId, - field, - currentOrder, - newOrder, - moveFieldsClass = new moveFieldSettings(), - fields = jQuery('li.frm_field_box', jQuery('#frm-show-fields')); - for (i = 0; i < fields.length; i++) { - fieldId = fields[i].getAttribute('data-fid'); - field = self.getFieldOrderInputById(fieldId, fields[i]); - - // get current field order, make sure we don't get the "field" reference as the "field" value will get updated later. - currentOrder = null !== field ? Object.assign({}, field.value)[0] : null; - newOrder = i + 1; - if (currentOrder != newOrder && null !== currentOrder) { - field.value = newOrder; - singleField = fields[i].querySelector('#frm-single-settings-' + fieldId); - - // add field that needs to be moved to "updateFieldOrder.prototype.fieldSettingsForm" - moveFieldsClass.append(singleField); - fieldUpdated(); - } - } - // move all appended fields - moveFieldsClass.moveFields(); - }(); - } - function toggleSectionHolder() { - document.querySelectorAll('.start_divider').forEach(function (divider) { - toggleOneSectionHolder(jQuery(divider)); - }); - } - function toggleOneSectionHolder($section) { - var noSectionFields, $rows, length, index, sectionHasFields; - if (!$section.length) { - return; - } - $rows = $section.find('ul.frm_sorting'); - sectionHasFields = false; - length = $rows.length; - for (index = 0; index < length; ++index) { - if (0 !== getFieldsInRow(jQuery($rows.get(index))).length) { - sectionHasFields = true; - break; - } - } - noSectionFields = $section.parent().children('.frm_no_section_fields').get(0); - noSectionFields.classList.toggle('frm_block', !sectionHasFields); - } - function handleShowPasswordLiveUpdate() { - frmDom.util.documentOn('change', '.frm_show_password_setting_input', function (event) { - var fieldId = event.target.getAttribute('data-fid'); - var fieldEl = document.getElementById('frm_field_id_' + fieldId); - if (!fieldEl) { - return; - } - fieldEl.classList.toggle('frm_disabled_show_password', !event.target.checked); - }); - } - function slideDown() { - /*jshint validthis:true */ - var id = jQuery(this).data('slidedown'); - var $thisId = jQuery(document.getElementById(id)); - if ($thisId.is(':hidden')) { - $thisId.slideDown('fast'); - this.style.display = 'none'; - } - return false; - } - function slideUp() { - /*jshint validthis:true */ - var id = jQuery(this).data('slideup'); - var $thisId = jQuery(document.getElementById(id)); - $thisId.slideUp('fast'); - $thisId.siblings('a').show(); - return false; - } - function adjustVisibilityValuesForEveryoneValues(element, option) { - if ('' === option.getAttribute('value')) { - onEveryoneOptionSelected(jQuery(this)); - } else { - unselectEveryoneOptionIfSelected(jQuery(this)); - } - } - function onEveryoneOptionSelected($select) { - $select.val(''); - $select.next('.btn-group').find('.multiselect-container input[value!=""]').prop('checked', false); - } - function unselectEveryoneOptionIfSelected($select) { - var selectedValues = $select.val(), - index; - if (selectedValues === null) { - $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', true); - onEveryoneOptionSelected($select); - return; - } - index = selectedValues.indexOf(''); - if (index >= 0) { - selectedValues.splice(index, 1); - $select.val(selectedValues); - $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', false); - } - } - - /** - * Get rid of empty container that inserts extra space. - */ - function hideEmptyEle() { - jQuery('.frm-hide-empty').each(function () { - if (jQuery(this).text().trim().length === 0) { - jQuery(this).remove(); - } - }); - } - - /* Change the classes in the builder */ - function changeFieldClass(field, setting) { - var classes, - replace, - alignField, - replaceWith = ' ' + setting.value, - fieldId = field.getAttribute('data-fid'); - - // Include classes from multiple settings. - if (typeof fieldId !== 'undefined') { - if (setting.classList.contains('field_options_align')) { - replaceWith += ' ' + document.getElementById('frm_classes_' + fieldId).value; - } else if (setting.classList.contains('frm_classes')) { - alignField = document.getElementById('field_options_align_' + fieldId); - if (alignField !== null) { - replaceWith += ' ' + alignField.value; - } - } - } - replaceWith += ' '; - - // Allow for the column number dropdown. - replaceWith = replaceWith.replace(' block ', ' vertical_radio ').replace(' inline ', ' horizontal_radio '); - classes = field.className.split(' frmstart ')[1]; - classes = 0 === classes.indexOf('frmend ') ? '' : classes.split(' frmend ')[0]; - if (classes.trim() === '') { - replace = ' frmstart frmend '; - if (-1 === field.className.indexOf(replace)) { - replace = ' frmstart frmend '; - } - replaceWith = ' frmstart ' + replaceWith.trim() + ' frmend '; - } else { - replace = classes.trim(); - replaceWith = replaceWith.trim(); - } - field.className = field.className.replace(replace, replaceWith); - } - function maybeShowInlineModal(e) { - /*jshint validthis:true */ - e.preventDefault(); - showInlineModal(this, undefined, e); - } - function showInlineModal(icon, input, event) { - var box = document.getElementById(icon.getAttribute('data-open')), - container = jQuery(icon).closest('p,ul'), - inputTrigger = typeof input !== 'undefined'; - if (container.hasClass('frm-open')) { - container.removeClass('frm-open'); - box.classList.add('frm_hidden'); - } else { - if (!inputTrigger) { - input = getInputForIcon(icon); - } - if (input !== null) { - if (!inputTrigger) { - var key = event.key; - if (key !== 'Enter' && key !== ' ') { - input.focus(); - } - } - container.after(box); - box.setAttribute('data-fills', input.id.replace('-proxy-input', '')); - if (box.id.indexOf('frm-calc-box') === 0) { - popCalcFields(box, true); - } - } - container.addClass('frm-open'); - box.classList.remove('frm_hidden'); - - /** - * @since 6.4.1 - */ - wp.hooks.doAction('frm_show_inline_modal', box, icon); - } - } - function dismissInlineModal(e) { - /*jshint validthis:true */ - e.preventDefault(); - this.parentNode.classList.add('frm_hidden'); - jQuery('.frm-open [data-open="' + this.parentNode.id + '"]').closest('.frm-open').removeClass('frm-open'); - } - - /** - * Close frm-modal-no-dismiss element when clicking outside of it - * - * @param {Event} event The click event - */ - function closeModalOnOutsideClick(_ref3) { - var target = _ref3.target; - if (target.closest('.frm-inline-modal.frm-modal-no-dismiss') || target.closest('.frm-show-inline-modal') || target.closest('#frm_adv_info') || target.closest('.frm-token-proxy-input')) { - return; - } - - // Close all inline modals (without close button) that are not hidden - document.querySelectorAll('.frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)').forEach(function (modal) { - modal.classList.add('frm_hidden'); - modal.previousElementSibling.classList.remove('frm-open'); - }); - } - function changeInputtedValue() { - /*jshint validthis:true */ - var i, - action = this.getAttribute('data-frmchange').split(','); - for (i = 0; i < action.length; i++) { - if (action[i] === 'updateOption') { - changeHiddenSeparateValue(this); - } else if (action[i] === 'updateDefault') { - changeDefaultRadioValue(this); - } else if (action[i] === 'checkUniqueOpt') { - checkUniqueOpt(this); - } else { - this.value = this.value[action[i]](); - } - } - } - - /** - * When the saved value is changed, update the default value radio. - */ - function changeDefaultRadioValue(input) { - var parentLi = getOptionParent(input), - key = parentLi.getAttribute('data-optkey'), - fieldId = getOptionFieldId(parentLi, key), - defaultRadio = parentLi.querySelector('input[name="default_value_' + fieldId + '"]'); - if (defaultRadio !== null) { - defaultRadio.value = input.value; - } - } - - /** - * If separate values are not enabled, change the saved value when - * the displayed value is changed. - */ - function changeHiddenSeparateValue(input) { - var savedVal, - parentLi = getOptionParent(input), - key = parentLi.getAttribute('data-optkey'), - fieldId = getOptionFieldId(parentLi, key), - sep = document.getElementById('separate_value_' + fieldId); - if (sep !== null && sep.checked === false) { - // If separate values are not turned on. - savedVal = document.getElementById('field_key_' + fieldId + '-' + key); - savedVal.value = input.value; - changeDefaultRadioValue(savedVal); - } - } - function getOptionParent(input) { - var parentLi = input.parentNode; - if (parentLi.tagName !== 'LI') { - parentLi = parentLi.parentNode; - } - return parentLi; - } - function getOptionFieldId(li, key) { - var liId = li.id; - return liId.replace('frm_delete_field_', '').replace('-' + key + '_container', ''); - } - function submitBuild() { - /*jshint validthis:true */ - var $thisEle = this; - if (showNameYourFormModal()) { - return; - } - preFormSave(this); - var $form = jQuery(builderForm); - var v = JSON.stringify($form.serializeArray()); - jQuery(document.getElementById('frm_compact_fields')).val(v); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_save_form', - frm_compact_fields: v, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - afterFormSave($thisEle); - var $postStuff = document.getElementById('post-body-content'); - var $html = document.createElement('div'); - $html.setAttribute('class', 'frm_updated_message'); - $html.innerHTML = msg; - $postStuff.insertBefore($html, $postStuff.firstChild); - reloadIfAddonActivatedAjaxSubmitOnly(); - }, - error: function error() { - triggerSubmit(document.getElementById('frm_js_build_form')); - } - }); - } - function triggerSubmit(form) { - var button = form.ownerDocument.createElement('input'); - button.style.display = 'none'; - button.type = 'submit'; - form.appendChild(button).click(); - form.removeChild(button); - } - function triggerChange(element) { - jQuery(element).trigger('change'); - } - function submitNoAjax() { - /*jshint validthis:true */ - var form; - if (showNameYourFormModal()) { - return; - } - preFormSave(this); - form = jQuery(builderForm); - jQuery(document.getElementById('frm_compact_fields')).val(JSON.stringify(form.serializeArray())); - triggerSubmit(document.getElementById('frm_js_build_form')); - } - - /** - * Display a modal dialog for naming a new form template, if applicable. - * - * @return {boolean} True if the modal is successfully initialized and displayed; false otherwise. - */ - function showNameYourFormModal() { - // Exit early if the 'new_template' URL parameter is not set to 'true' - if (!shouldShowNameYourFormNameModal()) { - return false; - } - var modalWidget = initModal('#frm-form-templates-modal', '440px'); - if (!modalWidget) { - return false; - } - - // Set the vertical offset for the modal and open it - offsetModalY(modalWidget, '72px'); - modalWidget.dialog('open'); - return true; - } - - /** - * Returns true if 'Name Your Form' modal should be displayed. - * - * @return {Boolean} - */ - function shouldShowNameYourFormNameModal() { - var _document$querySelect3; - var formNameInput = document.getElementById('frm_form_name'); - if (formNameInput && formNameInput.value.trim() !== '') { - return false; - } - return 'true' === urlParams.get('new_template') && ((_document$querySelect3 = document.querySelector('#frm_top_bar #frm_bs_dropdown .frm_bstooltip')) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.textContent.trim()) === frm_admin_js.noTitleText; // eslint-disable-line camelcase - } - - /** - * Manages event handling for the 'Name your form' modal. - * - * Attaches click and keydown event listeners to the save button and input field. - * - * @return {void} - */ - function addFormNameModalEvents() { - var saveFormNameButton = document.getElementById('frm-save-form-name-button'); - var newFormNameInput = document.getElementById('frm_new_form_name_input'); - - // Attach click event listener - onClickPreventDefault(saveFormNameButton, onSaveFormNameButton); - - // Attach keydown event listener - newFormNameInput.addEventListener('keydown', function (event) { - if (event.key === 'Enter') { - onSaveFormNameButton.call(this, event); - } - }); - } - - /** - * Handles the click event on the save form name button. - * - * @param {Event} event The click event object. - * @return {void} - */ - var onSaveFormNameButton = function onSaveFormNameButton(event) { - var newFormName = document.getElementById('frm_new_form_name_input').value.trim(); - - // Prepare FormData for the POST request - var formData = new FormData(); - formData.append('form_id', urlParams.get('id')); - formData.append('form_name', newFormName); - - // Perform the POST request - doJsonPost('rename_form', formData).then(function (data) { - // Remove the 'new_template' parameter from the URL and update the browser history - urlParams.delete('new_template'); - currentURL.search = urlParams.toString(); - history.replaceState({}, '', currentURL.toString()); - if (null !== document.getElementById('frm_notification_settings')) { - document.getElementById('frm_form_name').value = newFormName; - document.getElementById('frm_form_key').value = data.form_key; - } - - // Trigger the 'Save' button click using jQuery - jQuery('#frm-publishing').find('.frm_button_submit').trigger('click'); - }); - }; - function preFormSave(b) { - removeWPUnload(); - if (jQuery('form.inplace_form').length) { - jQuery('.inplace_save, .postbox').trigger('click'); - } - if (b.classList.contains('frm_button_submit')) { - b.classList.add('frm_loading_form'); - } else { - b.classList.add('frm_loading_button'); - } - b.setAttribute('aria-busy', 'true'); - adjustFormatInputBeforeSave(); - } - - /** - * Updates the format input based on the selected format type from dropdowns during the form save process. - * - * @since 6.9 - * - * @return {void} - */ - function adjustFormatInputBeforeSave() { - var formatTypes = document.querySelectorAll('.frm_format_dropdown, .frm_phone_type_dropdown'); - var valueMap = { - none: '', - international: 'international', - currency: 'currency', - number: 'number' - }; - formatTypes.forEach(function (formatType) { - var value = formatType.value; - if (value in valueMap) { - var formatInput = document.getElementById("frm_format_".concat(formatType.dataset.fieldId)); - formatInput.value = valueMap[value]; - } - }); - } - function afterFormSave(button) { - button.classList.remove('frm_loading_form'); - button.classList.remove('frm_loading_button'); - resetOptionTextDetails(); - fieldsUpdated = 0; - button.setAttribute('aria-busy', 'false'); - setTimeout(function () { - jQuery('.frm_updated_message').fadeOut('slow', function () { - this.parentNode.removeChild(this); - }); - }, 5000); - } - function initUpgradeModal() { - var $info = initModal('#frm_upgrade_modal'); - if ($info === false) { - return; - } - document.addEventListener('click', handleUpgradeClick); - frmDom.util.documentOn('change', 'select.frm_select_with_upgrade', handleUpgradeClick); - function handleUpgradeClick(event) { - var element, link, content; - element = event.target; - if (!element.classList) { - return; - } - var showExpiredModal = element.classList.contains('frm_show_expired_modal') || null !== element.querySelector('.frm_show_expired_modal') || element.closest('.frm_show_expired_modal'); - - // If a `select` element is clicked, check if the selected option has a 'data-upgrade' attribute - if (event.type === 'change' && element.classList.contains('frm_select_with_upgrade')) { - var selectedOption = element.options[element.selectedIndex]; - if (selectedOption && selectedOption.dataset.upgrade) { - element = selectedOption; - } - } - if (!element.dataset.upgrade) { - var parent = element.closest('[data-upgrade]'); - if (!parent) { - parent = element.closest('.frm_field_box'); - if (!parent) { - return; - } - // Fake it if it's missing to avoid error. - element.dataset.upgrade = ''; - } - element = parent; - } - if (showExpiredModal) { - var hookName = 'frm_show_expired_modal'; - wp.hooks.doAction(hookName, element); - return; - } - var upgradeLabel = element.dataset.upgrade; - if (!upgradeLabel || element.classList.contains('frm_show_upgrade_tab')) { - return; - } - event.preventDefault(); - var modal = $info.get(0); - var lockIcon = modal.querySelector('.frm_lock_icon'); - if (lockIcon) { - lockIcon.style.display = 'block'; - lockIcon.classList.remove('frm_lock_open_icon'); - lockIcon.querySelector('use').setAttribute('href', '#frm_lock_icon'); - } - var upgradeImageId = 'frm_upgrade_modal_image'; - var oldImage = document.getElementById(upgradeImageId); - if (oldImage) { - oldImage.remove(); - } - if (element.dataset.image) { - if (lockIcon) { - lockIcon.style.display = 'none'; - } - lockIcon.parentNode.insertBefore(img({ - id: upgradeImageId, - src: frmGlobal.url + '/images/' + element.dataset.image - }), lockIcon); - } - var level = modal.querySelector('.license-level'); - if (level) { - level.textContent = getRequiredLicenseFromTrigger(element); - } - - // If one click upgrade, hide other content - addOneClick(element, 'modal', upgradeLabel); - modal.querySelector('.frm_are_not_installed').style.display = element.dataset.image ? 'none' : 'inline-block'; - modal.querySelector('.frm_feature_label').textContent = upgradeLabel; - modal.querySelector('h2').style.display = 'block'; - $info.dialog('open'); - - // set the utm medium - var button = modal.querySelector('.button-primary:not(.frm-oneclick-button)'); - link = button.getAttribute('href').replace(/(medium=)[a-z_-]+/ig, '$1' + element.getAttribute('data-medium')); - content = element.getAttribute('data-content'); - if (content === null) { - content = ''; - } - link = link.replace(/(content=)[a-z_-]+/ig, '$1' + content); - button.setAttribute('href', link); - } - } - - /** - * Opens a basic modal with the given title and content. - * - * @param {Event} event The event object. - * @return {void} - */ - function showBasicModal(event) { - var _event$target$dataset; - var button = (_event$target$dataset = event.target.dataset) !== null && _event$target$dataset !== void 0 && _event$target$dataset.modalTitle ? event.target : event.target.closest('[data-modal-title]'); - if (!button) { - return; - } - var _button$dataset = button.dataset, - modalTitle = _button$dataset.modalTitle, - modalContent = _button$dataset.modalContent; - if (!modalTitle || !modalContent) { - return; - } - event.preventDefault(); - frmDom.modal.maybeCreateModal('frmBasicModal', { - title: modalTitle, - content: div({ - className: 'inside', - child: span(modalContent) - }) - }); - } - function getRequiredLicenseFromTrigger(element) { - if (element.dataset.requires) { - return element.dataset.requires; - } - return 'Pro'; - } - function populateUpgradeTab(element) { - var title = element.dataset.upgrade; - var tab = element.getAttribute('href').replace('#', ''); - var container = document.querySelector('.frm_' + tab) || document.querySelector('.' + tab); - if (!container) { - return; - } - if (container.querySelector('.frm-upgrade-message')) { - // Tab has already been populated. - return; - } - var h2 = container.querySelector('h2'); - h2.style.borderBottom = 'none'; - - /* translators: %s: Form Setting section name (ie Form Permissions, Form Scheduling). */ - h2.textContent = sprintf(__('%s are not installed', 'formidable'), title); - container.classList.add('frmcenter'); - var upgradeModal = document.getElementById('frm_upgrade_modal'); - appendClonedModalElementToContainer('frm-oneclick'); - appendClonedModalElementToContainer('frm-addon-status'); - - // Borrow the call to action from the Upgrade upgradeModal which should exist on the settings page (it is still used for other upgrades including Actions). - var upgradeModalLink = upgradeModal.querySelector('.frm-upgrade-link'); - if (upgradeModalLink) { - var upgradeButton = upgradeModalLink.cloneNode(true); - var level = upgradeButton.querySelector('.license-level'); - if (level) { - level.textContent = getRequiredLicenseFromTrigger(element); - } - container.appendChild(upgradeButton); - - // Maybe append the secondary "Already purchased?" link from the upgradeModal as well. - if (upgradeModalLink.nextElementSibling && upgradeModalLink.nextElementSibling.querySelector('.frm-link-secondary')) { - container.appendChild(upgradeModalLink.nextElementSibling.cloneNode(true)); - } - appendClonedModalElementToContainer('frm-oneclick-button'); - } - appendClonedModalElementToContainer('frm-upgrade-message'); - var upgradeLabel = element.dataset.message; - if (upgradeLabel === undefined) { - upgradeLabel = element.dataset.upgrade; - } - addOneClick(element, 'tab', upgradeLabel); - if (element.dataset.screenshot) { - container.appendChild(getScreenshotWrapper(element.dataset.screenshot)); - } - function appendClonedModalElementToContainer(className) { - container.appendChild(upgradeModal.querySelector('.' + className).cloneNode(true)); - } - } - function getScreenshotWrapper(screenshot) { - var folderUrl = frmGlobal.url + '/images/screenshots/'; - var wrapper = div({ - className: 'frm-settings-screenshot-wrapper', - children: [getToolbar(), div({ - child: img({ - src: folderUrl + screenshot - }) - })] - }); - function getToolbar() { - var children = getColorIcons(); - children.push(img({ - src: frmGlobal.url + '/images/tab.svg' - })); - return div({ - className: 'frm-settings-screenshot-toolbar', - children: children - }); - } - function getColorIcons() { - return ['#ED8181', '#EDE06A', '#80BE30'].map(function (color) { - var circle = div({ - className: 'frm-minmax-icon' - }); - circle.style.backgroundColor = color; - return circle; - }); - } - return wrapper; - } - - /** - * Allow addons to be installed from the upgrade modal. - * - * @param {Element} link - * @param {string} context Either 'modal' or 'tab'. - * @param {string|undefined} upgradeLabel - */ - function addOneClick(link, context, upgradeLabel) { - var container; - if ('modal' === context) { - container = document.getElementById('frm_upgrade_modal'); - } else if ('tab' === context) { - container = document.getElementById(link.getAttribute('href').substr(1)); - } else { - return; - } - var oneclickMessage = container.querySelector('.frm-oneclick'); - var upgradeMessage = container.querySelector('.frm-upgrade-message'); - var showLink = container.querySelector('.frm-upgrade-link'); - var button = container.querySelector('.frm-oneclick-button'); - var addonStatus = container.querySelector('.frm-addon-status'); - var oneclick = link.getAttribute('data-oneclick'); - var newMessage = link.getAttribute('data-message'); - var showIt = 'block'; - var showMsg = 'block'; - var hideIt = 'none'; - - // If one click upgrade, hide other content. - if (oneclickMessage !== null && typeof oneclick !== 'undefined' && oneclick) { - if (newMessage === null) { - showMsg = 'none'; - } - showIt = 'none'; - hideIt = 'block'; - oneclick = JSON.parse(oneclick); - button.className = button.className.replace(' frm-install-addon', '').replace(' frm-activate-addon', ''); - button.className = button.className + ' ' + oneclick.class; - button.rel = oneclick.url; - if (oneclick.class === 'frm-activate-addon') { - oneclickMessage.textContent = __('This plugin is not activated. Would you like to activate it now?', 'formidable'); - button.textContent = __('Activate', 'formidable'); - } else { - oneclickMessage.textContent = __('That add-on is not installed. Would you like to install it now?', 'formidable'); - button.textContent = __('Install', 'formidable'); - } - } - if (!newMessage) { - newMessage = upgradeMessage.getAttribute('data-default'); - } - if (undefined !== upgradeLabel) { - newMessage = newMessage.replace('', upgradeLabel); - } - upgradeMessage.innerHTML = newMessage; - if (link.dataset.upsellImage) { - upgradeMessage.appendChild(img({ - src: link.dataset.upsellImage, - alt: link.dataset.upgrade - })); - } - - // Either set the link or use the default. - showLink.href = getShowLinkHrefValue(link, showLink); - addonStatus.style.display = 'none'; - oneclickMessage.style.display = hideIt; - button.style.display = hideIt === 'block' ? 'inline-block' : hideIt; - upgradeMessage.style.display = showMsg; - showLink.style.display = showIt === 'block' ? 'inline-block' : showIt; - } - function getShowLinkHrefValue(link, showLink) { - var customLink = link.getAttribute('data-link'); - if (customLink === null || typeof customLink === 'undefined' || customLink === '') { - customLink = showLink.getAttribute('data-default'); - } - return customLink; - } - - /* Form settings */ - - function showInputIcon(parentClass) { - if (typeof parentClass === 'undefined') { - parentClass = ''; - } - maybeAddFieldSelection(parentClass); - jQuery(parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) input,' + parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) textarea').wrap('').before(''); - } - - /** - * For reverse compatibility. Check for fields that were - * using the old sidebar. - */ - function maybeAddFieldSelection(parentClass) { - var i, - missingClass = jQuery(parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_message, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_to, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_subject'); - for (i = 0; i < missingClass.length; i++) { - missingClass[i].parentNode.classList.add('frm_has_shortcodes'); - } - } - function showSuccessOpt() { - /*jshint validthis:true */ - var c = 'success'; - if (this.name === 'options[edit_action]') { - c = 'edit'; - } - var v = jQuery(this).val(); - jQuery('.' + c + '_action_box').hide(); - if (v === 'redirect') { - jQuery('.' + c + '_action_redirect_box.' + c + '_action_box').fadeIn('slow'); - } else if (v === 'page') { - jQuery('.' + c + '_action_page_box.' + c + '_action_box').fadeIn('slow'); - } else { - jQuery('.' + c + '_action_message_box.' + c + '_action_box').fadeIn('slow'); - } - } - function copyFormAction(event) { - if (waitForActionToLoadBeforeCopy(event.target)) { - return; - } - var targetSettings = event.target.closest('.frm_form_action_settings'); - var wysiwygs = targetSettings.querySelectorAll('.wp-editor-area'); - if (wysiwygs.length) { - // Temporary remove TinyMCE before cloning to avoid TinyMCE conflicts. - wysiwygs.forEach(function (wysiwyg) { - tinymce.EditorManager.execCommand('mceRemoveEditor', true, wysiwyg.id); - }); - } - var $action = jQuery(targetSettings).clone(); - var currentID = $action.attr('id').replace('frm_form_action_', ''); - var newID = newActionId(currentID); - $action.find('.frm_action_id, .frm-btn-group').remove(); - $action.find('input[name$="[' + currentID + '][ID]"]').val(''); - $action.find('.widget-inside').hide(); - - // the .html() gets original values, so they need to be set - $action.find('input[type=text], textarea, input[type=number]').prop('defaultValue', function () { - return this.value; - }); - $action.find('input[type=checkbox], input[type=radio]').prop('defaultChecked', function () { - return this.checked; - }); - var rename = new RegExp('\\[' + currentID + '\\]', 'g'); - var reid = new RegExp('_' + currentID + '"', 'g'); - var reclass = new RegExp('-' + currentID + '"', 'g'); - var revalue = new RegExp('"' + currentID + '"', 'g'); // if a field id matches, this could cause trouble - - var html = $action.html().replace(rename, '[' + newID + ']').replace(reid, '_' + newID + '"'); - html = html.replace(reclass, '-' + newID + '"').replace(revalue, '"' + newID + '"'); - var newAction = div({ - id: 'frm_form_action_' + newID, - className: $action.get(0).className - }); - newAction.setAttribute('data-actionkey', newID); - newAction.innerHTML = html; - newAction.querySelectorAll('.wp-editor-wrap, .wp-editor-wrap *').forEach(function (element) { - if ('string' === typeof element.className) { - element.className = element.className.replace(currentID, newID); - } - element.id = element.id.replace(currentID, newID); - }); - newAction.classList.remove('open'); - document.getElementById('frm_notification_settings').appendChild(newAction); - if (wysiwygs.length) { - // Re-initialize the original wysiwyg which was removed before cloning. - wysiwygs.forEach(function (wysiwyg) { - frmDom.wysiwyg.init(wysiwyg); - }); - newAction.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { - frmDom.wysiwyg.init(wysiwyg); - }); - } - if (newAction.classList.contains('frm_single_on_submit_settings')) { - var autocompleteInput = newAction.querySelector('input.frm-page-search'); - if (autocompleteInput) { - initAutocomplete(newAction); - } - } - initiateMultiselect(); - var hookName = 'frm_after_duplicate_action'; - wp.hooks.doAction(hookName, newAction); - } - function waitForActionToLoadBeforeCopy(element) { - var $trigger = jQuery(element), - $original = $trigger.closest('.frm_form_action_settings'), - $inside = $original.find('.widget-inside'), - $top; - if ($inside.find('p, div, table').length) { - return false; - } - $top = $original.find('.widget-top'); - $top.on('frm-action-loaded', function () { - $trigger.trigger('click'); - $original.removeClass('open'); - $inside.hide(); - }); - $top.trigger('click'); - return true; - } - function newActionId(currentID) { - var newID = parseInt(currentID, 10) + 11; - var exists = document.getElementById('frm_form_action_' + newID); - if (exists !== null) { - newID++; - newID = newActionId(newID); - } - return newID; - } - function addFormAction() { - /*jshint validthis:true */ - var type = jQuery(this).data('actiontype'); - if (isAtLimitForActionType(type)) { - return; - } - var actionId = getNewActionId(); - var formId = thisFormId; - var placeholderSetting = document.createElement('div'); - placeholderSetting.classList.add('frm_single_' + type + '_settings'); - var actionsList = document.getElementById('frm_notification_settings'); - actionsList.appendChild(placeholderSetting); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_form_action', - type: type, - list_id: actionId, - form_id: formId, - nonce: frmGlobal.nonce - }, - success: handleAddFormActionSuccess - }); - function handleAddFormActionSuccess(html) { - fieldUpdated(); - placeholderSetting.remove(); - closeOpenActions(); - var newActionContainer = div(); - newActionContainer.innerHTML = html; - var widgetTop = newActionContainer.querySelector('.widget-top'); - Array.from(newActionContainer.children).forEach(function (child) { - return actionsList.appendChild(child); - }); - jQuery('.frm_form_action_settings').fadeIn('slow'); - var newAction = document.getElementById('frm_form_action_' + actionId); - newAction.classList.add('open'); - document.getElementById('post-body-content').scroll({ - top: newAction.offsetTop + 10, - left: 0, - behavior: 'smooth' - }); - - // Check if icon should be active - checkActiveAction(type); - showInputIcon('#frm_form_action_' + actionId); - initiateMultiselect(); - initAutocomplete(newAction); - if (widgetTop) { - jQuery(widgetTop).trigger('frm-action-loaded'); - } - - /** - * Fires after added a new form action. - * - * @since 5.5.4 - * - * @param {HTMLElement} formAction Form action element. - */ - frmAdminBuild.hooks.doAction('frm_added_form_action', newAction); - } - } - function closeOpenActions() { - document.querySelectorAll('.frm_form_action_settings.open').forEach(function (setting) { - return setting.classList.remove('open'); - }); - } - function toggleActionGroups() { - /*jshint validthis:true */ - var actions = document.getElementById('frm_email_addon_menu').classList, - search = document.getElementById('actions-search-input'); - if (actions.contains('frm-all-actions')) { - actions.remove('frm-all-actions'); - actions.add('frm-limited-actions'); - } else { - actions.add('frm-all-actions'); - actions.remove('frm-limited-actions'); - } - - // Reset search. - search.value = ''; - triggerEvent(search, 'input'); - } - function getNewActionId() { - var actionSettings = document.querySelectorAll('.frm_form_action_settings'), - len = getNewRowId(actionSettings, 'frm_form_action_'); - if (typeof document.getElementById('frm_form_action_' + len) !== 'undefined') { - len = len + 100; - } - if (lastNewActionIdReturned >= len) { - len = lastNewActionIdReturned + 1; - } - lastNewActionIdReturned = len; - return len; - } - function clickAction(obj) { - var $thisobj = jQuery(obj); - if (obj.className.indexOf('selected') !== -1) { - return; - } - if (obj.className.indexOf('edit_field_type_end_divider') !== -1 && $thisobj.closest('.edit_field_type_divider').hasClass('no_repeat_section')) { - return; - } - deselectFields(); - $thisobj.addClass('selected'); - showFieldOptions(obj); - } - - /** - * When a field is selected, show the field settings in the sidebar. - */ - function showFieldOptions(obj) { - var _document$querySelect4; - var i, - singleField, - fieldId = obj.getAttribute('data-fid'), - fieldType = obj.getAttribute('data-type'), - allFieldSettings = document.querySelectorAll('.frm-single-settings:not(.frm_hidden)'); - for (i = 0; i < allFieldSettings.length; i++) { - allFieldSettings[i].classList.add('frm_hidden'); - } - singleField = document.getElementById('frm-single-settings-' + fieldId); - moveFieldSettings(singleField); - if (fieldType && 'quantity' === fieldType) { - popProductFields(jQuery(singleField).find('.frmjs_prod_field_opt')[0]); - } - - // Scroll settings panel to top - (_document$querySelect4 = document.querySelector('.frm-settings-panel.frm-scrollbar-wrapper')) === null || _document$querySelect4 === void 0 || _document$querySelect4.scrollTo({ - top: 0, - behavior: 'instant' - }); - singleField.classList.remove('frm_hidden'); - document.getElementById('frm-options-panel-tab').click(); - var editor = singleField.querySelector('.wp-editor-area'); - if (editor) { - frmDom.wysiwyg.init(editor, { - setupCallback: setupTinyMceEventHandlers - }); - } - wp.hooks.doAction('frmShowedFieldSettings', obj, singleField); - maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField); - } - function maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField) { - var _singleField$querySel; - if (!shouldAddShortcodesModalTriggerIcon(fieldType)) { - return; - } - var fieldSettingsSelector = '#frm-single-settings-' + fieldId; - if (document.querySelector(fieldSettingsSelector + ' .frm-show-box')) { - return; - } - (_singleField$querySel = singleField.querySelector('.wp-editor-container')) === null || _singleField$querySel === void 0 || _singleField$querySel.classList.add('frm_has_shortcodes'); - var wrapTextareaWithIconContainer = function wrapTextareaWithIconContainer() { - var textareas = document.querySelectorAll(fieldSettingsSelector + ' .frm_has_shortcodes textarea'); - textareas.forEach(function (textarea) { - var wrapperSpan = span({ - className: 'frm-with-right-icon' - }); - textarea.parentNode.insertBefore(wrapperSpan, textarea); - wrapperSpan.appendChild(createModalTriggerIcon()); - wrapperSpan.appendChild(textarea); - }); - }; - var createModalTriggerIcon = function createModalTriggerIcon() { - return frmDom.svg({ - href: '#frm_more_horiz_solid_icon', - classList: ['frm-show-box'] - }); - }; - wrapTextareaWithIconContainer(); - } - function shouldAddShortcodesModalTriggerIcon(fieldType) { - var fieldsWithShortcodesBox = wp.hooks.applyFilters('frm_fields_with_shortcode_popup', ['html']); - return fieldsWithShortcodesBox.includes(fieldType); - } - function setupTinyMceEventHandlers(editor) { - editor.on('Change', function () { - handleTinyMceChange(editor); - }); - } - function handleTinyMceChange(editor) { - if (!isTinyMceActive() || tinyMCE.activeEditor.isHidden()) { - return; - } - editor.targetElm.value = editor.getContent(); - jQuery(editor.targetElm).trigger('change'); - } - function isTinyMceActive() { - var activeSettings, wrapper; - activeSettings = document.querySelector('.frm-single-settings:not(.frm_hidden)'); - if (!activeSettings) { - return false; - } - wrapper = activeSettings.querySelector('.wp-editor-wrap'); - return null !== wrapper && wrapper.classList.contains('tmce-active'); - } - - /** - * Move the settings to the sidebar the first time they are changed or selected. - * Keep the end marker at the end of the form. - */ - function moveFieldSettings(singleField) { - var self = this; - if (singleField === null) { - // The field may have not been loaded yet via ajax. - return; - } - this.fragment = document.createDocumentFragment(); - this.initOnceInAllInstances = function () { - if ('undefined' !== typeof moveFieldSettings.prototype.endMarker) { - return; - } - // perform a single search in the DOM and use it across all moveFieldSettings instances - moveFieldSettings.prototype.endMarker = document.getElementById('frm-end-form-marker'); - }; - this.append = function (field) { - var classname = null !== field ? field.parentElement.classList : ''; - if (null === field || !classname.contains('frm_field_box') && !classname.contains('divider_section_only')) { - return; - } - self.fragment.appendChild(field); - }; - this.moveFields = function () { - builderForm.insertBefore(self.fragment, moveFieldSettings.prototype.endMarker); - }; - this.initOnceInAllInstances(); - - // Move the field if function is called as function with a singleField passed as arg. - // In this particular case only 1 field is needed to be moved so the field will get instantly moved. - // "singleField" may be undefined when it's called as a constructor instead of a function. Use the constructor to add multiple fields which are passed through "append" and move these all at once via "moveFields". - if ('undefined' !== typeof singleField) { - this.append(singleField); - this.moveFields(); - return; - } - return { - append: this.append, - moveFields: this.moveFields - }; - } - function showEmailRow() { - /*jshint validthis:true */ - var actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'); - var rowType = this.getAttribute('data-emailrow'); - jQuery('#frm_form_action_' + actionKey + ' .frm_' + rowType + '_row').fadeIn('slow'); - jQuery(this).fadeOut('slow'); - } - function hideEmailRow() { - /*jshint validthis:true */ - var actionBox = jQuery(this).closest('.frm_form_action_settings'), - rowType = this.getAttribute('data-emailrow'), - emailRowSelector = '.frm_' + rowType + '_row', - emailButtonSelector = '.frm_' + rowType + '_button'; - jQuery(actionBox).find(emailButtonSelector).fadeIn('slow'); - jQuery(actionBox).find(emailRowSelector).fadeOut('slow', function () { - jQuery(actionBox).find(emailRowSelector + ' input').val(''); - }); - } - function showEmailWarning() { - /*jshint validthis:true */ - var actionBox = jQuery(this).closest('.frm_form_action_settings'), - emailRowSelector = '.frm_from_to_match_row', - fromVal = actionBox.find('input[name$="[post_content][from]"]').val(), - toVal = actionBox.find('input[name$="[post_content][email_to]"]').val(); - if (fromVal === toVal) { - jQuery(actionBox).find(emailRowSelector).fadeIn('slow'); - } else { - jQuery(actionBox).find(emailRowSelector).fadeOut('slow'); - } - } - function checkActiveAction(type) { - var actionTriggers = document.querySelectorAll('.frm_' + type + '_action'); - if (isAtLimitForActionType(type)) { - var addAlreadyUsedClass = getLimitForActionType(type) > 0; - markActionTriggersInactive(actionTriggers, addAlreadyUsedClass); - return; - } - markActionTriggersActive(actionTriggers); - } - function markActionTriggersActive(triggers) { - triggers.forEach(function (trigger) { - if (trigger.querySelector('.frm_show_upgrade')) { - // Prevent disabled action becoming active. - return; - } - trigger.classList.remove('frm_inactive_action', 'frm_already_used'); - trigger.classList.add('frm_active_action'); - }); - } - function markActionTriggersInactive(triggers, addAlreadyUsedClass) { - triggers.forEach(function (trigger) { - trigger.classList.remove('frm_active_action'); - trigger.classList.add('frm_inactive_action'); - if (addAlreadyUsedClass) { - trigger.classList.add('frm_already_used'); - } - }); - } - function isAtLimitForActionType(type) { - var atLimit = getNumberOfActionsForType(type) >= getLimitForActionType(type); - var hookName = 'frm_action_at_limit'; - var hookArgs = { - type: type - }; - atLimit = wp.hooks.applyFilters(hookName, atLimit, hookArgs); - return atLimit; - } - function getLimitForActionType(type) { - return parseInt(jQuery('.frm_' + type + '_action').data('limit'), 10); - } - function getNumberOfActionsForType(type) { - return jQuery('.frm_single_' + type + '_settings').length; - } - function actionLimitMessage() { - var message = frmAdminJs.only_one_action; - var limit = this.dataset.limit; - if ('undefined' !== typeof limit) { - limit = parseInt(limit); - if (limit > 1) { - message = message.replace(1, limit).trim(); - } else { - message += ' ' + frmAdminJs.edit_action_text; - } - } - infoModal(message); - } - function addFormLogicRow() { - /*jshint validthis:true */ - var id = jQuery(this).data('emailkey'); - var type = jQuery(this).closest('.frm_form_action_settings').find('.frm_action_name').val(); - var formId = document.getElementById('form_id').value; - var logicRowsContainer = document.getElementById('frm_logic_row_' + id); - var logicRows = logicRowsContainer.querySelectorAll('.frm_logic_row'); - var newRowID = getNewRowId(logicRows, 'frm_logic_' + id + '_'); - var placeholder = div({ - id: 'frm_logic_' + id + '_' + newRowID, - className: 'frm_logic_row frm_hidden' - }); - logicRowsContainer.appendChild(placeholder); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_form_logic_row', - email_id: id, - form_id: formId, - meta_name: newRowID, - type: type, - nonce: frmGlobal.nonce - }, - success: function success(html) { - jQuery(document.getElementById('logic_link_' + id)).fadeOut('slow', function () { - placeholder.insertAdjacentHTML('beforebegin', html); - placeholder.remove(); - - // Show conditional logic options after "Add Conditional Logic" is clicked. - jQuery(logicRowsContainer).parent('.frm_logic_rows').fadeIn('slow'); - }); - } - }); - return false; - } - function checkDupPost() { - /*jshint validthis:true */ - var postField = jQuery('select.frm_single_post_field'); - postField.css('border-color', ''); - var $t = this; - var v = jQuery($t).val(); - if (v === '' || v === 'checkbox') { - return false; - } - postField.each(function () { - if (jQuery(this).val() === v && this.name !== $t.name) { - this.style.borderColor = 'red'; - jQuery($t).val(''); - infoModal(frmAdminJs.field_already_used); - return false; - } - }); - } - function togglePostContent() { - /*jshint validthis:true */ - var v = jQuery(this).val(); - if ('' === v) { - jQuery('.frm_post_content_opt, select.frm_dyncontent_opt').hide().val(''); - jQuery('.frm_dyncontent_opt').hide(); - } else if ('post_content' === v) { - jQuery('.frm_post_content_opt').show(); - jQuery('.frm_dyncontent_opt').hide(); - jQuery('select.frm_dyncontent_opt').val(''); - } else { - jQuery('.frm_post_content_opt').hide().val(''); - jQuery('select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt').show(); - } - } - function fillDyncontent() { - /*jshint validthis:true */ - var v = jQuery(this).val(); - var $dyn = jQuery(document.getElementById('frm_dyncontent')); - if ('' === v || 'new' === v) { - $dyn.val(''); - jQuery('.frm_dyncontent_opt').show(); - } else { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_display_get_content', - id: v, - nonce: frmGlobal.nonce - }, - success: function success(val) { - $dyn.val(val); - jQuery('.frm_dyncontent_opt').show(); - } - }); - } - } - function switchPostType() { - /*jshint validthis:true */ - // update all rows of categories/taxonomies - var curSelect, - newSelect, - catRows = document.getElementById('frm_posttax_rows').childNodes, - postParentField = document.querySelector('.frm_post_parent_field'), - postMenuOrderField = document.querySelector('.frm_post_menu_order_field'), - postType = this.value; - - // Get new category/taxonomy options - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_replace_posttax_options', - post_type: postType, - nonce: frmGlobal.nonce - }, - success: function success(html) { - // Loop through each category row, and replace the first dropdown - for (i = 0; i < catRows.length; i++) { - // Check if current element is a div - if (catRows[i].tagName !== 'DIV') { - continue; - } - - // Get current category select - curSelect = catRows[i].getElementsByTagName('select')[0]; - - // Set up new select - newSelect = document.createElement('select'); - newSelect.innerHTML = html; - newSelect.className = curSelect.className; - newSelect.name = curSelect.name; - - // Replace the old select with the new select - catRows[i].replaceChild(newSelect, curSelect); - } - } - }); - - // Get new post parent option. - if (postParentField) { - getActionOption(postParentField, postType, 'frm_get_post_parent_option', function (response, optName) { - // The replaced string is declared in FrmProFormActionController::ajax_get_post_menu_order_option() in the pro version. - postParentField.querySelector('.frm_post_parent_opt_wrapper').innerHTML = response.replaceAll('REPLACETHISNAME', optName); - initAutocomplete(postParentField); - }); - } - if (postMenuOrderField) { - getActionOption(postMenuOrderField, postType, 'frm_should_use_post_menu_order_option'); - } - } - function getActionOption(field, postType, action, successHandler) { - var opt = field.querySelector('.frm_autocomplete_value_input') || field.querySelector('select'), - optName = opt.getAttribute('name'); - jQuery.ajax({ - url: ajaxurl, - method: 'POST', - data: { - action: action, - post_type: postType, - _wpnonce: frmGlobal.nonce - }, - success: function success(response) { - if ('string' !== typeof response) { - console.error(response); - return; - } - if ('0' === response) { - // This post type does not support this field. - field.classList.add('frm_hidden'); - field.value = ''; - return; - } - field.classList.remove('frm_hidden'); - if ('function' === typeof successHandler) { - successHandler(response, optName); - } - }, - error: function error(response) { - return console.error(response); - } - }); - } - function addPosttaxRow() { - /*jshint validthis:true */ - addPostRow('tax', this); - } - function addPostmetaRow() { - /*jshint validthis:true */ - addPostRow('meta', this); - } - function addPostRow(type, button) { - var name, - id = jQuery('input[name="id"]').val(), - settings = jQuery(button).closest('.frm_form_action_settings'), - key = settings.data('actionkey'), - postType = settings.find('.frm_post_type').val(), - metaName = 0, - postTypeRows = document.querySelectorAll('.frm_post' + type + '_row'); - if (postTypeRows.length) { - name = postTypeRows[postTypeRows.length - 1].id.replace('frm_post' + type + '_', ''); - if (isNumeric(name)) { - metaName = 1 + parseInt(name, 10); - } else { - metaName = 1; - } - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_post' + type + '_row', - form_id: id, - meta_name: metaName, - tax_key: metaName, - post_type: postType, - action_key: key, - nonce: frmGlobal.nonce - }, - success: function success(html) { - var cfOpts, optIndex; - jQuery(document.getElementById('frm_post' + type + '_rows')).append(html); - jQuery('.frm_add_post' + type + '_row.button').hide(); - if (type === 'meta') { - jQuery('.frm_name_value').show(); - cfOpts = document.querySelectorAll('.frm_toggle_cf_opts'); - for (optIndex = 0; optIndex < cfOpts.length - 1; ++optIndex) { - cfOpts[optIndex].style.display = 'none'; - } - } else if (type === 'tax') { - jQuery('.frm_posttax_labels').show(); - } - } - }); - } - function isNumeric(value) { - return !isNaN(parseFloat(value)) && isFinite(value); - } - function changePosttaxRow() { - /*jshint validthis:true */ - if (!jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').length) { - return; - } - jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').html('
                '); - var postType = jQuery(this).closest('.frm_form_action_settings').find('select[name$="[post_content][post_type]"]').val(), - actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'), - taxKey = jQuery(this).closest('.frm_posttax_row').attr('id').replace('frm_posttax_', ''), - metaName = jQuery(this).val(), - showExclude = jQuery(document.getElementById(taxKey + '_show_exclude')).is(':checked') ? 1 : 0, - fieldId = jQuery('select[name$="[post_category][' + taxKey + '][field_id]"]').val(), - id = jQuery('input[name="id"]').val(); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_posttax_row', - form_id: id, - post_type: postType, - tax_key: taxKey, - action_key: actionKey, - meta_name: metaName, - field_id: fieldId, - show_exclude: showExclude, - nonce: frmGlobal.nonce - }, - success: function success(html) { - var $tax = jQuery(document.getElementById('frm_posttax_' + taxKey)); - $tax.replaceWith(html); - } - }); - } - function toggleCfOpts() { - /*jshint validthis:true */ - var row = jQuery(this).closest('.frm_postmeta_row'); - var cancel = row.find('.frm_cancelnew'); - var select = row.find('.frm_enternew'); - if (row.find('select.frm_cancelnew').is(':visible')) { - cancel.hide(); - select.show(); - } else { - cancel.show(); - select.hide(); - } - row.find('input.frm_enternew, select.frm_cancelnew').val(''); - return false; - } - function toggleFormOpts() { - /*jshint validthis:true */ - var changedOpt = jQuery(this); - var val = changedOpt.val(); - if (changedOpt.attr('type') === 'checkbox') { - if (this.checked === false) { - val = ''; - } - } - var toggleClass = changedOpt.data('toggleclass'); - if (val === '') { - jQuery('.' + toggleClass).hide(); - } else { - jQuery('.' + toggleClass).show(); - jQuery('.hide_' + toggleClass + '_' + val).hide(); - } - } - function submitSettings() { - if (showNameYourFormModal()) { - return; - } - - /*jshint validthis:true */ - preFormSave(this); - triggerSubmit(document.querySelector('.frm_form_settings')); - } - - /* Customization Panel */ - function insertCode(e) { - /*jshint validthis:true */ - e.preventDefault(); - insertFieldCode(jQuery(this), this.getAttribute('data-code')); - return false; - } - function insertFieldCode(element, variable) { - var rich = false, - elementId = element; - if (_typeof(element) === 'object') { - if (element.hasClass('frm_noallow')) { - return; - } - elementId = jQuery(element).closest('[data-fills]').attr('data-fills'); - if (typeof elementId === 'undefined') { - elementId = element.closest('div').attr('class'); - if (typeof elementId !== 'undefined') { - elementId = elementId.split(' ')[1]; - } - } - } - if (typeof elementId === 'undefined') { - var active = document.activeElement; - if (active.type === 'search') { - // If the search field has focus, find the correct field. - elementId = active.id.replace('-search-input', ''); - if (elementId.match(/\d/gi) === null) { - active = jQuery('.frm-single-settings:visible .' + elementId); - elementId = active.attr('id'); - } - } else { - elementId = active.id; - } - } - if (elementId) { - rich = jQuery('#wp-' + elementId + '-wrap.wp-editor-wrap').length > 0; - } - var contentBox = jQuery(document.getElementById(elementId)); - if (typeof element.attr('data-shortcode') === 'undefined' && (!contentBox.length || typeof contentBox.attr('data-shortcode') === 'undefined')) { - // this helps to exclude those that don't want shortcode-like inserted content e.g. frm-pro's summary field - var doShortcode = element.parents('ul.frm_code_list').attr('data-shortcode'); - if (doShortcode === 'undefined' || doShortcode !== 'no') { - variable = '[' + variable + ']'; - } - } - if (rich) { - wpActiveEditor = elementId; - } - if (!contentBox.length) { - return false; - } - if (variable === '[default-html]' || variable === '[default-plain]') { - var p = 0; - if (variable === '[default-plain]') { - p = 1; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_get_default_html', - form_id: jQuery('input[name="id"]').val(), - plain_text: p, - nonce: frmGlobal.nonce - }, - elementId: elementId, - success: function success(msg) { - if (rich) { - var _p = document.createElement('p'); - _p.innerText = msg; - send_to_editor(_p.innerHTML); - } else { - insertContent(contentBox, msg); - } - } - }); - } else { - variable = maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox); - if (rich) { - send_to_editor(variable); - } else { - insertContent(contentBox, variable); - } - } - return false; - } - function maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox) { - if ('object' !== _typeof(element) || !(element instanceof jQuery) || 0 !== contentBox[0].id.indexOf('success_url_')) { - return variable; - } - element = element[0]; - if (!element.closest('#frm-insert-fields-box')) { - // Only add sanitize_url=1 to field shortcodes. - return variable; - } - if (!element.parentNode.classList.contains('frm_insert_url')) { - variable = variable.replace(']', ' sanitize_url=1]'); - } - return variable; - } - function insertContent(contentBox, variable) { - if (document.selection) { - contentBox[0].focus(); - document.selection.createRange().text = variable; - } else { - obj = contentBox[0]; - var e = obj.selectionEnd; - variable = maybeFormatInsertedContent(contentBox, variable, obj.selectionStart, e); - obj.value = obj.value.substr(0, obj.selectionStart) + variable + obj.value.substr(obj.selectionEnd, obj.value.length); - var _s = e + variable.length; - maybeRemoveLayoutClasses(obj, variable); - obj.focus(); - obj.setSelectionRange(_s, _s); - } - triggerChange(contentBox); - } - - /** - * When a layout class is added, remove any previous layout classes to avoid conflicts. - * We only expect one layout class to exist for a given field. - * For example, if a field has frm_half and we set it to frm_third, frm_half will be removed. - * - * @since 6.11 - * - * @param {HTMLElement} obj - * @param {string} variable - * @return {void} - */ - function maybeRemoveLayoutClasses(obj, variable) { - if (!obj.classList.contains('frm_classes') || !isALayoutClass(variable)) { - return; - } - var removeClasses = obj.value.split(' ').filter(isALayoutClass); - if (removeClasses.length) { - obj.value = maybeRemoveClasses(obj.value, removeClasses, variable.trim()); - } - } - - /** - * Check if a given class is a layout class. - * - * @since 6.11 - * - * @param {string} className - * @return {boolean} - */ - function isALayoutClass(className) { - var layoutClasses = ['frm_half', 'frm_third', 'frm_two_thirds', 'frm_fourth', 'frm_three_fourths', 'frm_fifth', 'frm_sixth', 'frm2', 'frm3', 'frm4', 'frm6', 'frm8', 'frm9', 'frm10', 'frm12']; - return layoutClasses.includes(className.trim()); - } - - /** - * @since 6.11 - * - * @param {string} beforeValue - * @param {Array} removeClasses - * @param {string} variable - * @return {string} - */ - function maybeRemoveClasses(beforeValue, removeClasses, variable) { - var currentClasses = beforeValue.split(' ').filter(function (currentClass) { - currentClass = currentClass.trim(); - return currentClass.length && !removeClasses.includes(currentClass); - }); - if (!currentClasses.includes(variable)) { - currentClasses.push(variable); - } - return currentClasses.join(' '); - } - function maybeFormatInsertedContent(input, textToInsert, selectionStart, selectionEnd) { - var separator = input.data('sep'); - if (undefined === separator) { - return textToInsert; - } - var value = input.val(); - if (!value.trim().length) { - return textToInsert; - } - var startPattern = new RegExp(separator + '\\s*$'); - var endPattern = new RegExp('^\\s*' + separator); - if (value.substr(0, selectionStart).trim().length && false === startPattern.test(value.substr(0, selectionStart))) { - textToInsert = separator + textToInsert; - } - if (value.substr(selectionEnd, value.length).trim().length && false === endPattern.test(value.substr(selectionEnd, value.length))) { - textToInsert += separator; - } - return textToInsert; - } - function resetLogicBuilder() { - /*jshint validthis:true */ - var id = document.getElementById('frm-id-condition'), - key = document.getElementById('frm-key-condition'); - if (this.value === 'id') { - id.classList.remove('frm_hidden'); - key.classList.add('frm_hidden'); - triggerEvent(key, 'change'); - } else { - id.classList.add('frm_hidden'); - key.classList.remove('frm_hidden'); - triggerEvent(id, 'change'); - } - } - function setLogicExample() { - var field, - code, - idKey = document.getElementById('frm-id-key-condition-id').checked ? 'frm-id-condition' : 'frm-key-condition', - is = document.getElementById('frm-is-condition').value, - text = document.getElementById('frm-text-condition').value, - result = document.getElementById('frm-insert-condition'); - idKey = document.getElementById(idKey); - field = idKey.options[idKey.selectedIndex].value; - code = 'if ' + field + ' ' + is + '="' + text + '"]'; - result.setAttribute('data-code', code + frmAdminJs.conditional_text + '[/if ' + field); - result.innerHTML = '[' + code + '[/if ' + field + ']'; - } - function maybeShowModal(input) { - var moreIcon; - if (input.parentNode.parentNode.classList.contains('frm_has_shortcodes')) { - hideShortcodes(); - moreIcon = getIconForInput(input); - if (moreIcon.tagName === 'use') { - moreIcon = moreIcon.firstElementChild; - if (moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href').indexOf('frm_close_icon') === -1) { - showShortcodeBox(moreIcon, 'nofocus'); - } - } else if (!moreIcon.classList.contains('frm_close_icon')) { - showShortcodeBox(moreIcon, 'nofocus'); - } - } - } - function showShortcodes(e) { - /*jshint validthis:true */ - e.preventDefault(); - e.stopPropagation(); - showShortcodeBox(this); - } - - /** - * Handles 'change' event on the document. - * - * @since 6.16.3 - * - * @param {Event} event - * @return {void} - */ - function handleBuilderChangeEvent(event) { - maybeShowSaveAndReloadModal(event.target); - } - - /** - * Shows 'Save and Reload' modal if the target field's type is changed. - * - * @since 6.16.3 - * - * @param {HTMLElement} target - * @return {void} - */ - function maybeShowSaveAndReloadModal(target) { - var _document$querySelect5; - if (!target.id.startsWith('field_options_type_')) { - return; - } - var idParts = target.id.split('_'); - var fieldId = idParts.length && idParts[idParts.length - 1]; - if ((_document$querySelect5 = document.querySelector("#frm-single-settings-".concat(fieldId))) !== null && _document$querySelect5 !== void 0 && _document$querySelect5.classList.contains("frm-type-".concat(target.value))) { - // Do not show modal if the field type is reverted back to the original type when builder is loaded. - return; - } - showSaveAndReloadModal(); - } - - /** - * Shows 'Save and Reload' modal with the given message. - * - * @since 6.16.3 - * - * @param {string} message - * @return {void} - */ - function showSaveAndReloadModal(message) { - if ('undefined' === typeof message) { - message = __('You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?', 'formidable'); - } - frmDom.modal.maybeCreateModal('frmSaveAndReloadModal', { - title: __('Save and Reload?', 'formidable'), - content: getModalContent(), - footer: getModalFooter() - }); - function getModalContent() { - var modalContent = div(message); - modalContent.style.padding = 'var(--gap-md)'; - return modalContent; - } - function getModalFooter() { - var continueButton = frmDom.modal.footerButton({ - text: __('Save and Reload', 'formidable'), - buttonType: 'primary' - }); - onClickPreventDefault(continueButton, function () { - saveAndReloadFormBuilder(); - }); - var cancelButton = frmDom.modal.footerButton({ - text: __('Cancel', 'formidable'), - buttonType: 'cancel' - }); - cancelButton.classList.add('dismiss'); - return frmDom.div({ - children: [cancelButton, continueButton] - }); - } - } - function updateShortcodesPopupPosition(target) { - var moreIcon; - if (target instanceof Event) { - var useElements = document.querySelectorAll('.frm-single-settings .frm-show-box.frmsvg use'); - var openTrigger = Array.from(useElements).find(function (use) { - return use.getAttribute('href') === '#frm_close_icon'; - }); - if ('undefined' === typeof openTrigger) { - return; - } - moreIcon = openTrigger.parentElement; - } else { - moreIcon = target; - } - var moreIconPosition = moreIcon.getBoundingClientRect(); - var shortCodesPopup = document.getElementById('frm_adv_info'); - var parentPos = shortCodesPopup.parentElement.getBoundingClientRect(); - shortCodesPopup.style.top = moreIconPosition.top - parentPos.top + 32 + 'px'; - shortCodesPopup.style.left = moreIconPosition.left - parentPos.left - 280 + 'px'; - } - function showShortcodeBox(moreIcon, shouldFocus) { - var input = getInputForIcon(moreIcon), - box = document.getElementById('frm_adv_info'), - classes = moreIcon.className; - if (moreIcon.tagName === 'svg') { - moreIcon = moreIcon.firstElementChild; - } - if (moreIcon.tagName === 'use') { - classes = moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href'); - if (null === classes) { - // If the deprecated xlink:href is not defined, check for href. - classes = moreIcon.getAttribute('href'); - } - } - if (classes.indexOf('frm_close_icon') !== -1) { - hideShortcodes(box); - } else { - updateShortcodesPopupPosition(moreIcon); - jQuery('.frm_code_list a').removeClass('frm_noallow'); - if (input.classList.contains('frm_not_email_to')) { - jQuery('#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a').addClass('frm_noallow'); - } else if (input.classList.contains('frm_not_email_subject')) { - jQuery('.frm_code_list li.hide_frm_not_email_subject a').addClass('frm_noallow'); - } - box.setAttribute('data-fills', input.id); - box.style.display = 'block'; - if (moreIcon.tagName === 'use') { - if (moreIcon.hasAttributeNS('http://www.w3.org/1999/xlink', 'href')) { - moreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); - } else { - var newMoreIcon = document.createElementNS('http://www.w3.org/2000/svg', 'use'); - newMoreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); - moreIcon.parentNode.replaceChild(newMoreIcon, moreIcon); - } - } else { - moreIcon.className = classes.replace('frm_more_horiz_solid_icon', 'frm_close_icon'); - } - if (shouldFocus !== 'nofocus') { - if ('none' !== input.style.display) { - input.focus(); - } else { - jQuery(tinymce.get(input.id)).trigger('focus'); - } - } - showOrHideContextualShortcodes(input); - } - } - - /** - * Returns true if a shortcode could be shown in the search result. - * - * @since 6.16.3 - * - * @param {HTMLElement} item - * @return {Boolean} - */ - function checkContextualShortcode(item) { - if (frmAdminJs.contextualShortcodes.length === 0) { - return true; - } - return !isContextualShortcode(item) || canShowContextualShortcode(item); - } - - /** - * Returns true if a shortcode is contextual to fields. - * - * @since 6.16.3 - * - * @param {HTMLElement} item - * @return {Boolean} - */ - function isContextualShortcode(item) { - var anchor = item.querySelector('a'); - if (!anchor) { - return false; - } - var shortcode = anchor.dataset.code; - return frmAdminJs.contextualShortcodes.address.includes(shortcode) || frmAdminJs.contextualShortcodes.body.includes(shortcode); - } - - /** - * @since 6.16.3 - * - * @param {HTMLElement} item - * @return {Boolean} - */ - function canShowContextualShortcode(item) { - var shortcode = item.querySelector('a').dataset.code; - var inputId = document.getElementById('frm_adv_info').dataset.fills; - var input = document.getElementById(inputId); - var contextualShortcodes = frmAdminJs.contextualShortcodes; - if (contextualShortcodes.address.includes(shortcode)) { - return input.matches(contextualShortcodes.addressSelector); - } - return input.matches(contextualShortcodes.bodySelector); - } - - /** - * @since 6.16.3 - * - * @param {HTMLElement} input - * @return {void} - */ - function showOrHideContextualShortcodes(input) { - ['address', 'body'].forEach(function (type) { - toggleContextualShortcodes(input, type); - }); - } - - /** - * @since 6.16.3 - * - * @param {HTMLElement} input - * @param {string} type - * - * @return {void} - */ - function toggleContextualShortcodes(input, type) { - var selector, contextualShortcodes; - selector = frmAdminJs.contextualShortcodes[type + 'Selector']; - contextualShortcodes = frmAdminJs.contextualShortcodes[type]; - var shouldShowShortcodes = input.matches(selector); - var _iterator = _createForOfIteratorHelper(contextualShortcodes), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _document$querySelect6; - var shortcode = _step.value; - var shortcodeLi = (_document$querySelect6 = document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="' + shortcode + '"]')) === null || _document$querySelect6 === void 0 ? void 0 : _document$querySelect6.closest('li'); - shortcodeLi === null || shortcodeLi === void 0 || shortcodeLi.classList.toggle('frm_hidden', !shouldShowShortcodes); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - - /** - * Returns shortcodes that are contextual to the current input field. - * - * @since 6.16.3 - * - * @return {Array} - */ - function getContextualShortcodes() { - var _document$getElementB4; - var contextualShortcodes = (_document$getElementB4 = document.getElementById('frm_adv_info')) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.dataset.contextualShortcodes; - if (!contextualShortcodes) { - return []; - } - contextualShortcodes = JSON.parse(contextualShortcodes); - contextualShortcodes.addressSelector = '[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]'; - contextualShortcodes.bodySelector = '[id^=email_message_]'; - return contextualShortcodes; - } - function fieldUpdated() { - if (!fieldsUpdated) { - fieldsUpdated = 1; - window.addEventListener('beforeunload', confirmExit); - } - } - function buildSubmittedNoAjax() { - // set fieldsUpdated to 0 to avoid the unsaved changes pop up - fieldsUpdated = 0; - } - function settingsSubmitted() { - // set fieldsUpdated to 0 to avoid the unsaved changes pop up - fieldsUpdated = 0; - } - function saveAndReloadSettings() { - var page, form; - page = document.getElementById('form_settings_page'); - if (null !== page) { - form = page.querySelector('form.frm_form_settings'); - if (null !== form) { - fieldsUpdated = 0; - form.submit(); - } - } - } - function reloadIfAddonActivatedAjaxSubmitOnly() { - var submitButton = document.getElementById('frm_submit_side_top'); - if (submitButton.hasAttribute('data-new-addon-installed') && 'true' === submitButton.getAttribute('data-new-addon-installed')) { - submitButton.removeAttribute('data-new-addon-installed'); - window.location.reload(); - } - } - function saveAndReloadFormBuilder() { - var submitButton = document.getElementById('frm_submit_side_top'); - if (submitButton.classList.contains('frm_submit_ajax')) { - submitButton.setAttribute('data-new-addon-installed', true); - } - submitButton.click(); - } - function confirmExit(event) { - if (fieldsUpdated) { - event.preventDefault(); - event.returnValue = ''; - } - } - function bindClickForDialogClose($modal) { - var closeModal = function closeModal() { - $modal.dialog('close'); - }; - jQuery('.ui-widget-overlay').on('click', closeModal); - $modal.on('click', 'a.dismiss', closeModal); - } - function offsetModalY($modal, amount) { - var position = { - my: 'top', - at: 'top+' + amount, - of: window - }; - $modal.dialog('option', 'position', position); - } - - /** - * Get the input box for the selected icon or calculation field. - * - * @param {Element} moreIcon The icon element - * @return {Element} The associated input or textarea - */ - function getInputForIcon(moreIcon) { - if (moreIcon.classList.contains('frm-input-icon')) { - return moreIcon.previousElementSibling; - } - - // For regular fields - var input = moreIcon.nextElementSibling; - while (input !== null && (input.tagName !== 'INPUT' && input.tagName !== 'TEXTAREA' || input.classList.contains('frm-token-input-field'))) { - input = getInputForIcon(input); - } - - // For calculation fields - if (!input) { - var _moreIcon$closest; - input = (_moreIcon$closest = moreIcon.closest('.frm-field-formula')) === null || _moreIcon$closest === void 0 ? void 0 : _moreIcon$closest.querySelector('.frm-calc-field'); - } - return input; - } - - /** - * Get the ... icon for the selected input box. - */ - function getIconForInput(input) { - var _input$nextElementSib; - if ((_input$nextElementSib = input.nextElementSibling) !== null && _input$nextElementSib !== void 0 && _input$nextElementSib.classList.contains('frm-input-icon')) { - return input.nextElementSibling; - } - var moreIcon = input.previousElementSibling; - while (moreIcon !== null && moreIcon.tagName !== 'I' && moreIcon.tagName !== 'svg') { - moreIcon = getIconForInput(moreIcon); - } - return moreIcon; - } - function hideShortcodes(box) { - var i, u, closeIcons, closeSvg; - if (typeof box === 'undefined') { - box = document.getElementById('frm_adv_info'); - if (box === null) { - return; - } - } - if (document.getElementById('frm_dyncontent') !== null) { - // Don't run when in the sidebar. - return; - } - box.style.display = 'none'; - closeIcons = document.querySelectorAll('.frm-show-box.frm_close_icon'); - for (i = 0; i < closeIcons.length; i++) { - closeIcons[i].classList.remove('frm_close_icon'); - closeIcons[i].classList.add('frm_more_horiz_solid_icon'); - } - closeSvg = document.querySelectorAll('.frm_has_shortcodes use'); - for (u = 0; u < closeSvg.length; u++) { - if (closeSvg[u].getAttributeNS('http://www.w3.org/1999/xlink', 'href') === '#frm_close_icon') { - if (closeSvg[u].closest('.frm_remove_field')) { - // Don't change the icon for the email fields remove button. - continue; - } - closeSvg[u].setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_more_horiz_solid_icon'); - } - } - } - function toggleAllowedHTML(input) { - var b, - id = input.id; - if (typeof id === 'undefined' || id.indexOf('-search-input') !== -1) { - return; - } - jQuery('#frm-adv-info-tab').attr('data-fills', id.trim()); - if (input.classList.contains('field_custom_html')) { - id = 'field_custom_html'; - } - b = ['after_html', 'before_html', 'submit_html', 'field_custom_html']; - if (jQuery.inArray(id, b) >= 0) { - jQuery('.frm_code_list li:not(.show_' + id + ')').addClass('frm_hidden'); - jQuery('.frm_code_list li.show_' + id).removeClass('frm_hidden'); - } - } - function toggleKeyID(switchTo, e) { - e.stopPropagation(); - jQuery('.frm_code_list .frmids, .frm_code_list .frmkeys').addClass('frm_hidden'); - jQuery('.frm_code_list .' + switchTo).removeClass('frm_hidden'); - jQuery('.frmids, .frmkeys').removeClass('current'); - jQuery('.' + switchTo).addClass('current'); - } - function onActionLoaded(event) { - var settings = event.target.closest('.frm_form_action_settings'); - if (settings && (settings.classList.contains('frm_single_email_settings') || settings.classList.contains('frm_single_on_submit_settings'))) { - initWysiwygOnActionLoaded(settings); - } - } - function initWysiwygOnActionLoaded(settings) { - settings.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { - frmDom.wysiwyg.init(wysiwyg, { - height: 160, - addFocusEvents: true - }); - }); - } - - /* Global settings page */ - function loadSettingsTab(anchor) { - var holder = anchor.replace('#', ''); - var holderContainer = jQuery('.frm_' + holder + '_ajax'); - if (holderContainer.length) { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_settings_tab', - tab: holder.replace('_settings', ''), - nonce: frmGlobal.nonce - }, - success: function success(html) { - holderContainer.replaceWith(html); - } - }); - } - } - function uninstallNow() { - /*jshint validthis:true */ - if (confirmLinkClick(this) === true) { - jQuery('.frm_uninstall .frm-wait').css('visibility', 'visible'); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: 'action=frm_uninstall&nonce=' + frmGlobal.nonce, - success: function success(msg) { - jQuery('.frm_uninstall').fadeOut('slow'); - window.location = msg; - } - }); - } - return false; - } - function saveAddonLicense() { - /*jshint validthis:true */ - var button = jQuery(this); - var buttonName = this.name; - var pluginSlug = this.getAttribute('data-plugin'); - var action = buttonName.replace('edd_' + pluginSlug + '_license_', ''); - var license = document.getElementById('edd_' + pluginSlug + '_license_key').value; - button.get(0).disabled = true; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'frm_addon_' + action, - license: license, - plugin: pluginSlug, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - button.get(0).disabled = false; - var thisRow = button.closest('.edd_frm_license_row'); - if (action === 'deactivate') { - license = ''; - document.getElementById('edd_' + pluginSlug + '_license_key').value = ''; - } - thisRow.find('.edd_frm_license').html(license); - var eddWrapper = button.get(0).closest('.frm_form_field'); - var actionIsSuccess = msg.success === true; - eddWrapper.querySelector(".frm_icon_font.frm_action_success").classList.toggle('frm_hidden', !actionIsSuccess || action === 'deactivate'); - eddWrapper.querySelector(".frm_icon_font.frm_action_error").classList.toggle('frm_hidden', actionIsSuccess); - var messageBox = thisRow.find('.frm_license_msg'); - messageBox.html(msg.message); - if (msg.message !== '') { - setTimeout(function () { - messageBox.html(''); - thisRow.find('.frm_icon_font').addClass('frm_hidden'); - if (actionIsSuccess) { - var actionIsActivate = action === 'activate'; - thisRow.get(0).querySelector('.edd_frm_unauthorized').classList.toggle('frm_hidden', actionIsActivate); - thisRow.get(0).querySelector('.edd_frm_authorized').classList.toggle('frm_hidden', !actionIsActivate); - } - }, 2000); - } - } - }); - } - - /* Import/Export page */ - - function startFormMigration(event) { - event.preventDefault(); - var checkedBoxes = jQuery(event.target).find('input:checked'); - if (!checkedBoxes.length) { - return; - } - var ids = []; - checkedBoxes.each(function (i) { - ids[i] = this.value; - }); - - // Begin the import process. - importForms(ids, event.target); - } - - /** - * Begins the process of importing the forms. - */ - function importForms(forms, targetForm) { - // Hide the form select section. - var $form = jQuery(targetForm), - $processSettings = $form.next('.frm-importer-process'); - - // Display total number of forms we have to import. - $processSettings.find('.form-total').text(forms.length); - $processSettings.find('.form-current').text('1'); - $form.hide(); - - // Show processing status. - // '.process-completed' might have been shown earlier during a previous import, so hide now. - $processSettings.find('.process-completed').hide(); - $processSettings.show(); - - // Create global import queue. - s.importQueue = forms; - s.imported = 0; - - // Import the first form in the queue. - importForm($processSettings); - } - - /** - * Imports a single form from the import queue. - */ - function importForm($processSettings) { - var formID = s.importQueue[0], - provider = jQuery('#welcome-panel').find('input[name="slug"]').val(), - data = { - action: 'frm_import_' + provider, - form_id: formID, - nonce: frmGlobal.nonce - }; - - // Trigger AJAX import for this form. - jQuery.post(ajaxurl, data, function (res) { - if (res.success) { - var statusUpdate; - if (res.data.error) { - statusUpdate = '

                ' + res.data.name + ': ' + res.data.msg + '

                '; - } else { - statusUpdate = '

                Imported ' + res.data.name + '

                '; - } - $processSettings.find('.status').prepend(statusUpdate); - $processSettings.find('.status').show(); - - // Remove this form ID from the queue. - s.importQueue = jQuery.grep(s.importQueue, function (value) { - return value != formID; - }); - s.imported++; - if (s.importQueue.length === 0) { - $processSettings.find('.process-count').hide(); - $processSettings.find('.forms-completed').text(s.imported); - $processSettings.find('.process-completed').show(); - } else { - // Import next form in the queue. - $processSettings.find('.form-current').text(s.imported + 1); - importForm($processSettings); - } - } - }); - } - function validateExport(e) { - /*jshint validthis:true */ - e.preventDefault(); - var s = false; - var $exportForms = jQuery('input[name="frm_export_forms[]"]'); - if (!jQuery('input[name="frm_export_forms[]"]:checked').val()) { - $exportForms.closest('.frm-table-box').addClass('frm_blank_field'); - s = 'stop'; - } - var $exportType = jQuery('input[name="type[]"]'); - if (!jQuery('input[name="type[]"]:checked').val() && $exportType.attr('type') === 'checkbox') { - $exportType.closest('p').addClass('frm_blank_field'); - s = 'stop'; - } - if (s === 'stop') { - return false; - } - e.stopPropagation(); - this.submit(); - } - function removeExportError() { - /*jshint validthis:true */ - var t = jQuery(this).closest('.frm_blank_field'); - if (typeof t === 'undefined') { - return; - } - var $thisName = this.name; - if ($thisName === 'type[]' && jQuery('input[name="type[]"]:checked').val()) { - t.removeClass('frm_blank_field'); - } else if ($thisName === 'frm_export_forms[]' && jQuery(this).val()) { - t.removeClass('frm_blank_field'); - } - } - function checkCSVExtension() { - /*jshint validthis:true */ - var f = jQuery(this).val(); - var re = /\.csv$/i; - if (f.match(re) !== null) { - jQuery('.show_csv').fadeIn(); - } else { - jQuery('.show_csv').fadeOut(); - } - } - function getExportOption() { - var exportFormatSelect = document.querySelector('select[name="format"]'); - if (exportFormatSelect) { - return exportFormatSelect.value; - } - return ''; - } - function exportTypeChanged(event) { - var value = event.target.value; - showOrHideRepeaters(value); - checkExportTypes.call(event.target); - checkSelectedAllFormsCheckbox(value); - } - function checkSelectedAllFormsCheckbox(exportType) { - var selectAllCheckbox = document.getElementById('frm-export-select-all'); - if (exportType === 'csv') { - selectAllCheckbox.checked = false; - selectAllCheckbox.disabled = true; - } else { - selectAllCheckbox.disabled = false; - } - } - function checkExportTypes() { - /*jshint validthis:true */ - var $dropdown = jQuery(this); - var $selected = $dropdown.find(':selected'); - var s = $selected.data('support'); - var multiple = s.indexOf('|'); - jQuery('input[name="type[]"]').each(function () { - this.checked = false; - if (s.indexOf(this.value) >= 0) { - this.disabled = false; - if (multiple === -1) { - this.checked = true; - } - } else { - this.disabled = true; - } - }); - if ($dropdown.val() === 'csv') { - jQuery('.csv_opts').show(); - jQuery('.xml_opts').hide(); - } else { - jQuery('.csv_opts').hide(); - jQuery('.xml_opts').show(); - } - var c = $selected.data('count'); - var exportField = jQuery('input[name="frm_export_forms[]"]'); - if (c === 'single') { - exportField.prop('multiple', false); - exportField.prop('checked', false); - } else { - exportField.prop('multiple', true); - exportField.prop('disabled', false); - } - $dropdown.trigger('change'); - } - function showOrHideRepeaters(exportOption) { - if (exportOption === '') { - return; - } - var repeaters = document.querySelectorAll('.frm-is-repeater'); - if (!repeaters.length) { - return; - } - if (exportOption === 'csv') { - repeaters.forEach(function (form) { - form.classList.remove('frm_hidden'); - }); - } else { - repeaters.forEach(function (form) { - form.classList.add('frm_hidden'); - }); - } - searchContent.call(document.querySelector('.frm-auto-search')); - } - function preventMultipleExport() { - var type = jQuery('select[name=format]'), - selected = type.find(':selected'), - count = selected.data('count'), - exportField = jQuery('input[name="frm_export_forms[]"]'); - if (count === 'single') { - // Disable all other fields to prevent multiple selections. - if (this.checked) { - exportField.prop('disabled', true); - this.removeAttribute('disabled'); - } else { - exportField.prop('disabled', false); - } - } else { - exportField.prop('disabled', false); - } - } - function initiateMultiselect() { - jQuery('.frm_multiselect').hide().each(frmDom.bootstrap.multiselect.init); - } - - /* Addons page */ - function installMultipleAddons(e) { - e.preventDefault(); - toggleAddonState(this, 'frm_multiple_addons'); - } - function activateAddon(e) { - e.preventDefault(); - toggleAddonState(this, 'frm_activate_addon'); - } - function installAddon(e) { - e.preventDefault(); - toggleAddonState(this, 'frm_install_addon'); - } - function toggleAddonState(clicked, action) { - var button, plugin, el, message; - - // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated. - jQuery('.frm-addon-error').remove(); - button = jQuery(clicked); - plugin = button.attr('rel'); - el = button.parent(); - message = el.parent().find('.addon-status-label'); - button.addClass('frm_loading_button'); - - // Process the Ajax to perform the activation. - jQuery.ajax({ - url: ajaxurl, - type: 'POST', - async: true, - cache: false, - dataType: 'json', - data: { - action: action, - nonce: frmGlobal.nonce, - plugin: plugin - }, - success: function success(response) { - var _response$data, _response; - response = (_response$data = (_response = response) === null || _response === void 0 ? void 0 : _response.data) !== null && _response$data !== void 0 ? _response$data : response; - var saveAndReload; - if ('string' !== typeof response && 'string' === typeof response.message) { - if ('undefined' !== typeof response.saveAndReload) { - saveAndReload = response.saveAndReload; - } - response = response.message; - } - var error = extractErrorFromAddOnResponse(response); - if (error) { - addonError(error, el, button); - return; - } - afterAddonInstall(response, button, message, el, saveAndReload, action); - - /** - * Trigger an action after successfully toggling the addon state. - * - * @param {Object} response - */ - wp.hooks.doAction('frm_update_addon_state', response); - }, - error: function error() { - button.removeClass('frm_loading_button'); - } - }); - } - function installAddonWithCreds(e) { - // Prevent the default action, let the user know we are attempting to install again and go with it. - e.preventDefault(); - - // Now let's make another Ajax request once the user has submitted their credentials. - var proceed = jQuery(this); - var el = proceed.parent().parent(); - var plugin = proceed.attr('rel'); - proceed.addClass('frm_loading_button'); - jQuery.ajax({ - url: ajaxurl, - type: 'POST', - async: true, - cache: false, - dataType: 'json', - data: { - action: 'frm_install_addon', - nonce: frmAdminJs.nonce, - plugin: plugin, - hostname: el.find('#hostname').val(), - username: el.find('#username').val(), - password: el.find('#password').val() - }, - success: function success(response) { - var _response$data2, _response2; - response = (_response$data2 = (_response2 = response) === null || _response2 === void 0 ? void 0 : _response2.data) !== null && _response$data2 !== void 0 ? _response$data2 : response; - var error = extractErrorFromAddOnResponse(response); - if (error) { - addonError(error, el, proceed); - return; - } - afterAddonInstall(response, proceed, message, el); - }, - error: function error() { - proceed.removeClass('frm_loading_button'); - } - }); - } - function afterAddonInstall(response, button, message, el, saveAndReload) { - var action = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'frm_activate_addon'; - var addonStatuses = document.querySelectorAll('.frm-addon-status'); - addonStatuses.forEach(function (addonStatus) { - addonStatus.textContent = response; - addonStatus.style.display = 'block'; - }); - - // The Ajax request was successful, so let's update the output. - button.css({ - opacity: '0' - }); - document.querySelectorAll('.frm-oneclick').forEach(function (oneClick) { - oneClick.style.display = 'none'; - }); - jQuery('#frm_upgrade_modal h2').hide(); - jQuery('#frm_upgrade_modal .frm_lock_icon').addClass('frm_lock_open_icon'); - jQuery('#frm_upgrade_modal .frm_lock_icon use').attr('xlink:href', '#frm_lock_open_icon'); - - // Proceed with CSS changes - var actionMap = { - frm_activate_addon: { - class: 'frm-addon-active', - message: frmAdminJs.active - }, - frm_deactivate_addon: { - class: 'frm-addon-installed', - message: frmAdminJs.installed - }, - frm_uninstall_addon: { - class: 'frm-addon-not-installed', - message: frmAdminJs.not_installed - } - }; - actionMap.frm_install_addon = actionMap.frm_activate_addon; - var messageElement = message[0]; - if (messageElement) { - messageElement.textContent = actionMap[action].message; - } - var parentElement = el[0].parentElement; - parentElement.classList.remove('frm-addon-not-installed', 'frm-addon-installed', 'frm-addon-active'); - parentElement.classList.add(actionMap[action].class); - var buttonElement = button[0]; - buttonElement.classList.remove('frm_loading_button'); - - // Maybe refresh import and SMTP pages - var refreshPage = document.querySelectorAll('.frm-admin-page-import, #frm-admin-smtp, #frm-welcome'); - if (refreshPage.length > 0) { - window.location.reload(); - return; - } - if (['settings', 'form_builder'].includes(saveAndReload)) { - addonStatuses.forEach(function (addonStatus) { - var inModal = null !== addonStatus.closest('#frm_upgrade_modal'); - addonStatus.appendChild(getSaveAndReloadSettingsOptions(saveAndReload, inModal)); - }); - } - } - function getSaveAndReloadSettingsOptions(saveAndReload, inModal) { - var className = 'frm-save-and-reload-options'; - var children = [saveAndReloadSettingsButton(saveAndReload)]; - if (inModal) { - children.push(closePopupButton()); - } - return div({ - className: className, - children: children - }); - } - function saveAndReloadSettingsButton(saveAndReload) { - var button = document.createElement('button'); - button.classList.add('frm-save-and-reload', 'button', 'button-primary', 'frm-button-primary'); - button.textContent = __('Save and Reload', 'formidable'); - button.addEventListener('click', function () { - if (saveAndReload === 'form_builder') { - saveAndReloadFormBuilder(); - } else if (saveAndReload === 'settings') { - saveAndReloadSettings(); - } - }); - return button; - } - function closePopupButton() { - var a = document.createElement('a'); - a.setAttribute('href', '#'); - a.classList.add('button', 'button-secondary', 'frm-button-secondary', 'dismiss'); - a.textContent = __('Close', 'formidable'); - return a; - } - function extractErrorFromAddOnResponse(response) { - if (typeof response !== 'string') { - if (typeof response.success !== 'undefined' && response.success) { - return false; - } - if (response.form) { - if (jQuery(response.form).is('#message')) { - return { - message: jQuery(response.form).find('p').html() - }; - } - } - return response; - } - return false; - } - function addonError(response, el, button) { - if (response.form) { - jQuery('.frm-inline-error').remove(); - button.closest('.frm-card').html(response.form).css({ - padding: 5 - }).find('#upgrade').attr('rel', button.attr('rel')).on('click', installAddonWithCreds); - } else { - el.append('

                ' + response.message + '

                '); - button.removeClass('frm_loading_button'); - jQuery('.frm-addon-error').delay(4000).fadeOut(); - } - } - - /* Templates */ - function showActiveCampaignForm() { - loadApiEmailForm(); - } - function handleApiFormError(inputId, errorId, type, message) { - var $error = jQuery(errorId); - $error.removeClass('frm_hidden').attr('frm-error', type); - if (typeof message !== 'undefined') { - $error.find('span[frm-error="' + type + '"]').text(message); - } - jQuery(inputId).one('keyup', function () { - $error.addClass('frm_hidden'); - }); - } - function handleEmailAddressError(type) { - handleApiFormError('#frm_leave_email', '#frm_leave_email_error', type); - } - function loadApiEmailForm() { - var formContainer = document.getElementById('frmapi-email-form'); - jQuery.ajax({ - dataType: 'json', - url: formContainer.getAttribute('data-url'), - success: function success(json) { - var form = json.renderedHtml; - form = form.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi, ''); - formContainer.innerHTML = form; - } - }); - } - function initAutocomplete(container) { - frmDom.autocomplete.initSelectionAutocomplete(container); - } - function nextInstallStep(thisStep) { - thisStep.classList.add('frm_grey'); - thisStep.nextElementSibling.classList.remove('frm_grey'); - } - function installTemplateFieldset(e) { - /*jshint validthis:true */ - var fieldset = this.parentNode.parentNode, - action = fieldset.elements.type.value, - button = this; - e.preventDefault(); - button.classList.add('frm_loading_button'); - installNewForm(fieldset, action, button); - } - function installTemplate(e) { - /*jshint validthis:true */ - var action = this.elements.type.value, - button = this.querySelector('button'); - e.preventDefault(); - button.classList.add('frm_loading_button'); - installNewForm(this, action, button); - } - function installNewForm(form, action, button) { - var formData = formToData(form); - var formName = formData.template_name; - var formDesc = formData.template_desc; - var link = form.elements.link.value; - var data = { - action: action, - xml: link, - name: formName, - desc: formDesc, - form: JSON.stringify(formData), - nonce: frmGlobal.nonce - }; - var hookName = 'frm_before_install_new_form'; - var filterArgs = { - formData: formData - }; - data = wp.hooks.applyFilters(hookName, data, filterArgs); - postAjax(data, function (response) { - if (typeof response.redirect !== 'undefined') { - var redirect = response.redirect; - if (typeof form.elements.redirect === 'undefined') { - window.location = redirect; - } else { - var href = document.getElementById('frm-redirect-link'); - if (typeof link !== 'undefined' && href !== null) { - // Show the next installation step. - href.setAttribute('href', redirect); - href.classList.remove('frm_grey', 'disabled'); - nextInstallStep(form.parentNode.parentNode); - button.classList.add('frm_grey', 'disabled'); - } - } - } else { - jQuery('.spinner').css('visibility', 'hidden'); - - // Show response.message - if ('string' === typeof response.message) { - showInstallFormErrorModal(response.message); - } - } - button.classList.remove('frm_loading_button'); - }); - } - function showInstallFormErrorModal(message) { - var modalContent = div(message); - modalContent.style.padding = '20px 40px'; - var modal = frmDom.modal.maybeCreateModal('frmInstallFormErrorModal', { - title: __('Unable to install template', 'formidable'), - content: modalContent - }); - modal.classList.add('frm_common_modal'); - } - function handleCaptchaTypeChange(e) { - var thresholdContainer = document.getElementById('frm_captcha_threshold_container'); - if (thresholdContainer) { - thresholdContainer.classList.toggle('frm_hidden', 'v3' !== e.target.value); - } - } - function trashTemplate(e) { - /*jshint validthis:true */ - var id = this.getAttribute('data-id'); - e.preventDefault(); - data = { - action: 'frm_forms_trash', - id: id, - nonce: frmGlobal.nonce - }; - postAjax(data, function () { - var card = document.getElementById('frm-template-custom-' + id); - fadeOut(card, function () { - card.parentNode.removeChild(card); - }); - }); - } - function searchContent() { - /*jshint validthis:true */ - var i, - regEx = false, - searchText = this.value.toLowerCase(), - toSearch = this.getAttribute('data-tosearch'), - items = document.getElementsByClassName(toSearch); - if (this.tagName === 'SELECT') { - searchText = selectedOptions(this); - searchText = searchText.join('|').toLowerCase(); - regEx = true; - } - if (toSearch === 'frm-action' && searchText !== '') { - var addons = document.getElementById('frm_email_addon_menu').classList; - addons.remove('frm-all-actions'); - addons.add('frm-limited-actions'); - } - for (i = 0; i < items.length; i++) { - var innerText = items[i].innerText.toLowerCase(); - var itemCanBeShown = !(getExportOption() === 'xml' && items[i].classList.contains('frm-is-repeater')); - if (searchText === '') { - if (itemCanBeShown && checkContextualShortcode(items[i])) { - items[i].classList.remove('frm_hidden'); - } - items[i].classList.remove('frm-search-result'); - } else if (regEx && new RegExp(searchText).test(innerText) || innerText.indexOf(searchText) >= 0 || textMatchesPlural(innerText, searchText)) { - if (itemCanBeShown && checkContextualShortcode(items[i])) { - items[i].classList.remove('frm_hidden'); - } - items[i].classList.add('frm-search-result'); - } else { - items[i].classList.add('frm_hidden'); - items[i].classList.remove('frm-search-result'); - } - } - - // Updates the visibility of category headings based on search results. - updateCatHeadingVisibility(); - jQuery(this).trigger('frmAfterSearch'); - } - - /** - * Allow a search for "signatures" to still match "signature" for example when searching fields. - * - * @since 6.15 - * - * @param {string} text The text in the element we are checking for a match. - * @param {string} searchText The text value that is being searched. - * @return {boolean} - */ - function textMatchesPlural(text, searchText) { - if (searchText === 's') { - // Don't match everything when just "s" is searched. - return false; - } - if (text[text.length - 1] === 's') { - // Do not match something with double s if the text already ends in s. - return false; - } - return (text + 's').indexOf(searchText) >= 0; - } - - /** - * Updates the visibility of category headings based on search results. - * If all associated fields are hidden (indicating no search matches), - * the heading is hidden. - * - * @since 6.4.1 - */ - function updateCatHeadingVisibility() { - var insertFieldsElement = document.querySelector('#frm-insert-fields'); - if (!insertFieldsElement) { - return; - } - var headingElements = insertFieldsElement.querySelectorAll(':scope > .frm-with-line'); - headingElements.forEach(function (heading) { - var fieldsListElement = heading.nextElementSibling; - if (!fieldsListElement) { - return; - } - var listItemElements = fieldsListElement.querySelectorAll(':scope > li.frmbutton'); - var allHidden = Array.from(listItemElements).every(function (li) { - return li.classList.contains('frm_hidden'); - }); - - // Add or remove class based on `allHidden` condition - heading.classList.toggle('frm_hidden', allHidden); - }); - } - function stopPropagation(e) { - e.stopPropagation(); - } - - /* Helpers */ - - function selectedOptions(select) { - var opt, - result = [], - options = select && select.options; - for (var _i13 = 0, iLen = options.length; _i13 < iLen; _i13++) { - opt = options[_i13]; - if (opt.selected) { - result.push(opt.value); - } - } - return result; - } - function triggerEvent(element, event) { - var evt = document.createEvent('HTMLEvents'); - evt.initEvent(event, false, true); - element.dispatchEvent(evt); - } - function postAjax(data, success) { - var response; - var xmlHttp = new XMLHttpRequest(); - var params = typeof data === 'string' ? data : Object.keys(data).map(function (k) { - return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]); - }).join('&'); - xmlHttp.open('post', ajaxurl, true); - xmlHttp.onreadystatechange = function () { - if (xmlHttp.readyState > 3 && xmlHttp.status == 200) { - response = xmlHttp.responseText; - try { - response = JSON.parse(response); - } catch (e) { - // The response may not be JSON, so just return it. - } - success(response); - } - }; - xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); - xmlHttp.send(params); - return xmlHttp; - } - function fadeOut(element, success) { - element.classList.add('frm-fade'); - setTimeout(success, 1000); - } - function invisible(classes) { - jQuery(classes).css('visibility', 'hidden'); - } - function visible(classes) { - jQuery(classes).css('visibility', 'visible'); - } - function initModal(id, width) { - var $info = jQuery(id); - if (!$info.length) { - return false; - } - if (typeof width === 'undefined') { - width = '550px'; - } - var dialogArgs = { - dialogClass: 'frm-dialog', - modal: true, - autoOpen: false, - closeOnEscape: true, - width: width, - resizable: false, - draggable: false, - open: function open() { - jQuery('.ui-dialog-titlebar').addClass('frm_hidden').removeClass('ui-helper-clearfix'); - jQuery('#wpwrap').addClass('frm_overlay'); - jQuery('.frm-dialog').removeClass('ui-widget ui-widget-content ui-corner-all'); - $info.removeClass('ui-dialog-content ui-widget-content'); - bindClickForDialogClose($info); - }, - close: function close() { - jQuery('#wpwrap').removeClass('frm_overlay'); - jQuery('.spinner').css('visibility', 'hidden'); - this.removeAttribute('data-option-type'); - var optionType = document.getElementById('bulk-option-type'); - if (optionType) { - optionType.value = ''; - } - } - }; - $info.dialog(dialogArgs); - return $info; - } - function toggle(cname, id) { - if (id === '#') { - var cont = document.getElementById(cname); - var hidden = cont.style.display; - if (hidden === 'none') { - cont.style.display = 'block'; - } else { - cont.style.display = 'none'; - } - } else { - var vis = cname.is(':visible'); - if (vis) { - cname.hide(); - } else { - cname.show(); - } - } - } - function removeWPUnload() { - window.onbeforeunload = null; - var w = jQuery(window); - w.off('beforeunload.widgets'); - w.off('beforeunload.edit-post'); - } - function addMultiselectLabelListener() { - var clickListener = function clickListener(e) { - if ('LABEL' !== e.target.nodeName) { - return; - } - var labelFor = e.target.getAttribute('for'); - if (!labelFor) { - return; - } - var input = document.getElementById(labelFor); - if (!input || !input.nextElementSibling) { - return; - } - var buttonToggle = input.nextElementSibling.querySelector('button.dropdown-toggle.multiselect'); - if (!buttonToggle) { - return; - } - var triggerMultiselectClick = function triggerMultiselectClick() { - return buttonToggle.click(); - }; - setTimeout(triggerMultiselectClick, 0); - }; - document.addEventListener('click', clickListener); - } - function maybeChangeEmbedFormMsg() { - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - var fieldItem = document.getElementById('frm_field_id_' + fieldId); - if (null === fieldItem || 'form' !== fieldItem.dataset.type) { - return; - } - fieldItem = jQuery(fieldItem); - if (this.options[this.selectedIndex].value) { - fieldItem.find('.frm-not-set')[0].classList.add('frm_hidden'); - var embedMsg = fieldItem.find('.frm-embed-message'); - embedMsg.html(embedMsg.data('embedmsg') + this.options[this.selectedIndex].text); - fieldItem.find('.frm-embed-field-placeholder')[0].classList.remove('frm_hidden'); - } else { - fieldItem.find('.frm-not-set')[0].classList.remove('frm_hidden'); - fieldItem.find('.frm-embed-field-placeholder')[0].classList.add('frm_hidden'); - } - } - function toggleProductType() { - var settings = jQuery(this).closest('.frm-single-settings'), - container = settings.find('.frmjs_product_choices'), - heading = settings.find('.frm_prod_options_heading'), - currentVal = this.options[this.selectedIndex].value; - container.removeClass('frm_prod_type_single frm_prod_type_user_def'); - heading.removeClass('frm_prod_user_def'); - if ('single' === currentVal) { - container.addClass('frm_prod_type_single'); - } else if ('user_def' === currentVal) { - container.addClass('frm_prod_type_user_def'); - heading.addClass('frm_prod_user_def'); - } - } - - /** - * @param {Number | string} fieldId - * @return {boolean} True if the field is a product field. - */ - function isProductField(fieldId) { - var field = document.getElementById('frm_field_id_' + fieldId); - if (field === null) { - return false; - } - return 'product' === field.getAttribute('data-type'); - } - - /** - * Serialize form data with vanilla JS. - */ - function formToData(form) { - var subKey, - i, - object = {}, - formData = form.elements; - for (i = 0; i < formData.length; i++) { - var input = formData[i], - key = input.name, - value = input.value, - names = key.match(/(.*)\[(.*)\]/); - if ((input.type === 'radio' || input.type === 'checkbox') && !input.checked) { - continue; - } - if (names !== null) { - key = names[1]; - subKey = names[2]; - if (!Reflect.has(object, key)) { - object[key] = {}; - } - object[key][subKey] = value; - continue; - } - - // Reflect.has in favor of: object.hasOwnProperty(key) - if (!Reflect.has(object, key)) { - object[key] = value; - continue; - } - if (!Array.isArray(object[key])) { - object[key] = [object[key]]; - } - object[key].push(value); - } - return object; - } - - /** - * Show, hide, and sort subfields of Name field on form builder. - * - * @since 4.11 - */ - function handleNameFieldOnFormBuilder() { - /** - * Gets subfield element from cache. - * - * @param {string} fieldId Field ID. - * @param {string} key Cache key. - * @return {HTMLElement|undefined} Return the element from cache or undefined if not found. - */ - var getSubFieldElFromCache = function getSubFieldElFromCache(fieldId, key) { - window.frmCachedSubFields = window.frmCachedSubFields || {}; - window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; - return window.frmCachedSubFields[fieldId][key]; - }; - - /** - * Sets subfield element to cache. - * - * @param {string} fieldId Field ID. - * @param {string} key Cache key. - * @param {HTMLElement} el Element. - */ - var setSubFieldElToCache = function setSubFieldElToCache(fieldId, key, el) { - window.frmCachedSubFields = window.frmCachedSubFields || {}; - window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; - window.frmCachedSubFields[fieldId][key] = el; - }; - - /** - * Gets column class from the number of columns. - * - * @param {Number} colCount Number of columns. - * @return {string} - */ - var getColClass = function getColClass(colCount) { - return 'frm' + parseInt(12 / colCount); - }; - var colClasses = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(function (num) { - return 'frm' + num; - }); - var allSubFieldNames = ['first', 'middle', 'last']; - - /** - * Handles name layout change. - * - * @param {Event} event Event object. - */ - var onChangeLayout = function onChangeLayout(event) { - var value = event.target.value; - var subFieldNames = value.split('_'); - var fieldId = event.target.dataset.fieldId; - - /* - * Live update form on the form builder. - */ - var container = document.querySelector('#field_' + fieldId + '_inner_container .frm_combo_inputs_container'); - var newColClass = getColClass(subFieldNames.length); - - // Set all sub field elements to cache and hide all of them first. - allSubFieldNames.forEach(function (name) { - var subFieldEl = container.querySelector('[data-sub-field-name="' + name + '"]'); - if (subFieldEl) { - var _subFieldEl$classList; - subFieldEl.classList.add('frm_hidden'); - (_subFieldEl$classList = subFieldEl.classList).remove.apply(_subFieldEl$classList, _toConsumableArray(colClasses)); - setSubFieldElToCache(fieldId, name, subFieldEl); - } - }); - subFieldNames.forEach(function (subFieldName) { - var subFieldEl = getSubFieldElFromCache(fieldId, subFieldName); - if (!subFieldEl) { - return; - } - subFieldEl.classList.remove('frm_hidden'); - subFieldEl.classList.add(newColClass); - container.append(subFieldEl); - }); - - /* - * Live update subfield options. - */ - // Hide all subfield options. - allSubFieldNames.forEach(function (name) { - var optionsEl = document.querySelector('.frm_sub_field_options-' + name + '[data-field-id="' + fieldId + '"]'); - if (optionsEl) { - optionsEl.classList.add('frm_hidden'); - setSubFieldElToCache(fieldId, name + '_options', optionsEl); - } - }); - subFieldNames.forEach(function (subFieldName) { - var optionsEl = getSubFieldElFromCache(fieldId, subFieldName + '_options'); - if (!optionsEl) { - return; - } - optionsEl.classList.remove('frm_hidden'); - }); - }; - var dropdownSelector = '.frm_name_layout_dropdown'; - document.addEventListener('change', function (event) { - if (event.target.matches(dropdownSelector)) { - onChangeLayout(event); - } - }, false); - } - function debounce(func) { - var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100; - return frmDom.util.debounce(func, wait); - } - function addSaveAndDragIconsToOption(fieldId, liObject) { - var li, useTag, useTagHref; - var hasDragIcon = false; - var hasSaveIcon = false; - if (liObject.newOption) { - var parser = new DOMParser(); - li = parser.parseFromString(liObject.newOption, 'text/html').body.childNodes[0]; - } else { - li = liObject; - } - var liIcons = li.querySelectorAll('svg'); - liIcons.forEach(function (svg, key) { - useTag = svg.getElementsByTagNameNS('http://www.w3.org/2000/svg', 'use')[0]; - if (!useTag) { - return; - } - useTagHref = useTag.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || useTag.getAttribute('href'); - if (useTagHref === '#frm_drag_icon') { - hasDragIcon = true; - } - if (useTagHref === '#frm_save_icon') { - hasSaveIcon = true; - } - }); - if (!hasDragIcon) { - li.prepend(icons.drag.cloneNode(true)); - } - if (li.querySelector("[id^=field_key_".concat(fieldId, "-]")) && !hasSaveIcon) { - li.querySelector("[id^=field_key_".concat(fieldId, "-]")).after(icons.save.cloneNode(true)); - } - if (liObject.newOption) { - liObject.newOption = li; - } - } - function maybeAddSaveAndDragIcons(fieldId) { - var fieldOptions = document.querySelectorAll("[id^=frm_delete_field_".concat(fieldId, "-]")); - // return if there are no options. - if (fieldOptions.length < 2) { - return; - } - var options = _toConsumableArray(fieldOptions).slice(1); - options.forEach(function (li, _key) { - if (li.classList.contains('frm_other_option')) { - return; - } - addSaveAndDragIconsToOption(fieldId, li); - }); - } - - /** - * Enforce the maximum number of entries list columns dynamically. - * - * @since 6.24 - * - * @return {void} - */ - function maybeInitEntriesListPage() { - if (!document.body.classList.contains('frm-admin-page-entries')) { - return; - } - var screenOptionsWrapper = document.getElementById('screen-options-wrap'); - if (!screenOptionsWrapper) { - return; - } - var maxSelectionsNote = div({ - className: 'frm_warning_style', - text: __('Only 10 columns can be selected at a time.', 'formidable') - }); - maxSelectionsNote.style.margin = 0; - var legend = screenOptionsWrapper.querySelector('legend'); - legend.parentNode.insertBefore(maxSelectionsNote, legend.nextElementSibling); - var checkboxes = Array.from(screenOptionsWrapper.querySelectorAll('input[type="checkbox"]')); - var maximumColumns = 10; - var getSelectedCount = function getSelectedCount() { - return checkboxes.reduce(function (count, checkbox) { - return checkbox.checked ? count + 1 : count; - }, 0); - }; - var disableCheckboxesIfAtMax = function disableCheckboxesIfAtMax() { - if (getSelectedCount() >= maximumColumns) { - maxSelectionsNote.classList.remove('frm_hidden'); - checkboxes.forEach(function (checkbox) { - if (!checkbox.checked) { - checkbox.parentNode.classList.add('frm_noallow'); - checkbox.disabled = true; - } - }); - } else { - maxSelectionsNote.classList.add('frm_hidden'); - } - }; - var addCheckboxListeners = function addCheckboxListeners() { - checkboxes.forEach(function (checkbox) { - checkbox.addEventListener('change', function (event) { - if (event.target.checked) { - disableCheckboxesIfAtMax(); - } else { - maxSelectionsNote.classList.add('frm_hidden'); - - // Enable all checkboxes when a checkbox is unchecked. - checkboxes.forEach(function (checkbox) { - checkbox.parentNode.classList.remove('frm_noallow'); - checkbox.disabled = false; - }); - } - }); - }); - }; - disableCheckboxesIfAtMax(); - addCheckboxListeners(); - } - function initOnSubmitAction() { - var onChangeType = function onChangeType(event) { - if (!event.target.checked) { - return; - } - var actionEl = event.target.closest('.frm_form_action_settings'); - actionEl.querySelectorAll('.frm_on_submit_dependent_setting:not(.frm_hidden)').forEach(function (el) { - el.classList.add('frm_hidden'); - }); - var activeEls = actionEl.querySelectorAll('.frm_on_submit_dependent_setting[data-show-if-' + event.target.value + ']'); - activeEls.forEach(function (activeEl) { - activeEl.classList.remove('frm_hidden'); - }); - actionEl.setAttribute('data-on-submit-type', event.target.value); - }; - frmDom.util.documentOn('change', '.frm_on_submit_type input[type="radio"]', onChangeType); - } - - /** - * Listen for click events for an API-loaded email collection form. - * - * This is used for the Active Campaign sign-up form in the inbox page (when there are no messages). - */ - function initAddMyEmailAddress() { - jQuery(document).on('click', '#frm-add-my-email-address', function (event) { - event.preventDefault(); - addMyEmailAddress(); - }); - var emptyInbox = document.getElementById('frm_empty_inbox'); - var leaveEmailInput = document.getElementById('frm_leave_email'); - if (emptyInbox && leaveEmailInput) { - var leaveEmailModal = document.getElementById('frm-leave-email-modal'); - leaveEmailModal.classList.remove('frm_hidden'); - leaveEmailModal.querySelector('.frm_modal_footer').classList.add('frm_hidden'); - leaveEmailInput.addEventListener('keyup', function (event) { - if ('Enter' === event.key) { - var button = document.getElementById('frm-add-my-email-address'); - if (button) { - button.click(); - } - } - }); - } - } - function addMyEmailAddress() { - var email = document.getElementById('frm_leave_email').value.trim(); - if ('' === email) { - handleEmailAddressError('empty'); - return; - } - var regex = /^(([^<>()\[\]\\.,;:\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; - if (regex.test(email) === false) { - handleEmailAddressError('invalid'); - return; - } - var $hiddenForm = jQuery('#frmapi-email-form').find('form'); - var $hiddenEmailField = $hiddenForm.find('[type="email"]').not('.frm_verify'); - if (!$hiddenEmailField.length) { - return; - } - var emptyInbox = document.getElementById('frm_empty_inbox'); - if (emptyInbox) { - document.getElementById('frm-add-my-email-address').remove(); - var emailWrapper = document.getElementById('frm_leave_email_wrapper'); - if (emailWrapper) { - emailWrapper.classList.add('frm_hidden'); - var spinner = span({ - className: 'frm-wait frm_spinner' - }); - spinner.style.visibility = 'visible'; - spinner.style.float = 'none'; - spinner.style.width = 'unset'; - emailWrapper.parentElement.insertBefore(spinner, emailWrapper.nextElementSibling); - } - } - $hiddenEmailField.val(email); - jQuery.ajax({ - type: 'POST', - url: $hiddenForm.attr('action'), - data: $hiddenForm.serialize() + '&action=frm_forms_preview' - }).done(function (data) { - var message = jQuery(data).find('.frm_message').text().trim(); - if (message.indexOf('Thanks!') === -1) { - handleEmailAddressError('invalid'); - return; - } - var apiForm = document.getElementById('frmapi-email-form'); - var spinner = apiForm.parentElement.querySelector('.frm_spinner'); - if (spinner) { - spinner.remove(); - } - var showSuccessMessage = wp.hooks.applyFilters('frm_thank_you_on_signup', true); - if (showSuccessMessage) { - // Handle successful form submission. - // handle the Active Campaign form on the inbox page. - document.getElementById('frm_leave_email_wrapper').replaceWith(span(__('Thank you for signing up!', 'formidable'))); - } - }); - } - - /** - * Adds footer links to the admin body content. - * - * @return {void} - */ - function addAdminFooterLinks() { - var _document$querySelect7; - var footerLinks = document.querySelector('.frm-admin-footer-links'); - var container = (_document$querySelect7 = document.querySelector('.frm_page_container')) !== null && _document$querySelect7 !== void 0 ? _document$querySelect7 : document.getElementById('wpbody-content'); - if (!footerLinks || !container) { - return; - } - container.appendChild(footerLinks); - footerLinks.classList.remove('frm_hidden'); - } - - /** - * Apply zebra striping to a table while ignoring empty rows. - * - * @param {string} tableSelector The CSS selector for the table. - * @param {string} emptyRowClass The class name used to identify empty rows. - */ - function applyZebraStriping(tableSelector, emptyRowClass) { - // Get all non-empty table rows within the specified table - var rows = document.querySelectorAll("".concat(tableSelector, " tr").concat(emptyRowClass ? ":not(.".concat(emptyRowClass, ")") : '')); - if (rows.length < 1) { - return; - } - var isOdd = true; - rows.forEach(function (row) { - // Clean old "frm-odd" or "frm-even" classes and add the appropriate new class - row.classList.remove('frm-odd', 'frm-even'); - row.classList.add(isOdd ? 'frm-odd' : 'frm-even'); - isOdd = !isOdd; - }); - var tables = document.querySelectorAll(tableSelector); - tables.forEach(function (table) { - return table.classList.add('frm-zebra-striping'); - }); - } - function maybeHideShortcodes(e) { - if (!builderPage) { - e.stopPropagation(); - } - if (e.target.classList.contains('frm-show-box') || e.target.parentElement && e.target.parentElement.classList.contains('frm-show-box')) { - return; - } - var sidebar = document.getElementById('frm_adv_info'); - if (!sidebar) { - return; - } - if (sidebar.dataset.fills === e.target.id && typeof e.target.id !== 'undefined') { - return; - } - var isChild = e.target.closest('#frm_adv_info'); - if (!isChild && sidebar.style.display !== 'none') { - hideShortcodes(sidebar); - } - } - - /** - * Initializes and manages the visibility of dependent elements based on the selected options in dropdowns with the 'frm_select_with_dependency' class. - * It sets up initial visibility at page load and updates it on each dropdown change. - * - * @since 6.9 - * - * @return {void} - */ - function initSelectDependencies() { - var selects = document.querySelectorAll('select.frm_select_with_dependency'); - - /** - * Toggles the visibility of dependent elements associated with a select element based on its current selection. - * - * @since 6.9 - * - * @param {HTMLElement} select The select element whose dependencies need to be managed. - * @return {void} - */ - function toggleDependencyVisibility(select) { - var selectedOption = select.options[select.selectedIndex]; - select.querySelectorAll('option[data-dependency]:not([data-dependency-skip])').forEach(function (option) { - var dependencyElement = document.querySelector(option.dataset.dependency); - dependencyElement === null || dependencyElement === void 0 || dependencyElement.classList.toggle('frm_hidden', selectedOption !== option); - }); - } - - // Initial setup: Show dependencies based on the current selection in each dropdown - selects.forEach(toggleDependencyVisibility); - - // Update dependencies visibility on dropdown change - frmDom.util.documentOn('change', 'select.frm_select_with_dependency', function (event) { - return toggleDependencyVisibility(event.target); - }); - } - - /** - * Moves the focus to the next single option input field in the list and positions the cursor at the end of the text. - * - * @param {HTMLElement} currentInput The currently focused input element. - */ - function focusNextSingleOptionInput(currentInput) { - var optionsList = currentInput.closest('.frm_single_option').parentElement; - var inputs = optionsList.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'); - var inputsArray = Array.from(inputs); - - // Find the index of the currently focused input - var currentIndex = inputsArray.indexOf(currentInput); - if (currentIndex < 0) { - return; - } - - // Find the next visible input field - var nextInput = inputsArray.slice(currentIndex + 1).find(function (input) { - return input.offsetParent !== null; - }); - if (nextInput) { - nextInput.focus(); - - // Move the cursor to the end of the text in the next input field - var textLength = nextInput.value.length; - nextInput.setSelectionRange(textLength, textLength); - } - } - return { - init: function init() { - initAddMyEmailAddress(); - addAdminFooterLinks(); - s = {}; - - // Bootstrap dropdown button - jQuery('.wp-admin').on('click', function (e) { - var t = jQuery(e.target); - var $openDrop = jQuery('.dropdown.open'); - if ($openDrop.length && !t.hasClass('dropdown') && !t.closest('.dropdown').length) { - $openDrop.removeClass('open'); - } - }); - jQuery('#frm_bs_dropdown:not(.open) a').on('click', focusSearchBox); - if (typeof thisFormId === 'undefined') { - thisFormId = jQuery(document.getElementById('form_id')).val(); - } - - // Add event listener for dismissible warning messages. - document.querySelectorAll('.frm-warning-dismiss').forEach(function (dismissIcon) { - onClickPreventDefault(dismissIcon, dismissWarningMessage); - }); - frmAdminBuild.inboxBannerInit(); - if ($newFields.length > 0) { - // only load this on the form builder page - frmAdminBuild.buildInit(); - } else if (document.getElementById('frm_notification_settings') !== null) { - // only load on form settings page - frmAdminBuild.settingsInit(); - } else if (document.getElementById('frm_styling_form') !== null) { - // load styling settings js - frmAdminBuild.styleInit(); - } else if (document.getElementById('form_global_settings') !== null) { - // global settings page - frmAdminBuild.globalSettingsInit(); - } else if (document.getElementById('frm_export_xml') !== null) { - // import/export page - frmAdminBuild.exportInit(); - } else if (null !== document.querySelector('.frm-inbox-wrapper')) { - // Dashboard page inbox. - frmAdminBuild.inboxInit(); - } else if (document.getElementById('frm-welcome') !== null) { - // Solution install page - frmAdminBuild.solutionInit(); - } else { - maybeInitEntriesListPage(); - initAutocomplete(); - jQuery('[data-frmprint]').on('click', function () { - window.print(); - return false; - }); - } - jQuery(document).on('change', 'select[data-toggleclass], input[data-toggleclass]', toggleFormOpts); - initSelectDependencies(); - var $advInfo = jQuery(document.getElementById('frm_adv_info')); - if ($advInfo.length > 0 || jQuery('.frm_field_list').length > 0) { - // only load on the form, form settings, and view settings pages - frmAdminBuild.panelInit(); - } - loadTooltips(); - initUpgradeModal(); - frmDom.util.documentOn('click', '[data-modal-title]', showBasicModal); - - // used on build, form settings, and view settings - var $shortCodeDiv = jQuery(document.getElementById('frm_shortcodediv')); - if ($shortCodeDiv.length > 0) { - jQuery('a.edit-frm_shortcode').on('click', function () { - if ($shortCodeDiv.is(':hidden')) { - $shortCodeDiv.slideDown('fast'); - this.style.display = 'none'; - } - return false; - }); - jQuery('.cancel-frm_shortcode', '#frm_shortcodediv').on('click', function () { - $shortCodeDiv.slideUp('fast'); - $shortCodeDiv.siblings('a.edit-frm_shortcode').show(); - return false; - }); - } - - // tabs - jQuery(document).on('click', '#frm-nav-tabs a', clickNewTab); - jQuery('.post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a').on('click', function () { - var showUpgradeTab = this.classList.contains('frm_show_upgrade_tab'); - if (this.classList.contains('frm_noallow') && !showUpgradeTab) { - return; - } - if (showUpgradeTab) { - populateUpgradeTab(this); - } - clickTab(this); - return false; - }); - clickTab(jQuery('.starttab a'), 'auto'); - - // submit the search form with dropdown - jQuery(document).on('click', '#frm-fid-search-menu a', function () { - var val = this.id.replace('fid-', ''); - jQuery('select[name="fid"]').val(val); - triggerSubmit(document.getElementById('posts-filter')); - return false; - }); - jQuery('.frm_select_box').on('click focus', function () { - this.select(); - }); - jQuery(document).on('input search change', '.frm-auto-search:not(#frm-form-templates-page #template-search-input)', searchContent); - jQuery(document).on('focusin click', '.frm-auto-search', stopPropagation); - var autoSearch = jQuery('.frm-auto-search'); - if (autoSearch.val() !== '') { - autoSearch.trigger('keyup'); - } - - // Initialize Formidable Connection. - FrmFormsConnect.init(); - jQuery(document).on('click', '.frm-install-addon', installAddon); - jQuery(document).on('click', '.frm-activate-addon', activateAddon); - jQuery(document).on('click', '.frm-solution-multiple', installMultipleAddons); - - // prevent annoying confirmation message from WordPress - jQuery('button, input[type=submit]').on('click', removeWPUnload); - addMultiselectLabelListener(); - frmAdminBuild.hooks.addFilter('frm_before_embed_modal', function (ids, _ref4) { - var element = _ref4.element, - type = _ref4.type; - if ('form' !== type) { - return ids; - } - var formId, formKey; - var row = element.closest('tr'); - if (row) { - // Embed icon on form index. - formId = parseInt(row.querySelector('.column-id').textContent); - formKey = row.querySelector('.column-form_key').textContent; - } else { - // Embed button in form builder / form settings. - formId = document.getElementById('form_id').value; - var formKeyInput = document.getElementById('frm_form_key'); - if (formKeyInput) { - formKey = formKeyInput.value; - } else { - var previewDrop = document.getElementById('frm-previewDrop'); - if (previewDrop) { - formKey = previewDrop.nextElementSibling.querySelector('.dropdown-item a').getAttribute('href').split('form=')[1]; - } - } - } - return [formId, formKey]; - }); - document.querySelectorAll('#frm-show-fields > li, .frm_grid_container li').forEach(function (el, _key) { - el.addEventListener('click', function () { - var _this$querySelector; - var fieldId = ((_this$querySelector = this.querySelector('li')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.dataset.fid) || this.dataset.fid; - maybeAddSaveAndDragIcons(fieldId); - }); - }); - var smallScreenProceedButton = document.getElementById('frm_small_screen_proceed_button'); - if (smallScreenProceedButton) { - onClickPreventDefault(smallScreenProceedButton, function () { - var _document$getElementB5; - (_document$getElementB5 = document.getElementById('frm_small_device_message_container')) === null || _document$getElementB5 === void 0 || _document$getElementB5.remove(); - doJsonPost('small_screen_proceed', new FormData()); - }); - } - var saleBanner = document.getElementById('frm_sale_banner'); - var saleDismiss = saleBanner === null || saleBanner === void 0 ? void 0 : saleBanner.querySelector('.dismiss'); - if (saleBanner) { - onClickPreventDefault(saleBanner, function (event) { - var target = event.target; - if (target.closest('.dismiss')) { - return; - } - window.location.href = saleBanner.getAttribute('data-url'); - }); - if (saleDismiss) { - onClickPreventDefault(saleDismiss, function () { - saleBanner.remove(); - var formData = new FormData(); - doJsonPost('sale_banner_dismiss', formData); - }); - } - } - }, - buildInit: function buildInit() { - jQuery('#frm_builder_page').on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); - var loadFieldId, $builderForm, builderArea; - debouncedSyncAfterDragAndDrop = debounce(syncAfterDragAndDrop, 10); - postBodyContent = document.getElementById('post-body-content'); - $postBodyContent = jQuery(postBodyContent); - if (jQuery('.frm_field_loading').length) { - loadFieldId = jQuery('.frm_field_loading').first().attr('id'); - loadFields(loadFieldId); - } - setupSortable('ul.frm_sorting'); - document.querySelectorAll('.field_type_list > li:not(.frm_show_upgrade)').forEach(makeDraggable); - jQuery('ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a').disableSelection(); - jQuery('.frm_submit_ajax').on('click', submitBuild); - jQuery('.frm_submit_no_ajax').on('click', submitNoAjax); - addFormNameModalEvents(); - jQuery('a.edit-form-status').on('click', slideDown); - jQuery('.cancel-form-status').on('click', slideUp); - jQuery('.save-form-status').on('click', function () { - var newStatus = jQuery(document.getElementById('form_change_status')).val(); - jQuery('input[name="new_status"]').val(newStatus); - jQuery(document.getElementById('form-status-display')).html(newStatus); - jQuery('.cancel-form-status').trigger('click'); - return false; - }); - jQuery('.frm_form_builder form').first().on('submit', function () { - jQuery('.inplace_field').trigger('blur'); - }); - initiateMultiselect(); - renumberPageBreaks(); - $builderForm = jQuery(builderForm); - builderArea = document.getElementById('frm_form_editor_container'); - $builderForm.on('click', '.frm_add_logic_row', addFieldLogicRow); - $builderForm.on('click', '.frm_add_watch_lookup_row', addWatchLookupRow); - $builderForm.on('change', '.frm_get_values_form', updateGetValueFieldSelection); - $builderForm.on('change', '.frm_logic_field_opts', getFieldValues); - $builderForm.on('frm-multiselect-changed', 'select[name^="field_options[admin_only_"]', adjustVisibilityValuesForEveryoneValues); - jQuery(document.getElementById('frm-insert-fields')).on('click', '.frm_add_field', addFieldClick); - $newFields.on('click', '.frm_clone_field', duplicateField); - $builderForm.on('blur', 'input[id^="frm_calc"]', checkCalculationCreatedByUser); - $builderForm.on('change', 'input.frm_format_opt, input.frm_max_length_opt', toggleInvalidMsg); - $builderForm.on('change click', '[data-changeme]', liveChanges); - $builderForm.on('click', 'input.frm_req_field', markRequired); - $builderForm.on('click', '.frm_mark_unique', markUnique); - $builderForm.on('change', '.frm_repeat_format', toggleRepeatButtons); - $builderForm.on('change', '.frm_repeat_limit', checkRepeatLimit); - $builderForm.on('change', '.frm_js_checkbox_limit', checkCheckboxSelectionsLimit); - $builderForm.on('input', 'input[name^="field_options[add_label_"]', function () { - updateRepeatText(this, 'add'); - }); - $builderForm.on('input', 'input[name^="field_options[remove_label_"]', function () { - updateRepeatText(this, 'remove'); - }); - $builderForm.on('change', 'select[name^="field_options[data_type_"]', maybeClearWatchFields); - jQuery(builderArea).on('click', '.frm-collapse-page', maybeCollapsePage); - jQuery(builderArea).on('click', '.frm-collapse-section', maybeCollapseSection); - $builderForm.on('click', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', maybeCollapseSettings); - $builderForm.on('keydown', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', function (event) { - // If so, only proceed if the key pressed was 'Enter' or 'Space' - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - maybeCollapseSettings.call(this, event); - } - }); - jQuery(builderArea).on('show.bs.dropdown hide.bs.dropdown', changeSectionStyle); - $builderForm.on('click', '.frm_toggle_sep_values', toggleSepValues); - $builderForm.on('click', '.frm_toggle_image_options', toggleImageOptions); - $builderForm.on('click', '.frm_remove_image_option', removeImageFromOption); - $builderForm.on('click', '.frm_choose_image_box', addImageToOption); - $builderForm.on('change', '.frm_hide_image_text', refreshOptionDisplay); - $builderForm.on('change', '.frm_field_options_image_size', setImageSize); - $builderForm.on('click', '.frm_multiselect_opt', toggleMultiselect); - $newFields.on('mousedown', 'input, textarea, select', stopFieldFocus); - $newFields.on('click', 'input[type=radio], input[type=checkbox]', stopFieldFocus); - $newFields.on('click', '.frm_delete_field', clickDeleteField); - $newFields.on('click', '.frm_select_field', clickSelectField); - jQuery(document).on('click', '.frm_delete_field_group', clickDeleteFieldGroup); - jQuery(document).on('click', '.frm_clone_field_group', duplicateFieldGroup); - jQuery(document).on('click', '#frm_field_group_controls > span:first-child', clickFieldGroupLayout); - jQuery(document).on('click', '.frm-row-layout-option', handleFieldGroupLayoutOptionClick); - jQuery(document).on('click', '.frm-merge-fields-into-row .frm-row-layout-option', handleFieldGroupLayoutOptionInsideMergeClick); - jQuery(document).on('click', '.frm-custom-field-group-layout', customFieldGroupLayoutClick); - jQuery(document).on('click', '.frm-merge-fields-into-row .frm-custom-field-group-layout', customFieldGroupLayoutInsideMergeClick); - jQuery(document).on('click', '.frm-break-field-group', breakFieldGroupClick); - $newFields.on('click', '#frm_field_group_popup .frm_grid_container input', focusFieldGroupInputOnClick); - jQuery(document).on('click', '.frm-cancel-custom-field-group-layout', cancelCustomFieldGroupClick); - jQuery(document).on('click', '.frm-save-custom-field-group-layout', saveCustomFieldGroupClick); - $newFields.on('click', 'ul.frm_sorting', fieldGroupClick); - jQuery(document).on('click', '.frm-merge-fields-into-row', mergeFieldsIntoRowClick); - jQuery(document).on('click', '.frm-delete-field-groups', deleteFieldGroupsClick); - $newFields.on('click', '.frm-field-action-icons [data-toggle="dropdown"]', function () { - this.closest('li.form-field').classList.add('frm-field-settings-open'); - jQuery(document).on('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); - }); - $newFields.on('mousemove', 'ul.frm_sorting', checkForMultiselectKeysOnMouseMove); - $newFields.on('show.bs.dropdown', '.frm-field-action-icons', onFieldActionDropdownShow); - jQuery(document).on('show.bs.dropdown', '#frm_field_group_controls', onFieldGroupActionDropdownShow); - $builderForm.on('click', '.frm_single_option a[data-removeid]', deleteFieldOption); - $builderForm.on('mousedown', '.frm_single_option input[type=radio]', maybeUncheckRadio); - $builderForm.on('focusin', '.frm_single_option input[type=text]', maybeClearOptText); - $builderForm.on('click', '.frm_add_opt', addFieldOption); - $builderForm.on('change', '.frm_single_option input', resetOptOnChange); - $builderForm.on('change', '.frm_image_id', resetOptOnChange); - $builderForm.on('change', '.frm_toggle_mult_sel', toggleMultSel); - $newFields.on('click', '.frm_primary_label', clickLabel); - $newFields.on('click', '.frm_description', clickDescription); - $newFields.on('click', 'li.ui-state-default:not(.frm_noallow)', clickVis); - $newFields.on('dblclick', 'li.ui-state-default', openAdvanced); - $builderForm.on('change', '.frm_tax_form_select', toggleFormTax); - $builderForm.on('change', 'select.conf_field', addConf); - $builderForm.on('change', '.frm_get_field_selection', getFieldSelection); - $builderForm.on('click', '.frm-show-inline-modal', maybeShowInlineModal); - $builderForm.on('keydown', '.frm-show-inline-modal', function (event) { - var key = event.key; - if (key === 'Enter' || key === ' ') { - event.preventDefault(); - maybeShowInlineModal.call(this, event); - } - }); - $builderForm.on('click', '.frm-inline-modal .dismiss', dismissInlineModal); - jQuery(document).on('change', '[data-frmchange]', changeInputtedValue); - document.addEventListener('click', closeModalOnOutsideClick); - $builderForm.on('change', '.frm_include_extras_field', rePopCalcFieldsForSummary); - $builderForm.on('change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg); - jQuery(document).on('submit', '#frm_js_build_form', buildSubmittedNoAjax); - jQuery(document).on('change', '#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea', fieldUpdated); - popAllProductFields(); - jQuery(document).on('change', '.frmjs_prod_data_type_opt', toggleProductType); - jQuery(document).on('focus', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextFocus); - jQuery(document).on('blur', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextBlur); - frmDom.util.documentOn('click', '.frm-show-field-settings', clickVis); - frmDom.util.documentOn('change', 'select.frm_format_dropdown, select.frm_phone_type_dropdown', maybeUpdateFormatInput); - - // Navigate to the next input field on pressing Enter in a single option field - $builderForm.on('keydown', '.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]', function (event) { - if ('Enter' === event.key) { - focusNextSingleOptionInput(event.currentTarget); - } - }); - initBulkOptionsOverlay(); - hideEmptyEle(); - document.addEventListener('frm_added_field', hideEmptyEle); - maybeHideQuantityProductFieldOption(); - handleNameFieldOnFormBuilder(); - toggleSectionHolder(); - handleShowPasswordLiveUpdate(); - document.addEventListener('scroll', updateShortcodesPopupPosition, true); - document.addEventListener('change', handleBuilderChangeEvent); - document.querySelector('.frm_form_builder').addEventListener('mousedown', function (event) { - if (event.shiftKey) { - event.preventDefault(); - } - }); - wp.hooks.addAction('frmShowedFieldSettings', 'formidableAdmin', function (showBtn, fieldSettingsEl) { - fieldSettingsEl.querySelectorAll('.frm-collapse-me').forEach(addSlideAnimationCssVars); - }, 9999); - }, - settingsInit: function settingsInit() { - var $formActions = jQuery(document.getElementById('frm_notification_settings')); - var formSettings, $loggedIn, $cookieExp, $editable; - - // BCC, CC, and Reply To button functionality - $formActions.on('click', '.frm_email_buttons', showEmailRow); - $formActions.on('click', '.frm_remove_field', hideEmailRow); - $formActions.on('change', '.frm_to_row, .frm_from_row', showEmailWarning); - $formActions.on('change', '.frm_tax_selector', changePosttaxRow); - $formActions.on('change', 'select.frm_single_post_field', checkDupPost); - $formActions.on('change', 'select.frm_toggle_post_content', togglePostContent); - $formActions.on('change', 'select.frm_dyncontent_opt', fillDyncontent); - $formActions.on('change', '.frm_post_type', switchPostType); - $formActions.on('click', '.frm_add_postmeta_row', addPostmetaRow); - $formActions.on('click', '.frm_add_posttax_row', addPosttaxRow); - $formActions.on('click', '.frm_toggle_cf_opts', toggleCfOpts); - $formActions.on('click', '.frm_duplicate_form_action', copyFormAction); - jQuery('.frm_actions_list').on('click', '.frm_active_action', addFormAction); - jQuery('#frm-show-groups, #frm-hide-groups').on('click', toggleActionGroups); - initiateMultiselect(); - - //set actions icons to inactive - jQuery('ul.frm_actions_list li').each(function () { - checkActiveAction(jQuery(this).children('a').data('actiontype')); - - // If the icon is a background image, don't add BG color. - var icon = jQuery(this).find('i'); - if (icon.css('background-image') !== 'none') { - icon.addClass('frm-inverse'); - } - }); - jQuery('.frm_submit_settings_btn').on('click', submitSettings); - addFormNameModalEvents(); - formSettings = jQuery('.frm_form_settings'); - formSettings.on('click', '.frm_add_form_logic', addFormLogicRow); - formSettings.on('click', '.frm_already_used', actionLimitMessage); - document.addEventListener('click', function handleImageUploadClickEvents(event) { - var target = event.target; - if (!target.closest('.frm_image_preview_wrapper')) { - return; - } - if (target.closest('.frm_choose_image_box')) { - addImageToOption.bind(target)(event); - return; - } - if (target.closest('.frm_remove_image_option')) { - removeImageFromOption.bind(target)(event); - } - }); - - // Close shortcode modal on click. - formSettings.on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); - - //Warning when user selects "Do not store entries ..." - jQuery(document.getElementById('no_save')).on('change', function () { - if (this.checked) { - if (confirm(frmAdminJs.no_save_warning) !== true) { - // Uncheck box if user hits "Cancel" - jQuery(this).attr('checked', false); - } - } - }); - jQuery('select[name="options[edit_action]"]').on('change', showSuccessOpt); - $loggedIn = document.getElementById('logged_in'); - jQuery($loggedIn).on('change', function () { - if (this.checked) { - visible('.hide_logged_in'); - } else { - invisible('.hide_logged_in'); - } - }); - $cookieExp = jQuery(document.getElementById('frm_cookie_expiration')); - jQuery(document.getElementById('frm_single_entry_type')).on('change', function () { - if (this.value === 'cookie') { - $cookieExp.fadeIn('slow'); - } else { - $cookieExp.fadeOut('slow'); - } - }); - var $singleEntry = document.getElementById('single_entry'); - jQuery($singleEntry).on('change', function () { - if (this.checked) { - visible('.hide_single_entry'); - } else { - invisible('.hide_single_entry'); - } - if (this.checked && jQuery(document.getElementById('frm_single_entry_type')).val() === 'cookie') { - $cookieExp.fadeIn('slow'); - } else { - $cookieExp.fadeOut('slow'); - } - }); - jQuery('.hide_save_draft').hide(); - var $saveDraft = jQuery(document.getElementById('save_draft')); - $saveDraft.on('change', function () { - if (this.checked) { - jQuery('.hide_save_draft').fadeIn('slow'); - } else { - jQuery('.hide_save_draft').fadeOut('slow'); - } - }); - triggerChange($saveDraft); - - //If Allow editing is checked/unchecked - $editable = document.getElementById('editable'); - jQuery($editable).on('change', function () { - if (this.checked) { - jQuery('.hide_editable').fadeIn('slow'); - triggerChange(document.getElementById('edit_action')); - } else { - jQuery('.hide_editable').fadeOut('slow'); - jQuery('.edit_action_message_box').fadeOut('slow'); //Hide On Update message box - } - }); - - //If File Protection is checked/unchecked - jQuery(document).on('change', '#protect_files', function () { - if (this.checked) { - jQuery('.hide_protect_files').fadeIn('slow'); - } else { - jQuery('.hide_protect_files').fadeOut('slow'); - } - }); - jQuery(document).on('frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues); - jQuery(document).on('submit', '.frm_form_settings', settingsSubmitted); - jQuery(document).on('change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated); - - // Page Selection Autocomplete - initAutocomplete(); - jQuery(document).on('frm-action-loaded', onActionLoaded); - initOnSubmitAction(); - }, - panelInit: function panelInit() { - var customPanel, settingsPage, viewPage, insertFieldsTab; - jQuery('.frm_wrap, #postbox-container-1').on('click', '.frm_insert_code', insertCode); - jQuery(document).on('change', '.frm_insert_val', function () { - insertFieldCode(jQuery(this).data('target'), jQuery(this).val()); - jQuery(this).val(''); - }); - jQuery(document).on('click change', '[name="frm-id-key-condition"]', resetLogicBuilder); - jQuery(document).on('keyup change', '.frm-build-logic', setLogicExample); - showInputIcon(); - jQuery(document).on('frmElementAdded', function (event, parentEle) { - /* This is here for add-ons to trigger */ - showInputIcon(parentEle); - }); - jQuery(document).on('mousedown', '.frm-show-box', showShortcodes); - settingsPage = document.getElementById('form_settings_page'); - viewPage = document.body.classList.contains('post-type-frm_display'); - insertFieldsTab = document.getElementById('frm_insert_fields_tab'); - if (settingsPage !== null || viewPage || builderPage) { - jQuery(document).on('focusin', 'form input, form textarea', function (e) { - var htmlTab; - e.stopPropagation(); - maybeShowModal(this); - if (jQuery(this).is(':not(:submit, input[type=button], .frm-search-input, input[type=checkbox])')) { - if (jQuery(e.target).closest('#frm_adv_info').length) { - // Don't trigger for fields inside of the modal. - return; - } - if (settingsPage !== null || builderPage) { - /* form settings page */ - htmlTab = jQuery('#frm_html_tab'); - if (jQuery(this).closest('#html_settings').length > 0) { - htmlTab.show(); - htmlTab.siblings().hide(); - jQuery('#frm_html_tab a').trigger('click'); - toggleAllowedHTML(this); - } else { - showElement(jQuery('.frm-category-tabs li')); - insertFieldsTab.click(); - htmlTab.hide(); - htmlTab.siblings().show(); - } - } else if (viewPage) { - var event = new CustomEvent('frm_legacy_views_handle_field_focus'); - event.frmData = { - idAttrValue: this.id - }; - document.dispatchEvent(event); - } - } - }); - } - jQuery('.frm_wrap, #postbox-container-1').on('mousedown', '#frm_adv_info a, .frm_field_list a', function (e) { - e.preventDefault(); - }); - customPanel = jQuery('#frm_adv_info'); - customPanel.on('click', '.subsubsub a.frmids', function (e) { - toggleKeyID('frmids', e); - }); - customPanel.on('click', '.subsubsub a.frmkeys', function (e) { - toggleKeyID('frmkeys', e); - }); - }, - inboxInit: function inboxInit() { - var _document$getElementB6; - jQuery('.frm_inbox_dismiss').on('click', function (e) { - var message = this.parentNode.parentNode; - var key = message.getAttribute('data-message'); - var href = this.getAttribute('href'); - var dismissedMessage = message.cloneNode(true); - var dismissedMessagesWrapper = document.querySelector('.frm-dismissed-inbox-messages'); - if ('free_templates' === key && !this.classList.contains('frm_inbox_dismiss')) { - return; - } - e.preventDefault(); - data = { - action: 'frm_inbox_dismiss', - key: key, - nonce: frmGlobal.nonce - }; - var isInboxSlideIn = 'frm_inbox_slide_in' === message.id; - if (isInboxSlideIn) { - message.classList.remove('s11-fadein'); - message.classList.add('s11-fadeout'); - message.addEventListener('animationend', function () { - return message.remove(); - }, { - once: true - }); - } - postAjax(data, function () { - if (isInboxSlideIn) { - return; - } - if (href !== '#') { - window.location = href; - return true; - } - fadeOut(message, function () { - if (null !== dismissedMessagesWrapper) { - var _dismissedMessage$que; - dismissedMessage.classList.remove('frm-fade'); - (_dismissedMessage$que = dismissedMessage.querySelector('.frm-inbox-message-heading')) === null || _dismissedMessage$que === void 0 || _dismissedMessage$que.removeChild(dismissedMessage.querySelector('.frm-inbox-message-heading .frm_inbox_dismiss')); - dismissedMessagesWrapper.append(dismissedMessage); - } - if (1 === message.parentNode.querySelectorAll('.frm-inbox-message-container').length) { - document.getElementById('frm_empty_inbox').classList.remove('frm_hidden'); - message.parentNode.closest('.frm-active').classList.add('frm-empty-inbox'); - showActiveCampaignForm(); - } - message.parentNode.removeChild(message); - }); - }); - }); - if (false === ((_document$getElementB6 = document.getElementById('frm_empty_inbox')) === null || _document$getElementB6 === void 0 ? void 0 : _document$getElementB6.classList.contains('frm_hidden'))) { - showActiveCampaignForm(); - } - }, - solutionInit: function solutionInit() { - jQuery(document).on('submit', '#frm-new-template', installTemplate); - }, - styleInit: function styleInit() { - var $previewWrapper = jQuery('.frm_image_preview_wrapper'); - $previewWrapper.on('click', '.frm_choose_image_box', addImageToOption); - $previewWrapper.on('click', '.frm_remove_image_option', removeImageFromOption); - wp.hooks.doAction('frm_style_editor_init'); - }, - customCSSInit: function customCSSInit() { - console.warn('Calling frmAdminBuild.customCSSInit is deprecated.'); - }, - globalSettingsInit: function globalSettingsInit() { - var licenseTab; - jQuery(document).on('click', '[data-frmuninstall]', uninstallNow); - initiateMultiselect(); - - // activate addon licenses - licenseTab = document.getElementById('licenses_settings'); - if (licenseTab !== null) { - jQuery(licenseTab).on('click', '.edd_frm_save_license', saveAddonLicense); - } - - // Solution install page - jQuery(document).on('click', '#frm-new-template button', installTemplateFieldset); - jQuery('#frm-dismissable-cta .dismiss').on('click', function (event) { - event.preventDefault(); - jQuery.post(ajaxurl, { - action: 'frm_lite_settings_upgrade', - nonce: frmGlobal.nonce - }); - jQuery('.settings-lite-cta').remove(); - }); - var captchaType = document.getElementById('frm_re_type'); - if (captchaType) { - captchaType.addEventListener('change', handleCaptchaTypeChange); - } - document.querySelector('.frm_captchas').addEventListener('change', function (event) { - var _document$querySelect8; - var captchaValueOnLoad = (_document$querySelect8 = document.querySelector('.frm_captchas input[checked="checked"]')) === null || _document$querySelect8 === void 0 ? void 0 : _document$querySelect8.value; - var showNote = event.target.value !== captchaValueOnLoad; - document.querySelector('.captcha_settings .frm_note_style').classList.toggle('frm_hidden', !showNote); - }); - - // Set fieldsUpdated to 0 to avoid the unsaved changes pop up. - frmDom.util.documentOn('submit', '.frm_settings_form', function () { - return fieldsUpdated = 0; - }); - var manageStyleSettings = document.getElementById('manage_styles_settings'); - if (manageStyleSettings) { - manageStyleSettings.addEventListener('change', function (event) { - var target = event.target; - if ('SELECT' !== target.nodeName || !target.dataset.name || target.getAttribute('name')) { - return; - } - target.setAttribute('name', target.dataset.name); - }); - } - var paymentsSettings = document.getElementById('payments_settings'); - var paymentSettingsTabs = paymentsSettings === null || paymentsSettings === void 0 ? void 0 : paymentsSettings.querySelectorAll('[name="frm_payment_section"]'); - if (paymentSettingsTabs) { - paymentSettingsTabs.forEach(function (element) { - element.addEventListener('change', function () { - if (!element.checked) { - return; - } - var label = paymentsSettings.querySelector("label[for=\"".concat(element.id, "\"]")); - if (label) { - label.setAttribute('aria-selected', 'true'); - } - paymentSettingsTabs.forEach(function (tab) { - if (tab === element) { - return; - } - var label = paymentsSettings.querySelector("label[for=\"".concat(tab.id, "\"]")); - if (label) { - label.setAttribute('aria-selected', 'false'); - } - }); - }); - }); - } - }, - exportInit: function exportInit() { - jQuery('.frm_form_importer').on('submit', startFormMigration); - jQuery(document.getElementById('frm_export_xml')).on('submit', validateExport); - jQuery('#frm_export_xml input, #frm_export_xml select').on('change', removeExportError); - jQuery('input[name="frm_import_file"]').on('change', checkCSVExtension); - document.querySelector('select[name="format"]').addEventListener('change', exportTypeChanged); - jQuery('input[name="frm_export_forms[]"]').on('click', preventMultipleExport); - initiateMultiselect(); - jQuery('.frm-feature-banner .dismiss').on('click', function (event) { - event.preventDefault(); - jQuery.post(ajaxurl, { - action: 'frm_dismiss_migrator', - plugin: this.id, - nonce: frmGlobal.nonce - }); - this.parentElement.remove(); - }); - showOrHideRepeaters(getExportOption()); - document.querySelector('#frm-export-select-all').addEventListener('change', function (event) { - document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function (cb) { - return cb.checked = event.target.checked; - }); - }); - }, - inboxBannerInit: function inboxBannerInit() { - var banner = document.getElementById('frm_banner'); - if (!banner) { - return; - } - var dismissButton = banner.querySelector('.frm-banner-dismiss'); - document.addEventListener('click', function (event) { - if (event.target !== dismissButton) { - return; - } - var data = { - action: 'frm_inbox_dismiss', - key: banner.dataset.key, - nonce: frmGlobal.nonce - }; - postAjax(data, function () { - jQuery(banner).fadeOut(400, function () { - banner.remove(); - }); - }); - }); - }, - updateOpts: function updateOpts(fieldId, opts, modal) { - var separate = usingSeparateValues(fieldId), - action = isProductField(fieldId) ? 'frm_bulk_products' : 'frm_import_options'; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: action, - field_id: fieldId, - opts: opts, - separate: separate, - nonce: frmGlobal.nonce - }, - success: function success(html) { - document.getElementById('frm_field_' + fieldId + '_opts').innerHTML = html; - wp.hooks.doAction('frm_after_bulk_edit_opts', fieldId); - resetDisplayedOpts(fieldId); - if (typeof modal !== 'undefined') { - modal.dialog('close'); - document.getElementById('frm-update-bulk-opts').classList.remove('frm_loading_button'); - } - } - }); - }, - /* remove conditional logic if the field doesn't exist */ - triggerRemoveLogic: function triggerRemoveLogic(fieldID, metaName) { - jQuery('#frm_logic_' + fieldID + '_' + metaName + ' .frm_remove_tag').trigger('click'); - }, - downloadXML: function downloadXML(controller, ids, isTemplate) { - var url = ajaxurl + '?action=frm_' + controller + '_xml&ids=' + ids; - if (isTemplate !== null) { - url = url + '&is_template=' + isTemplate; - } - location.href = url; - }, - /** - * @since 5.0.04 - */ - hooks: { - applyFilters: function applyFilters(hookName) { - var _wp$hooks; - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - return (_wp$hooks = wp.hooks).applyFilters.apply(_wp$hooks, [hookName].concat(args)); - }, - addFilter: function addFilter(hookName, callback, priority) { - return wp.hooks.addFilter(hookName, 'formidable', callback, priority); - }, - doAction: function doAction(hookName) { - var _wp$hooks2; - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key3 = 1; _key3 < _len2; _key3++) { - args[_key3 - 1] = arguments[_key3]; - } - return (_wp$hooks2 = wp.hooks).doAction.apply(_wp$hooks2, [hookName].concat(args)); - }, - addAction: function addAction(hookName, callback, priority) { - return wp.hooks.addAction(hookName, 'formidable', callback, priority); - } - }, - applyZebraStriping: applyZebraStriping, - initModal: initModal, - infoModal: infoModal, - offsetModalY: offsetModalY, - adjustConditionalLogicOptionOrders: adjustConditionalLogicOptionOrders, - addRadioCheckboxOpt: addRadioCheckboxOpt, - installNewForm: installNewForm, - toggleAddonState: toggleAddonState, - purifyHtml: purifyHtml, - loadApiEmailForm: loadApiEmailForm, - addMyEmailAddress: addMyEmailAddress, - fillDropdownOpts: fillDropdownOpts, - showSaveAndReloadModal: showSaveAndReloadModal, - clearSettingsBox: clearSettingsBox, - deleteField: deleteField, - insertFormField: insertFormField, - confirmLinkClick: confirmLinkClick, - handleInsertFieldByDraggingResponse: handleInsertFieldByDraggingResponse, - handleAddFieldClickResponse: handleAddFieldClickResponse, - syncLayoutClasses: syncLayoutClasses, - moveFieldSettings: moveFieldSettings - }; -}; -window.frmAdminBuild = frmAdminBuildJS(); -jQuery(document).ready(function () { - var _document$querySelect9; - frmAdminBuild.init(); - frmDom.bootstrap.setupBootstrapDropdowns(convertOldBootstrapDropdownsToBootstrap4); - (_document$querySelect9 = document.querySelector('.preview.dropdown .frm-dropdown-toggle')) === null || _document$querySelect9 === void 0 || _document$querySelect9.setAttribute('data-toggle', 'dropdown'); - function convertOldBootstrapDropdownsToBootstrap4(frmDropdownMenu) { - var toggle = frmDropdownMenu.querySelector('.frm-dropdown-toggle'); - if (toggle) { - if (!toggle.hasAttribute('role')) { - toggle.setAttribute('role', 'button'); - } - if (!toggle.hasAttribute('tabindex')) { - toggle.setAttribute('tabindex', 0); - } - } - - // Convert
              • and
                  tags. - if ('UL' === frmDropdownMenu.tagName) { - convertBootstrapUl(frmDropdownMenu); - } - } - function convertBootstrapUl(ul) { - var html = ul.outerHTML; - html = html.replace('
                    ', ''); - html = html.replaceAll('
                  • ', '
                  • ', ''); - ul.outerHTML = html; - } -}); -window.frm_show_div = function (div, value, showIf, classId) { - // eslint-disable-line camelcase - if (value == showIf) { - jQuery(classId + div).fadeIn('slow').css('visibility', 'visible'); - } else { - jQuery(classId + div).fadeOut('slow'); - } -}; -window.frmCheckAll = function (checked, n) { - jQuery('input[name^="' + n + '"]').prop('checked', !!checked); -}; -window.frmCheckAllLevel = function (checked, n, level) { - var $kids = jQuery('.frm_catlevel_' + level).children('.frm_checkbox').children('label'); - $kids.children('input[name^="' + n + '"]').prop('checked', !!checked); -}; -window.frmGetFieldValues = function (fieldId, cur, rowNumber, fieldType, htmlName, callback) { - if (!fieldId) { - return; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: 'action=frm_get_field_values¤t_field=' + cur + '&field_id=' + fieldId + '&name=' + htmlName + '&t=' + fieldType + '&form_action=' + jQuery('input[name="frm_action"]').val() + '&nonce=' + frmGlobal.nonce, - success: function success(msg) { - document.getElementById('frm_show_selected_values_' + cur + '_' + rowNumber).innerHTML = msg; - if ('function' === typeof callback) { - callback(); - } - } - }); -}; -window.frmImportCsv = function (formID) { - var urlVars = ''; - if (typeof __FRMURLVARS !== 'undefined') { - urlVars = __FRMURLVARS; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: 'action=frm_import_csv&nonce=' + frmGlobal.nonce + '&frm_skip_cookie=1' + urlVars, - success: function success(count) { - var max = jQuery('.frm_admin_progress_bar').attr('aria-valuemax'); - var imported = max - count; - var percent = imported / max * 100; - jQuery('.frm_admin_progress_bar').css('width', percent + '%').attr('aria-valuenow', imported); - if (parseInt(count, 10) > 0) { - jQuery('.frm_csv_remaining').html(count); - frmImportCsv(formID); - } else { - jQuery(document.getElementById('frm_import_message')).html(frm_admin_js.import_complete); // eslint-disable-line camelcase - setTimeout(function () { - location.href = '?page=formidable-entries&frm_action=list&form=' + formID + '&import-message=1'; - }, 2000); - } - } - }); -}; -/******/ })() -; -//# sourceMappingURL=formidable_admin.js.map \ No newline at end of file +(()=>{function e(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||t(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&(e="",t=""):0===i.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().length&&(""!==e&&(e+=","),e+="#"+jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().attr("id")+" .frm_toggle_cf_opts"));var o=document.getElementById(i),a=jQuery(o);return a.fadeOut(300,(function(){var r;a.remove(),Di(),""!==t&&jQuery(t).hide(),""!==e&&jQuery(e+" a,"+e).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){li(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()})),void 0!==r&&(r=jQuery(r)).fadeOut(400,(function(){r.remove()})),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",i,o),!1}}function $(e,t){void 0===t&&(t=this),Ze(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var i=n.parentElement.className;if("string"==typeof i&&(i.indexOf("frm_email_icons")>-1||i.indexOf("frm_toggle")>-1))return void e.stopPropagation()}var o=r.children(".widget-inside");if(r.length&&o.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(o.html(''),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){o.html(e),ao(),Kn("#"+r.attr("id")),bo(o),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",o)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&-1!==t.className.indexOf("widget-action")||jQuery(t).closest(".start_divider").length<1||((o=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?o.slideDown("fast"):o.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Je(),!1}function V(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,i,o=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(o).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(i=jQuery(".frm_"+n+"_ajax")).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){i.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(o).show(),$i(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id="+jQuery('.frm_form_settings input[name="id"]').val()+"&t="+r.replace("#","")):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t="+r.replace("#","")))}}function U(e){var t,r;document.querySelectorAll(e).forEach((function(e){J(e),Array.from(e.children).forEach((function(e){return X(e,".frm-move")}));var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&J(t)})),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return x=t.clone().insertAfter(t),t.clone()},stop:function(e,t){x&&x.remove(),rn(t.item.attr("id").replace("frm_delete_field_","").replace("-"+t.item.data("optkey")+"_container","")),Di()}},jQuery(t).sortable(r)}function J(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:Y,tolerance:"pointer"})}function K(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!Qe(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach((function(e){return e.classList.remove("frm-over-droppable")})),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function Y(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var r={helper:Z,revert:"invalid",delay:10,start:ee,stop:te,drag:re,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function Z(e){var t,r=e.delegateTarget;if(Ee(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=B("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var i=r.getAttribute("data-ftype");if((t=(t=document.getElementById("frm-insert-fields").querySelector(".frm_t"+i)).cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t)return t.cloneNode(!0)}return d({className:"frmbutton"})}function ee(e,t){q.dragging=!0;var r,n=h;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),gr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach((function(e){[].slice.call(e.children).forEach((function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()}))})),Me(),Te(),R()}function te(){h.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function re(e,t){!function(e){v.scrollTop((function(t,r){var n=e.clientY,i=h.offsetHeight,o=e.clientY-h.offsetTop,a=o-i/2;return o>i-50&&n>5?r+.1*a:o<70&&n<130?r-Math.abs(.1*a):r}))}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),i=document.getElementById("frm_drag_placeholder");if(Qe(r,n,e)){i||(i=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var o,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY("+(o=t.helper,h.scrollTop-o.initialOffset+"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return i.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,i=jQuery(e.droppable);if($children=i.children().not(".edit_field_type_end_divider"),0===$children.length)i.prepend(n),t=0;else{var o=ie(i,r);if(o===$children.length){var a=jQuery($children.get(o-1));t=a.offset().top+a.outerHeight(),i.append(n);var l=i.children(".edit_field_type_end_divider");l.length&&i.append(l)}else t=jQuery($children.get(o)).offset().top,jQuery($children.get(o)).before(n)}t-=i.offset().top,n.style.top=t+"px"}({droppable:n,y:e.clientY,placeholder:i});i.style.top="",function(e){var t,r=e.x,n=e.placeholder,i=jQuery(e.droppable),o=ae(i);if(o.length){var a=function(e,t){var r,n,i,o,a=ae(e);for(o=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().left)){o=r,t>i+jQuery(n).outerWidth()/2&&(o=r+1);break}return o}(i,r);if(a===o.length){var l=jQuery(o.get(a-1));t=l.offset().left+l.outerWidth(),i.append(n)}else t=jQuery(o.get(a)).offset().left,jQuery(o.get(a)).before(n),t-=0===a?4:8;t-=i.offset().left,n.style.left=t+"px"}}({droppable:n,x:e.clientX,placeholder:i})}else i&&i.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void y();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var i=t.helper.parent(),o=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(ge(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r=e.replace("|","-")+"_"+we(),n=s("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),i=jQuery(n),o=fe(jQuery(t)),a=ue(o),l=me(o);t.parentNode.insertBefore(n,t),t.remove(),le(i);var d=0;"summary"===e&&(d=jQuery(".frmbutton_loadingnow#"+r).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:pe(e,l,a,d),success:function(t){ye(t,i);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:je})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(n.parentElement));var l=o?parseInt(o.closest(".edit_field_type_divider").getAttribute("data-fid")):0,d=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var c=i.length?ae(i):[];!function(e,t){var r;e.length&&(t.length?le(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(i,c),function(e,t){0===t.length&&1===ae(jQuery(e.parentNode)).length||le(jQuery(e))}(r,c),l!==d&&_e(jQuery(r),o),y()}}function ie(e,t){var r,n,i,o,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(o=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().top)){o=r,t>i+jQuery(n).outerHeight()/2&&(o=r+1);break}return o}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach((function(e){e.childNodes.forEach((function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))}))})),xn(),document.querySelectorAll(".edit_field_type_end_divider").forEach((function(e){return e.parentNode.appendChild(e)})),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach((function(e){return!e.children.length&&e.remove()})),Qn();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ae(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach((function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}})),t):t}function le(e,t){var r,n,i,o;void 0===t&&(t="even"),r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),n=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"],"even"===t&&5!==n?r.each(ce(i,Vt(n))):"clear"===t?r.each(ce(i,"")):(o=-1!==["left","right","middle","even"].indexOf(t)?function(e){return Wt(n,t,e)}:function(e){return ar(t[e])},r.each(ce(i,o))),se(e.parent(),r.length)}function se(e,t){var r,n;if(void 0!==e.offset()){if(r=t>=2,null===(n=document.getElementById("frm_field_group_controls"))){if(!r)return;(n=d()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t,r;(t=document.createElement("span")).innerHTML='';var n=B("Set Row Layout","formidable");de(t,n),zt(t,n),(r=document.createElement("span")).innerHTML='',r.classList.add("frm-move");var i=B("Move Field Group","formidable");de(r,i),zt(r,i),e.innerHTML="",e.appendChild(t),e.appendChild(r),e.appendChild(function(){var e=c({className:"dropdown"}),t=f({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[c({child:u({href:"#frm_thick_more_vert_icon"})}),c({className:"screen-reader-text",text:B("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:B("More Options","formidable"),"data-toggle":"dropdown","data-container":"body"}),zt(t,B("More Options","formidable")),e.appendChild(t);var r=d({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.appendChild(r),e}())}(n),D.appendChild(n)}e.append(n),n.style.display=r?"block":"none"}}function de(e,t){e.setAttribute("data-toggle","tooltip"),e.setAttribute("data-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",(function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()}))}function ce(e,t){return function(r){var n,i,o,a,l,s,d;for(n="function"==typeof t?t(r):t,i=e.length,l=!1,o=0;ot.childElementCount-1:s<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(a)return!(t.classList.contains("start_divider")||!xe(t.parentElement)&&(!xe(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));if(t.classList.contains("start_divider")&&(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)&&t.closest(".repeat_section"))return!1;if(!t.classList.contains("start_divider")){if(n=ae(jQuery(t)),i=jQuery(e),!(n.length<6)&&(n.length>6||(o=i.attr("data-fid"),1!==jQuery(n).filter('[data-fid="'+o+'"]').length)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),i=r.contains("frm_thidden"),o=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||i||o||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!o):!(ke(t)||i||n||l)}(e,t):function(e,t){if(Ee(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(ke(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!r&&!n}(e,t)}(e,t)}function xe(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Ee(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function ke(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Le(e){var t=document.getElementById(e),r=jQuery(t),n=[],i=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)},o=t;i(o);for(var a=Se(o);a&&n.length<15;)i(a),o=a,a=Se(a);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:k,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,i;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))jQuery("#frm_field_id_"+n).replaceWith(e[n]),U("#frm_field_id_"+n+".edit_field_type_divider ul.frm_sorting"),X(document.getElementById("frm_field_id_"+n));((i=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(i=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Le(i.attr("id")),ao(),Tr(),Be();var o=new Event("frm_ajax_loaded_field",{bubbles:!1});o.frmFields=r.map((function(e){return JSON.parse(e)})),document.dispatchEvent(o)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Se(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton").attr("id");if(!ge(t)){var r=0;"summary"===t&&(r=j.children('li[data-type="break"]').length>0?1:0);var n=k;return jQuery.ajax({type:"POST",url:ajaxurl,data:pe(t,0,n,r),success:function(e){Ie(e);var r=he(e);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:r,fieldType:t,form_id:n})},error:je}),!1}}function Ie(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=$e(e),r=j[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):j.append(t),Ve(e,!0),t.each((function(){J(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")}))}function Be(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");j.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r',i.appendChild(document.createTextNode(" ")),i.appendChild(o),n.appendChild(i),e.appendChild(n)}))}(t,!0===e),(r=jQuery(t)).offset().left>jQuery(window).width()-r.outerWidth()&&(t.style.left=-r.outerWidth()+"px");var n=t.firstElementChild.querySelector("a");n&&n.focus()}}),0)}function Pe(){He(!0)}function ze(e){var t=e.target.closest(".frm-section-collapsed");t&&("show"===e.type?t.style.zIndex=3:t.style.zIndex=1)}function Re(e){var t={class:"frm_delete",icon:"frm_delete_icon"};return t.label=B(e?"Delete Group":"Delete","formidable"),t}function Ge(e){var t={class:"frm_clone",icon:"frm_clone_icon"};return t.label=B(e?"Duplicate Group":"Duplicate","formidable"),t}function $e(e){var t=d();"string"==typeof e?t.innerHTML=e:t.appendChild(e);var r=jQuery();return Array.from(t.children).forEach((function(e){r=r.add(jQuery("
                  • ").addClass("frm_field_box").html(jQuery("
                      ").addClass("frm_grid_container frm_sorting").append(e)))})),r}function We(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),r=s("li",{className:"frm_field_box",child:t});e.replaceWith(r),t.appendChild(e),J(t),X(r,".frm-move")}function Ve(e,t){var r,n,i=/id="(\S+)"/.exec(e),o=document.getElementById(i[1]),a="#"+i[1]+".edit_field_type_divider ul.frm_sorting.start_divider",l=jQuery(a),s=o.getAttribute("data-type");r=e,(n=d()).innerHTML=r,n.querySelectorAll(".form-field").forEach(Ue);var c,f,u=!1;if(Di(),U(a),"quantity"===s&&function(e){var t=e.getAttribute("data-fid"),r=document.getElementById("field_options[product_field_"+t+"]");null!==r&&(rt(r),ni(document.getElementById("frm-single-settings-"+t)))}(o),"product"!==s&&"quantity"!==s||Be(),l.length)l.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var m=jQuery(o).closest("ul.frm_sorting.start_divider");m.length&&(En(m),u=!0)}if(-1!==e.indexOf("frm-collapse-page")&&Tr(),f="frm-newly-added",(c=o).classList?c.classList.add(f):c.className+=" "+f,setTimeout((function(){o.classList.remove("frm-newly-added")}),1e3),t){var _=o.getBoundingClientRect(),p=document.getElementById("post-body-content");_.top>=0&&_.left>=0&&_.right<=(window.innerWidth||document.documentElement.clientWidth)&&_.bottom<=(window.innerHeight||document.documentElement.clientHeight)||p.scroll({top:p.scrollHeight,left:0,behavior:"smooth"}),!1===u&&En(l)}Ke(),ao(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable");var g=new Event("frm_added_field",{bubbles:!1});g.frmField=o,g.frmSection=a,g.frmType=s,g.frmToggles=u,document.dispatchEvent(g)}function Ue(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=","+e.dataset.fid))}}function Je(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||gr()}function Ye(){var e=this.value,t=function(e){var t,r=[],n=e.split(""),i=n.length,o=["{","[","("],l={"}":"{",")":"(","]":"["},s=[];for(t=0;t0||s.length>0?a.unmatched_parens+"\n\n":""}(e);t+=function(e,t){var r=function(e,t){var r="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(r=a.text_shortcodes+"\n\n"),r}(e,t);return r+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+=a.view_shortcodes+"\n\n"),t}(e)}(e,this),""!==t&&H(e+"\n\n"+t)}function Xe(e,t){for(var r,n,i,o=!1,a=0;a"+l[t].fieldName+"")):(r=r?" checked":"",i.push('"));e.innerHTML=i.join("")}function nt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(n.innerHTML=mn(r),"TEXTAREA"===n.nodeName&&n.classList.contains("wp-editor-area")&&jQuery(n).trigger("change"),n.classList.contains("frm_primary_label")&&"break"===n.nextElementSibling.getAttribute("data-ftype")&&(n.nextElementSibling.querySelector(".frm_button_submit").textContent=r)))}function at(e){var t=parseFloat(e.getAttribute("max")),r=parseFloat(e.getAttribute("min"));return(t-r)/2+r}function lt(){var e,t=this.getAttribute("data-fid"),r="";["field_options_max_","frm_format_"].forEach((function(e){var n=document.getElementById(e+t);n&&(r+=n.value)})),"text"===(e=document.getElementsByName("field_options[type_"+t+"]")[0]).options[e.selectedIndex].value&&dt(""!==r,".frm_invalid_msg"+t)}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,r=jQuery("#field_label_"+e+" .frm_required");if(dt(t,".frm_required_details"+e),t){var n=jQuery('input[name="field_options[required_indicator_'+e+']"]');""===n.val()&&n.val("*"),r.removeClass("frm_hidden")}else r.addClass("frm_hidden")}function dt(e,t){if($msg=jQuery(t),e)$msg.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=$msg.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not("+t+"):visible").length;r.css("display",""),0===n&&$msg.closest(".frm_validation_msg").fadeOut("fast")}}function ct(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details"+e);if(this.checked)t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast"),$unqDetail=jQuery(".frm_unique_details"+e+" input"),""===$unqDetail.val()&&$unqDetail.val(a.default_unique);else{var r=t.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not(.frm_unique_details"+e+"):visible").length;r.css("display",""),0===n&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ft(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),r=jQuery(document.getElementById("frm_field_id_"+e));if(dt(""!==t,".frm_conf_details"+e),""!==t){var n=jQuery(".frm_validation_box .frm_conf_details"+e+" input");""===n.val()&&n.val(a.default_conf),function(e){var t=document.getElementsByName("field_options[type_"+e+"]")[0].value;ut(document.getElementById("field_description_"+e),"field_options[description_"+e+"]",a["enter_"+t]),ut(document.getElementById("conf_field_description_"+e),"field_options[conf_desc_"+e+"]",a["confirm_"+t])}(e),"inline"===t?r.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&r.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-"+e).removeClass("frm_hidden")}else jQuery(".frm-conf-box-"+e).addClass("frm_hidden"),setTimeout((function(){r.removeClass("frm_conf_inline frm_conf_below")}),200)}function ut(e,t,r){e.innerHTML===a.desc&&(e.innerHTML=r,document.getElementsByName(t)[0].value=r)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t=jQuery(this).closest(".frm-single-settings").data("fid"),r=jQuery("#frm_field_"+t+"_opts .frm_option_template").prop("outerHTML"),n=jQuery(this).data("opttype"),i=0,o=function(e){for(var t=0,r=0,n=jQuery("#frm_field_"+e+"_opts li"),i=0;ti||"000"===i)&&(i=r)}return i}(t);if("000"!==o&&(i=o+1),"other"===n){document.getElementById("other_input_"+t).value=1;var a=jQuery(this).data("ftype");"radio"!==a&&"select"!==a||jQuery(this).fadeOut("slow");var l={action:"frm_add_field_option",field_id:t,opt_key:i,opt_type:n,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,l,(function(e){jQuery(document.getElementById("frm_field_"+t+"_opts")).append(e),rn(t)}))}else r=(r=(r=(r=(r=r.replace(new RegExp('optkey="000"',"g"),'optkey="'+i+'"')).replace(new RegExp("-000_","g"),"-"+i+"_")).replace(new RegExp('-000"',"g"),"-"+i+'"')).replace(new RegExp("\\[000\\]","g"),"["+i+"]")).replace("frm_hidden frm_option_template",""),Po(t,r={newOption:r}),this.closest(".frm_single_option").after(r.newOption),rn(t);null===(e=this.closest(".frm_sortable_field_opts"))||void 0===e||null===(e=e.querySelectorAll(".frm_remove_tag.frm_disabled"))||void 0===e||e.forEach((function(e){return e.classList.remove("frm_disabled")})),Di()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var r=jQuery(".frm_multiple_cont_"+e);"select"===t?r.fadeIn("fast"):r.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");To(jQuery(".field_"+e+"_option_key")),jQuery(".field_"+e+"_option").toggleClass("frm_with_key")}function ht(){var e,t,r=jQuery(this).closest(".frm-single-settings"),n=r.data("fid"),i=document.getElementById("frm_field_id_"+n);wt(jQuery(this)),To(jQuery(".field_"+n+"_image_id")),To(jQuery(".frm_toggle_image_options_"+n)),To(jQuery(".frm_image_size_"+n)),To(jQuery(".frm_alignment_"+n)),To(jQuery(".frm-add-other#frm_add_field_"+n)),(e=gn(n))?(bt(n,"inline"),vt(i),t=tn(n),i.classList.add("frm_image_options"),i.classList.add("frm_image_size_"+t),r.find(".frm-bulk-edit-link").hide()):(i.classList.remove("frm_image_options"),vt(i),bt(n,"block"),r.find(".frm-bulk-edit-link").show()),wp.hooks.doAction("frm_image_options_toggled",r[0],e)}function vt(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_"+e).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);Qt(),gn(e)&&(vt(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_"+tn(e)))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_"+t+"_option").trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t=e.target.closest(".frm_image_preview_wrapper");e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",(function(){var e=r.state().get("selection").first().toJSON(),n=t.querySelector("img");n.setAttribute("src",e.url),n.classList.remove("frm_hidden"),n.removeAttribute("srcset"),t.querySelector(".frm_image_preview_frame").style.display="block",t.querySelector(".frm_image_preview_title").textContent=e.filename,t.querySelector(".frm_choose_image_box").style.display="none";var i=jQuery(t);i.siblings('input[name*="[label]"]').data("frmimgurl",e.url),i.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0})),r.open()}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function Lt(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout((function(){e.focus()}),100)}function St(e){var t=e.target,r=t.closest(".frm_warning_style");jQuery(r).fadeOut(400,(function(){return r.remove()}));var n=t.dataset.action,i=new FormData;g(n,i)}function At(e){e.preventDefault()}function It(){var e,t=this.parentNode,r=t.parentNode,n=r.querySelectorAll("li:not(.frm_hidden)");2===n.length&&(null===(e=Array.from(n).find((function(e){return e!==t})).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i,o=this.getAttribute("data-fid");jQuery(t).fadeOut("fast",(function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(t).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(i=document.getElementById("other_input_"+o))&&(i.value=0),jQuery("#other_button_"+o).fadeIn("fast"))})),Di()}function Bt(){var e,t,r,n;(e=jQuery(this)).is(":checked")&&(t=function(){setTimeout((function(){e.prop("checked",!1)}),0)},r=function(){e.off("mouseup",n)},n=function(){t(),r()},e.on("mouseup",n),e.one("mouseout",r))}function Ct(){this.value===a.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function qt(e){return C(B("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=a.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,r=t.parentNode,n=jQuery(this).closest("li.form-field"),i=n.data("fid");if("divider"===n.data("ftype")){var o=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;o.forEach((function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)})),l&&(e=qt(++l))}return r.classList.contains("frm-section-collapsed")||r.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=a.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",i),Te(),F(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e,t;null!==(e=document.querySelector(".frm-field-group-hover-target"))&&(e.classList.add("frm-selected-field-group"),(t=document.createElement("div")).classList.add("frm-delete-field-groups","frm_hidden"),document.body.appendChild(t),t.click())}function Dt(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_"+we(),r=document.createTextNode("");We(r);var n=jQuery(r).closest("li").get(0);n.classList.add("frm_hidden");var i=n.querySelector("ul");i.id=t,jQuery(e.closest("li.frm_field_box")).after(n);var o=ae(jQuery(e)),a=[],l=[],s=o.length,d={},c=0;jQuery(n).on("frm_added_duplicated_field_to_row",(function(e,t){if(d[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++c)){var r=jQuery(i),o=ae(r);l.forEach((function(e){e.remove()}));for(var f=0;f0&&ir(Vt(t)))&&l>=12&&(l=Math.floor(12/t)),s=0;s',""),t);e.prepend(r),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",(function(){mr(document.getElementById("frm-field-group-message"))}))}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var r=e.ctrlKey||e.metaKey,n=e.shiftKey,i=t.classList.contains("frm-selected-field-group"),o=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=_r();if(t){var r=t.closest("ul");if(r&&1===ae(jQuery(r)).length)return r.classList.add("frm-selected-field-group"),jQuery(r)}return jQuery()}(),a=o.length;if(r||n){var l=_r();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),r){if(i)return--a,t.classList.remove("frm-selected-field-group"),void pr(a);++a}else n&&!i&&(++a,function(e,t){var r,n,i=t.closest(".edit_field_type_divider");if(i&&(r=i.closest("ul").closest(".frm_field_box.ui-draggable")),e.parent().index()=2||1===e&&ae(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e,t,r,n,i;if(null!==(e=document.getElementById("frm_field_multiselect_popup")))return e.classList.toggle("frm-unmergable",!hr()),e;(e=d()).id="frm_field_multiselect_popup",hr()||e.classList.add("frm-unmergable"),(t=d()).classList.add("frm-merge-fields-into-row"),t.textContent=B("Merge into row","formidable"),(r=document.createElement("a")).style.marginLeft="5px",r.classList.add("frm_icon_font","frm_arrowdown6_icon"),r.setAttribute("href","#"),t.appendChild(r),e.appendChild(t),(n=d()).classList.add("frm-multiselect-popup-separator"),e.appendChild(n),(i=d()).classList.add("frm-delete-field-groups"),i.appendChild(Rt("frm_trash_svg")),e.appendChild(i),document.getElementById("post-body-content").appendChild(e),jQuery(e).hide().fadeIn()}():yr(),Me()}function gr(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",gr),yr()}function yr(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function hr(){var e,t,r,n,i;if(1===(r=(e=document.querySelectorAll(".frm-selected-field-group")).length))return!1;for(t=0,n=0;n6)return!1}return!0}function vr(e){var t;null===e.originalEvent.target.closest("#frm_field_group_popup")&&(e.originalEvent.target.classList.contains("frm-custom-field-group-layout")||(t=Pt(br(),document.querySelector(".frm-selected-field-group").firstChild),this.appendChild(t)))}function br(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each((function(){e+=ae(jQuery(this)).length})),e}function jr(){var e,t,r,n;n=[],jQuery(".frm-selected-field-group > li.form-field").each((function(){n.push(this.dataset.fid)})),t=function(e){return function(t){t.preventDefault(),function(e){e.forEach((function(e){Qr(e)}))}(e)}}(e=n),null!==(r=document.getElementById("frm_field_multiselect_popup"))&&r.remove(),this.setAttribute("data-frmverify",qt(e.length)),F(this);var i=document.getElementById("frm-confirmed-click");null==i||i.removeAttribute("data-deletefield"),jQuery(i).on("click",t),jQuery("#frm_confirm_modal").one("dialogclose",(function(){jQuery(i).off("click",t)}))}function wr(){Qr(this.getAttribute("data-deletefield"))}function Qr(e){var t=jQuery("#frm_field_id_"+e);xr(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each((function(){xr(this.getAttribute("data-fid"))})),xn()}function xr(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,r=jQuery(document.getElementById("frm_field_id_"+e)),n=jQuery("#frm-single-settings-"+e);n.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach((function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").appendChild(e)}))}(n),n.remove(),r.fadeOut("slow",(function(){var e,t=r.closest(".start_divider"),n=r.data("type"),i=r.siblings("li.form-field");if(i.length||(r.is(".edit_field_type_end_divider")?i.length=r.closest("li.form-field").siblings():e=r.closest("ul.frm_sorting").parent()),r.remove(),"break"===n?Tr():"product"===n&&(Be(),nt()),i.length?le(i.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(j.get(0).childElementCount>1)return!1;var e=j.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var o=document.getElementById("frm_form_editor_container");o.classList.remove("frm-has-fields"),o.classList.add("frm-empty-fields")}else t.length&&En(t);R()})),r.length&&wp.hooks.doAction("frm_after_delete_field",r[0])}})}function Er(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_logic_row_"+e).querySelectorAll(".frm_logic_row");return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_logic_row",form_id:t,field_id:e,nonce:frmGlobal.nonce,meta_name:kr(r,"frm_logic_"+e+"_"),fields:tt()},success:function(t){jQuery(document.getElementById("logic_"+e)).fadeOut("fast",(function(){var r=document.getElementById("frm_logic_row_"+e);r.insertAdjacentHTML("beforeend",t);var n=r.querySelector(".frm_logic_row:last-child .frm-logic-rule-text");n&&(n.textContent=r.dataset.ruleText);var i=r.closest(".frm_logic_rows");i.style.height="auto",jQuery(i).fadeIn("fast")}))}}),!1}function kr(e,t,r){return e.length?parseInt(e[e.length-1].id.replace(t,""),10)+1:void 0!==r?r:0}function Lr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_watch_lookup_block_"+e).children;return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_watch_lookup_row",form_id:t,field_id:e,row_key:kr(r,"frm_watch_lookup_"+e+"_"),nonce:frmGlobal.nonce},success:function(t){var r,n=jQuery(document.getElementById("frm_watch_lookup_block_"+e));n.append(t),n.fadeIn("slow"),null===(r=document.getElementById("frm_watch_lookup_label_".concat(e)))||void 0===r||r.classList.remove("frm-force-hidden")}}),!1}function Sr(e){var t,r,n=jQuery(e).closest(".frm-single-settings").attr("data-fid"),i=jQuery(e).closest("ul").get(0).querySelectorAll(".field_"+n+"_option");for(t in i)if((r=i[t]).id!==e.id&&r.value===e.value&&"true"!==r.getAttribute("data-duplicate"))return!0;return!1}function Ar(){var e,t;null===this.getAttribute("data-value-on-load")&&(this.setAttribute("data-value-on-load",this.value),t=jQuery(this).closest(".frm-single-settings").attr("data-fid"),(e=document.createElement("input")).value=this.value,e.setAttribute("type","hidden"),e.setAttribute("name","optionmap["+t+"]["+this.value+"]"),this.parentNode.appendChild(e),void 0===S[t]&&(S[t]={}),S[t][this.value]=e),"true"===this.getAttribute("data-duplicate")&&(this.removeAttribute("data-duplicate"),Sr(this))?this.setAttribute("data-value-on-focus",this.getAttribute("data-value-on-load")):""===this.value&&a.new_option===this.getAttribute("data-value-on-focus")||this.setAttribute("data-value-on-focus",this.value)}function Ir(e){var t,r=e.closest(".frm_single_option");return e.parentElement.classList.contains("frm_single_option")?{newValue:r.querySelector('.frm_option_key input[type="text"]').value,newLabel:t=e.value}:(t=r.querySelector('input[type="text"]').value,{newValue:e.value,newLabel:t})}function Br(){var e,t,r,n,i,o,a,l,s,d,c,f,u=function(e){var t=function(e){var t,r,n=null!==(t=null===(r=e.closest(".frm-single-settings").querySelector(".frm_toggle_sep_values"))||void 0===r?void 0:r.checked)&&void 0!==t&&t,i=e.closest(".frm_single_option");return n&&e.parentElement.classList.contains("frm_single_option")?{oldValue:i.querySelector('.frm_option_key input[type="text"]').getAttribute("data-value-on-focus"),oldLabel:e.getAttribute("data-value-on-focus")}:{oldValue:e.getAttribute("data-value-on-focus"),oldLabel:i.querySelector('input[type="text"]').getAttribute("data-value-on-focus")}}(e),r=t.oldValue,n=t.oldLabel,i=Ir(e);return{oldValue:r,oldLabel:n,newValue:i.newValue,newLabel:i.newLabel}}(this),m=u.oldValue,_=u.oldLabel,p=u.newValue,g=u.newLabel;if(m!==p||_!==g){var y=this.closest(".frm-single-settings");if(t=y.getAttribute("data-fid"),e=this.getAttribute("data-value-on-load"),Sr(this))return this.setAttribute("data-duplicate","true"),void(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=e));for(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=p),s=[],rows=D.querySelectorAll(".frm_logic_row"),o=rows.length,a=0;a1)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(H(a.repeat_limit_min),this.value="")}function Kr(){var e=this.value;""!==e&&(e<1||e>200)&&(H(a.checkbox_limit),this.value="")}function Yr(e,t){jQuery(e).closest(".frm_field_box").find(".frm_"+t+"_form_row .frm_repeat_label").text(e.value)}function Xr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,r=document.getElementById("frm_show_selected_fields_"+e),n=document.getElementById("frm_show_selected_forms_"+e);jQuery(n).find("select").val(""),"form"===t?(n.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.removeChild(e.firstChild)}(r)):(r.style.display="none",n.style.display="none",wn(t,e))}function Zr(){var e,t;(e=en(this))&&(t=jQuery(this).closest(".frm_single_option"),function(e,t,r){var n,i,o,a,l,s,c=r.data("optkey"),f=pn(e),u=jQuery('label[for="field_'+t+"-"+c+'"]'),m="field_options[options_"+e+"]["+c+"]",_=jQuery('input[name="'+m+'[label]"]');if(u.length<1)return rn(e),void((o=r.find('input[name^="default_value_"]')).is(":checked")&&_.length>0&&jQuery('select[name^="item_meta['+e+']"]').val(_.val()));if(a=u.children("input"),n=_.length<1?(_=jQuery('input[name="'+m+'"]')).val():f?jQuery('input[name="'+m+'[value]"]').val():_.val(),!(_.length<1)){if(i=u[0].childNodes,gn(e))l=function(e,t,r){var n,i,o;return(n=e.find("img"))&&(i=n.attr("src")),o=yn(t),fn(t),_n(r.val(),o,i)}(r,e,_),(s=u.find(".frm_image_option_container")).length>0?s.replaceWith(l):(i[i.length-1].nodeValue="",u.append(l));else{var p=!1;i.forEach((function(t,r){if(!1===p)"INPUT"===t.tagName&&(p=r);else if(r===p+1){var n="";!function(e){var t=document.getElementsByName("field_options[image_options_"+e+"]"),r=Array.from(t).find((function(e){return e.checked&&"buttons"===e.value}));return void 0!==r}(e)?t.nodeValue=" "+_.val():(n=d({className:"frm_label_button_container",text:" "+_.val()}),u[0].replaceChild(n,t))}else u[0].removeChild(t)}))}a.val(n),o=r.find('input[name^="default_value_"]'),a.prop("checked",!!o.is(":checked"))}}(e.fieldId,e.fieldKey,t))}function en(e){var t;return!!(t=jQuery(e).closest(".frm_sortable_field_opts")).length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function tn(e){var t,r=document.getElementById("field_options_image_size_"+e),n="";return null!==r&&""!==(t=r.value)&&(n=t),n}function rn(e){var t,r,n,i,o,a=jQuery('[name^="item_meta['+e+']"]');if(!(a.length<1)){if(a.is("select"))null!==(i=document.getElementById("frm_placeholder_"+e))&&""===i.value?sn(a[0],{sourceID:e}):sn(a[0],{sourceID:e,placeholder:i.value});else{r=cn(e),jQuery("#field_"+e+"_inner_container > .frm_form_fields").html(""),o=en(jQuery("#frm_delete_field_"+e+"-000_container"));var l=jQuery("#field_"+e+"_inner_container > .frm_form_fields"),s=gn(e),d=s?tn(e):"",c=s?"frm_image_option frm_image_"+d+" ":"",f=Fo(e);for(n="hidden"===a.attr("type")?a.data("field-type"):a.attr("type"),t=0;t=0;a--){var u;l=d[a];var m=null===(u=document.getElementById("frm_field_"+e+"_opts").querySelector('.frm_option_key input[type="text"]'))||void 0===u?void 0:u.value;m||(m=l),s=i.querySelector('option[value="'+m+'"]');var _=nn(e,l),p=_.newValue,g=_.newLabel,y=document.querySelectorAll("#frm_field_"+e+"_opts input[data-value-on-focus]"),h=Array.from(y).find((function(e){return e.value===l}));if(h){var v=h.dataset.valueOnFocus;if(v&&i.querySelector('option[value="'+v+'"]'))continue}an(i,s,p,g)}null!==(s=i.querySelector('option[value=""]'))&&i.prepend(s)}}function an(e,t,r,n){null!==t||e.querySelector('option[value="'+r+'"]')||((t=frmDom.tag("option",{text:n})).value=r),e.prepend(t)}function ln(e,t,r,n,i,o){var a,l="",s=-1!==t.key.indexOf("other"),d="field_"+n+"-"+t.key,c="scale"===e?"radio":e;return a='',this.getSingle=function(){return""!==(l=wp.hooks.applyFilters("frm_admin.build_single_option_template",l,{opt:t,type:e,fieldId:r,classes:o,id:d}))?l:'
                      "+(s?a:"")+"
                      "},this.getSingle()}function sn(e,t){if(null!==e){var r=t.sourceID,n=t.placeholder,i=Fo(r),o=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=cn(r),l=void 0!==n,s=0;s0||d[t].name.indexOf("[value]")>0||d[t].name.indexOf("[image]")>0||d[t].name.indexOf("[price]")>0||(i=r=d[t].value,o=d[t].name.replace("field_options[options_"+e+"][","").replace("[label]","").replace("]",""),m&&(n=d[t].name.replace("[label]","[value]"),r=jQuery('input[name="'+n+'"]').val()),u&&(i=_n(i,f,un(d[t]),fn(e))),a={saved:r,label:i=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",i,e,d[t],u),checked:(l=d[t].id,field=jQuery("#"+l),0!==field.length&&(checkbox=field.siblings("input[type=checkbox]"),checkbox.length&&checkbox.prop("checked"))),key:o},c&&(n=d[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'+n+'"]').val()),s.push(a));return s}function fn(e){var t=document.getElementById("frm-single-settings-"+e);return null===t?"radio":t.classList.contains("frm-type-checkbox")?"checkbox":"radio"}function un(e){var t,r=jQuery(e).siblings(".frm_image_preview_wrapper");return r.length&&(t=r.find("img")).length?t.attr("src"):""}function mn(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce((function(e,t){var r=frmDom.cleanNode(t);return"#text"===r.nodeName?e+r.textContent:e+r.outerHTML}),"");return t!==e?mn(t):t}function _n(e,t,r,n){var i,o,l,c=e;return c=mn(c),r?o=m({src:r,alt:c}):(o=d({className:"frm_empty_url"})).innerHTML=a.image_placeholder_icon,i=t?" frm_label_with_image":"",(l=s("span",{className:"frm_text_label_for_image_inner"})).innerHTML=c,s("span",{className:"frm_image_option_container"+i,children:[o,s("span",{className:"frm_text_label_for_image",child:l})]})}function pn(e){return hn("separate_value_"+e)}function gn(e){for(var t=!1,r=document.getElementsByName("field_options[image_options_"+e+"]"),n=0;n=0&&(r.splice(t,1),e.val(r),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function An(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function In(){jQuery(".frm-hide-empty").each((function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()}))}function Bn(e){e.preventDefault(),function(e,t,r){var n=document.getElementById(e.getAttribute("data-open")),i=jQuery(e).closest("p,ul"),o=void 0!==t;if(i.hasClass("frm-open"))i.removeClass("frm-open"),n.classList.add("frm_hidden");else{if(o||(t=Ri(e)),null!==t){if(!o){var a=r.key;"Enter"!==a&&" "!==a&&t.focus()}i.after(n),n.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===n.id.indexOf("frm-calc-box")&&Ze(n,!0)}i.addClass("frm-open"),n.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",n,e)}}(this,void 0,e)}function Cn(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'+this.parentNode.id+'"]').closest(".frm-open").removeClass("frm-open")}function qn(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")}))}function Nn(){var e,t,r,n,i,o,a,l=this.getAttribute("data-frmchange").split(",");for(e=0;e',r)),o.innerHTML=c,e.dataset.upsellImage&&o.appendChild(m({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),a.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,a),s.style.display="none",i.style.display=_,l.style.display="block"===_?"inline-block":_,o.style.display=u,a.style.display="block"===f?"inline-block":f}function Kn(e){void 0===e&&(e=""),function(e){var t,r=jQuery(e+" :not(.frm_has_shortcodes) .frm_not_email_message, "+e+" :not(.frm_has_shortcodes) .frm_not_email_to, "+e+" :not(.frm_has_shortcodes) .frm_not_email_subject");for(t=0;t').before('')}function Yn(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery("."+e+"_action_box").hide(),"redirect"===t?jQuery("."+e+"_action_redirect_box."+e+"_action_box").fadeIn("slow"):"page"===t?jQuery("."+e+"_action_page_box."+e+"_action_box").fadeIn("slow"):jQuery("."+e+"_action_message_box."+e+"_action_box").fadeIn("slow")}function Xn(e){if(m=e.target,p=jQuery(m),g=p.closest(".frm_form_action_settings"),(y=g.find(".widget-inside")).find("p, div, table").length||((_=g.find(".widget-top")).on("frm-action-loaded",(function(){p.trigger("click"),g.removeClass("open"),y.hide()})),_.trigger("click"),0)){var t=e.target.closest(".frm_form_action_settings"),r=t.querySelectorAll(".wp-editor-area");r.length&&r.forEach((function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)}));var n=jQuery(t).clone(),i=n.attr("id").replace("frm_form_action_",""),o=Zn(i);n.find(".frm_action_id, .frm-btn-group").remove(),n.find('input[name$="['+i+'][ID]"]').val(""),n.find(".widget-inside").hide(),n.find("input[type=text], textarea, input[type=number]").prop("defaultValue",(function(){return this.value})),n.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",(function(){return this.checked}));var a=new RegExp("\\["+i+"\\]","g"),l=new RegExp("_"+i+'"',"g"),s=new RegExp("-"+i+'"',"g"),c=new RegExp('"'+i+'"',"g"),f=n.html().replace(a,"["+o+"]").replace(l,"_"+o+'"');f=f.replace(s,"-"+o+'"').replace(c,'"'+o+'"');var u=d({id:"frm_form_action_"+o,className:n.get(0).className});u.setAttribute("data-actionkey",o),u.innerHTML=f,u.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach((function(e){"string"==typeof e.className&&(e.className=e.className.replace(i,o)),e.id=e.id.replace(i,o)})),u.classList.remove("open"),document.getElementById("frm_notification_settings").appendChild(u),r.length&&(r.forEach((function(e){frmDom.wysiwyg.init(e)})),u.querySelectorAll(".wp-editor-area").forEach((function(e){frmDom.wysiwyg.init(e)}))),u.classList.contains("frm_single_on_submit_settings")&&u.querySelector("input.frm-page-search")&&bo(u),ao(),wp.hooks.doAction("frm_after_duplicate_action",u)}var m,_,p,g,y}function Zn(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_"+t)&&(t=Zn(++t)),t}function ei(){var e,t=jQuery(this).data("actiontype");if(!si(t)){var r=(e=kr(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_"+e)&&(e+=100),A>=e&&(e=A+1),A=e,e),n=k,i=document.createElement("div");i.classList.add("frm_single_"+t+"_settings");var o=document.getElementById("frm_notification_settings");o.appendChild(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:r,form_id:n,nonce:frmGlobal.nonce},success:function(e){Di(),i.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach((function(e){return e.classList.remove("open")}));var n=d();n.innerHTML=e;var a=n.querySelector(".widget-top");Array.from(n.children).forEach((function(e){return o.appendChild(e)})),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_"+r);l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),li(t),Kn("#frm_form_action_"+r),ao(),bo(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function ti(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",Ao(t,"input")}function ri(e){e.on("Change",(function(){!function(e){var t,r;(t=document.querySelector(".frm-single-settings:not(.frm_hidden)"))&&null!==(r=t.querySelector(".wp-editor-wrap"))&&r.classList.contains("tmce-active")&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)}))}function ni(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===ni.prototype.endMarker&&(ni.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var r=null!==e?e.parentElement.classList:"";null!==e&&(r.contains("frm_field_box")||r.contains("divider_section_only"))&&t.fragment.appendChild(e)},this.moveFields=function(){w.insertBefore(t.fragment,ni.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function ii(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_"+e+" .frm_"+t+"_row").fadeIn("slow"),jQuery(this).fadeOut("slow")}function oi(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),r=".frm_"+t+"_row",n=".frm_"+t+"_button";jQuery(e).find(n).fadeIn("slow"),jQuery(e).find(r).fadeOut("slow",(function(){jQuery(e).find(r+" input").val("")}))}function ai(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function li(e){var t,r,n=document.querySelectorAll(".frm_"+e+"_action");si(e)?(t=n,r=di(e)>0,t.forEach((function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),r&&e.classList.add("frm_already_used")}))):n.forEach((function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))}))}function si(e){var t=function(e){return jQuery(".frm_single_"+e+"_settings").length}(e)>=di(e),r={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,r)}function di(e){return parseInt(jQuery(".frm_"+e+"_action").data("limit"),10)}function ci(){var e=a.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" "+a.edit_action_text),H(e)}function fi(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),r=document.getElementById("form_id").value,n=document.getElementById("frm_logic_row_"+e),i=kr(n.querySelectorAll(".frm_logic_row"),"frm_logic_"+e+"_"),o=d({id:"frm_logic_"+e+"_"+i,className:"frm_logic_row frm_hidden"});return n.appendChild(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:r,meta_name:i,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_"+e)).fadeOut("slow",(function(){o.insertAdjacentHTML("beforebegin",t),o.remove(),jQuery(n).parent(".frm_logic_rows").fadeIn("slow")}))}}),!1}function ui(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,r=jQuery(t).val();if(""===r||"checkbox"===r)return!1;e.each((function(){if(jQuery(this).val()===r&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),H(a.field_already_used),!1}))}function mi(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function _i(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function pi(){var e,t,r=document.getElementById("frm_posttax_rows").childNodes,n=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),a=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:a,nonce:frmGlobal.nonce},success:function(n){for(i=0;i');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),i=jQuery(document.getElementById(r+"_show_exclude")).is(":checked")?1:0,o=jQuery('select[name$="[post_category]['+r+'][field_id]"]').val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:o,show_exclude:i,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_"+r)).replaceWith(e)}})}}function ji(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function wi(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery("."+r).hide():(jQuery("."+r).show(),jQuery(".hide_"+r+"_"+t).hide())}function Qi(){zn()||($n(this),Fn(document.querySelector(".frm_form_settings")))}function xi(e){return e.preventDefault(),Ei(jQuery(this),this.getAttribute("data-code")),!1}function Ei(e,t){var r=!1,i=e;if("object"===n(e)){if(e.hasClass("frm_noallow"))return;void 0===(i=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(i=e.closest("div").attr("class"))&&(i=i.split(" ")[1])}if(void 0===i){var o=document.activeElement;"search"===o.type?null===(i=o.id.replace("-search-input","")).match(/\d/gi)&&(i=(o=jQuery(".frm-single-settings:visible ."+i)).attr("id")):i=o.id}i&&(r=jQuery("#wp-"+i+"-wrap.wp-editor-wrap").length>0);var a=jQuery(document.getElementById(i));if(void 0===e.attr("data-shortcode")&&(!a.length||void 0===a.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="["+t+"]")}if(r&&(wpActiveEditor=i),!a.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:i,success:function(e){if(r){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else ki(a,e)}})}else t=function(e,t,r){return"object"===n(t)&&t instanceof jQuery&&0===r[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,a),r?send_to_editor(t):ki(a,t);return!1}function ki(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{obj=e[0];var r=obj.selectionEnd;t=function(e,t,r,n){var i=e.data("sep");if(void 0===i)return t;var o=e.val();if(!o.trim().length)return t;var a=new RegExp(i+"\\s*$"),l=new RegExp("^\\s*"+i);return o.substr(0,r).trim().length&&!1===a.test(o.substr(0,r))&&(t=i+t),o.substr(n,o.length).trim().length&&!1===l.test(o.substr(n,o.length))&&(t+=i),t}(e,t,obj.selectionStart,r),obj.value=obj.value.substr(0,obj.selectionStart)+t+obj.value.substr(obj.selectionEnd,obj.value.length);var n=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Li(t)){var r=e.value.split(" ").filter(Li);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter((function(e){return(e=e.trim()).length&&!t.includes(e)}));return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(obj,t),obj.focus(),obj.setSelectionRange(n,n)}Hn(e)}function Li(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Si(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),Ao(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),Ao(e,"change"))}function Ai(){var e,t,r=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",n=document.getElementById("frm-is-condition").value,i=document.getElementById("frm-text-condition").value,o=document.getElementById("frm-insert-condition");t="if "+(e=(r=document.getElementById(r)).options[r.selectedIndex].value)+" "+n+'="'+i+'"]',o.setAttribute("data-code",t+a.conditional_text+"[/if "+e),o.innerHTML="["+t+"[/if "+e+"]"}function Ii(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($i(),"use"===(t=Gi(e)).tagName?-1===(t=t.firstElementChild).getAttributeNS("http://www.w3.org/1999/xlink","href").indexOf("frm_close_icon")&&Ti(t,"nofocus"):t.classList.contains("frm_close_icon")||Ti(t,"nofocus"))}function Bi(e){e.preventDefault(),e.stopPropagation(),Ti(this)}function Ci(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||qi()}}(e.target)}function qi(e){var t;void 0===e&&(e=B("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:B("Save and Reload?","formidable"),content:(t=d(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:B("Save and Reload","formidable"),buttonType:"primary"});_(e,(function(){Hi()}));var t=frmDom.modal.footerButton({text:B("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Ni(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find((function(e){return"#frm_close_icon"===e.getAttribute("href")}));if(void 0===n)return;t=n.parentElement}else t=e;var i=t.getBoundingClientRect(),o=document.getElementById("frm_adv_info"),a=o.parentElement.getBoundingClientRect();o.style.top=i.top-a.top+32+"px",o.style.left=i.left-a.left-280+"px"}function Ti(e,r){var n=Ri(e),i=document.getElementById("frm_adv_info"),o=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&null===(o=e.getAttributeNS("http://www.w3.org/1999/xlink","href"))&&(o=e.getAttribute("href")),-1!==o.indexOf("frm_close_icon"))$i(i);else{if(Ni(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),i.setAttribute("data-fills",n.id),i.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=o.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==r&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach((function(r){!function(e,r){var n,i;n=a.contextualShortcodes[r+"Selector"],i=a.contextualShortcodes[r];var o,l=e.matches(n),s=function(e){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=t(e))){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw o}}}}(i);try{for(s.s();!(o=s.n()).done;){var d,c=o.value,f=null===(d=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'+c+'"]'))||void 0===d?void 0:d.closest("li");null==f||f.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,r)}))}(n)}}function Oi(e){return 0===a.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return a.contextualShortcodes.address.includes(r)||a.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),i=a.contextualShortcodes;return i.address.includes(t)?n.matches(i.addressSelector):n.matches(i.bodySelector)}(e)}function Di(){E||(E=1,window.addEventListener("beforeunload",Pi))}function Mi(){E=0}function Fi(){E=0}function Hi(){var e=document.getElementById("frm_submit_side_top");e.classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()}function Pi(e){E&&(e.preventDefault(),e.returnValue="")}function zi(e,t){var r={my:"top",at:"top+"+t,of:window};e.dialog("option","position",r)}function Ri(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;null!==r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Ri(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Gi(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Gi(r);return r}function $i(e){var t,r,n,i;if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){for(e.style.display="none",n=document.querySelectorAll(".frm-show-box.frm_close_icon"),t=0;t"+r.data.name+": "+r.data.msg+"

                      ":'

                      Imported '+r.data.name+"

                      ",e.find(".status").prepend(n),e.find(".status").show(),N.importQueue=jQuery.grep(N.importQueue,(function(e){return e!=t})),N.imported++,0===N.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(N.imported),e.find(".process-completed").show()):(e.find(".form-current").text(N.imported+1),Yi(e)))}))}function Xi(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function Zi(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function eo(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function to(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ro(e){var t,r,n=e.target.value;io(n),no.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function no(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each((function(){this.checked=!1,r.indexOf(this.value)>=0?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0})),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var i=t.data("count"),o=jQuery('input[name="frm_export_forms[]"]');"single"===i?(o.prop("multiple",!1),o.prop("checked",!1)):(o.prop("multiple",!0),o.prop("disabled",!1)),e.trigger("change")}function io(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach((function(e){e.classList.remove("frm_hidden")})):t.forEach((function(e){e.classList.add("frm_hidden")})),ko.call(document.querySelector(".frm-auto-search")))}}function oo(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ao(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function lo(e){e.preventDefault(),fo(this,"frm_multiple_addons")}function so(e){e.preventDefault(),fo(this,"frm_activate_addon")}function co(e){e.preventDefault(),fo(this,"frm_install_addon")}function fo(e,t){var r,n,i,o;jQuery(".frm-addon-error").remove(),n=(r=jQuery(e)).attr("rel"),i=r.parent(),o=i.parent().find(".addon-status-label"),r.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:t,nonce:frmGlobal.nonce,plugin:n},success:function(e){var n,a,l;"string"!=typeof(e=null!==(n=null===(a=e)||void 0===a?void 0:a.data)&&void 0!==n?n:e)&&"string"==typeof e.message&&(void 0!==e.saveAndReload&&(l=e.saveAndReload),e=e.message);var s=po(e);s?go(s,i,r):(mo(e,r,o,i,l,t),wp.hooks.doAction("frm_update_addon_state",e))},error:function(){r.removeClass("frm_loading_button")}})}function uo(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:a.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,i,o=po(e=null!==(n=null===(i=e)||void 0===i?void 0:i.data)&&void 0!==n?n:e);o?go(o,r,t):mo(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}function mo(e,t,r,n,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",l=document.querySelectorAll(".frm-addon-status");l.forEach((function(t){t.textContent=e,t.style.display="block"})),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach((function(e){e.style.display="none"})),jQuery("#frm_upgrade_modal h2").hide(),jQuery("#frm_upgrade_modal .frm_lock_icon").addClass("frm_lock_open_icon"),jQuery("#frm_upgrade_modal .frm_lock_icon use").attr("xlink:href","#frm_lock_open_icon");var s={frm_activate_addon:{class:"frm-addon-active",message:a.active},frm_deactivate_addon:{class:"frm-addon-installed",message:a.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:a.not_installed}};s.frm_install_addon=s.frm_activate_addon;var c=r[0];c&&(c.textContent=s[o].message);var f=n[0].parentElement;f.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),f.classList.add(s[o].class),t[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(i)&&l.forEach((function(e){var t=null!==e.closest("#frm_upgrade_modal");e.appendChild(function(e,t){var r=[_o(e)];return t&&r.push(function(){var e=document.createElement("a");return e.setAttribute("href","#"),e.classList.add("button","button-secondary","frm-button-secondary","dismiss"),e.textContent=B("Close","formidable"),e}()),d({className:"frm-save-and-reload-options",children:r})}(i,t))}))}function _o(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=B("Save and Reload","formidable"),t.addEventListener("click",(function(){var t,r;"form_builder"===e?Hi():"settings"===e&&null!==(t=document.getElementById("form_settings_page"))&&null!==(r=t.querySelector("form.frm_form_settings"))&&(E=0,r.submit())})),t}function po(e){return"string"!=typeof e&&(void 0===e.success||!e.success)&&(e.form&&jQuery(e.form).is("#message")?{message:jQuery(e.form).find("p").html()}:e)}function go(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",uo)):(t.append('

                      '+e.message+"

                      "),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function yo(){vo()}function ho(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",(function(){n.addClass("frm_hidden")}))}(0,0,e)}function vo(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function bo(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function jo(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),Qo(t,r,this)}function wo(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),Qo(this,t,r)}function Qo(e,t,r){var n=function(e){var t,r,n={},i=e.elements;for(r=0;r=0||Lo(l,n)?(s&&Oi(o[e])&&o[e].classList.remove("frm_hidden"),o[e].classList.add("frm-search-result")):(o[e].classList.add("frm_hidden"),o[e].classList.remove("frm-search-result"))}(t=document.querySelector("#frm-insert-fields"))&&t.querySelectorAll(":scope > .frm-with-line").forEach((function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every((function(e){return e.classList.contains("frm_hidden")}));e.classList.toggle("frm_hidden",n)}})),jQuery(this).trigger("frmAfterSearch")}function Lo(e,t){return"s"!==t&&"s"!==e[e.length-1]&&(e+"s").indexOf(t)>=0}function So(e){e.stopPropagation()}function Ao(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Io(e,t){var r,n=new XMLHttpRequest,i="string"==typeof e?e:Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(i),n}function Bo(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Co(e){jQuery(e).css("visibility","hidden")}function qo(e){jQuery(e).css("visibility","visible")}function No(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="550px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function To(e,t){if("#"===t){var r=document.getElementById(e),n=r.style.display;r.style.display="none"===n?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Oo(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Do(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Mo(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def"))}function Fo(e){var t=document.getElementById("frm_field_id_"+e);return null!==t&&"product"===t.getAttribute("data-type")}function Ho(){var t=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},r=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},n=[1,2,3,4,5,6,7,8,9,10,11,12].map((function(e){return"frm"+e})),i=["first","middle","last"];document.addEventListener("change",(function(o){o.target.matches(".frm_name_layout_dropdown")&&function(o){var a,l=o.target.value.split("_"),s=o.target.dataset.fieldId,d=document.querySelector("#field_"+s+"_inner_container .frm_combo_inputs_container"),c=(a=l.length,"frm"+parseInt(12/a));i.forEach((function(t){var i,o=d.querySelector('[data-sub-field-name="'+t+'"]');o&&(o.classList.add("frm_hidden"),(i=o.classList).remove.apply(i,e(n)),r(s,t,o))})),l.forEach((function(e){var r=t(s,e);r&&(r.classList.remove("frm_hidden"),r.classList.add(c),d.append(r))})),i.forEach((function(e){var t=document.querySelector(".frm_sub_field_options-"+e+'[data-field-id="'+s+'"]');t&&(t.classList.add("frm_hidden"),r(s,e+"_options",t))})),l.forEach((function(e){var r=t(s,e+"_options");r&&r.classList.remove("frm_hidden")}))}(o)}),!1)}function Po(e,t){var r,n,i,o=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach((function(e,t){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(i=n.getAttributeNS("http://www.w3.org/1999/xlink","href")||n.getAttribute("href"))&&(o=!0),"#frm_save_icon"===i&&(a=!0))})),o||r.prepend(b.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(b.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function zo(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\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(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var i=c({className:"frm-wait frm_spinner"});i.style.visibility="visible",i.style.float="none",i.style.width="unset",n.parentElement.insertBefore(i,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:t.serialize()+"&action=frm_forms_preview"}).done((function(e){if(-1!==jQuery(e).find(".frm_message").text().trim().indexOf("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(c(B("Thank you for signing up!","formidable")))}else ho("invalid")}))}}else ho("invalid");else ho("empty")}function Ro(e){if(D||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||e.target.parentElement&&e.target.parentElement.classList.contains("frm-show-box"))){var t=document.getElementById("frm_adv_info");t&&(t.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===t.style.display||$i(t))}}return{init:function(){var t,r,n,i,o,a,l;!function(){jQuery(document).on("click","#frm-add-my-email-address",(function(e){e.preventDefault(),zo()}));var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",(function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}}))}}(),r=document.querySelector(".frm-admin-footer-links"),n=null!==(t=document.querySelector(".frm_page_container"))&&void 0!==t?t:document.getElementById("wpbody-content"),r&&n&&(n.appendChild(r),r.classList.remove("frm_hidden")),N={},jQuery(".wp-admin").on("click",(function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")})),jQuery("#frm_bs_dropdown:not(.open) a").on("click",Lt),void 0===k&&(k=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach((function(e){_(e,St)})),frmAdminBuild.inboxBannerInit(),j.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=d({className:"frm_warning_style",text:B("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),i=function(){n.reduce((function(e,t){return t.checked?e+1:e}),0)>=10?(t.classList.remove("frm_hidden"),n.forEach((function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)}))):t.classList.add("frm_hidden")};i(),n.forEach((function(e){e.addEventListener("change",(function(e){e.target.checked?i():(t.classList.add("frm_hidden"),n.forEach((function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1})))}))}))}}}(),bo(),jQuery("[data-frmprint]").on("click",(function(){return window.print(),!1}))),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",wi),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach((function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)}))}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",(function(t){return e(t.target)}))}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),o=document.getElementById("frm_confirm_modal"),a=!1,l=!1,jQuery(o).on("click","[data-deletefield]",wr),jQuery(o).on("click","[data-removeid]",G),jQuery(o).on("click","[data-trashtemplate]",Eo),i.on("click",".frm_remove_tag, .frm_remove_form_action",G),i.on("click","a[data-frmverify]",M),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",z),i.on("change","input[data-frmhide], input[data-frmshow]",z),i.on("click",".widget-top,a.widget-action",$),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",(function(){jQuery(this).off("mouseenter.frm"),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(this).tooltip("show")})),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(document).on("click","#doaction, #doaction2",(function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-"+t),n=document.getElementById("confirm-bulk-delete-"+t);if(null!==r&&null!==n){if(a=this,!l&&"bulk_delete"===r.value)return e.preventDefault(),F(n),!1}else a=!1})),jQuery(document).on("click","#frm-confirmed-click",(function(e){if(!1!==a&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),l=!0,a.click(),!1):void 0})),function(){var e=No("#frm_upgrade_modal");function t(t){var r,n,i;if((r=t.target).classList){var o=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var a=r.options[r.selectedIndex];a&&a.dataset.upgrade&&(r=a)}if(!r.dataset.upgrade){var l=r.closest("[data-upgrade]");if(!l){if(!(l=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=l}if(o)wp.hooks.doAction("frm_show_expired_modal",r);else{var s=r.dataset.upgrade;if(s&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),c=d.querySelector(".frm_lock_icon");c&&(c.style.display="block",c.classList.remove("frm_lock_open_icon"),c.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",u=document.getElementById(f);u&&u.remove(),r.dataset.image&&(c&&(c.style.display="none"),c.parentNode.insertBefore(m({id:f,src:frmGlobal.url+"/images/"+r.dataset.image}),c));var _=d.querySelector(".license-level");_&&(_.textContent=Vn(r)),Jn(r,"modal",s),d.querySelector(".frm_are_not_installed").style.display=r.dataset.image?"none":"inline-block",d.querySelector(".frm_feature_label").textContent=s,d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");n=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1"+r.getAttribute("data-medium")),null===(i=r.getAttribute("data-content"))&&(i=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1"+i),p.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}(),frmDom.util.documentOn("click","[data-modal-title]",Wn);var s=jQuery(document.getElementById("frm_shortcodediv"));s.length>0&&(jQuery("a.edit-frm_shortcode").on("click",(function(){return s.is(":hidden")&&(s.slideDown("fast"),this.style.display="none"),!1})),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",(function(){return s.slideUp("fast"),s.siblings("a.edit-frm_shortcode").show(),!1}))),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",(function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Un(this),V(this),!1})),V(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",(function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Fn(document.getElementById("posts-filter")),!1})),jQuery(".frm_select_box").on("click focus",(function(){this.select()})),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",ko),jQuery(document).on("focusin click",".frm-auto-search",So);var c=jQuery(".frm-auto-search");""!==c.val()&&c.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",co),jQuery(document).on("click",".frm-activate-addon",so),jQuery(document).on("click",".frm-solution-multiple",lo),jQuery("button, input[type=submit]").on("click",Oo),document.addEventListener("click",(function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout((function(){return n.click()}),0)}}}})),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",(function(e,t){var r,n,i=t.element;if("form"!==t.type)return e;var o=i.closest("tr");if(o)r=parseInt(o.querySelector(".column-id").textContent),n=o.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]})),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach((function(t,r){t.addEventListener("click",(function(){var t,r,n;r=(null===(t=this.querySelector("li"))||void 0===t?void 0:t.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(r,"-]"))).length<2||e(n).slice(1).forEach((function(e,t){e.classList.contains("frm_other_option")||Po(r,e)}))}))}));var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,(function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),g("small_screen_proceed",new FormData)}));var u=document.getElementById("frm_sale_banner"),p=null==u?void 0:u.querySelector(".dismiss");u&&(_(u,(function(e){e.target.closest(".dismiss")||(window.location.href=u.getAttribute("data-url"))})),p&&_(p,(function(){u.remove();var e=new FormData;g("sale_banner_dismiss",e)})))},buildInit:function(){var e,t,r;jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Ro),y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),h=document.getElementById("post-body-content"),v=jQuery(h),jQuery(".frm_field_loading").length&&Le(jQuery(".frm_field_loading").first().attr("id")),U("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",Mn),jQuery(".frm_submit_no_ajax").on("click",Pn),Rn(),jQuery("a.edit-form-status").on("click",kn),jQuery(".cancel-form-status").on("click",Ln),jQuery(".save-form-status").on("click",(function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1})),jQuery(".frm_form_builder form").first().on("submit",(function(){jQuery(".inplace_field").trigger("blur")})),ao(),Tr(),e=jQuery(w),t=document.getElementById("frm_form_editor_container"),e.on("click",".frm_add_logic_row",Er),e.on("click",".frm_add_watch_lookup_row",Lr),e.on("change",".frm_get_values_form",qr),e.on("change",".frm_logic_field_opts",bn),e.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Sn),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),j.on("click",".frm_clone_field",Ce),e.on("blur",'input[id^="frm_calc"]',Ye),e.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),e.on("change click","[data-changeme]",ot),e.on("click","input.frm_req_field",st),e.on("click",".frm_mark_unique",ct),e.on("change",".frm_repeat_format",Ur),e.on("change",".frm_repeat_limit",Jr),e.on("change",".frm_js_checkbox_limit",Kr),e.on("input",'input[name^="field_options[add_label_"]',(function(){Yr(this,"add")})),e.on("input",'input[name^="field_options[remove_label_"]',(function(){Yr(this,"remove")})),e.on("change",'select[name^="field_options[data_type_"]',Nr),jQuery(t).on("click",".frm-collapse-page",Or),jQuery(t).on("click",".frm-collapse-section",Fr),e.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Hr),e.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",(function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Hr.call(this,e))})),jQuery(t).on("show.bs.dropdown hide.bs.dropdown",ze),e.on("click",".frm_toggle_sep_values",yt),e.on("click",".frm_toggle_image_options",ht),e.on("click",".frm_remove_image_option",Et),e.on("click",".frm_choose_image_box",xt),e.on("change",".frm_hide_image_text",Qt),e.on("change",".frm_field_options_image_size",jt),e.on("click",".frm_multiselect_opt",kt),j.on("mousedown","input, textarea, select",At),j.on("click","input[type=radio], input[type=checkbox]",At),j.on("click",".frm_delete_field",Nt),j.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Dt),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Mt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Xt),jQuery(document).on("click",".frm-custom-field-group-layout",er),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rr),jQuery(document).on("click",".frm-break-field-group",lr),j.on("click","#frm_field_group_popup .frm_grid_container input",sr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",dr),jQuery(document).on("click",".frm-save-custom-field-group-layout",fr),j.on("click","ul.frm_sorting",ur),jQuery(document).on("click",".frm-merge-fields-into-row",vr),jQuery(document).on("click",".frm-delete-field-groups",jr),j.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',(function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Oe)})),j.on("mousemove","ul.frm_sorting",De),j.on("show.bs.dropdown",".frm-field-action-icons",He),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),e.on("click",".frm_single_option a[data-removeid]",It),e.on("mousedown",".frm_single_option input[type=radio]",Bt),e.on("focusin",".frm_single_option input[type=text]",Ct),e.on("click",".frm_add_opt",_t),e.on("change",".frm_single_option input",Zr),e.on("change",".frm_image_id",Zr),e.on("change",".frm_toggle_mult_sel",pt),j.on("click",".frm_primary_label",zr),j.on("click",".frm_description",Rr),j.on("click","li.ui-state-default:not(.frm_noallow)",$r),j.on("dblclick","li.ui-state-default",Vr),e.on("change",".frm_tax_form_select",Xr),e.on("change","select.conf_field",ft),e.on("change",".frm_get_field_selection",jn),e.on("click",".frm-show-inline-modal",Bn),e.on("keydown",".frm-show-inline-modal",(function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Bn.call(this,e))})),e.on("click",".frm-inline-modal .dismiss",Cn),jQuery(document).on("change","[data-frmchange]",Nn),document.addEventListener("click",qn),e.on("change",".frm_include_extras_field",et),e.on("change",'select[name^="field_options[form_select_"]',Do),jQuery(document).on("submit","#frm_js_build_form",Mi),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Di),nt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Mo),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Ar),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),frmDom.util.documentOn("click",".frm-show-field-settings",$r),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Wr),e.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',(function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var i=r.slice(n+1).find((function(e){return null!==e.offsetParent}));if(i){i.focus();var o=i.value.length;i.setSelectionRange(o,o)}}}(e.currentTarget)})),!1!==(r=No("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(w).on("click","a.frm-bulk-edit-link",(function(e){e.preventDefault();var t,n,i,o,a,l="",s=jQuery(this).closest("[data-fid]").data("fid"),d=pn(s),c=Fo(s);if(o=document.getElementById("frm_field_"+s+"_opts")){for(a=o.getElementsByTagName("li"),document.getElementById("bulk-field-id").value=s,t=0;t=a.length-1&&(document.getElementById("frm_bulk_options").value=l);return r.dialog("open"),!1}})),jQuery("#frm-update-bulk-opts").on("click",(function(){var e=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(e,document.getElementById("frm_bulk_options").value,r),Di())}))),In(),document.addEventListener("frm_added_field",In),Be(),Ho(),xn(),frmDom.util.documentOn("change",".frm_show_password_setting_input",(function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_"+t);r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)})),document.addEventListener("scroll",Ni,!0),document.addEventListener("change",Ci),document.querySelector(".frm_form_builder").addEventListener("mousedown",(function(e){e.shiftKey&&e.preventDefault()})),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",(function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Pr)}),9999)},settingsInit:function(){var e,t,r,n,i=jQuery(document.getElementById("frm_notification_settings"));i.on("click",".frm_email_buttons",ii),i.on("click",".frm_remove_field",oi),i.on("change",".frm_to_row, .frm_from_row",ai),i.on("change",".frm_tax_selector",bi),i.on("change","select.frm_single_post_field",ui),i.on("change","select.frm_toggle_post_content",mi),i.on("change","select.frm_dyncontent_opt",_i),i.on("change",".frm_post_type",pi),i.on("click",".frm_add_postmeta_row",hi),i.on("click",".frm_add_posttax_row",yi),i.on("click",".frm_toggle_cf_opts",ji),i.on("click",".frm_duplicate_form_action",Xn),jQuery(".frm_actions_list").on("click",".frm_active_action",ei),jQuery("#frm-show-groups, #frm-hide-groups").on("click",ti),ao(),jQuery("ul.frm_actions_list li").each((function(){li(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")})),jQuery(".frm_submit_settings_btn").on("click",Qi),Rn(),(e=jQuery(".frm_form_settings")).on("click",".frm_add_form_logic",fi),e.on("click",".frm_already_used",ci),document.addEventListener("click",(function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))})),e.on("mouseup","*:not(.frm-show-box)",Ro),jQuery(document.getElementById("no_save")).on("change",(function(){this.checked&&!0!==confirm(a.no_save_warning)&&jQuery(this).attr("checked",!1)})),jQuery('select[name="options[edit_action]"]').on("change",Yn),t=document.getElementById("logged_in"),jQuery(t).on("change",(function(){this.checked?qo(".hide_logged_in"):Co(".hide_logged_in")})),r=jQuery(document.getElementById("frm_cookie_expiration")),jQuery(document.getElementById("frm_single_entry_type")).on("change",(function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")}));var o=document.getElementById("single_entry");jQuery(o).on("change",(function(){this.checked?qo(".hide_single_entry"):Co(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")})),jQuery(".hide_save_draft").hide();var l=jQuery(document.getElementById("save_draft"));l.on("change",(function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")})),Hn(l),n=document.getElementById("editable"),jQuery(n).on("change",(function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Hn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))})),jQuery(document).on("change","#protect_files",(function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")})),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Sn),jQuery(document).on("submit",".frm_form_settings",Fi),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Di),bo(),jQuery(document).on("frm-action-loaded",Vi),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',(function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden")})),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-"+e.target.value+"]").forEach((function(e){e.classList.remove("frm_hidden")})),t.setAttribute("data-on-submit-type",e.target.value)}}))},panelInit:function(){var e,t,r,n;jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",xi),jQuery(document).on("change",".frm_insert_val",(function(){Ei(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")})),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Si),jQuery(document).on("keyup change",".frm-build-logic",Ai),Kn(),jQuery(document).on("frmElementAdded",(function(e,t){Kn(t)})),jQuery(document).on("mousedown",".frm-show-box",Bi),t=document.getElementById("form_settings_page"),r=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab"),(null!==t||r||D)&&jQuery(document).on("focusin","form input, form textarea",(function(e){var i,o,a,l;if(e.stopPropagation(),Ii(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(e.target).closest("#frm_adv_info").length)return;if(null!==t||D)i=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(i.show(),i.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0!==(l=this.id)&&-1===l.indexOf("-search-input")&&(jQuery("#frm-adv-info-tab").attr("data-fills",l.trim()),this.classList.contains("field_custom_html")&&(l="field_custom_html"),a=["after_html","before_html","submit_html","field_custom_html"],jQuery.inArray(l,a)>=0&&(jQuery(".frm_code_list li:not(.show_"+l+")").addClass("frm_hidden"),jQuery(".frm_code_list li.show_"+l).removeClass("frm_hidden")))):((o=jQuery(".frm-category-tabs li"))[0]&&(o[0].style.display=""),n.click(),i.hide(),i.siblings().show());else if(r){var s=new CustomEvent("frm_legacy_views_handle_field_focus");s.frmData={idAttrValue:this.id},document.dispatchEvent(s)}}})),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",(function(e){e.preventDefault()})),(e=jQuery("#frm_adv_info")).on("click",".subsubsub a.frmids",(function(e){Wi("frmids",e)})),e.on("click",".subsubsub a.frmkeys",(function(e){Wi("frmkeys",e)}))},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",(function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),i=t.cloneNode(!0),o=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault(),data={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce};var a="frm_inbox_slide_in"===t.id;a&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",(function(){return t.remove()}),{once:!0})),Io(data,(function(){if(!a)return"#"!==n?(window.location=n,!0):void Bo(t,(function(){var e;null!==o&&(i.classList.remove("frm-fade"),null===(e=i.querySelector(".frm-inbox-message-heading"))||void 0===e||e.removeChild(i.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss")),o.append(i)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),yo()),t.parentNode.removeChild(t)}))}))}})),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&yo()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",wo)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){var e;jQuery(document).on("click","[data-frmuninstall]",Ui),ao(),null!==(e=document.getElementById("licenses_settings"))&&jQuery(e).on("click",".edd_frm_save_license",Ji),jQuery(document).on("click","#frm-new-template button",jo),jQuery("#frm-dismissable-cta .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()}));var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",xo),document.querySelector(".frm_captchas").addEventListener("change",(function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)})),frmDom.util.documentOn("submit",".frm_settings_form",(function(){return E=0}));var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",(function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)}));var n=document.getElementById("payments_settings"),i=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');i&&i.forEach((function(e){e.addEventListener("change",(function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),i.forEach((function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}}))}}))}))},exportInit:function(){jQuery(".frm_form_importer").on("submit",Ki),jQuery(document.getElementById("frm_export_xml")).on("submit",Xi),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",Zi),jQuery('input[name="frm_import_file"]').on("change",eo),document.querySelector('select[name="format"]').addEventListener("change",ro),jQuery('input[name="frm_export_forms[]"]').on("click",oo),ao(),jQuery(".frm-feature-banner .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()})),io(to()),document.querySelector("#frm-export-select-all").addEventListener("change",(function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach((function(t){return t.checked=e.target.checked}))}))},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",(function(r){r.target===t&&Io({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},(function(){jQuery(e).fadeOut(400,(function(){e.remove()}))}))}))}},updateOpts:function(e,t,r){var n=pn(e),i=Fo(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:i,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_"+e+"_opts").innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),rn(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_"+e+"_"+t+" .frm_remove_tag").trigger("click")},downloadXML:function(e,t,r){var n=ajaxurl+"?action=frm_"+e+"_xml&ids="+t;null!==r&&(n=n+"&is_template="+r),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(r){var n=k,i=0;"summary"===e&&(i=j.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(pe(e,0,n,i),{field_options:t}),success:function(t){r(t),setTimeout((function(){Qn(),Ve(t,!0);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})}),10)},error:je})}))},confirmLinkClick:F,handleInsertFieldByDraggingResponse:ye,handleAddFieldClickResponse:Ie,syncLayoutClasses:le,moveFieldSettings:ni}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready((function(){var e;frmAdminBuild.init(),frmDom.bootstrap.setupBootstrapDropdowns((function(e){var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("
                        ","")).replaceAll("
                      • ",'
                      • ",""),t.outerHTML=r)})),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-toggle","dropdown")})),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'+t+'"]').prop("checked",!!e)},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_"+r).children(".frm_checkbox").children("label").children('input[name^="'+t+'"]').prop("checked",!!e)},window.frmGetFieldValues=function(e,t,r,n,i,o){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field="+t+"&field_id="+e+"&name="+i+"&t="+n+"&form_action="+jQuery('input[name="frm_action"]').val()+"&nonce="+frmGlobal.nonce,success:function(e){document.getElementById("frm_show_selected_values_"+t+"_"+r).innerHTML=e,"function"==typeof o&&o()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce="+frmGlobal.nonce+"&frm_skip_cookie=1"+t,success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,i=n/r*100;jQuery(".frm_admin_progress_bar").css("width",i+"%").attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout((function(){location.href="?page=formidable-entries&frm_action=list&form="+e+"&import-message=1"}),2e3))}})}})(); \ No newline at end of file diff --git a/js/formidable_blocks.js b/js/formidable_blocks.js index f6a7dd57bb..954846e136 100644 --- a/js/formidable_blocks.js +++ b/js/formidable_blocks.js @@ -1,2718 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./js/src/api/class-addon-api.js": -/*!***************************************!*\ - !*** ./js/src/api/class-addon-api.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAddonAPI: () => (/* binding */ frmAddonAPI) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAddonAPI = /*#__PURE__*/function () { - function frmAddonAPI() { - _classCallCheck(this, frmAddonAPI); - } - return _createClass(frmAddonAPI, null, [{ - key: "toggleAddonState", - value: - /** - * A function designed to toggle different addon states. - * - * @param {'frm_install_addon'|'frm_activate_addon'|'frm_multiple_addons'} action The addon state action type. - * @param {string} addon The addon path. Ex: formidable-views/formidable-views.php - * - * @return {Promise} The response from the server. - */ - function toggleAddonState(action, addon) { - return fetch(ajaxurl, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - action: action, - nonce: frmGlobal.nonce, - plugin: addon - }) - }).then(function (response) { - return response.json(); - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/api/index.js": -/*!*****************************!*\ - !*** ./js/src/api/index.js ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAddonAPI: () => (/* reexport safe */ _class_addon_api__WEBPACK_IMPORTED_MODULE_0__.frmAddonAPI) -/* harmony export */ }); -/* harmony import */ var _class_addon_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./class-addon-api */ "./js/src/api/class-addon-api.js"); - - -/***/ }), - -/***/ "./js/src/common/components/icon.js": -/*!******************************************!*\ - !*** ./js/src/common/components/icon.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ FormidableIcon) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Formidable Forms icon - */ -var Component = wp.element.Component; -var Dashicon = wp.components.Dashicon; -var FormidableIcon = /*#__PURE__*/function (_Component) { - function FormidableIcon() { - _classCallCheck(this, FormidableIcon); - return _callSuper(this, FormidableIcon, arguments); - } - _inherits(FormidableIcon, _Component); - return _createClass(FormidableIcon, [{ - key: "loadCustomSvgIcon", - value: function loadCustomSvgIcon() { - var icon = formidable_form_selector.icon; - if (icon.match(/frm_white_label_icon/)) { - return wp.element.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 20 20", - width: "120", - height: "120" - }, wp.element.createElement("path", { - d: "M18.1 1.3H2C.9 1.3 0 2 0 3V17c0 1 .8 1.9 1.9 1.9H18c1 0 1.9-.9 1.9-2V3.2c0-1-.8-1.9-1.9-1.9zM18 16.9H2a.2.2 0 0 1-.2-.3V3.4c0-.2 0-.3.2-.3H18c.1 0 .2.1.2.3v13.2c0 .2 0 .3-.2.3zm-1.6-3.6v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm0-3.8v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.4v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.4zm0-3.7v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm-9.9.5a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.7a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.8a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0z" - })); - } - return false; - } - }, { - key: "render", - value: function render() { - if (false !== this.loadCustomSvgIcon()) { - return this.loadCustomSvgIcon(); - } - if (formidable_form_selector.icon !== 'svg') { - return wp.element.createElement(Dashicon, { - icon: formidable_form_selector.icon - }); - } - return wp.element.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 599.68 601.37", - width: "120", - height: "120" - }, wp.element.createElement("path", { - className: "cls-1 orange", - d: "M289.6 384h140v76h-140z" - }), wp.element.createElement("path", { - className: "cls-1", - d: "M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z" - }), wp.element.createElement("path", { - className: "cls-1", - d: "M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z" - })); - } - }]); -}(Component); - - -/***/ }), - -/***/ "./js/src/common/components/itemselect.js": -/*!************************************************!*\ - !*** ./js/src/common/components/itemselect.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ItemSelect) -/* harmony export */ }); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -var _wp$i18n = wp.i18n, - __ = _wp$i18n.__, - sprintf = _wp$i18n.sprintf; - -var Component = wp.element.Component; -var SelectControl = wp.components.SelectControl; - -/** - * Displays a Select control with the specified items as options - * - */ -var ItemSelect = /*#__PURE__*/function (_Component) { - function ItemSelect() { - _classCallCheck(this, ItemSelect); - return _callSuper(this, ItemSelect, arguments); - } - _inherits(ItemSelect, _Component); - return _createClass(ItemSelect, [{ - key: "createOptions", - value: function createOptions(items, itemName) { - var options = items.map(function (item) { - return { - label: item.label, - value: item.value - }; - }); - return [{ - // translators: %s is the name of the item - label: sprintf(__('Select a %s', 'formidable'), itemName), - value: '' - }].concat(_toConsumableArray(options)); - } - }, { - key: "render", - value: function render() { - var _this$props = this.props, - selected = _this$props.selected, - items = _this$props.items, - onChange = _this$props.onChange, - itemName = _this$props.itemName, - itemNamePlural = _this$props.itemNamePlural, - label = _this$props.label, - help = _this$props.help; - if (!items || items.length === 0) { - return wp.element.createElement("p", { - className: "frm-block-select-no-items" - }, sprintf( - // translators: %s is the name of the item - __('Currently, there are no %s', 'formidable'), itemNamePlural)); - } - return wp.element.createElement(SelectControl, { - value: selected, - options: this.createOptions(items, itemName), - label: label, - help: help, - onChange: onChange - }); - } - }]); -}(Component); - -ItemSelect.defaultProps = { - itemName: 'item', - itemNamePlural: 'items' -}; -ItemSelect.propTypes = { - selected: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number)]), - //selected item - items: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().array), - //list of possible items - onChange: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func), - itemName: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), - //name for item in select label - itemNamePlural: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), - //plural of items, used in some labels - label: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), - help: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string) -}; - -/***/ }), - -/***/ "./js/src/common/utilities/values.js": -/*!*******************************************!*\ - !*** ./js/src/common/utilities/values.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ cssHideAdvancedSettings: () => (/* binding */ cssHideAdvancedSettings), -/* harmony export */ getSubDir: () => (/* binding */ getSubDir), -/* harmony export */ setTextAttribute: () => (/* binding */ setTextAttribute), -/* harmony export */ updateAttribute: () => (/* binding */ updateAttribute) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Updates an attribute with the specified new value - * - * @param {string} attributeName Name of block attribute to be updated - * @param {*} attributeValue Value of block attribute to be updated - * @param {Function} setAttributes Function to set the block attribute to be updated - */ -function updateAttribute(attributeName, attributeValue, setAttributes) { - setAttributes(_defineProperty({}, attributeName, attributeValue)); -} - -/** - * Sets text attribute for a shortcode from a key value pair - * - * @param {*} value Value of text attribute to be set - * @param {string} attributeName Name of text attribute to be set - * @return {string} String of the text attribute in the format " id=10" - */ -function setTextAttribute(value, attributeName) { - if (value) { - return " ".concat(attributeName, "=\"").concat(value, "\""); - } - return ''; -} - -/** - * Gets subdirectory of current site, if the site isn't on the top level of the domain - * - * @return {string} The subdirectory of the current site - */ -function getSubDir() { - var page = window.location.pathname; - var index = page.indexOf('wp-admin'); - var subDir = '/'; - if (index > -1) { - subDir = page.substr(0, index); - } - return subDir; -} -var cssHideAdvancedSettings = "\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"; - -/***/ }), - -/***/ "./js/src/form/block.js": -/*!******************************!*\ - !*** ./js/src/form/block.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); -/* harmony import */ var _inspector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inspector */ "./js/src/form/inspector.js"); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); -/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); -/** - * BLOCK: formidable/simple-form - * - * Block to display selected Formidable form with limited setting options - */ - - - - - -var Fragment = wp.element.Fragment; -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var _wp = wp, - ServerSideRender = _wp.serverSideRender; -registerBlockType('formidable/simple-form', { - title: formidable_form_selector.name, - description: __('Display a Form', 'formidable'), - icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], - category: 'widgets', - keywords: [__('contact forms', 'formidable'), 'formidable'], - edit: function edit(_ref) { - var setAttributes = _ref.setAttributes, - attributes = _ref.attributes, - isSelected = _ref.isSelected; - var formId = attributes.formId; - var forms = formidable_form_selector.forms; - if (forms.length === 0) { - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, __('This site does not have any forms.', 'formidable')); - } - if (!formId) { - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, formidable_form_selector.name), wp.element.createElement("div", { - className: "frm-block-selector-screen" - }, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_3__["default"], { - formId: formId, - setAttributes: setAttributes, - forms: forms - })))); - } - return wp.element.createElement(Fragment, null, wp.element.createElement(_inspector__WEBPACK_IMPORTED_MODULE_1__["default"], { - attributes: attributes, - setAttributes: setAttributes, - forms: forms - }), isSelected && wp.element.createElement("style", null, _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__.cssHideAdvancedSettings), wp.element.createElement(ServerSideRender, { - block: "formidable/simple-form", - attributes: attributes - })); - }, - save: function save(props) { - var attributes = props.attributes; - var formId = attributes.formId; - return formId === undefined ? '' : wp.element.createElement(Fragment, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_0__["default"], attributes)); - } -}); - -/***/ }), - -/***/ "./js/src/form/calculator.js": -/*!***********************************!*\ - !*** ./js/src/form/calculator.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/** - * BLOCK: formidable/calculator - * - * Block to display selected Formidable calculator form - */ - -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var FrmCalcIcon = wp.element.createElement('svg', { - width: 20, - height: 20 -}, wp.element.createElement('path', { - d: 'M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z' -})); -registerBlockType('formidable/calculator', { - title: __('Calculator Form', 'formidable'), - description: __('Display a Calculator Form', 'formidable'), - icon: FrmCalcIcon, - category: 'widgets', - keywords: ['calculation', 'formidable'], - edit: function edit(_ref) { - var setAttributes = _ref.setAttributes, - attributes = _ref.attributes; - var formId = attributes.formId; - var forms = formidable_form_selector.forms; - if (forms.length === 0) { - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, __('This site does not have any forms.', 'formidable')); - } - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, __('Calculator Form', 'formidable')), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip" - }, wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, __('This site does not have any calculator forms.', 'formidable'), wp.element.createElement("br", null), wp.element.createElement("a", { - href: formidable_form_selector.link, - target: "_blank" - }, __('Upgrade Formidable Forms.', 'formidable'))), wp.element.createElement("img", { - src: formidable_form_selector.url + '/images/conversion-calc.jpg', - alt: __('Calculator Form', 'formidable') - })))); - } -}); - -/***/ }), - -/***/ "./js/src/form/formselect.js": -/*!***********************************!*\ - !*** ./js/src/form/formselect.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ FormSelect) -/* harmony export */ }); -/* harmony import */ var _common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/itemselect */ "./js/src/common/components/itemselect.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Form selector - */ - - -var __ = wp.i18n.__; -var Component = wp.element.Component; -var FormSelect = /*#__PURE__*/function (_Component) { - function FormSelect() { - _classCallCheck(this, FormSelect); - return _callSuper(this, FormSelect, arguments); - } - _inherits(FormSelect, _Component); - return _createClass(FormSelect, [{ - key: "render", - value: function render() { - var _this$props = this.props, - formId = _this$props.formId, - setAttributes = _this$props.setAttributes, - forms = _this$props.forms; - return wp.element.createElement(_common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__["default"], { - selected: formId, - itemName: __('form', 'formidable'), - itemNamePlural: __('forms', 'formidable'), - items: forms, - onChange: function onChange(newFormId) { - setAttributes({ - formId: newFormId - }); - } - }); - } - }]); -}(Component); - -FormSelect.propTypes = { - formId: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string), - //current formId - setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func).isRequired //setAttributes of block -}; - -/***/ }), - -/***/ "./js/src/form/formshortcode.js": -/*!**************************************!*\ - !*** ./js/src/form/formshortcode.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ FormShortcode) -/* harmony export */ }); -/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Form shortcode of current form - */ -var Component = wp.element.Component; - -function createParamsText(atts) { - var formId = atts.formId, - title = atts.title, - description = atts.description, - minimize = atts.minimize; - var paramsText = ''; - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(formId, 'id'); - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(title, 'title'); - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(description, 'description'); - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(minimize, 'minimize'); - return paramsText; -} -var FormShortcode = /*#__PURE__*/function (_Component) { - function FormShortcode() { - _classCallCheck(this, FormShortcode); - return _callSuper(this, FormShortcode, arguments); - } - _inherits(FormShortcode, _Component); - return _createClass(FormShortcode, [{ - key: "render", - value: function render() { - return wp.element.createElement("div", null, "[formidable", createParamsText(this.props), "]"); - } - }]); -}(Component); - - -/***/ }), - -/***/ "./js/src/form/graph.js": -/*!******************************!*\ - !*** ./js/src/form/graph.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* global formidable_form_selector */ - - -(function () { - 'use strict'; - - if (formidable_form_selector.chartsAddon.installed) { - return; - } - var __ = wp.i18n.__; - var registerBlockType = wp.blocks.registerBlockType; - var Notice = wp.components.Notice; - var UpgradeNotice = function UpgradeNotice(_ref) { - var text = _ref.text, - buttonText = _ref.buttonText, - link = _ref.link; - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, text, wp.element.createElement("br", null), wp.element.createElement("a", { - href: link, - target: "_blank" - }, buttonText)); - }; - var blockName = __('Formidable Chart', 'formidable'); - registerBlockType('frm-charts/graph', { - title: blockName, - description: __('Display a chart or graph', 'formidable'), - icon: wp.element.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - fill: "none", - viewBox: "0 0 25 23" - }, wp.element.createElement("path", { - stroke: "currentColor", - strokeLinecap: "round", - strokeWidth: "2.5", - d: "M23 2v19m-7-7.5V21M9 10.8V21m-7-2.9V21" - })), - category: 'design', - edit: function edit() { - var imageWrapperStyles = { - padding: '38px', - margin: '0 auto', - maxWidth: '600px' - }; - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, blockName), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip", - style: { - alignSelf: 'stretch' - } - }, formidable_form_selector.chartsAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { - text: __('This site does not have Formidable Charts active.', 'formidable'), - buttonText: __('Install Formidable Charts', 'formidable'), - link: formidable_form_selector.chartsAddon.link - }) : wp.element.createElement(UpgradeNotice, { - text: __('This site does not have Formidable Charts installed.', 'formidable'), - buttonText: __('Upgrade Formidable Forms', 'formidable'), - link: formidable_form_selector.link - }), wp.element.createElement("div", { - style: imageWrapperStyles - }, wp.element.createElement("img", { - src: formidable_form_selector.url + '/images/demo-graph.svg', - alt: blockName - }))))); - } - }); -})(); - -/***/ }), - -/***/ "./js/src/form/inspector.js": -/*!**********************************!*\ - !*** ./js/src/form/inspector.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Inspector) -/* harmony export */ }); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); -/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); -/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Inspector controls for Formidable Simple Form block - */ - -var __ = wp.i18n.__; -var Component = wp.element.Component; -var InspectorControls = wp.blockEditor.InspectorControls; -var _wp$components = wp.components, - PanelBody = _wp$components.PanelBody, - PanelRow = _wp$components.PanelRow, - ToggleControl = _wp$components.ToggleControl, - ExternalLink = _wp$components.ExternalLink; - - - - -var Inspector = /*#__PURE__*/function (_Component) { - function Inspector() { - _classCallCheck(this, Inspector); - return _callSuper(this, Inspector, arguments); - } - _inherits(Inspector, _Component); - return _createClass(Inspector, [{ - key: "render", - value: function render() { - var _this$props = this.props, - setAttributes = _this$props.setAttributes, - attributes = _this$props.attributes, - forms = _this$props.forms; - var formId = attributes.formId, - title = attributes.title, - description = attributes.description, - minimize = attributes.minimize; - return wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, { - title: __('Select Form', 'formidable'), - initialOpen: true - }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_0__["default"], { - formId: formId, - setAttributes: setAttributes, - forms: forms - })), formId && wp.element.createElement(PanelRow, null, wp.element.createElement(ExternalLink, { - href: (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.getSubDir)() + "wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(formId) - }, __('Go to form', 'formidable')))), wp.element.createElement(PanelBody, { - title: __('Options', 'formidable'), - initialOpen: false - }, wp.element.createElement(ToggleControl, { - label: __('Show Form Title', 'formidable'), - checked: title, - onChange: function onChange(response) { - (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('title', response ? '1' : '', setAttributes); - } - }), wp.element.createElement(ToggleControl, { - label: __('Show Form Description', 'formidable'), - checked: description, - onChange: function onChange(response) { - (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('description', response ? '1' : '', setAttributes); - } - }), wp.element.createElement(ToggleControl, { - label: __('Minimize HTML', 'formidable'), - checked: minimize, - onChange: function onChange(response) { - (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('minimize', response ? '1' : '', setAttributes); - } - })), wp.element.createElement(PanelBody, { - title: __('Shortcode', 'formidable'), - initialOpen: false - }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_1__["default"], this.props.attributes)))); - } - }]); -}(Component); - -Inspector.propTypes = { - attributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object), - //block attributes - setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func) //setAttributes of block -}; - -/***/ }), - -/***/ "./js/src/form/modal.js": -/*!******************************!*\ - !*** ./js/src/form/modal.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* global formidable_form_selector */ - - -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var UpgradeNotice = function UpgradeNotice(_ref) { - var text = _ref.text, - buttonText = _ref.buttonText, - link = _ref.link; - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, text, wp.element.createElement("br", null), wp.element.createElement("a", { - href: link, - target: "_blank" - }, buttonText)); -}; -registerBlockType('frm-modal/modal', { - title: formidable_form_selector.name + ' ' + __('Modal', 'formidable'), - description: __('Display a modal', 'formidable'), - icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], - category: 'widgets', - keywords: ['modal', 'formidable'], - edit: function edit(_ref2) { - var setAttributes = _ref2.setAttributes, - attributes = _ref2.attributes; - var blockName = __('Bootstrap modal popup', 'formidable'); - var imageStyles = { - maxWidth: '504px', - height: 'auto', - borderRadius: '12px' - }; - var imageWrapperStyles = { - padding: '38px', - textAlign: 'center', - backgroundColor: '#f2f4f7', - marginTop: '24px' - }; - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, blockName), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip", - style: { - alignSelf: 'stretch' - } - }, formidable_form_selector.modalAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { - text: __('This site does not have popup modals active.', 'formidable'), - buttonText: __('Install Formidable Modals', 'formidable'), - link: formidable_form_selector.modalAddon.link - }) : wp.element.createElement(UpgradeNotice, { - text: __('This site does not have popup modals.', 'formidable'), - buttonText: __('Upgrade Formidable Forms', 'formidable'), - link: formidable_form_selector.link - }), wp.element.createElement("div", { - style: imageWrapperStyles - }, wp.element.createElement("img", { - src: formidable_form_selector.url + '/images/modal.png', - alt: blockName, - style: imageStyles - }))))); - } -}); - -/***/ }), - -/***/ "./js/src/form/views.js": -/*!******************************!*\ - !*** ./js/src/form/views.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* harmony import */ var _api_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api/index */ "./js/src/api/index.js"); -/* harmony import */ var _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./css/button.module.css */ "./js/src/form/css/button.module.css"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } -/* global formidable_form_selector */ - - - -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var _wp$element = wp.element, - useState = _wp$element.useState, - useEffect = _wp$element.useEffect; -var blockData = formidable_form_selector; // eslint-disable-line camelcase -var upgradeLink = blockData.viewsAddon.hasAccess ? blockData.viewsAddon.link : blockData.link; -registerBlockType('formidable/simple-view', { - title: __('Formidable Views', 'formidable'), - description: __('Display a Visual View', 'formidable'), - icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], - category: 'widgets', - keywords: ['views', 'formidable'], - edit: function edit() { - var _useState = useState({ - // eslint-disable-line react-hooks/rules-of-hooks - defaultClassname: 'frm-activate-addon frm-button-primary button button-primary', - loadingClassname: _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__["default"]["frm-loading"], - classnames: 'frm-activate-addon frm-button-primary button button-primary', - label: !blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess ? __('Install', 'formidable') : __('Activate', 'formidable'), - isLoading: false - }), - _useState2 = _slicedToArray(_useState, 2), - addonActivateButton = _useState2[0], - updateAddonActivateButton = _useState2[1]; - var activateViewsAddon = function activateViewsAddon() { - if (true === addonActivateButton.isLoading) { - return; - } - updateAddonActivateButton(_objectSpread(_objectSpread({}, addonActivateButton), {}, { - isLoading: true, - classnames: addonActivateButton.defaultClassname + ' ' + addonActivateButton.loadingClassname - })); - if (!blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess) { - _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_install_addon', blockData.viewsAddon.url).then(function () { - window.location.reload(); - }); - return; - } - _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_activate_addon', 'formidable-views/formidable-views.php').then(function () { - window.location.reload(); - }); - }; - var blockName = __('Formidable Views', 'formidable'); - var imageStyles = { - maxWidth: '504px', - height: 'auto', - borderRadius: '12px' - }; - var imageWrapperStyles = { - padding: '38px', - textAlign: 'center', - backgroundColor: '#f2f4f7', - marginTop: '24px' - }; - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, blockName), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip", - style: { - alignSelf: 'stretch' - } - }, !blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, wp.element.createElement("div", { - style: { - maxWidth: '500px', - margin: 'auto' - } - }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("a", { - href: upgradeLink, - rel: "noreferrer", - target: "_blank" - }, __('Upgrade Formidable Forms', 'formidable'))), blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, wp.element.createElement("div", { - style: { - maxWidth: '500px', - margin: 'auto' - } - }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("button", { - className: addonActivateButton.classnames, - onClick: activateViewsAddon, - type: "button" - }, " ", addonActivateButton.label, " ")), wp.element.createElement("div", { - style: imageWrapperStyles - }, wp.element.createElement("img", { - src: blockData.url + '/images/blocks/views-block-placeholder.jpg', - alt: blockName, - style: imageStyles - }))))); - } -}); - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css": -/*!*********************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css ***! - \*********************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ "frm-loading": () => (/* binding */ _1), -/* harmony export */ spin: () => (/* binding */ spin) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `button.t3RQZV1ZQbHGYyQUnhIY { - cursor: progress; - opacity: 0.7; - position: relative; - text-indent: -999px; - min-width: 70px; - overflow: hidden; -} -button.t3RQZV1ZQbHGYyQUnhIY:before { - content: ''; - display: inline-block; - position: absolute; - background: transparent; - border: 1px solid #fff; - border-top-color: transparent; - border-left-color: transparent; - border-radius: 50%; - - box-sizing: border-box; - top: 50%; - left: 50%; - margin-top: -10px; - margin-left: -10px; - width: 20px; - height: 20px; - - animation: Ts7haRQUDk0YMfLiQW00 2s linear infinite; -}`, "",{"version":3,"sources":["webpack://./js/src/form/css/button.module.css"],"names":[],"mappings":"AAAA;CACC,gBAAgB;CAChB,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB,eAAe;CACf,gBAAgB;AACjB;AACA;CACC,WAAW;CACX,qBAAqB;CACrB,kBAAkB;CAClB,uBAAuB;CACvB,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,kBAAkB;;CAElB,sBAAsB;CACtB,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,kBAAkB;CAClB,WAAW;CACX,YAAY;;CAEZ,kDAAkC;AACnC","sourcesContent":["button.frm-loading {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.frm-loading:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: spin 2s linear infinite;\n}"],"sourceRoot":""}]); -// Exports -var _1 = `t3RQZV1ZQbHGYyQUnhIY`; - -var spin = `Ts7haRQUDk0YMfLiQW00`; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/runtime/api.js": -/*!*****************************************************!*\ - !*** ./node_modules/css-loader/dist/runtime/api.js ***! - \*****************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -module.exports = function (cssWithMappingToString) { - var list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map(function (item) { - var content = ""; - var needLayer = typeof item[5] !== "undefined"; - if (item[4]) { - content += "@supports (".concat(item[4], ") {"); - } - if (item[2]) { - content += "@media ".concat(item[2], " {"); - } - if (needLayer) { - content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); - } - content += cssWithMappingToString(item); - if (needLayer) { - content += "}"; - } - if (item[2]) { - content += "}"; - } - if (item[4]) { - content += "}"; - } - return content; - }).join(""); - }; - - // import a list of modules into the list - list.i = function i(modules, media, dedupe, supports, layer) { - if (typeof modules === "string") { - modules = [[null, modules, undefined]]; - } - var alreadyImportedModules = {}; - if (dedupe) { - for (var k = 0; k < this.length; k++) { - var id = this[k][0]; - if (id != null) { - alreadyImportedModules[id] = true; - } - } - } - for (var _k = 0; _k < modules.length; _k++) { - var item = [].concat(modules[_k]); - if (dedupe && alreadyImportedModules[item[0]]) { - continue; - } - if (typeof layer !== "undefined") { - if (typeof item[5] === "undefined") { - item[5] = layer; - } else { - item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); - item[5] = layer; - } - } - if (media) { - if (!item[2]) { - item[2] = media; - } else { - item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); - item[2] = media; - } - } - if (supports) { - if (!item[4]) { - item[4] = "".concat(supports); - } else { - item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); - item[4] = supports; - } - } - list.push(item); - } - }; - return list; -}; - -/***/ }), - -/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": -/*!************************************************************!*\ - !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! - \************************************************************/ -/***/ ((module) => { - -"use strict"; - - -module.exports = function (item) { - var content = item[1]; - var cssMapping = item[3]; - if (!cssMapping) { - return content; - } - if (typeof btoa === "function") { - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); - var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); - var sourceMapping = "/*# ".concat(data, " */"); - return [content].concat([sourceMapping]).join("\n"); - } - return [content].join("\n"); -}; - -/***/ }), - -/***/ "./node_modules/object-assign/index.js": -/*!*********************************************!*\ - !*** ./node_modules/object-assign/index.js ***! - \*********************************************/ -/***/ ((module) => { - -"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - - -/***/ }), - -/***/ "./node_modules/prop-types/checkPropTypes.js": -/*!***************************************************!*\ - !*** ./node_modules/prop-types/checkPropTypes.js ***! - \***************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var printWarning = function() {}; - -if (true) { - var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); - var loggedTypeFailures = {}; - var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); - - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) { /**/ } - }; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (true) { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + - 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } -} - -/** - * Resets warning cache when testing. - * - * @private - */ -checkPropTypes.resetWarningCache = function() { - if (true) { - loggedTypeFailures = {}; - } -} - -module.exports = checkPropTypes; - - -/***/ }), - -/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": -/*!************************************************************!*\ - !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! - \************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); -var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); - -var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); -var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); -var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js"); - -var printWarning = function() {}; - -if (true) { - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; -} - -function emptyFunctionThatReturnsNull() { - return null; -} - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bigint: createPrimitiveTypeChecker('bigint'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - elementType: createElementTypeTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message, data) { - this.message = message; - this.data = data && typeof data === 'object' ? data: {}; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (true) { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - } else if ( true && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - printWarning( - 'You are manually calling a React.PropTypes validation ' + - 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), - {expectedType: expectedType} - ); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunctionThatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!ReactIs.isValidElementType(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - if (true) { - if (arguments.length > 1) { - printWarning( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - var expectedTypes = []; - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); - if (checkerResult == null) { - return null; - } - if (checkerResult.data && has(checkerResult.data, 'expectedType')) { - expectedTypes.push(checkerResult.data.expectedType); - } - } - var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function invalidValidatorError(componentName, location, propFullName, key, type) { - return new PropTypeError( - (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' - ); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (typeof checker !== 'function') { - return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (has(shapeTypes, key) && typeof checker !== 'function') { - return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); - } - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - - -/***/ }), - -/***/ "./node_modules/prop-types/index.js": -/*!******************************************!*\ - !*** ./node_modules/prop-types/index.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (true) { - var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess); -} else {} - - -/***/ }), - -/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": -/*!*************************************************************!*\ - !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! - \*************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), - -/***/ "./node_modules/prop-types/lib/has.js": -/*!********************************************!*\ - !*** ./node_modules/prop-types/lib/has.js ***! - \********************************************/ -/***/ ((module) => { - -module.exports = Function.call.bind(Object.prototype.hasOwnProperty); - - -/***/ }), - -/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -/** @license React v16.13.1 - * react-is.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - - - -if (true) { - (function() { -'use strict'; - -// The Symbol used to tag the ReactElement-like types. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. -var hasSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; -var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; -var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; -var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; -var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; -var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; -var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary -// (unstable) APIs that have been removed. Can we remove the symbols? - -var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; -var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; -var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; -var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; -var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; -var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; -var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; -var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; -var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; -var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; -var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; - -function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); -} - -function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - - default: - return $$typeof; - } - - } - - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; -} // AsyncMode is deprecated along with isAsyncMode - -var AsyncMode = REACT_ASYNC_MODE_TYPE; -var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; -var ContextConsumer = REACT_CONTEXT_TYPE; -var ContextProvider = REACT_PROVIDER_TYPE; -var Element = REACT_ELEMENT_TYPE; -var ForwardRef = REACT_FORWARD_REF_TYPE; -var Fragment = REACT_FRAGMENT_TYPE; -var Lazy = REACT_LAZY_TYPE; -var Memo = REACT_MEMO_TYPE; -var Portal = REACT_PORTAL_TYPE; -var Profiler = REACT_PROFILER_TYPE; -var StrictMode = REACT_STRICT_MODE_TYPE; -var Suspense = REACT_SUSPENSE_TYPE; -var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated - -function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; -} -function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; -} -function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; -} -function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; -} -function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -} -function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; -} -function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; -} -function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; -} -function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; -} -function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; -} -function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; -} -function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; -} -function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; -} - -exports.AsyncMode = AsyncMode; -exports.ConcurrentMode = ConcurrentMode; -exports.ContextConsumer = ContextConsumer; -exports.ContextProvider = ContextProvider; -exports.Element = Element; -exports.ForwardRef = ForwardRef; -exports.Fragment = Fragment; -exports.Lazy = Lazy; -exports.Memo = Memo; -exports.Portal = Portal; -exports.Profiler = Profiler; -exports.StrictMode = StrictMode; -exports.Suspense = Suspense; -exports.isAsyncMode = isAsyncMode; -exports.isConcurrentMode = isConcurrentMode; -exports.isContextConsumer = isContextConsumer; -exports.isContextProvider = isContextProvider; -exports.isElement = isElement; -exports.isForwardRef = isForwardRef; -exports.isFragment = isFragment; -exports.isLazy = isLazy; -exports.isMemo = isMemo; -exports.isPortal = isPortal; -exports.isProfiler = isProfiler; -exports.isStrictMode = isStrictMode; -exports.isSuspense = isSuspense; -exports.isValidElementType = isValidElementType; -exports.typeOf = typeOf; - })(); -} - - -/***/ }), - -/***/ "./node_modules/prop-types/node_modules/react-is/index.js": -/*!****************************************************************!*\ - !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! - \****************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -if (false) {} else { - module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js"); -} - - -/***/ }), - -/***/ "./js/src/form/css/button.module.css": -/*!*******************************************!*\ - !*** ./js/src/form/css/button.module.css ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ "frm-loading": () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["frm-loading"]), -/* harmony export */ spin: () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__.spin) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!./button.module.css */ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": -/*!****************************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! - \****************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -var stylesInDOM = []; -function getIndexByIdentifier(identifier) { - var result = -1; - for (var i = 0; i < stylesInDOM.length; i++) { - if (stylesInDOM[i].identifier === identifier) { - result = i; - break; - } - } - return result; -} -function modulesToDom(list, options) { - var idCountMap = {}; - var identifiers = []; - for (var i = 0; i < list.length; i++) { - var item = list[i]; - var id = options.base ? item[0] + options.base : item[0]; - var count = idCountMap[id] || 0; - var identifier = "".concat(id, " ").concat(count); - idCountMap[id] = count + 1; - var indexByIdentifier = getIndexByIdentifier(identifier); - var obj = { - css: item[1], - media: item[2], - sourceMap: item[3], - supports: item[4], - layer: item[5] - }; - if (indexByIdentifier !== -1) { - stylesInDOM[indexByIdentifier].references++; - stylesInDOM[indexByIdentifier].updater(obj); - } else { - var updater = addElementStyle(obj, options); - options.byIndex = i; - stylesInDOM.splice(i, 0, { - identifier: identifier, - updater: updater, - references: 1 - }); - } - identifiers.push(identifier); - } - return identifiers; -} -function addElementStyle(obj, options) { - var api = options.domAPI(options); - api.update(obj); - var updater = function updater(newObj) { - if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { - return; - } - api.update(obj = newObj); - } else { - api.remove(); - } - }; - return updater; -} -module.exports = function (list, options) { - options = options || {}; - list = list || []; - var lastIdentifiers = modulesToDom(list, options); - return function update(newList) { - newList = newList || []; - for (var i = 0; i < lastIdentifiers.length; i++) { - var identifier = lastIdentifiers[i]; - var index = getIndexByIdentifier(identifier); - stylesInDOM[index].references--; - } - var newLastIdentifiers = modulesToDom(newList, options); - for (var _i = 0; _i < lastIdentifiers.length; _i++) { - var _identifier = lastIdentifiers[_i]; - var _index = getIndexByIdentifier(_identifier); - if (stylesInDOM[_index].references === 0) { - stylesInDOM[_index].updater(); - stylesInDOM.splice(_index, 1); - } - } - lastIdentifiers = newLastIdentifiers; - }; -}; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": -/*!********************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! - \********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -var memo = {}; - -/* istanbul ignore next */ -function getTarget(target) { - if (typeof memo[target] === "undefined") { - var styleTarget = document.querySelector(target); - - // Special case to return head of iframe instead of iframe itself - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch (e) { - // istanbul ignore next - styleTarget = null; - } - } - memo[target] = styleTarget; - } - return memo[target]; -} - -/* istanbul ignore next */ -function insertBySelector(insert, style) { - var target = getTarget(insert); - if (!target) { - throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); - } - target.appendChild(style); -} -module.exports = insertBySelector; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": -/*!**********************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! - \**********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function insertStyleElement(options) { - var element = document.createElement("style"); - options.setAttributes(element, options.attributes); - options.insert(element, options.options); - return element; -} -module.exports = insertStyleElement; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! - \**********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -/* istanbul ignore next */ -function setAttributesWithoutAttributes(styleElement) { - var nonce = true ? __webpack_require__.nc : 0; - if (nonce) { - styleElement.setAttribute("nonce", nonce); - } -} -module.exports = setAttributesWithoutAttributes; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": -/*!***************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! - \***************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function apply(styleElement, options, obj) { - var css = ""; - if (obj.supports) { - css += "@supports (".concat(obj.supports, ") {"); - } - if (obj.media) { - css += "@media ".concat(obj.media, " {"); - } - var needLayer = typeof obj.layer !== "undefined"; - if (needLayer) { - css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); - } - css += obj.css; - if (needLayer) { - css += "}"; - } - if (obj.media) { - css += "}"; - } - if (obj.supports) { - css += "}"; - } - var sourceMap = obj.sourceMap; - if (sourceMap && typeof btoa !== "undefined") { - css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); - } - - // For old IE - /* istanbul ignore if */ - options.styleTagTransform(css, styleElement, options.options); -} -function removeStyleElement(styleElement) { - // istanbul ignore if - if (styleElement.parentNode === null) { - return false; - } - styleElement.parentNode.removeChild(styleElement); -} - -/* istanbul ignore next */ -function domAPI(options) { - if (typeof document === "undefined") { - return { - update: function update() {}, - remove: function remove() {} - }; - } - var styleElement = options.insertStyleElement(options); - return { - update: function update(obj) { - apply(styleElement, options, obj); - }, - remove: function remove() { - removeStyleElement(styleElement); - } - }; -} -module.exports = domAPI; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": -/*!*********************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! - \*********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function styleTagTransform(css, styleElement) { - if (styleElement.styleSheet) { - styleElement.styleSheet.cssText = css; - } else { - while (styleElement.firstChild) { - styleElement.removeChild(styleElement.firstChild); - } - styleElement.appendChild(document.createTextNode(css)); - } -} -module.exports = styleTagTransform; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/nonce */ -/******/ (() => { -/******/ __webpack_require__.nc = undefined; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!**************************!*\ - !*** ./js/src/blocks.js ***! - \**************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _form_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form/block */ "./js/src/form/block.js"); -/* harmony import */ var _form_calculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form/calculator */ "./js/src/form/calculator.js"); -/* harmony import */ var _form_modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./form/modal */ "./js/src/form/modal.js"); -/* harmony import */ var _form_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./form/graph */ "./js/src/form/graph.js"); -/* harmony import */ var _form_views__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form/views */ "./js/src/form/views.js"); -/** - * Formidable Simple Blocks - * - */ - - - - - - -})(); - -/******/ })() -; -//# sourceMappingURL=formidable_blocks.js.map \ No newline at end of file +(()=>{var e={532:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l});var n=r(601),o=r.n(n),i=r(314),a=r.n(i)()(o());a.push([e.id,"button.t3RQZV1ZQbHGYyQUnhIY {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.t3RQZV1ZQbHGYyQUnhIY:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: Ts7haRQUDk0YMfLiQW00 2s linear infinite;\n}",""]);const l=a},314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var l=0;l0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},601:e=>{"use strict";e.exports=function(e){return e[1]}},694:(e,t,r)=>{"use strict";var n=r(925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,a){if(a!==n){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},556:(e,t,r)=>{e.exports=r(694)()},925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},72:e=>{"use strict";var t=[];function r(e){for(var r=-1,n=0;n{"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,r)=>{"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nc=void 0,(()=>{"use strict";function e(t){return e="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},e(t)}function t(t,r,n){var o,i,a;n((o={},a=r,(i=function(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}(i=t))in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,o))}function n(e,t){return e?" ".concat(t,'="').concat(e,'"'):""}function o(e){return o="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},o(e)}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r-1&&(n=e.substr(0,r)),n+"wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(c))},V("Go to form","formidable")))),wp.element.createElement(W,{title:V("Options","formidable"),initialOpen:!1},wp.element.createElement(Y,{label:V("Show Form Title","formidable"),checked:s,onChange:function(e){t("title",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Show Form Description","formidable"),checked:m,onChange:function(e){t("description",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Minimize HTML","formidable"),checked:f,onChange:function(e){t("minimize",e?"1":"",i)}})),wp.element.createElement(W,{title:V("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(Q,null,wp.element.createElement(u,this.props.attributes))))}}])&&z(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(B);function q(e){return q="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},q(e)}function $(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./js/src/components/class-counter.js": -/*!********************************************!*\ - !*** ./js/src/components/class-counter.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmCounter: () => (/* binding */ frmCounter) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmCounter = /*#__PURE__*/function () { - /** - * Init frmCounter - * - * @param {Element} element - * @param {Object} options - * @param {number} options.timetoFinish Max time in mileseconds for counter to complete the animation. - */ - function frmCounter(element, options) { - _classCallCheck(this, frmCounter); - if (!(element instanceof Element) || !element.dataset.counter) { - return; - } - this.template = element.dataset.type || 'default'; - this.element = element; - this.value = parseInt(element.dataset.counter, 10); - this.activeCounter = 0; - this.locale = element.dataset.locale ? element.dataset.locale.replace('_', '-') : 'en-US'; - this.timeoutInterval = 50; - this.timeToFinish = 'undefined' !== typeof options && 'undefined' !== typeof options.timetoFinish ? options.timetoFinish : 1400; - this.valueStep = this.value / Math.ceil(this.timeToFinish / this.timeoutInterval); - if (0 === this.value) { - return; - } - this.animate(); - } - return _createClass(frmCounter, [{ - key: "formatNumber", - value: function formatNumber(number) { - if ('currency' === this.template) { - return number.toLocaleString(this.locale, { - minimumFractionDigits: 2 - }); - } - return number; - } - }, { - key: "animate", - value: function animate() { - if (Math.round(this.activeCounter) < this.value) { - this.activeCounter += this.valueStep; - this.element.innerText = this.formatNumber(Math.round(this.activeCounter)); - setTimeout(this.animate.bind(this), this.timeoutInterval); - } else { - this.element.innerText = this.formatNumber(this.value); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/components/class-tabs-navigator.js": -/*!***************************************************!*\ - !*** ./js/src/components/class-tabs-navigator.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmTabsNavigator = /*#__PURE__*/function () { - function frmTabsNavigator(wrapper) { - _classCallCheck(this, frmTabsNavigator); - if ('undefined' === typeof wrapper) { - return; - } - this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); - if (null === this.wrapper) { - return; - } - this.flexboxSlidesGap = '16px'; - this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; - this.resizeObserver = null; - this.init(); - } - return _createClass(frmTabsNavigator, [{ - key: "init", - value: function init() { - var _this = this; - if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { - return; - } - this.initDefaultSlideTrackerWidth(); - this.navs.forEach(function (nav, index) { - nav.addEventListener('click', function (event) { - return _this.onNavClick(event, index); - }); - }); - this.setupScrollbarObserver(); - // Cleanup observers when page unloads to prevent memory leaks - window.addEventListener('beforeunload', this.cleanupObservers); - } - }, { - key: "onNavClick", - value: function onNavClick(event, index) { - var navItem = event.currentTarget; - event.preventDefault(); - this.removeActiveClassnameFromNavs(); - navItem.classList.add('frm-active'); - this.initSlideTrackUnderline(navItem, index); - this.changeSlide(index); - - // Handle special case for frm_insert_fields_tab - var navLink = navItem.querySelector('a'); - if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { - var _window$frmAdminBuild, _window$frmAdminBuild2; - (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); - } - } - }, { - key: "initDefaultSlideTrackerWidth", - value: function initDefaultSlideTrackerWidth() { - if (!this.slideTrackLine.dataset.initialWidth) { - return; - } - this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); - } - }, { - key: "initSlideTrackUnderline", - value: function initSlideTrackUnderline(nav, index) { - this.slideTrackLine.classList.remove('frm-first', 'frm-last'); - var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { - return nav.classList.contains('frm-active'); - }); - this.positionUnderlineIndicator(activeNav); - } - - /** - * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. - * Automatically repositions the underline indicator when layout changes occur. - */ - }, { - key: "setupScrollbarObserver", - value: function setupScrollbarObserver() { - var _this2 = this; - var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); - if (!scrollbarWrapper || !('ResizeObserver' in window)) { - return; - } - this.resizeObserver = new ResizeObserver(function () { - var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); - if (activeNav) { - _this2.positionUnderlineIndicator(activeNav); - } - }); - this.resizeObserver.observe(scrollbarWrapper); - } - - /** - * Cleans up observers to prevent memory leaks. - */ - }, { - key: "cleanupObservers", - value: function cleanupObservers() { - if (this.resizeObserver) { - this.resizeObserver.disconnect(); - this.resizeObserver = null; - } - } - - /** - * Positions the underline indicator based on the active navigation element. - * - * @param {HTMLElement} activeNav The active navigation element to position the underline under - */ - }, { - key: "positionUnderlineIndicator", - value: function positionUnderlineIndicator(activeNav) { - var _this3 = this; - requestAnimationFrame(function () { - var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; - _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); - _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; - }); - } - }, { - key: "changeSlide", - value: function changeSlide(index) { - this.removeActiveClassnameFromSlides(); - var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); - if ('0px' !== translate) { - this.slideTrack.style.transform = "translateX(".concat(translate, ")"); - } else { - this.slideTrack.style.removeProperty('transform'); - } - if (index in this.slides) { - this.slides[index].classList.add('frm-active'); - } - } - }, { - key: "removeActiveClassnameFromSlides", - value: function removeActiveClassnameFromSlides() { - this.slides.forEach(function (slide) { - return slide.classList.remove('frm-active'); - }); - } - }, { - key: "removeActiveClassnameFromNavs", - value: function removeActiveClassnameFromNavs() { - this.navs.forEach(function (nav) { - return nav.classList.remove('frm-active'); - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!*****************************!*\ - !*** ./js/src/dashboard.js ***! - \*****************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); -/* harmony import */ var _components_class_counter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/class-counter */ "./js/src/components/class-counter.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - - - -var frmDashboard = /*#__PURE__*/function () { - function frmDashboard() { - _classCallCheck(this, frmDashboard); - this.options = { - ajax: { - action: 'dashboard_ajax_action', - dashboardActions: { - welcomeBanner: 'welcome-banner-has-closed', - checkEmailIfSubscribed: 'email-has-subscribed', - saveSubscribedEmail: 'save-subscribed-email' - } - } - }; - this.widgetsAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(document.querySelectorAll('.frm-dashboard-widget'), 'cascade'); - } - return _createClass(frmDashboard, [{ - key: "init", - value: function init() { - this.initInbox(); - this.initCounters(); - this.initCloseWelcomeBanner(); - this.widgetsAnimate.cascadeFadeIn(); - } - }, { - key: "initInbox", - value: function initInbox() { - var _this = this; - new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__.frmTabsNavigator('.frm-inbox-wrapper'); - var userEmailInput = document.querySelector('#frm_leave_email'); - var subscribeButton = document.querySelector('#frm-add-my-email-address'); - subscribeButton.addEventListener('click', function () { - _this.saveSubscribedEmail(userEmailInput.value).then(); - }); - } - }, { - key: "initCounters", - value: function initCounters() { - var counters = document.querySelectorAll('.frm-counter'); - counters.forEach(function (counter) { - return new _components_class_counter__WEBPACK_IMPORTED_MODULE_2__.frmCounter(counter); - }); - } - }, { - key: "initCloseWelcomeBanner", - value: function initCloseWelcomeBanner() { - var _this2 = this; - var closeButton = document.querySelector('.frm-dashboard-banner-close'); - var dashboardBanner = document.querySelector('.frm-dashboard-banner'); - if (!closeButton || !dashboardBanner) { - return; - } - closeButton.addEventListener('click', function () { - _this2.closeWelcomeBannerSaveCookieRequest().then(function (data) { - if (true === data.success) { - dashboardBanner.remove(); - } - }); - }); - } - }, { - key: "saveSubscribedEmail", - value: function saveSubscribedEmail(email) { - return fetch(window.ajaxurl, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - action: this.options.ajax.action, - dashboard_action: this.options.ajax.dashboardActions.saveSubscribedEmail, - email: email - }) - }).then(function (result) { - return result.json(); - }); - } - }, { - key: "closeWelcomeBannerSaveCookieRequest", - value: function closeWelcomeBannerSaveCookieRequest() { - return fetch(window.ajaxurl, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - action: this.options.ajax.action, - dashboard_action: this.options.ajax.dashboardActions.welcomeBanner, - banner_has_closed: 1 - }) - }).then(function (result) { - return result.json(); - }); - } - }]); -}(); -var frmDashboardClass = new frmDashboard(); -document.addEventListener('DOMContentLoaded', function () { - frmDashboardClass.init(); -}); -/******/ })() -; -//# sourceMappingURL=formidable_dashboard.js.map \ No newline at end of file +(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=i,this.prepareElements()},i=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,i){e.classList.remove("frm-animate"),e.style.transitionDelay=(i+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,i){t.addEventListener("click",(function(t){return e.onNavClick(t,i)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var i=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),i.classList.add("frm-active"),this.initSlideTrackUnderline(i,t),this.changeSlide(t);var n,r,o=i.querySelector("a");o&&"frm_insert_fields_tab"===o.id&&!o.closest("#frm_adv_info")&&(null===(n=window.frmAdminBuild)||void 0===n||null===(r=n.clearSettingsBox)||void 0===r||r.call(n))}},{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 i=void 0!==e?e:this.navs.filter((function(e){return e.classList.contains("frm-active")}));this.positionUnderlineIndicator(i)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var i=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(i,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function u(e){return u="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},u(e)}function f(e,t){for(var i=0;i { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./js/src/components/class-overlay.js": -/*!********************************************!*\ - !*** ./js/src/components/class-overlay.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmOverlay: () => (/* binding */ frmOverlay) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - -var frmOverlay = /*#__PURE__*/function () { - function frmOverlay() { - _classCallCheck(this, frmOverlay); - this.body = document.body; - } - - /** - * Open overlay - * - * @param {Object} overlayData An object containing data for the overlay. - * @param {string} overlayData.hero_image URL of the hero image. - * @param {string} overlayData.heading Heading of the overlay. - * @param {string} overlayData.copy Copy/content of the overlay. - * @param {Array} overlayData.buttons Array of button objects. - * @param {string} overlayData.buttons[].url URL for the button. - * @param {string} overlayData.buttons[].target Target attribute for the button link. - * @param {string} overlayData.buttons[].label Label/text of the button. - */ - return _createClass(frmOverlay, [{ - key: "open", - value: function open(overlayData) { - this.overlayData = { - hero_image: null, - heading: null, - copy: null, - buttons: [] - }; - this.overlayData = _objectSpread(_objectSpread({}, this.overlayData), overlayData); - this.bodyAddOverflowHidden(); - this.body.insertBefore(this.buildOverlay(), this.body.firstChild); - this.initCloseButton(); - this.initOverlayIntroAnimation(200); - } - }, { - key: "bodyAddOverflowHidden", - value: function bodyAddOverflowHidden() { - this.body.classList.add('frm-hidden-overflow'); - setTimeout(function () { - document.body.scrollTop = 0; - document.documentElement.scrollTop = 0; - }, 80); - } - }, { - key: "close", - value: function close() { - var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); - if (overlayWrapper) { - document.body.classList.remove('frm-hidden-overflow'); - overlayWrapper.remove(); - } - } - }, { - key: "initCloseButton", - value: function initCloseButton() { - var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); - if (overlayWrapper) { - var closeButton = document.createElement('span'); - closeButton.classList.add('frm-overlay--close'); - closeButton.addEventListener('click', this.close); - overlayWrapper.prepend(closeButton); - } - } - }, { - key: "getHeroImage", - value: function getHeroImage() { - if (this.overlayData.hero_image) { - return frmDom.img({ - src: this.overlayData.hero_image - }); - } - return ''; - } - }, { - key: "getButtons", - value: function getButtons() { - var buttons = this.overlayData.buttons.map(function (button, index) { - if (!button.url || '' === button.url) { - return ''; - } - var buttonTypeClassname = 1 === index ? 'frm-button-primary' : 'frm-button-secondary'; - var options = { - href: button.url, - text: button.label, - className: 'button frm_animate_bg ' + buttonTypeClassname - }; - if (button.target) { - options.target = button.target; - } - return frmDom.a(options); - }); - if (buttons) { - var buttonsWrapperElementOptions = { - className: 'frm-overlay--cta frm-flex-box', - children: buttons - }; - return frmDom.div(buttonsWrapperElementOptions); - } - return ''; - } - }, { - key: "getHeading", - value: function getHeading() { - if (this.overlayData.heading) { - return frmDom.tag('h2', { - className: 'frm-overlay--heading frm-text-xl', - text: this.overlayData.heading - }); - } - return ''; - } - }, { - key: "getCopy", - value: function getCopy() { - if (this.overlayData.copy) { - var copy = frmDom.tag('div'); - copy.innerHTML = this.overlayData.copy; - return frmDom.div({ - className: 'frm-overlay--copy', - child: copy - }); - } - return ''; - } - }, { - key: "initOverlayIntroAnimation", - value: function initOverlayIntroAnimation(delay) { - setTimeout(function () { - var elements = document.querySelectorAll('.frm-overlay--hero-image, .frm-overlay--heading, .frm-overlay--copy, .frm-overlay--cta a'); - new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(elements, 'cascade-3d').cascadeFadeIn(0.07); - }, delay); - } - }, { - key: "buildOverlay", - value: function buildOverlay() { - var container = frmDom.div({ - className: 'frm-overlay--container', - children: [frmDom.div({ - className: 'frm-overlay--hero-image frm-mb-md', - children: [this.getHeroImage()] - }), this.getHeading(), this.getCopy(), this.getButtons()] - }); - return frmDom.div({ - className: 'frm-overlay--wrapper frm_wrap', - children: [container] - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!***************************!*\ - !*** ./js/src/overlay.js ***! - \***************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/class-overlay */ "./js/src/components/class-overlay.js"); - -window.frmOverlay = new _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__.frmOverlay(); -/******/ })() -; -//# sourceMappingURL=formidable_overlay.js.map \ No newline at end of file +(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,r){e.classList.remove("frm-animate"),e.style.transitionDelay=(r+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@tannin/compile/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/compile/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ compile) -/* harmony export */ }); -/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); -/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); - - - -/** - * Given a C expression, returns a function which can be called to evaluate its - * result. - * - * @example - * - * ```js - * import compile from '@tannin/compile'; - * - * const evaluate = compile( 'n > 1' ); - * - * evaluate( { n: 2 } ); - * // ⇒ true - * ``` - * - * @param {string} expression C expression. - * - * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. - */ -function compile( expression ) { - var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( variables ) { - return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/evaluate/index.js": -/*!************************************************!*\ - !*** ./node_modules/@tannin/evaluate/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ evaluate) -/* harmony export */ }); -/** - * Operator callback functions. - * - * @type {Object} - */ -var OPERATORS = { - '!': function( a ) { - return ! a; - }, - '*': function( a, b ) { - return a * b; - }, - '/': function( a, b ) { - return a / b; - }, - '%': function( a, b ) { - return a % b; - }, - '+': function( a, b ) { - return a + b; - }, - '-': function( a, b ) { - return a - b; - }, - '<': function( a, b ) { - return a < b; - }, - '<=': function( a, b ) { - return a <= b; - }, - '>': function( a, b ) { - return a > b; - }, - '>=': function( a, b ) { - return a >= b; - }, - '==': function( a, b ) { - return a === b; - }, - '!=': function( a, b ) { - return a !== b; - }, - '&&': function( a, b ) { - return a && b; - }, - '||': function( a, b ) { - return a || b; - }, - '?:': function( a, b, c ) { - if ( a ) { - throw b; - } - - return c; - }, -}; - -/** - * Given an array of postfix terms and operand variables, returns the result of - * the postfix evaluation. - * - * @example - * - * ```js - * import evaluate from '@tannin/evaluate'; - * - * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' - * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; - * - * evaluate( terms, {} ); - * // ⇒ 6.333333333333334 - * ``` - * - * @param {string[]} postfix Postfix terms. - * @param {Object} variables Operand variables. - * - * @return {*} Result of evaluation. - */ -function evaluate( postfix, variables ) { - var stack = [], - i, j, args, getOperatorResult, term, value; - - for ( i = 0; i < postfix.length; i++ ) { - term = postfix[ i ]; - - getOperatorResult = OPERATORS[ term ]; - if ( getOperatorResult ) { - // Pop from stack by number of function arguments. - j = getOperatorResult.length; - args = Array( j ); - while ( j-- ) { - args[ j ] = stack.pop(); - } - - try { - value = getOperatorResult.apply( null, args ); - } catch ( earlyReturn ) { - return earlyReturn; - } - } else if ( variables.hasOwnProperty( term ) ) { - value = variables[ term ]; - } else { - value = +term; - } - - stack.push( value ); - } - - return stack[ 0 ]; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/plural-forms/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@tannin/plural-forms/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pluralForms) -/* harmony export */ }); -/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); - - -/** - * Given a C expression, returns a function which, when called with a value, - * evaluates the result with the value assumed to be the "n" variable of the - * expression. The result will be coerced to its numeric equivalent. - * - * @param {string} expression C expression. - * - * @return {Function} Evaluator function. - */ -function pluralForms( expression ) { - var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( n ) { - return +evaluate( { n: n } ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/postfix/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/postfix/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ postfix) -/* harmony export */ }); -var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; - -/** - * Operator precedence mapping. - * - * @type {Object} - */ -PRECEDENCE = { - '(': 9, - '!': 8, - '*': 7, - '/': 7, - '%': 7, - '+': 6, - '-': 6, - '<': 5, - '<=': 5, - '>': 5, - '>=': 5, - '==': 4, - '!=': 4, - '&&': 3, - '||': 2, - '?': 1, - '?:': 1, -}; - -/** - * Characters which signal pair opening, to be terminated by terminators. - * - * @type {string[]} - */ -OPENERS = [ '(', '?' ]; - -/** - * Characters which signal pair termination, the value an array with the - * opener as its first member. The second member is an optional operator - * replacement to push to the stack. - * - * @type {string[]} - */ -TERMINATORS = { - ')': [ '(' ], - ':': [ '?', '?:' ], -}; - -/** - * Pattern matching operators and openers. - * - * @type {RegExp} - */ -PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; - -/** - * Given a C expression, returns the equivalent postfix (Reverse Polish) - * notation terms as an array. - * - * If a postfix string is desired, simply `.join( ' ' )` the result. - * - * @example - * - * ```js - * import postfix from '@tannin/postfix'; - * - * postfix( 'n > 1' ); - * // ⇒ [ 'n', '1', '>' ] - * ``` - * - * @param {string} expression C expression. - * - * @return {string[]} Postfix terms. - */ -function postfix( expression ) { - var terms = [], - stack = [], - match, operator, term, element; - - while ( ( match = expression.match( PATTERN ) ) ) { - operator = match[ 0 ]; - - // Term is the string preceding the operator match. It may contain - // whitespace, and may be empty (if operator is at beginning). - term = expression.substr( 0, match.index ).trim(); - if ( term ) { - terms.push( term ); - } - - while ( ( element = stack.pop() ) ) { - if ( TERMINATORS[ operator ] ) { - if ( TERMINATORS[ operator ][ 0 ] === element ) { - // Substitution works here under assumption that because - // the assigned operator will no longer be a terminator, it - // will be pushed to the stack during the condition below. - operator = TERMINATORS[ operator ][ 1 ] || operator; - break; - } - } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { - // Push to stack if either an opener or when pop reveals an - // element of lower precedence. - stack.push( element ); - break; - } - - // For each popped from stack, push to terms. - terms.push( element ); - } - - if ( ! TERMINATORS[ operator ] ) { - stack.push( operator ); - } - - // Slice matched fragment from expression to continue match. - expression = expression.substr( match.index + operator.length ); - } - - // Push remainder of operand, if exists, to terms. - expression = expression.trim(); - if ( expression ) { - terms.push( expression ); - } - - // Pop remaining items from stack into terms. - return terms.concat( stack.reverse() ); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback AddHook - * - * Adds the hook to the appropriate hooks container. - * - * @param {string} hookName Name of hook to add - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. - * @param {import('.').Callback} callback Function to call when the hook is run - * @param {number} [priority=10] Priority of this hook - */ - -/** - * Returns a function which, when invoked, will add a hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {AddHook} Function that adds a new hook. - */ - -function createAddHook(hooks, storeKey) { - return function addHook(hookName, namespace, callback) { - var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } - - if ('function' !== typeof callback) { - // eslint-disable-next-line no-console - console.error('The hook callback must be a function.'); - return; - } // Validate numeric priority - - - if ('number' !== typeof priority) { - // eslint-disable-next-line no-console - console.error('If specified, the hook priority must be a number.'); - return; - } - - var handler = { - callback: callback, - priority: priority, - namespace: namespace - }; - - if (hooksStore[hookName]) { - // Find the correct insert index of the new hook. - var handlers = hooksStore[hookName].handlers; - /** @type {number} */ - - var i; - - for (i = handlers.length; i > 0; i--) { - if (priority >= handlers[i - 1].priority) { - break; - } - } - - if (i === handlers.length) { - // If append, operate via direct assignment. - handlers[i] = handler; - } else { - // Otherwise, insert before index via splice. - handlers.splice(i, 0, handler); - } // We may also be currently executing this hook. If the callback - // we're adding would come after the current callback, there's no - // problem; otherwise we need to increase the execution index of - // any other runs by 1 to account for the added element. - - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex++; - } - }); - } else { - // This is the first hook of its type. - hooksStore[hookName] = { - handlers: [handler], - runs: 0 - }; - } - - if (hookName !== 'hookAdded') { - hooks.doAction('hookAdded', hookName, namespace, callback, priority); - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); -//# sourceMappingURL=createAddHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Returns a function which, when invoked, will return the name of the - * currently running hook, or `null` if no hook of the given type is currently - * running. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {() => string | null} Function that returns the current hook name or null. - */ -function createCurrentHook(hooks, storeKey) { - return function currentHook() { - var _hooksStore$__current, _hooksStore$__current2; - - var hooksStore = hooks[storeKey]; - 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; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); -//# sourceMappingURL=createCurrentHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - -/** - * @callback DidHook - * - * Returns the number of times an action has been fired. - * - * @param {string} hookName The hook name to check. - * - * @return {number | undefined} The number of times the hook has run. - */ - -/** - * Returns a function which, when invoked, will return the number of times a - * hook has been called. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DidHook} Function that returns a hook's call count. - */ - -function createDidHook(hooks, storeKey) { - return function didHook(hookName) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { - return; - } - - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); -//# sourceMappingURL=createDidHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback DoingHook - * Returns whether a hook is currently being executed. - * - * @param {string} [hookName] The name of the hook to check for. If - * omitted, will check for any hook being executed. - * - * @return {boolean} Whether the hook is being executed. - */ - -/** - * Returns a function which, when invoked, will return whether a hook is - * currently being executed. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DoingHook} Function that returns whether a hook is currently - * being executed. - */ -function createDoingHook(hooks, storeKey) { - return function doingHook(hookName) { - var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. - - if ('undefined' === typeof hookName) { - return 'undefined' !== typeof hooksStore.__current[0]; - } // Return the __current hook. - - - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); -//# sourceMappingURL=createDoingHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback HasHook - * - * Returns whether any handlers are attached for the given hookName and optional namespace. - * - * @param {string} hookName The name of the hook to check for. - * @param {string} [namespace] Optional. The unique namespace identifying the callback - * in the form `vendor/plugin/function`. - * - * @return {boolean} Whether there are handlers that are attached to the given hook. - */ - -/** - * Returns a function which, when invoked, will return whether any handlers are - * attached to a particular hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {HasHook} Function that returns whether any handlers are - * attached to a particular hook and optional namespace. - */ -function createHasHook(hooks, storeKey) { - return function hasHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; // Use the namespace if provided. - - if ('undefined' !== typeof namespace) { - return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { - return hook.namespace === namespace; - }); - } - - return hookName in hooksStore; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); -//# sourceMappingURL=createHasHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ _Hooks: () => (/* binding */ _Hooks), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); -/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); -/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); -/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); -/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); -/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); -/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Internal class for constructing hooks. Use `createHooks()` function - * - * Note, it is necessary to expose this class to make its type public. - * - * @private - */ - -var _Hooks = function _Hooks() { - (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); - - /** @type {import('.').Store} actions */ - this.actions = Object.create(null); - this.actions.__current = []; - /** @type {import('.').Store} filters */ - - this.filters = Object.create(null); - this.filters.__current = []; - this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); - this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); - this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); - this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); - this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); - this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); - this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); - this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); - this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); - this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); - this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); - this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); - this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); - this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); - this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); - this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); -}; -/** @typedef {_Hooks} Hooks */ - -/** - * Returns an instance of the hooks object. - * - * @return {Hooks} A Hooks instance. - */ - -function createHooks() { - return new _Hooks(); -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); -//# sourceMappingURL=createHooks.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback RemoveHook - * Removes the specified callback (or all callbacks) from the hook with a given hookName - * and namespace. - * - * @param {string} hookName The name of the hook to modify. - * @param {string} namespace The unique namespace identifying the callback in the - * form `vendor/plugin/function`. - * - * @return {number | undefined} The number of callbacks removed. - */ - -/** - * Returns a function which, when invoked, will remove a specified hook or all - * hooks by the given name. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, - * without regard to namespace. Used to create - * `removeAll*` functions. - * - * @return {RemoveHook} Function that removes hooks. - */ - -function createRemoveHook(hooks, storeKey) { - var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function removeHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } // Bail if no hooks exist by this name - - - if (!hooksStore[hookName]) { - return 0; - } - - var handlersRemoved = 0; - - if (removeAll) { - handlersRemoved = hooksStore[hookName].handlers.length; - hooksStore[hookName] = { - runs: hooksStore[hookName].runs, - handlers: [] - }; - } else { - // Try to find the specified callback to remove. - var handlers = hooksStore[hookName].handlers; - - var _loop = function _loop(i) { - if (handlers[i].namespace === namespace) { - handlers.splice(i, 1); - handlersRemoved++; // This callback may also be part of a hook that is - // currently executing. If the callback we're removing - // comes after the current callback, there's no problem; - // otherwise we need to decrease the execution index of any - // other runs by 1 to account for the removed element. - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex--; - } - }); - } - }; - - for (var i = handlers.length - 1; i >= 0; i--) { - _loop(i); - } - } - - if (hookName !== 'hookRemoved') { - hooks.doAction('hookRemoved', hookName, namespace); - } - - return handlersRemoved; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); -//# sourceMappingURL=createRemoveHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); - - -/** - * Returns a function which, when invoked, will execute all callbacks - * registered to a hook of the specified type, optionally returning the final - * value of the call chain. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to - * return its first argument. - * - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. - */ -function createRunHook(hooks, storeKey) { - var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function runHooks(hookName) { - var hooksStore = hooks[storeKey]; - - if (!hooksStore[hookName]) { - hooksStore[hookName] = { - handlers: [], - runs: 0 - }; - } - - hooksStore[hookName].runs++; - var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. - - if (true) { - // Handle any 'all' hooks registered. - if ('hookAdded' !== hookName && hooksStore.all) { - handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); - } - } - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (!handlers || !handlers.length) { - return returnFirstArg ? args[0] : undefined; - } - - var hookInfo = { - name: hookName, - currentIndex: 0 - }; - - hooksStore.__current.push(hookInfo); - - while (hookInfo.currentIndex < handlers.length) { - var handler = handlers[hookInfo.currentIndex]; - var result = handler.callback.apply(null, args); - - if (returnFirstArg) { - args[0] = result; - } - - hookInfo.currentIndex++; - } - - hooksStore.__current.pop(); - - if (returnFirstArg) { - return args[0]; - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); -//# sourceMappingURL=createRunHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actions: () => (/* binding */ actions), -/* harmony export */ addAction: () => (/* binding */ addAction), -/* harmony export */ addFilter: () => (/* binding */ addFilter), -/* harmony export */ applyFilters: () => (/* binding */ applyFilters), -/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ currentAction: () => (/* binding */ currentAction), -/* harmony export */ currentFilter: () => (/* binding */ currentFilter), -/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), -/* harmony export */ didAction: () => (/* binding */ didAction), -/* harmony export */ didFilter: () => (/* binding */ didFilter), -/* harmony export */ doAction: () => (/* binding */ doAction), -/* harmony export */ doingAction: () => (/* binding */ doingAction), -/* harmony export */ doingFilter: () => (/* binding */ doingFilter), -/* harmony export */ filters: () => (/* binding */ filters), -/* harmony export */ hasAction: () => (/* binding */ hasAction), -/* harmony export */ hasFilter: () => (/* binding */ hasFilter), -/* harmony export */ removeAction: () => (/* binding */ removeAction), -/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), -/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), -/* harmony export */ removeFilter: () => (/* binding */ removeFilter) -/* harmony export */ }); -/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); -/** - * Internal dependencies - */ - -/** @typedef {(...args: any[])=>any} Callback */ - -/** - * @typedef Handler - * @property {Callback} callback The callback - * @property {string} namespace The namespace - * @property {number} priority The namespace - */ - -/** - * @typedef Hook - * @property {Handler[]} handlers Array of handlers - * @property {number} runs Run counter - */ - -/** - * @typedef Current - * @property {string} name Hook name - * @property {number} currentIndex The index - */ - -/** - * @typedef {Record & {__current: Current[]}} Store - */ - -/** - * @typedef {'actions' | 'filters'} StoreKey - */ - -/** - * @typedef {import('./createHooks').Hooks} Hooks - */ - -var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); -var addAction = defaultHooks.addAction, - addFilter = defaultHooks.addFilter, - removeAction = defaultHooks.removeAction, - removeFilter = defaultHooks.removeFilter, - hasAction = defaultHooks.hasAction, - hasFilter = defaultHooks.hasFilter, - removeAllActions = defaultHooks.removeAllActions, - removeAllFilters = defaultHooks.removeAllFilters, - doAction = defaultHooks.doAction, - applyFilters = defaultHooks.applyFilters, - currentAction = defaultHooks.currentAction, - currentFilter = defaultHooks.currentFilter, - doingAction = defaultHooks.doingAction, - doingFilter = defaultHooks.doingFilter, - didAction = defaultHooks.didAction, - didFilter = defaultHooks.didFilter, - actions = defaultHooks.actions, - filters = defaultHooks.filters; - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a hookName string. - * - * @param {string} hookName The hook name to validate. Should be a non empty string containing - * only numbers, letters, dashes, periods and underscores. Also, - * the hook name cannot begin with `__`. - * - * @return {boolean} Whether the hook name is valid. - */ -function validateHookName(hookName) { - if ('string' !== typeof hookName || '' === hookName) { - // eslint-disable-next-line no-console - console.error('The hook name must be a non-empty string.'); - return false; - } - - if (/^__/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name cannot begin with `__`.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); -//# sourceMappingURL=validateHookName.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a namespace string. - * - * @param {string} namespace The namespace to validate - should take the form - * `vendor/plugin/function`. - * - * @return {boolean} Whether the namespace is valid. - */ -function validateNamespace(namespace) { - if ('string' !== typeof namespace || '' === namespace) { - // eslint-disable-next-line no-console - console.error('The namespace must be a non-empty string.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { - // eslint-disable-next-line no-console - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); -//# sourceMappingURL=validateNamespace.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": -/*!******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createI18n: () => (/* binding */ createI18n) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); - - -function 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; } - -function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } - -/** - * External dependencies - */ - -/** - * @typedef {Record} LocaleData - */ - -/** - * Default locale data to use for Tannin domain when not otherwise provided. - * Assumes an English plural forms expression. - * - * @type {LocaleData} - */ - -var DEFAULT_LOCALE_DATA = { - '': { - /** @param {number} n */ - plural_forms: function plural_forms(n) { - return n === 1 ? 0 : 1; - } - } -}; -/* - * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, - * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. - */ - -var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; -/** - * @typedef {(domain?: string) => LocaleData} GetLocaleData - * - * Returns locale data by domain in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData - * - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData - * - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** @typedef {() => void} SubscribeCallback */ - -/** @typedef {() => void} UnsubscribeCallback */ - -/** - * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe - * - * Subscribes to changes of locale data - */ - -/** - * @typedef {(domain?: string) => string} GetFilterDomain - * Retrieve the domain to use when calling domain-specific filters. - */ - -/** - * @typedef {(text: string, domain?: string) => string} __ - * - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - */ - -/** - * @typedef {(text: string, context: string, domain?: string) => string} _x - * - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n - * - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx - * - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - */ - -/** - * @typedef {() => boolean} IsRtl - * - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - */ - -/** - * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation - * - * Check if there is a translation for a given string in singular form. - */ - -/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ - -/** - * An i18n instance - * - * @typedef I18n - * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. - * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. - * @property {__} __ Retrieve the translation of text. - * @property {_x} _x Retrieve translated string with gettext context. - * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied - * number. - * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * @property {IsRtl} isRTL Check if current locale is RTL. - * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. - */ - -/** - * Create an i18n instance - * - * @param {LocaleData} [initialData] Locale data configuration. - * @param {string} [initialDomain] Domain for which configuration applies. - * @param {Hooks} [hooks] Hooks implementation. - * @return {I18n} I18n instance - */ - -var createI18n = function createI18n(initialData, initialDomain, hooks) { - /** - * The underlying instance of Tannin to which exported functions interface. - * - * @type {Tannin} - */ - var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); - var listeners = new Set(); - - var notifyListeners = function notifyListeners() { - listeners.forEach(function (listener) { - return listener(); - }); - }; - /** - * Subscribe to changes of locale data. - * - * @param {SubscribeCallback} callback Subscription callback. - * @return {UnsubscribeCallback} Unsubscribe callback. - */ - - - var subscribe = function subscribe(callback) { - listeners.add(callback); - return function () { - return listeners.delete(callback); - }; - }; - /** @type {GetLocaleData} */ - - - var getLocaleData = function getLocaleData() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return tannin.data[domain]; - }; - /** - * @param {LocaleData} [data] - * @param {string} [domain] - */ - - - var doSetLocaleData = function doSetLocaleData(data) { - var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits - // a plural forms expression). - - tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); - }; - /** @type {SetLocaleData} */ - - - var setLocaleData = function setLocaleData(data, domain) { - doSetLocaleData(data, domain); - notifyListeners(); - }; - /** @type {ResetLocaleData} */ - - - var resetLocaleData = function resetLocaleData(data, domain) { - // Reset all current Tannin locale data. - tannin.data = {}; // Reset cached plural forms functions cache. - - tannin.pluralForms = {}; - setLocaleData(data, domain); - }; - /** - * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not - * otherwise previously assigned. - * - * @param {string|undefined} domain Domain to retrieve the translated text. - * @param {string|undefined} context Context information for the translators. - * @param {string} single Text to translate if non-plural. Used as - * fallback return value on a caught error. - * @param {string} [plural] The text to be used if the number is - * plural. - * @param {number} [number] The number to compare against to use - * either the singular or plural form. - * - * @return {string} The translated string. - */ - - - var dcnpgettext = function dcnpgettext() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - var context = arguments.length > 1 ? arguments[1] : undefined; - var single = arguments.length > 2 ? arguments[2] : undefined; - var plural = arguments.length > 3 ? arguments[3] : undefined; - var number = arguments.length > 4 ? arguments[4] : undefined; - - if (!tannin.data[domain]) { - // use `doSetLocaleData` to set silently, without notifying listeners - doSetLocaleData(undefined, domain); - } - - return tannin.dcnpgettext(domain, context, single, plural, number); - }; - /** @type {GetFilterDomain} */ - - - var getFilterDomain = function getFilterDomain() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return domain; - }; - /** @type {__} */ - - - var __ = function __(text, domain) { - var translation = dcnpgettext(domain, undefined, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext', translation, text, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) - ); - }; - /** @type {_x} */ - - - var _x = function _x(text, context, domain) { - var translation = dcnpgettext(domain, context, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation based on context information. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) - ); - }; - /** @type {_n} */ - - - var _n = function _n(single, plural, number, domain) { - var translation = dcnpgettext(domain, undefined, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) - ); - }; - /** @type {_nx} */ - - - var _nx = function _nx(single, plural, number, context, domain) { - var translation = dcnpgettext(domain, context, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string with gettext context. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) - ); - }; - /** @type {IsRtl} */ - - - var isRTL = function isRTL() { - return 'rtl' === _x('ltr', 'text direction'); - }; - /** @type {HasTranslation} */ - - - var hasTranslation = function hasTranslation(single, context, domain) { - var _tannin$data, _tannin$data2; - - var key = context ? context + "\x04" + single : single; - 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]); - - if (hooks) { - /** - * Filters the presence of a translation in the locale data. - * - * @param {boolean} hasTranslation Whether the translation is present or not.. - * @param {string} single The singular form of the translated text (used as key in locale data) - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation', result, single, context, domain); - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); - } - - return result; - }; - - if (initialData) { - setLocaleData(initialData, initialDomain); - } - - if (hooks) { - /** - * @param {string} hookName - */ - var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { - if (I18N_HOOK_REGEXP.test(hookName)) { - notifyListeners(); - } - }; - - hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); - hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); - } - - return { - getLocaleData: getLocaleData, - setLocaleData: setLocaleData, - resetLocaleData: resetLocaleData, - subscribe: subscribe, - __: __, - _x: _x, - _n: _n, - _nx: _nx, - isRTL: isRTL, - hasTranslation: hasTranslation - }; -}; -//# sourceMappingURL=create-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* binding */ __), -/* harmony export */ _n: () => (/* binding */ _n), -/* harmony export */ _nx: () => (/* binding */ _nx), -/* harmony export */ _x: () => (/* binding */ _x), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), -/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), -/* harmony export */ isRTL: () => (/* binding */ isRTL), -/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), -/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), -/* harmony export */ subscribe: () => (/* binding */ subscribe) -/* harmony export */ }); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); -/** - * Internal dependencies - */ - -/** - * WordPress dependencies - */ - - -var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); -/** - * Default, singleton instance of `I18n`. - */ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); -/* - * Comments in this file are duplicated from ./i18n due to - * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 - */ - -/** - * @typedef {import('./create-i18n').LocaleData} LocaleData - * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback - * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback - */ - -/** - * Returns locale data by domain in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {string} [domain] Domain for which to get the data. - * @return {LocaleData} Locale data. - */ - -var getLocaleData = i18n.getLocaleData.bind(i18n); -/** - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var setLocaleData = i18n.setLocaleData.bind(i18n); -/** - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var resetLocaleData = i18n.resetLocaleData.bind(i18n); -/** - * Subscribes to changes of locale data - * - * @param {SubscribeCallback} callback Subscription callback - * @return {UnsubscribeCallback} Unsubscribe callback - */ - -var subscribe = i18n.subscribe.bind(i18n); -/** - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - * - * @param {string} text Text to translate. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated text. - */ - -var __ = i18n.__.bind(i18n); -/** - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - * - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated context string without pipe. - */ - -var _x = i18n._x.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _n = i18n._n.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _nx = i18n._nx.bind(i18n); -/** - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - * - * @return {boolean} Whether locale is RTL. - */ - -var isRTL = i18n.isRTL.bind(i18n); -/** - * Check if there is a translation for a given string (in singular form). - * - * @param {string} single Singular form of the string to look up. - * @param {string} [context] Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * @return {boolean} Whether the translation exists or not. - */ - -var hasTranslation = i18n.hasTranslation.bind(i18n); -//# sourceMappingURL=default-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), -/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), -/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), -/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), -/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), -/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), -/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), -/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), -/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), -/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), -/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), -/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) -/* harmony export */ }); -/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": -/*!**************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sprintf: () => (/* binding */ sprintf) -/* harmony export */ }); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * External dependencies - */ - - -/** - * Log to console, once per message; or more precisely, per referentially equal - * argument set. Because Jed throws errors, we log these to the console instead - * to avoid crashing the application. - * - * @param {...*} args Arguments to pass to `console.error` - */ - -var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console - -/** - * Returns a formatted string. If an error occurs in applying the format, the - * original format string is returned. - * - * @param {string} format The format of the string to generate. - * @param {...*} args Arguments to apply to the format. - * - * @see https://www.npmjs.com/package/sprintf-js - * - * @return {string} The formatted string. - */ - -function sprintf(format) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); - } catch (error) { - logErrorOnce('sprintf error: \n\n' + error.toString()); - return format; - } -} -//# sourceMappingURL=sprintf.js.map - -/***/ }), - -/***/ "./js/src/admin/components/dependent-updater-component.js": -/*!****************************************************************!*\ - !*** ./js/src/admin/components/dependent-updater-component.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. - * The names of the elements that will be updated are specified using the "will-change" attribute. - * It is primarily used in components from Style/Quick Settings. - * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. - */ -var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { - /** - * Creates an instance of frmStyleDependentUpdaterComponent. - * @param {HTMLElement} component - The component element. - */ - function frmStyleDependentUpdaterComponent(component) { - _classCallCheck(this, frmStyleDependentUpdaterComponent); - this.component = component; - try { - var willChangeData = JSON.parse(this.component.dataset.willChange); - this.data = { - propagateInputs: this.initPropagationList(willChangeData), - changeEvent: new Event('change', { - bubbles: true - }) - }; - } catch (error) { - console.error('Error parsing JSON data from "will-change" attribute.', error); - } - } - - /** - * Initializes the list of inputs to propagate changes to. - * The selection is made by provided input's names list in "will-change" attribute. - * @param {string[]} inputNames - The names of the inputs to propagate changes to. - * @return {HTMLElement[]} - The list of inputs to propagate changes to. - */ - return _createClass(frmStyleDependentUpdaterComponent, [{ - key: "initPropagationList", - value: function initPropagationList(inputNames) { - var list = []; - inputNames.forEach(function (name) { - var input = document.querySelector("input[name=\"".concat(name, "\"]")); - if (null !== input) { - list.push(input); - } - }); - return list; - } - - /** - * Updates all dependent elements with the given value. - * @param {string} value - The value to update the dependent elements with. - */ - }, { - key: "updateAllDependentElements", - value: function updateAllDependentElements(value) { - this.data.propagateInputs.forEach(function (input) { - input.value = value; - }); - this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); - } - }]); -}(); - - -/***/ }), - -/***/ "./node_modules/memize/index.js": -/*!**************************************!*\ - !*** ./node_modules/memize/index.js ***! - \**************************************/ -/***/ ((module) => { - -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {Function} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {F & MemizeMemoizedFunction} Memoized function. - */ -function memize( fn, options ) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized( /* ...args */ ) { - var node = head, - len = arguments.length, - args, i; - - searchCache: while ( node ) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if ( node.args.length !== arguments.length ) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for ( i = 0; i < len; i++ ) { - if ( node.args[ i ] !== arguments[ i ] ) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== head ) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if ( node === tail ) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ ( head ).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply( null, args ), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( head ) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { - tail = /** @type {MemizeCacheNode} */ ( tail ).prev; - /** @type {MemizeCacheNode} */ ( tail ).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function() { - head = null; - tail = null; - size = 0; - }; - - if ( false ) {} - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - -module.exports = memize; - - -/***/ }), - -/***/ "./node_modules/sprintf-js/src/sprintf.js": -/*!************************************************!*\ - !*** ./node_modules/sprintf-js/src/sprintf.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[+-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } - - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line - - -/***/ }), - -/***/ "./node_modules/tannin/index.js": -/*!**************************************!*\ - !*** ./node_modules/tannin/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Tannin) -/* harmony export */ }); -/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); - - -/** - * Tannin constructor options. - * - * @typedef {Object} TanninOptions - * - * @property {string} [contextDelimiter] Joiner in string lookup with context. - * @property {Function} [onMissingKey] Callback to invoke when key missing. - */ - -/** - * Domain metadata. - * - * @typedef {Object} TanninDomainMetadata - * - * @property {string} [domain] Domain name. - * @property {string} [lang] Language code. - * @property {(string|Function)} [plural_forms] Plural forms expression or - * function evaluator. - */ - -/** - * Domain translation pair respectively representing the singular and plural - * translation. - * - * @typedef {[string,string]} TanninTranslation - */ - -/** - * Locale data domain. The key is used as reference for lookup, the value an - * array of two string entries respectively representing the singular and plural - * translation. - * - * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain - */ - -/** - * Jed-formatted locale data. - * - * @see http://messageformat.github.io/Jed/ - * - * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData - */ - -/** - * Default Tannin constructor options. - * - * @type {TanninOptions} - */ -var DEFAULT_OPTIONS = { - contextDelimiter: '\u0004', - onMissingKey: null, -}; - -/** - * Given a specific locale data's config `plural_forms` value, returns the - * expression. - * - * @example - * - * ``` - * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' - * ``` - * - * @param {string} pf Locale data plural forms. - * - * @return {string} Plural forms expression. - */ -function getPluralExpression( pf ) { - var parts, i, part; - - parts = pf.split( ';' ); - - for ( i = 0; i < parts.length; i++ ) { - part = parts[ i ].trim(); - if ( part.indexOf( 'plural=' ) === 0 ) { - return part.substr( 7 ); - } - } -} - -/** - * Tannin constructor. - * - * @class - * - * @param {TanninLocaleData} data Jed-formatted locale data. - * @param {TanninOptions} [options] Tannin options. - */ -function Tannin( data, options ) { - var key; - - /** - * Jed-formatted locale data. - * - * @name Tannin#data - * @type {TanninLocaleData} - */ - this.data = data; - - /** - * Plural forms function cache, keyed by plural forms string. - * - * @name Tannin#pluralForms - * @type {Object} - */ - this.pluralForms = {}; - - /** - * Effective options for instance, including defaults. - * - * @name Tannin#options - * @type {TanninOptions} - */ - this.options = {}; - - for ( key in DEFAULT_OPTIONS ) { - this.options[ key ] = options !== undefined && key in options - ? options[ key ] - : DEFAULT_OPTIONS[ key ]; - } -} - -/** - * Returns the plural form index for the given domain and value. - * - * @param {string} domain Domain on which to calculate plural form. - * @param {number} n Value for which plural form is to be calculated. - * - * @return {number} Plural form index. - */ -Tannin.prototype.getPluralForm = function( domain, n ) { - var getPluralForm = this.pluralForms[ domain ], - config, plural, pf; - - if ( ! getPluralForm ) { - config = this.data[ domain ][ '' ]; - - pf = ( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - if ( typeof pf !== 'function' ) { - plural = getPluralExpression( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); - } - - getPluralForm = this.pluralForms[ domain ] = pf; - } - - return getPluralForm( n ); -}; - -/** - * Translate a string. - * - * @param {string} domain Translation domain. - * @param {string|void} context Context distinguishing terms of the same name. - * @param {string} singular Primary key for translation lookup. - * @param {string=} plural Fallback value used for non-zero plural - * form index. - * @param {number=} n Value to use in calculating plural form. - * - * @return {string} Translated string. - */ -Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { - var index, key, entry; - - if ( n === undefined ) { - // Default to singular. - index = 0; - } else { - // Find index by evaluating plural form for value. - index = this.getPluralForm( domain, n ); - } - - key = singular; - - // If provided, context is prepended to key with delimiter. - if ( context ) { - key = context + this.options.contextDelimiter + singular; - } - - entry = this.data[ domain ][ key ]; - - // Verify not only that entry exists, but that the intended index is within - // range and non-empty. - if ( entry && entry[ index ] ) { - return entry[ index ]; - } - - if ( this.options.onMissingKey ) { - this.options.onMissingKey( singular, domain ); - } - - // If entry not found, fall back to singular vs. plural with zero index - // representing the singular value. - return index === 0 ? singular : plural; -}; - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArray) -/* harmony export */ }); -function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _toConsumableArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(r) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!********************************!*\ - !*** ./js/src/admin/styles.js ***! - \********************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } - - - -/** - * Represents the frmStyleOptions class. - * @class - */ -var frmStyleOptions = /*#__PURE__*/function () { - function frmStyleOptions() { - _classCallCheck(this, frmStyleOptions); - this.success = frmDom.success; - this.init(); - this.initHover(); - } - - /** - * Init the dependent - */ - return _createClass(frmStyleOptions, [{ - key: "init", - value: function init() { - this.initColorPickerDependentUpdaterComponents(); - this.initStyleClassCopyToClipboard((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The class name has been copied.', 'formidable')); - } - - /** - * Initializes the color picker dependent updater components. - * Retrieves the components and elements, and adds them to the elements array. - * Adds an action hook for the frm_style_options_color_change event. - */ - }, { - key: "initColorPickerDependentUpdaterComponents", - value: function initColorPickerDependentUpdaterComponents() { - var components = document.querySelectorAll('.frm-style-dependent-updater-component.frm-colorpicker'); - var elements = []; - components.forEach(function (component) { - var element = component.querySelector('input.hex'); - var id = 'undefined' !== typeof element ? element.getAttribute('id') : null; - if (null !== id) { - elements.push({ - id: id, - dependentUpdaterClass: new _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](component, 'colorpicker') - }); - } - }); - wp.hooks.addAction('frm_style_options_color_change', 'formidable', function (_ref) { - var event = _ref.event, - value = _ref.value; - var container = event.target.closest('.wp-picker-container'); - var id = event.target.getAttribute('id'); - container.querySelector('.wp-color-result-text').innerText = value; - elements.forEach(function (element) { - if (element.id === id) { - element.dependentUpdaterClass.updateAllDependentElements(value); - } - }); - }); - } - - /** - * Initializes the hover functionality for the style options. - * Creates a hover element and appends it to the settingsWrapper. - * Adds event listeners for mouseover and click events. - */ - }, { - key: "initHover", - value: function initHover() { - var settingsWrapper = document.querySelector('.frm-right-panel .styling_settings .accordion-container'); - if (null === settingsWrapper) { - return; - } - var hoverElement = document.createElement('div'); - hoverElement.classList.add('frm_hidden'); - hoverElement.classList.add('frm-style-settings-hover'); - settingsWrapper.appendChild(hoverElement); - var styleOptionsMenu = settingsWrapper.querySelector(':scope > ul'); - styleOptionsMenu.querySelectorAll(':scope > li').forEach(function (item) { - item.querySelector('h3').addEventListener('mouseover', function (event) { - hoverElement.style.transform = "translateY(".concat(event.target.closest('li').offsetTop, "px)"); - hoverElement.classList.add('frm-animating'); - hoverElement.classList.remove('frm_hidden'); - setTimeout(function () { - hoverElement.classList.remove('frm-animating'); - }, 250); - }); - }); - var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); - accordionitems.forEach(function (item) { - item.addEventListener('click', function () { - hoverElement.classList.add('frm_hidden'); - }); - }); - } - - /** - * Initializes the copy to clipboard functionality for style classes. - * Adds a click event listener to the copyLabel element. - * Copies the class name to the clipboard and displays a success message. - * @param {string} successMessage - The success message to display. - */ - }, { - key: "initStyleClassCopyToClipboard", - value: function initStyleClassCopyToClipboard(successMessage) { - var _this = this; - var copyLabel = document.querySelector('.frm-copy-text'); - copyLabel.addEventListener('click', function (event) { - var className = event.currentTarget.innerText; - navigator.clipboard.writeText(className).then(function () { - _this.success(successMessage); - }); - }); - } - }]); -}(); -new frmStyleOptions(); -})(); - -/******/ })() -; -//# sourceMappingURL=formidable_styles.js.map \ No newline at end of file +(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,i=0;function o(){var o,a,s=n,c=arguments.length;t:for(;s;){if(s.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(t){return function(t,e){var n,r,a,s,c,u,l,f,p,d=1,h=t.length,v="";for(r=0;r=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?p="":(p=f?"+":"-",n=n.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",l=s.width-(p+n).length,c=s.width&&l>0?u.repeat(l):"",v+=s.align?p+n+c:"0"===u?p+c+n:c+p+n)}return v}(function(t){if(s[t])return s[t];for(var e,n=t,r=[],o=0;n;){if(null!==(e=i.text.exec(n)))r.push(e[0]);else if(null!==(e=i.modulo.exec(n)))r.push("%");else{if(null===(e=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){o|=1;var a=[],c=e[2],u=[];if(null===(u=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=i.key_access.exec(c)))a.push(u[1]);else{if(null===(u=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(u[1])}e[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return s[t]=r}(t),arguments)}function a(t,e){return o.apply(null,[t].concat(e||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(r=function(){return{sprintf:o,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t,e,r,i,o=n(616),a=n.n(o);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}n(604),a()(console.error),t={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},e=["(","?"],r={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var u={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var l={contextDelimiter:"",onMissingKey:null};function f(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},l)this.options[n]=void 0!==e&&n in e?e[n]:l[n]}function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e=0||t[c]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(m(n)&&y(r))if("function"==typeof i)if("number"==typeof o){var s={callback:i,priority:o,namespace:r};if(a[n]){var c,u=a[n].handlers;for(c=u.length;c>0&&!(o>=u[c-1].priority);c--);c===u.length?u[c]=s:u.splice(c,0,s),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=c&&t.currentIndex++}))}else a[n]={handlers:[s],runs:0};"hookAdded"!==n&&t.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.")}},g=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,i){var o=t[e];if(m(r)&&(n||y(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,c=function(t){s[t].namespace===i&&(s.splice(t,1),a++,o.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},u=s.length-1;u>=0;u--)c(u);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,i),a}}},_=function(t,e){return function(n,r){var i=t[e];return void 0!==r?n in i&&i[n].handlers.some((function(t){return t.namespace===r})):n in i}},x=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var i=t[e];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),c=1;c1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=d(d(d({},h),r.data[e]),t),r.data[e][""]=d(d({},h[""]),r.data[e][""])},s=function(t,e){a(t,e),o()},c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=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[t]||a(void 0,t),r.dcnpgettext(t,e,n,i,o)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},l=function(t,e,r){var i=c(r,e,t);return n?(i=n.applyFilters("i18n.gettext_with_context",i,t,e,r),n.applyFilters("i18n.gettext_with_context_"+u(r),i,t,e,r)):i};if(n){var p=function(t){v.test(t)&&o()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:s,resetLocaleData:function(t,e){r.data={},r.pluralForms={},s(t,e)},subscribe:function(t){return i.add(t),function(){return i.delete(t)}},__:function(t,e){var r=c(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+u(e),r,t,e)):r},_x:l,_n:function(t,e,r,i){var o=c(i,void 0,t,e,r);return n?(o=n.applyFilters("i18n.ngettext",o,t,e,r,i),n.applyFilters("i18n.ngettext_"+u(i),o,t,e,r,i)):o},_nx:function(t,e,r,i,o){var a=c(o,i,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,i,o),n.applyFilters("i18n.ngettext_with_context_"+u(o),a,t,e,r,i,o)):a},isRTL:function(){return"rtl"===l("ltr","text direction")},hasTranslation:function(t,e,i){var o,a,s=e?e+""+t:t,c=!(null===(o=r.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[s]);return n&&(c=n.applyFilters("i18n.has_translation",c,t,e,i),c=n.applyFilters("i18n.has_translation_"+u(i),c,t,e,i)),c}}}(0,0,A));F.getLocaleData.bind(F),F.setLocaleData.bind(F),F.resetLocaleData.bind(F),F.subscribe.bind(F);var j=F.__.bind(F);function E(t){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function O(t,e){for(var n=0;n ul").querySelectorAll(":scope > li").forEach((function(t){t.querySelector("h3").addEventListener("mouseover",(function(t){e.style.transform="translateY(".concat(t.target.closest("li").offsetTop,"px)"),e.classList.add("frm-animating"),e.classList.remove("frm_hidden"),setTimeout((function(){e.classList.remove("frm-animating")}),250)}))})),document.querySelectorAll("#frm_style_sidebar .accordion-section h3").forEach((function(t){t.addEventListener("click",(function(){e.classList.add("frm_hidden")}))}))}}},{key:"initStyleClassCopyToClipboard",value:function(t){var e=this;document.querySelector(".frm-copy-text").addEventListener("click",(function(n){var r=n.currentTarget.innerText;navigator.clipboard.writeText(r).then((function(){e.success(t)}))}))}}])&&I(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}())})()})(); \ No newline at end of file diff --git a/js/onboarding-wizard.js b/js/onboarding-wizard.js index a9dfab40d3..29de947775 100644 --- a/js/onboarding-wizard.js +++ b/js/onboarding-wizard.js @@ -1,1842 +1,2 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/events/index.js": -/*!*************************************!*\ - !*** ./js/src/core/events/index.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addOptionBoxEvents: () => (/* reexport safe */ _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents) -/* harmony export */ }); -/* harmony import */ var _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./optionBoxListener */ "./js/src/core/events/optionBoxListener.js"); - - -/***/ }), - -/***/ "./js/src/core/events/optionBoxListener.js": -/*!*************************************************!*\ - !*** ./js/src/core/events/optionBoxListener.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addOptionBoxEvents: () => (/* binding */ addOptionBoxEvents) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - -var OPTION_BOX_CLASS = '.frm-option-box'; - -/** - * Manages event handling for an option-box. - * - * @return {void} - */ -function addOptionBoxEvents() { - var optionBoxes = document.querySelectorAll(OPTION_BOX_CLASS); - optionBoxes.forEach(function (optionBox) { - optionBox.addEventListener('click', onOptionBoxClick); - }); -} - -/** - * Handles the click event on a option box item. - * - * @private - * @param {Event} event The click event object. - */ -function onOptionBoxClick(event) { - if (event.target.tagName.toLowerCase() !== 'input') { - return; - } - var optionBox = event.currentTarget.closest(OPTION_BOX_CLASS); - optionBox.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.CHECKED_CLASS); -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageElements.js": -/*!***************************************************!*\ - !*** ./js/src/core/factory/createPageElements.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* binding */ createPageElements) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page elements manager. - * - * @param {Object} [initialElements={}] An object containing initial DOM elements. - * @throws {Error} Throws an error if the `initialElements` is not an object. - * @return {Object} An object with methods to get and add elements. - */ -function createPageElements() { - var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialElements) !== 'object' || initialElements === null) { - throw new Error('createPageElements: initialElements must be a non-null object'); - } - var elements = initialElements; - - /** - * Retrieve the initialized essential DOM elements. - * - * @return {Object} The initialized elements object. - */ - function getElements() { - return elements; - } - - /** - * Add new elements to the elements object. - * - * @param {Object} newElements An object containing new elements to be added. - * @throws {Error} Throws an error if the `newElements` is not a non-null object. - * @return {void} Updates the elements object by merging the new elements into it. - */ - function addElements(newElements) { - if (_typeof(newElements) !== 'object' || newElements === null) { - throw new Error('addElements: newElements must be a non-null object'); - } - elements = _objectSpread(_objectSpread({}, elements), newElements); - } - return { - getElements: getElements, - addElements: addElements - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageState.js": -/*!************************************************!*\ - !*** ./js/src/core/factory/createPageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageState: () => (/* binding */ createPageState) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page state manager. - * - * @param {Object} [initialState={}] An object containing the initial state. - * @throws {Error} Throws an error if the `initialState` is not a plain object. - * @return {Object} An object with methods to initialize, get, and set the page state. - */ -function createPageState() { - var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialState) !== 'object' || initialState === null) { - throw new Error('createPageState: initialState must be a non-null object'); - } - var state = initialState; - - /** - * Returns the current page state. - * - * @return {Object|null} The current state of the page or null if not initialized. - */ - var getState = function getState() { - return state; - }; - - /** - * Returns a specific property from the current page state. - * - * @param {string} propertyName The name of the property to retrieve. - * @return {*} The value of the specified property, or null if it doesn't exist. - */ - var getSingleState = function getSingleState(propertyName) { - var value = Reflect.get(state, propertyName); - - // We convert `undefined` to `null` for a consistent API. - // This makes it easier for users to handle the results since all missing properties return `null`. - return value === undefined ? null : value; - }; - - /** - * Updates the page state with new values. - * - * @param {Object} newState The new values to update the state with. - * @throws {Error} Throws an error if `newState` is not a plain object. - * @return {void} - */ - var setState = function setState(newState) { - if (_typeof(newState) !== 'object' || newState === null) { - throw new Error('setState: newState must be a non-null object'); - } - state = _objectSpread(_objectSpread({}, state), newState); - }; - - /** - * Updates a specific property in the page state with a new value. - * - * @param {string} propertyName The name of the property to update. - * @param {*} value The new value to set for the property. - * @return {void} - */ - var setSingleState = function setSingleState(propertyName, value) { - if (Reflect.has(state, propertyName)) { - Reflect.set(state, propertyName, value); - } - }; - return { - getState: getState, - getSingleState: getSingleState, - setState: setState, - setSingleState: setSingleState - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/index.js": -/*!**************************************!*\ - !*** ./js/src/core/factory/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), -/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) -/* harmony export */ }); -/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); -/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); - - - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./js/src/onboarding-wizard/dataUtils/index.js": -/*!*****************************************************!*\ - !*** ./js/src/onboarding-wizard/dataUtils/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupUsageData: () => (/* reexport safe */ _setupUsageData__WEBPACK_IMPORTED_MODULE_0__["default"]) -/* harmony export */ }); -/* harmony import */ var _setupUsageData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupUsageData */ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js"); - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js": -/*!**************************************************************!*\ - !*** ./js/src/onboarding-wizard/dataUtils/setupUsageData.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/** - * Internal Dependencies - */ - - -/** - * Processes and submits usage data for the specified onboarding step. - * - * @param {string} processedStep The name of the step that has just been processed. - * @param {string} nextStepName The name of the next step in the onboarding process. - * @return {void} - */ -function setupUsageData(processedStep, nextStepName) { - var formData = processDataForStep(processedStep, nextStepName); - if (!formData) { - return; - } - - // Send the POST request - var doJsonPost = frmDom.ajax.doJsonPost; - doJsonPost('onboarding_setup_usage_data', formData); -} - -/** - * Processes onboarding step data and returns the corresponding FormData. - * - * @private - * @param {string} processedStep The name of the step that has just been processed. - * @param {string} nextStepName The name of the next step in the onboarding process. - * @return {FormData|null} The FormData to be submitted for the step, or null if there's no data. - */ -function processDataForStep(processedStep, nextStepName) { - var formData; - - // Append completed steps if moving to the success step - if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.SUCCESS === nextStepName || _shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.UNSUCCESSFUL === nextStepName) { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), - processedSteps = _getState.processedSteps; - if (processedSteps.length > 1) { - if (!processedSteps.includes(nextStepName)) { - processedSteps.push(nextStepName); - } - formData = new FormData(); - formData.append('processed_steps', processedSteps.join(',')); - formData.append('completed_steps', true); - } - } - - // Append installed addons for the addon installation step - if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.INSTALL_ADDONS === processedStep) { - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), - installedAddons = _getState2.installedAddons; - if (installedAddons.length > 0) { - var _formData; - formData = (_formData = formData) !== null && _formData !== void 0 ? _formData : new FormData(); - formData.append('installed_addons', installedAddons.join(',')); - } - } - return formData; -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupUsageData); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/elements/elements.js": -/*!*******************************************************!*\ - !*** ./js/src/onboarding-wizard/elements/elements.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* binding */ addElements), -/* harmony export */ getElements: () => (/* binding */ getElements) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)({ - onboardingWizardPage: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-wizard-page")), - container: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-container")), - rootline: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-rootline")), - steps: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-step")), - skipStepButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-skip-step")), - backButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-back-button")), - consentTrackingButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-consent-tracking")), - installAddonsButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-install-addons-button")), - hiddenLicenseKeyInput: document.getElementById('frm-license-key') - }), - getElements = _createPageElements.getElements, - addElements = _createPageElements.addElements; - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/elements/index.js": -/*!****************************************************!*\ - !*** ./js/src/onboarding-wizard/elements/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/onboarding-wizard/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/backButtonListener.js": -/*!***************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/backButtonListener.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Back" button. - * - * @return {void} - */ -function addBackButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - backButtons = _getElements.backButtons; - - // Attach click event listeners to each back buttons - backButtons.forEach(function (backButton) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(backButton, onBackButtonClick); - }); -} - -/** - * Handles the click event on a "Back" button. - * - * @private - * @return {void} - */ -var onBackButtonClick = function onBackButtonClick() { - (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToPrevStep)(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addBackButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js": -/*!**************************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/consentTrackingButtonListener.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Allow & Continue" button in the "Never miss an important update" step. - * - * @return {void} - */ -function addConsentTrackingButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - consentTrackingButton = _getElements.consentTrackingButton; - - // Attach click event listener - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(consentTrackingButton, onConsentTrackingButtonClick); -} - -/** - * Handles the click event on the "Allow & Continue" button in the "Never miss an important update" step. - * - * @private - * @return {void} - */ -var onConsentTrackingButtonClick = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var doJsonPost; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - doJsonPost = frmDom.ajax.doJsonPost; - doJsonPost('onboarding_consent_tracking', new FormData()).then(_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep); - case 2: - case "end": - return _context.stop(); - } - }, _callee); - })); - return function onConsentTrackingButtonClick() { - return _ref.apply(this, arguments); - }; -}(); -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addConsentTrackingButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/index.js": -/*!**************************************************!*\ - !*** ./js/src/onboarding-wizard/events/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var core_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/events */ "./js/src/core/events/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./skipStepButtonListener */ "./js/src/onboarding-wizard/events/skipStepButtonListener.js"); -/* harmony import */ var _backButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backButtonListener */ "./js/src/onboarding-wizard/events/backButtonListener.js"); -/* harmony import */ var _consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./consentTrackingButtonListener */ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js"); -/* harmony import */ var _installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./installAddonsButtonListener */ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - - - -/** - * Attaches event listeners for handling user interactions. - * - * @return {void} - */ -function addEventListeners() { - // Add event handling for the "Skip" and "Back" buttons - (0,_skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); - (0,_backButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); - (0,_consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); - - // Add event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step - (0,_installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__["default"])(); - // Add event handling for an option-box - (0,core_events__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents)(); -} - -/** - * Responds to browser navigation events (back/forward) by updating the UI to match the step indicated in the URL or history state. - * - * @param {PopStateEvent} event The event object associated with the navigation action. - * @return {void} - */ -window.addEventListener('popstate', function (event) { - var _event$state; - var stepName = ((_event$state = event.state) === null || _event$state === void 0 ? void 0 : _event$state.step) || (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.getQueryParam)('step'); - // Navigate to the specified step without adding to browser history - (0,_utils__WEBPACK_IMPORTED_MODULE_6__.navigateToStep)(stepName, 'replaceState'); -}); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js": -/*!************************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/installAddonsButtonListener.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Manages event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. - * - * @return {void} - */ -function addInstallAddonsButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - installAddonsButton = _getElements.installAddonsButton; - - // Attach click event listener - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(installAddonsButton, onInstallAddonsButtonClick); -} - -/** - * Handles the click event on the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onInstallAddonsButtonClick = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) { - var addons, _getState, installedAddons, installAddonsButton, _iterator, _step, _loop; - return _regeneratorRuntime().wrap(function _callee$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - addons = document.querySelectorAll('.frm-option-box.frm-checked:not(.frm-disabled)'); - _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), installedAddons = _getState.installedAddons; - installAddonsButton = event.currentTarget; - installAddonsButton.classList.add('frm_loading_button'); - _iterator = _createForOfIteratorHelper(addons); - _context2.prev = 5; - _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() { - var addon, addonTitle; - return _regeneratorRuntime().wrap(function _loop$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - addon = _step.value; - _context.prev = 1; - _context.next = 4; - return (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue)(function () { - return installAddon(addon.getAttribute('rel'), addon.dataset); - }); - case 4: - // Capture addon title - addonTitle = addon.dataset.title; - if (!installedAddons.includes(addonTitle)) { - installedAddons.push(addonTitle); - } - _context.next = 11; - break; - case 8: - _context.prev = 8; - _context.t0 = _context["catch"](1); - console.error('An error occurred:', _context.t0); - case 11: - case "end": - return _context.stop(); - } - }, _loop, null, [[1, 8]]); - }); - _iterator.s(); - case 8: - if ((_step = _iterator.n()).done) { - _context2.next = 12; - break; - } - return _context2.delegateYield(_loop(), "t0", 10); - case 10: - _context2.next = 8; - break; - case 12: - _context2.next = 17; - break; - case 14: - _context2.prev = 14; - _context2.t1 = _context2["catch"](5); - _iterator.e(_context2.t1); - case 17: - _context2.prev = 17; - _iterator.f(); - return _context2.finish(17); - case 20: - installAddonsButton.classList.remove('frm_loading_button'); - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('installedAddons', installedAddons); - (0,_utils__WEBPACK_IMPORTED_MODULE_4__.navigateToNextStep)(); - case 23: - case "end": - return _context2.stop(); - } - }, _callee, null, [[5, 14, 17, 20]]); - })); - return function onInstallAddonsButtonClick(_x) { - return _ref.apply(this, arguments); - }; -}(); - -/** - * Installs an add-on or plugin based on the provided plugin name and vendor status. - * - * @private - * @param {string} plugin The unique identifier or name of the plugin or add-on to be installed. - * @param {Object} options An object containing additional options for the installation. - * @param {boolean} options.isInstalled Indicates whether the plugin is already installed. - * @param {boolean} options.isVendor Indicates whether the plugin is a vendor plugin (true) or a regular add-on (false). - * @return {Promise} A promise that resolves with the JSON response from the server after the installation request is completed. - */ -function installAddon(_x2, _x3) { - return _installAddon.apply(this, arguments); -} -function _installAddon() { - _installAddon = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(plugin, _ref2) { - var isVendor, isInstalled, formData, addonAction, response; - return _regeneratorRuntime().wrap(function _callee2$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - isVendor = _ref2.isVendor, isInstalled = _ref2.isInstalled; - // Prepare FormData for the POST request - formData = new FormData(); - formData.append('nonce', core_constants__WEBPACK_IMPORTED_MODULE_0__.nonce); - formData.append('plugin', plugin); - addonAction = isInstalled ? 'frm_activate_addon' : 'frm_install_addon'; - formData.append('action', isVendor ? 'frm_install_plugin' : addonAction); - _context3.prev = 6; - _context3.next = 9; - return fetch(ajaxurl, { - method: 'POST', - body: formData - }); - case 9: - response = _context3.sent; - if (response.ok) { - _context3.next = 12; - break; - } - throw new Error("Server responded with status ".concat(response.status)); - case 12: - _context3.next = 14; - return response.json(); - case 14: - return _context3.abrupt("return", _context3.sent); - case 17: - _context3.prev = 17; - _context3.t0 = _context3["catch"](6); - console.error('An error occurred:', _context3.t0); - case 20: - case "end": - return _context3.stop(); - } - }, _callee2, null, [[6, 17]]); - })); - return _installAddon.apply(this, arguments); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addInstallAddonsButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/skipStepButtonListener.js": -/*!*******************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/skipStepButtonListener.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Skip" step button. - * - * @return {void} - */ -function addSkipStepButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - skipStepButtons = _getElements.skipStepButtons; - - // Attach click event listeners to each skip buttons - skipStepButtons.forEach(function (skipButton) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(skipButton, onSkipStepButtonClick); - }); -} - -/** - * Handles the click event on a "Skip" step button. - * - * @private - * @return {void} - */ -var onSkipStepButtonClick = function onSkipStepButtonClick() { - (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep)(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSkipStepButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/initializeOnboardingWizard.js": -/*!****************************************************************!*\ - !*** ./js/src/onboarding-wizard/initializeOnboardingWizard.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/onboarding-wizard/ui/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/onboarding-wizard/events/index.js"); -/** - * Internal dependencies - */ - - - -/** - * Initializes Onboarding Wizard. - * - * @return {void} - */ -function initializeOnboardingWizard() { - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); - (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeOnboardingWizard); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/shared/constants.js": -/*!******************************************************!*\ - !*** ./js/src/onboarding-wizard/shared/constants.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ INITIAL_STEP: () => (/* binding */ INITIAL_STEP), -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ STEPS: () => (/* binding */ STEPS) -/* harmony export */ }); -var INITIAL_STEP = window.frmOnboardingWizardVars.INITIAL_STEP; - -var PREFIX = 'frm-onboarding'; -var STEPS = { - INITIAL: INITIAL_STEP, - INSTALL_ADDONS: 'install-addons', - SUCCESS: 'success', - UNSUCCESSFUL: 'unsuccessful' -}; - -/***/ }), - -/***/ "./js/src/onboarding-wizard/shared/index.js": -/*!**************************************************!*\ - !*** ./js/src/onboarding-wizard/shared/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ INITIAL_STEP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.INITIAL_STEP), -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ STEPS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.STEPS), -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/onboarding-wizard/shared/constants.js"); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/onboarding-wizard/shared/pageState.js"); - - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/shared/pageState.js": -/*!******************************************************!*\ - !*** ./js/src/onboarding-wizard/shared/pageState.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* binding */ getSingleState), -/* harmony export */ getState: () => (/* binding */ getState), -/* harmony export */ setSingleState: () => (/* binding */ setSingleState), -/* harmony export */ setState: () => (/* binding */ setState) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/** - * External dependencies - */ - -var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ - processedSteps: [], - installedAddons: [] - }), - getState = _createPageState.getState, - getSingleState = _createPageState.getSingleState, - setState = _createPageState.setState, - setSingleState = _createPageState.setSingleState; - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/ui/index.js": -/*!**********************************************!*\ - !*** ./js/src/onboarding-wizard/ui/index.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ updateRootline: () => (/* reexport safe */ _rootline__WEBPACK_IMPORTED_MODULE_1__.updateRootline) -/* harmony export */ }); -/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/onboarding-wizard/ui/setupInitialView.js"); -/* harmony import */ var _rootline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rootline */ "./js/src/onboarding-wizard/ui/rootline.js"); - - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/ui/rootline.js": -/*!*************************************************!*\ - !*** ./js/src/onboarding-wizard/ui/rootline.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ updateRootline: () => (/* binding */ updateRootline) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var COMPLETED_STEP_CLASS = 'frm-completed-step'; - -/** - * Updates the rootline to reflect the current and completed steps. - * - * - Applies COMPLETED_STEP_CLASS to steps before the current one. - * - Applies CURRENT_CLASS to the current step, unless it is the success step. - * - * @param {string} currentStep The current step in the process. - * @return {void} - */ -function updateRootline(currentStep) { - if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL) { - currentStep = _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS; - } - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - rootline = _getElements.rootline; - var currentItem = rootline.querySelector(".frm-rootline-item[data-step=\"".concat(currentStep, "\"]")); - rootline.querySelectorAll('.frm-rootline-item').forEach(function (item) { - item.classList.remove(COMPLETED_STEP_CLASS); - item.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - }); - var prevItem = currentItem.previousElementSibling; - if (prevItem) { - while (prevItem) { - prevItem.classList.add(COMPLETED_STEP_CLASS); - prevItem = prevItem.previousElementSibling; // move to the previous sibling - } - } - if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS) { - currentItem.classList.add(COMPLETED_STEP_CLASS); - } else { - currentItem.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - } -} - -/***/ }), - -/***/ "./js/src/onboarding-wizard/ui/setupInitialView.js": -/*!*********************************************************!*\ - !*** ./js/src/onboarding-wizard/ui/setupInitialView.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setupInitialView) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Initializes the onboarding wizard's UI, sets up the initial step based on certain conditions, - * and applies necessary UI enhancements for a smoother user experience. - * - * @return {void} - */ -function setupInitialView() { - navigateToInitialStep(); - fadeInPageElements(); -} - -/** - * Determines the initial step in the onboarding process and navigates to it, considering the installation - * status of Formidable Pro and specific query parameters. - * - * @private - * @return {void} - */ -function navigateToInitialStep() { - var initialStepName = determineInitialStep(); - clearOnboardingQueryParams(); - (0,_utils__WEBPACK_IMPORTED_MODULE_3__.navigateToStep)(initialStepName, 'replaceState'); -} - -/** - * Determines the initial step based on the current state, such as whether Formidable Pro is installed - * and the presence of specific query parameters. Also handles the removal of unnecessary steps. - * - * @private - * @return {string} The name of the initial step to navigate to. - */ -function determineInitialStep() { - var isConnectedAccount = (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('success'); - if (isConnectedAccount === '0') { - return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL; - } - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - hiddenLicenseKeyInput = _getElements.hiddenLicenseKeyInput; - if (hiddenLicenseKeyInput || isConnectedAccount) { - return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INSTALL_ADDONS; - } - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('step') || _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INITIAL; -} - -/** - * Clears specific query parameters related to the onboarding process. - * - * @private - * @return {void} - */ -function clearOnboardingQueryParams() { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('key'); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('success'); -} - -/** - * Smoothly fades in the background and container elements of the page for a more pleasant user experience. - * - * @private - * @return {void} - */ -function fadeInPageElements() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - container = _getElements2.container; - new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(container).fadeIn(); -} - -/***/ }), - -/***/ "./js/src/onboarding-wizard/utils/index.js": -/*!*************************************************!*\ - !*** ./js/src/onboarding-wizard/utils/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ navigateToNextStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToNextStep), -/* harmony export */ navigateToPrevStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToPrevStep), -/* harmony export */ navigateToStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToStep) -/* harmony export */ }); -/* harmony import */ var _navigateToStep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navigateToStep */ "./js/src/onboarding-wizard/utils/navigateToStep.js"); - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/utils/navigateToStep.js": -/*!**********************************************************!*\ - !*** ./js/src/onboarding-wizard/utils/navigateToStep.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ navigateToNextStep: () => (/* binding */ navigateToNextStep), -/* harmony export */ navigateToPrevStep: () => (/* binding */ navigateToPrevStep), -/* harmony export */ navigateToStep: () => (/* binding */ navigateToStep) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _dataUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dataUtils */ "./js/src/onboarding-wizard/dataUtils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui */ "./js/src/onboarding-wizard/ui/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - - -/** - * Navigates to the given step in the onboarding sequence. - * Optionally updates the browser's history state to include the current step. - * - * @param {string} stepName The name of the step to navigate to. - * @param {string} [updateMethod='pushState'] Specifies the method to update the browser's history and URL. Accepts 'pushState' or 'replaceState'. If omitted, defaults to 'pushState'. - * @return {void} - */ -var navigateToStep = function navigateToStep(stepName) { - var updateMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'pushState'; - // Find the target step element - var targetStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step[data-step-name=\"").concat(stepName, "\"]")); - if (!targetStep) { - return; - } - - // Find and hide the current step element - var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); - if (currentStep) { - currentStep.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(currentStep); - } - - // Display the target step element - targetStep.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(targetStep); - new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(targetStep).fadeIn(); - - // Update the onboarding wizard's current step attribute - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - onboardingWizardPage = _getElements.onboardingWizardPage; - onboardingWizardPage.setAttribute('data-current-step', stepName); - - // Update the URL query parameter, with control over history update method - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.setQueryParam)('step', stepName, updateMethod); - (0,_ui__WEBPACK_IMPORTED_MODULE_5__.updateRootline)(stepName); -}; - -/** - * Navigates to the next step in the sequence. - * - * The function assumes steps are sequentially ordered in the DOM. - * - * @return {void} - */ -var navigateToNextStep = function navigateToNextStep() { - var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); - var nextStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.nextElementSibling; - if (!nextStep) { - return; - } - var processedStep = currentStep.dataset.stepName; - var nextStepName = nextStep.dataset.stepName; - - // Save processed steps - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), - processedSteps = _getState.processedSteps; - if (!processedSteps.includes(processedStep)) { - processedSteps.push(processedStep); - (0,_shared__WEBPACK_IMPORTED_MODULE_4__.setSingleState)('processedSteps', processedSteps); - } - (0,_dataUtils__WEBPACK_IMPORTED_MODULE_2__.setupUsageData)(processedStep, nextStepName); - navigateToStep(nextStepName); -}; - -/** - * Navigates to the previous step in the sequence. - * - * The function assumes steps are sequentially ordered in the DOM. - * - * @return {void} - */ -var navigateToPrevStep = function navigateToPrevStep() { - var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); - var prevStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.previousElementSibling; - if (!prevStep) { - return; - } - navigateToStep(prevStep.dataset.stepName); -}; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!*******************************************!*\ - !*** ./js/src/onboarding-wizard/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./initializeOnboardingWizard */ "./js/src/onboarding-wizard/initializeOnboardingWizard.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__["default"])(function () { - (0,_initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__["default"])(); -}); -/******/ })() -; -//# sourceMappingURL=onboarding-wizard.js.map \ No newline at end of file +/*! For license information please see onboarding-wizard.js.LICENSE.txt */ +(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):00&&void 0!==arguments[0]?arguments[0]:{};if("object"!==x(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==x(t)||null===t)throw new Error("setState: newState must be a non-null object");e=j(j({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({processedSteps:[],installedAddons:[]}),_=P.getState,k=(P.getSingleState,P.setState,P.setSingleState),T=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==b(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==b(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=m(m({},e),t)}}}({onboardingWizardPage:document.getElementById("".concat(S,"-wizard-page")),container:document.getElementById("".concat(S,"-container")),rootline:document.getElementById("".concat(S,"-rootline")),steps:document.querySelectorAll(".".concat(S,"-step")),skipStepButtons:document.querySelectorAll(".".concat(S,"-skip-step")),backButtons:document.querySelectorAll(".".concat(S,"-back-button")),consentTrackingButton:document.getElementById("".concat(S,"-consent-tracking")),installAddonsButton:document.getElementById("".concat(S,"-install-addons-button")),hiddenLicenseKeyInput:document.getElementById("frm-license-key")}),A=T.getElements;T.addElements;var I=function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pushState",o=document.querySelector(".".concat(S,'-step[data-step-name="').concat(t,'"]'));if(o){var i=document.querySelector(".".concat(S,"-step.").concat(d));i&&(i.classList.remove(d),null==(e=i)||e.classList.add(y)),o.classList.add(d),function(t){null==t||t.classList.remove(y)}(o),new n(o).fadeIn(),A().onboardingWizardPage.setAttribute("data-current-step",t),function(t,e){var r,n,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pushState";if(l.set(t,e),u.search=l.toString(),["pushState","replaceState"].includes(i)){var a=(r={},o=e,(n=function(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[i](a,"",u)}u.toString()}("step",t,r),function(t){t===E.UNSUCCESSFUL&&(t=E.SUCCESS);var e=A().rootline,r=e.querySelector('.frm-rootline-item[data-step="'.concat(t,'"]'));e.querySelectorAll(".frm-rootline-item").forEach((function(t){t.classList.remove(D),t.classList.remove(d)}));var n=r.previousElementSibling;if(n)for(;n;)n.classList.add(D),n=n.previousElementSibling;t===E.SUCCESS?r.classList.add(D):r.classList.add(d)}(t)}},N=function(){var t=document.querySelector(".".concat(S,"-step.").concat(d)),e=null==t?void 0:t.nextElementSibling;if(e){var r=t.dataset.stepName,n=e.dataset.stepName,o=_().processedSteps;o.includes(r)||(o.push(r),k("processedSteps",o)),function(t,e){var r=function(t,e){var r;if(E.SUCCESS===e||E.UNSUCCESSFUL===e){var n=_().processedSteps;n.length>1&&(n.includes(e)||n.push(e),(r=new FormData).append("processed_steps",n.join(",")),r.append("completed_steps",!0))}if(E.INSTALL_ADDONS===t){var o,i=_().installedAddons;i.length>0&&(r=null!==(o=r)&&void 0!==o?o:new FormData).append("installed_addons",i.join(","))}return r}(t,e);r&&(0,frmDom.ajax.doJsonPost)("onboarding_setup_usage_data",r)}(r,n),I(n)}};var D="frm-completed-step",C=".frm-option-box";function F(t){"input"===t.target.tagName.toLowerCase()&&t.currentTarget.closest(C).classList.toggle("frm-checked")}var U=function(){N()};var G=function(){var t,e;(e=null==(t=document.querySelector(".".concat(S,"-step.").concat(d)))?void 0:t.previousElementSibling)&&I(e.dataset.stepName)};function B(t){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(t)}function q(){q=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==B(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Y(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}var z=function(){var t,e=(t=q().mark((function t(){return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(0,frmDom.ajax.doJsonPost)("onboarding_consent_tracking",new FormData).then(N);case 2:case"end":return t.stop()}}),t)})),function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){Y(i,n,o,a,c,"next",t)}function c(t){Y(i,n,o,a,c,"throw",t)}a(void 0)}))});return function(){return e.apply(this,arguments)}}();function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function W(){W=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==R(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function J(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return K(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r Date: Mon, 13 Oct 2025 17:55:31 +0300 Subject: [PATCH 06/14] Fix unexpected behavior with multiselecting fields in section --- css/admin/frm-settings-components.css | 620 +- css/font_icons.css | 854 +- css/frm_admin.css | 12416 ++++++++++++++++++++- js/addons-page.js | 4800 +++++++- js/form-templates.js | 6754 ++++++++++- js/form-templates.js.map | 2 +- js/formidable-settings-components.js | 2765 ++++- js/formidable-settings-components.js.map | 2 +- js/formidable_admin.js | 10182 ++++++++++++++++- js/formidable_blocks.js | 2719 ++++- js/formidable_dashboard.js | 918 +- js/formidable_dashboard.js.map | 2 +- js/formidable_overlay.js | 746 +- js/formidable_styles.js | 3028 ++++- js/formidable_styles.js.map | 2 +- js/onboarding-wizard.js | 1856 ++- js/src/admin/admin.js | 5 +- 17 files changed, 47650 insertions(+), 21 deletions(-) diff --git a/css/admin/frm-settings-components.css b/css/admin/frm-settings-components.css index 4d0879f684..bd90479bcd 100644 --- a/css/admin/frm-settings-components.css +++ b/css/admin/frm-settings-components.css @@ -1 +1,619 @@ -.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} +/*!***********************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm-settings-components.scss ***! + \***********************************************************************************************************************************************************************************************************************************************/ +/** + * Formidable Forms settings components styles + */ +/** + * Accordion settings component styles + */ +.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus { + background: none; +} +.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover > svg:last-child, +.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:first-child, +.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:last-child { + color: var(--grey-900); +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component { + align-self: center; +} + +/** + * Color picker component styles + */ +.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button, +.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button { + background-color: #fff !important; +} +.frm_settings_form .frm-style-component .wp-picker-container button, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button { + position: relative; + height: 36px !important; + background-image: none !important; + overflow: hidden; + background-color: #fff !important; +} +.frm_settings_form .frm-style-component .wp-picker-container::after, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after { + content: ""; + width: 20px; + height: 20px; + display: block; + position: absolute; + top: 0; + right: 8px; + bottom: 0; + margin: auto; + background: url("../../images/style/small-arrow.svg") no-repeat; + background-position: center; + z-index: 10; +} +.frm_settings_form .frm-style-component .wp-color-result-text, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text { + line-height: 36px !important; + padding: 0 12px; + border: 0; +} +.frm_settings_form .frm-style-component .color-alpha, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha { + width: 20px !important; + height: 20px !important; + border-radius: 50% !important; + border: 1px solid rgb(208, 213, 221); + top: 0; + left: 0; + bottom: 0; + margin: auto; + margin-left: 12px; +} +.frm_settings_form .frm-style-component .wp-picker-input-wrap input, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input { + width: calc(100% - 10px) !important; + margin: 1px 5px; + height: 32px; + line-height: 32px; +} + +/** + * Background image component styles + */ +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component > div { + max-width: 216px; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container { + max-width: calc(100% - 44px); + position: relative; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box { + width: 36px; + height: 36px; + padding: 0; + background: white; + overflow: hidden; + text-indent: -999px; + flex-wrap: wrap; + border: none; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame { + margin-left: 0; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper { + position: relative; + width: 36px; + height: 36px; + margin: 0; + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); + overflow: hidden; + box-sizing: border-box; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame { + max-width: 120%; + height: 120%; + margin: -10%; + position: relative; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + margin: 0; + border-radius: var(--small-radius); +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option { + width: 100%; + height: 100%; + border: 1px solid var(--red-500); + text-indent: -9999px; + position: absolute; + top: 0; + left: 0; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before { + opacity: 0; + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: 1; + top: 0; + left: 0; + background: rgba(255, 255, 255, 0.8); +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after { + opacity: 0; + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: 1; + top: 0; + left: 0; + background: url("../../images/style/close.svg") no-repeat; + background-position: center; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after { + opacity: 1; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img { + width: 100%; + height: 100%; +} +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper + *, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings, +.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option * { + display: none; +} + +/** + * Radio buttons component styles + */ +.frm-style-component .frm-radio-container { + max-width: 216px; + height: 36px; + background: rgb(242, 244, 247); + gap: var(--small-gap); + padding: var(--gap-2xs); + box-sizing: border-box; + border-radius: var(--small-radius); + position: relative; +} +.frm-style-component.frm-field-shape .frm-radio-container { + max-width: unset; +} +.frm-style-component.frm-direction-component .frm-radio-container { + gap: var(--gap-xs); +} +.frm-style-component .frm-radio-container svg { + width: 16px; +} +.frm-style-component .frm-radio-container .frm-radio-active-tracker { + display: block; + width: 28%; + height: calc(100% - 8px); + background: white; + border-radius: var(--small-radius); + box-shadow: var(--button-shadow); + position: absolute; + top: var(--gap-2xs); + bottom: 0; + left: var(--gap-2xs); + z-index: 1; + transition: 0.35s transform cubic-bezier(0.075, 0.82, 0.165, 1); +} +.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker { + width: 23%; +} +.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { + width: calc(50% - var(--gap-xs)); +} +.frm-style-component .frm-radio-container > label { + width: 30%; + height: 100%; + margin: 0; + cursor: pointer; + position: relative; + display: flex; + z-index: 2; +} +.frm-style-component.frm-field-shape .frm-radio-container > label { + width: 23%; +} +.frm-style-component.frm-align-component.frm-2-options .frm-radio-container > label, .frm-style-component.frm-direction-component .frm-radio-container > label, .frm-style-component.frm-text-toggle-component .frm-radio-container > label { + width: 50%; +} +.frm-style-component.frm-text-toggle-component .frm-radio-container { + height: 44px; + max-width: unset; + gap: var(--gap-xs); + padding: var(--gap-xs); +} +.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { + height: calc(100% - var(--gap-sm)); + top: var(--gap-xs); +} + +.frm-style-tabs-wrapper .frm-tabs-navs ul > li:not(.frm-active):hover, +.frm-style-component .frm-radio-container input:not(:checked) + label:hover { + background: rgb(234, 236, 240); + border-radius: var(--small-radius); + box-shadow: var(--button-shadow); +} + +.frm-style-component .frm-radio-container input { + display: none; +} + +/** + * Sliders component styles + */ +.frm-style-component .frm-slider-container { + width: calc(100% - 91px); + display: flex; + align-items: center; + color: rgb(29, 41, 57); +} +.frm-style-component .frm-slider-container svg.frmsvg { + color: currentColor; + margin-right: 8px; + margin-left: -5px; + position: relative; + z-index: 15; +} + +.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover { + color: rgb(65, 153, 253); + cursor: pointer; +} + +.frm-style-component .frm-slider-container .frm-slider-active-track { + display: block; + height: 100%; + width: 0; + position: relative; + border-radius: 200px; +} +.frm-style-component .frm-slider-container .frm-slider-active-track, +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { + background: rgb(65, 153, 253); + box-shadow: 0 1.88px 4px -1px rgba(16, 24, 40, 0.03), 0 6px 8px -2px rgba(16, 24, 40, 0.08); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { + position: absolute; + display: block; + width: 16px; + height: 16px; + border-radius: 50%; + transform: translateX(15px); + cursor: grab; + right: 0; + top: 0; + bottom: 0; + margin: auto; +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label { + position: absolute; + display: block; + width: 48px; + height: 36px; + background: rgb(16, 24, 40); + color: white; + font-weight: 400; + font-size: var(--text-sm); + line-height: 36px; + border-radius: var(--small-radius); + transform: translate(-18px, -42px) scale3d(0.7, 1, 1); + opacity: 0; + z-index: -2; + pointer-events: none; + text-align: center; + user-select: none; +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label { + z-index: 12; + transform: translate(-18px, -42px) scale3d(1, 1, 1); + opacity: 1; + transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before { + content: ""; + display: block; + position: absolute; + width: 18px; + height: 18px; + border-radius: 50%; + left: 0; + top: 0; + transform: translate(-5px, -5px) scale3d(0.7, 0.7, 1); + border: 4px solid rgb(65, 153, 253); + opacity: 0; + transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before { + opacity: 0.5; + transform: translate(-5px, -5px) scale3d(1, 1, 1); + transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after { + content: ""; + position: absolute; + display: block; + width: 180%; + height: 200%; + border-radius: 50%; + left: 0; + top: 0; + transform: translate(-24%, -24%); +} + +.frm-style-component .frm-slider-value { + width: 86px; + height: 36px; + display: flex; + justify-content: center; + box-sizing: border-box; + background: white; + border-radius: var(--small-radius); + border: 1px solid var(--grey-300); +} +.frm-style-component .frm-slider-value > * { + border: none; +} +.frm-style-component .frm-slider-value input { + width: 40px; + height: 100%; + padding: 0; + font-size: var(--text-sm); + color: rgb(16, 24, 40); + padding-left: 12px; + box-sizing: border-box; +} +.frm-style-component .frm-slider-value select { + text-align: right; + padding: 0; + font-size: var(--text-sm); + color: rgb(102, 112, 133); + width: 44px; + background: url("../../images/style/small-arrow.svg") no-repeat; + background-position: center right 12px; + padding-right: 24px !important; +} +.frm-style-component .frm-slider { + display: block; + width: calc(100% - 5px); + height: 4px; + background: rgb(234, 236, 240); + border-radius: 200px; + cursor: pointer; +} + +.frm-slider-component .frm-independent-slider-field { + margin-top: 10px; +} +.frm-slider-component.frm-disabled .frm-slider-container { + pointer-events: none; + opacity: 0.5; +} +.frm-slider-component.frm-disabled .frm-slider-value input[type=text] { + width: 28px; +} +.frm-slider-component.frm-disabled .frm-slider-value select { + width: 56px; +} +.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text] { + width: 56px; +} +.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select { + width: 28px; +} + +.frm-style-component .frm-slider-component.frm-has-multiple-values { + margin-bottom: 10px; +} + +/** + * Tabs component styles + */ +.frm-tabs-wrapper { + position: relative; + overflow: hidden; +} +.frm-tabs-wrapper .frm-tabs-navigator { + margin: 0; + padding: 0; + display: flex; + gap: var(--gap-xs); + justify-content: space-between; + align-items: center; + background: rgb(242, 244, 247); + border-radius: var(--small-radius); + box-sizing: border-box; + height: 44px; + position: relative; + z-index: 2; +} +.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item { + flex: 1; + text-align: center; + cursor: pointer; +} +.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background { + display: block; + height: 100%; + background: white; + position: absolute; + top: 0; + left: 0; + z-index: 1; +} + +.frm-style-tabs-wrapper { + position: relative; +} +.frm-style-tabs-wrapper .frm-tabs-navs { + padding: 0; + min-height: 44px; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul { + margin: 0; + height: var(--h-md); + position: relative; + justify-content: space-between; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li, +.frm-style-tabs-wrapper .frm-tabs-navs ul li a { + color: var(--grey-500); + font-weight: 500; + font-size: var(--text-sm); + line-height: 28px; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li { + flex: 1; + height: 28px; + text-align: center; + margin-top: var(--gap-xs); + margin-bottom: 0; + cursor: pointer; +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active, .frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a { + color: var(--grey-900); +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { + margin-left: var(--gap-xs); +} +.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { + margin-right: var(--gap-xs); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter { + position: absolute; + top: 0; + left: 0; + width: 100%; + background: rgb(242, 244, 247); + height: 44px; + margin: 0; + border-radius: var(--small-radius); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline { + height: 28px; + background: white; + position: absolute; + left: 0; + bottom: 8px; + width: 45px; + transition: 0.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); + border-radius: var(--small-radius); + box-shadow: var(--button-shadow); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first { + left: var(--gap-xs); +} +.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last { + left: calc(-1 * var(--gap-xs)); +} + +.frm-tabs-container { + position: relative; + overflow: hidden; + margin-top: var(--gap-md); + height: 100%; +} + +.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track { + transition: 0.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); +} +.frm-style-tabs-wrapper .frm-tabs-slide-track > div { + flex: 0 0 100%; + opacity: 0; + transition: 0.25s opacity linear; + position: relative; + height: auto; + max-height: unset; + overflow: hidden; + box-sizing: border-box; +} +.frm-style-tabs-wrapper .frm-tabs-slide-track > div > div { + overflow: auto; + position: relative; + width: 100%; + padding: 0; + box-sizing: border-box; +} + +.frm-tabs-slide-track > div > div:first-child { + height: 100%; +} +.frm-tabs-slide-track > div.frm-active { + opacity: 1; + transition: 0.35s opacity linear; +} + +/** + * Miscellaneous settings component styles + */ +.frm-style-component .frm_toggle_slider { + background: rgb(242, 244, 247); +} + +.frm-style-component label.frm-copy-text { + line-height: 32px; + cursor: pointer; + white-space: nowrap; +} + +.frm-style-component .wp-picker-holder { + right: 0; +} + +.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading { + font-weight: 500; + font-size: var(--text-md); + color: var(--grey-900); +} + +.frm-unit-input { + position: relative; + display: flex; + align-items: center; +} +.frm-unit-input input[type=number]::-webkit-outer-spin-button, +.frm-unit-input input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + appearance: none; +} +.frm-unit-input .frm-input-group-suffix { + position: absolute; + top: 1px; + right: 1px; + display: flex; + align-items: center; + height: calc(100% - 2px); + padding-right: var(--gap-xs); +} +.frm-unit-input .frm-input-group-suffix select { + width: fit-content; + height: 100%; + min-height: unset; + font-size: var(--text-sm); + text-align: right; + color: var(--grey-500) !important; + background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%; + padding-left: var(--gap-2xs); + padding-right: 21px !important; + border: transparent; +} +.frm-unit-input .frm-input-group-suffix select:focus-visible { + outline: 1px solid var(--primary-500); + outline-offset: -2px; +} + +/*# sourceMappingURL=frm-settings-components.css.map*/ \ No newline at end of file diff --git a/css/font_icons.css b/css/font_icons.css index b21fe208ed..c25d12cac0 100644 --- a/css/font_icons.css +++ b/css/font_icons.css @@ -1 +1,853 @@ -@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"} +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/font_icons.scss ***! + \****************************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/** + * Font Icons + */ +@font-face { + font-family: "s11-fp"; + src: url("../fonts/s11-fp.woff?v=7") format("woff"); + font-weight: 400; + font-style: normal; +} +.frm-submenu-highlight { + background: #1da867; +} + +.frm-submenu-highlight a span { + color: #fff; + font-weight: 600; +} + +.frmfont, +.frm_icon_font { + text-decoration: none; + text-shadow: none; + font-weight: 400; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: auto; + line-height: 1.5; + transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; + font-size: 18px; +} + +i.frmfont, +i.frm_icon_font { + font-style: normal; + font-variant: normal; + speak: none; +} + +.frmfont::before, +select.frmfont, +.frm_icon_font::before, +select.frm_icon_font { + font-family: "s11-fp" !important; + text-align: center; +} + +.frmfont, +a.frmfont, +.frmfont:hover, +a.frmfont:hover .frm_icon_font, +a.frm_icon_font, +.frm_icon_font:hover, +a.frm_icon_font:hover { + text-decoration: none !important; + box-shadow: none; +} + +.frmfont:focus, +.frm_icon_font:focus { + box-shadow: none; +} + +.frmfont:active, +.frm_icon_font:active { + outline: none; +} + +.frm_trigger .frm_icon_font { + padding: 0 5px; +} + +.frm_logo_icon::before { + content: "\e601"; +} + +.frm_required_icon::before { + content: "\e612"; +} + +.frm_delete_icon::before { + content: "\e610" !important; +} + +.frm_move_icon::before { + content: "\e61a"; +} + +.frm_drag_icon::before { + content: "\e93b"; +} + +.frm_clear_icon::before { + content: "\e60a"; +} + +.frm_noclear_icon::before { + content: "\e60b"; +} + +.frm_duplicate_icon::before { + content: "\e61b"; +} + +.frm_copy_icon::before { + content: "\f0c5"; +} + +.frm_clone_icon::before { + content: "\f24d"; +} + +.frm_tooltip_icon::before { + content: "\e611"; +} + +.frm_tooltip_solid_icon::before { + content: "\e907"; +} + +.frm_forbid_icon::before { + content: "\e636"; +} + +.frm_checkmark_icon::before { + content: "\e90a"; +} + +.frm_check_icon::before { + content: "\e605"; +} + +.frm_check1_icon::before { + content: "\e606"; +} + +.frm_plus_icon::before { + content: "\e62f"; +} + +.frm_plus1_icon::before { + content: "\e602"; +} + +.frm_plus2_icon::before { + content: "\e603"; +} + +.frm_plus3_icon::before { + content: "\e632"; +} + +.frm_plus4_icon::before { + content: "\e60f"; +} + +.frm_minus_icon::before { + content: "\e62e"; +} + +.frm_minus1_icon::before { + content: "\e600"; +} + +.frm_minus2_icon::before { + content: "\e604"; +} + +.frm_minus3_icon::before { + content: "\e633"; +} + +.frm_minus4_icon::before { + content: "\e613"; +} + +.frm_cancel_icon::before { + content: "\e607"; +} + +.frm_cancel1_icon::before { + content: "\e608"; +} + +.frm_close_icon::before { + content: "\e928"; +} + +.frm_report_problem_solid_icon::before { + content: "\e914"; +} + +.frm_report_problem_icon::before { + content: "\e915"; +} + +.frm_arrowup_icon::before { + content: "\e60d"; +} + +.frm_arrowup1_icon::before { + content: "\e60e"; +} + +.frm_arrowup2_icon::before { + content: "\e630"; +} + +.frm_arrowup3_icon::before { + content: "\e62b"; +} + +.frm_arrowup4_icon::before { + content: "\e62c"; +} + +.frm_arrowup5_icon::before { + content: "\e635"; +} + +.frm_arrowup5_solid_icon::before { + content: "\e9d"; +} + +.frm_arrowup7_icon::before { + content: "\e908"; +} + +.frm_arrowup6_icon::before { + content: "\e62d"; +} + +.frm_arrowdown_icon::before { + content: "\e609"; +} + +.frm_arrowdown1_icon::before { + content: "\e60c"; +} + +.frm_arrowdown2_icon::before { + content: "\e631"; +} + +.frm_arrowdown3_icon::before { + content: "\e628"; +} + +.frm_arrowdown4_icon::before { + content: "\e629"; +} + +.frm_arrowdown5_icon::before { + content: "\e634"; +} + +.frm_arrowdown5_solid_icon::before { + content: "\e905"; +} + +.frm_arrowdown7_icon::before { + content: "\e90b"; +} + +.frm_arrowdown6_icon::before { + content: "\e62a"; +} + +.frm_arrow_left_icon::before { + content: "\e912"; +} + +.frm_arrow_right_icon::before { + content: "\e913"; +} + +.frm_filter_icon::before { + content: "\e90c"; +} + +.frm_download_icon::before { + content: "\e615"; +} + +.frm_upload2_icon::before { + content: "\f093"; +} + +.frm_upload_icon::before { + content: "\e616"; +} + +.frm_download2_icon::before { + content: "\f019"; +} + +.frm_hard_drive_icon::before { + content: "\e916"; +} + +.frm_pencil_solid_icon::before { + content: "\e901"; +} + +.frm_pencil_icon::before { + content: "\e61d"; +} + +.frm_signature_icon::before { + content: "\e919"; +} + +.frm_user_icon::before { + content: "\e7ff"; +} + +.frm_register_icon::before { + content: "\e637"; +} + +.frm_account_circle_solid_icon::before { + content: "\e853"; +} + +.frm_account_circle_icon::before { + content: "\e921"; +} + +.frm_address_card_icon::before { + content: "\e996"; +} + +.frm_paragraph_icon::before { + content: "\f1dd"; +} + +.frm_checkbox_unchecked_icon::before { + content: "\e91e"; +} + +.frm_checkbox_icon::before { + content: "\e922"; +} + +.frm_checkbox_solid_icon::before { + content: "\e91f"; +} + +.frm_dropdown_icon::before { + content: "\e909"; +} + +.frm_caret_square_down_icon::before { + content: "\f150"; +} + +.frm_check_square_icon::before { + content: "\f14a"; +} + +.frm_radio_unchecked_icon::before { + content: "\e971"; +} + +.frm_radio_checked_icon::before { + content: "\ea54"; +} + +.frm_scrubber_icon::before { + content: "\f2f8"; +} + +.frm_location_solid_icon::before { + content: "\e955"; +} + +.frm_location_icon::before { + content: "\e947"; +} + +.frm_toggle_on_icon::before { + content: "\f205"; +} + +.frm_toggle_off_icon::before { + content: "\f204"; +} + +.frm_shield_check_icon::before { + content: "\f2f7"; +} + +.frm_shield_check_solid_icon::before { + content: "\e97d"; +} + +.frm_clock_icon::before { + content: "\e929"; +} + +.frm_clock_solid_icon::before { + content: "\e985"; +} + +.frm_link_icon::before { + content: "\f0c1"; +} + +.frm_email_icon::before { + content: "\e626"; +} + +.frm_email_solid_icon::before { + content: "\f0e0"; +} + +.frm_mail_bulk_icon::before { + content: "\e95c"; +} + +.frm_phone_icon::before { + content: "\e942"; +} + +.frm_calendar_icon::before { + content: "\f073"; +} + +.frm_code_icon::before { + content: "\e90d"; +} + +.frm_tag_icon::before { + content: "\e98b"; +} + +.frm_tag_solid_icon::before { + content: "\e989"; +} + +.frm_price_tags_icon::before { + content: "\e936"; +} + +.frm_search_icon::before { + content: "\e978"; +} + +.frm_sitemap_icon::before { + content: "\f0e8"; +} + +.frm_file_icon::before { + content: "\f15b"; +} + +.frm_file_text_solid_icon::before { + content: "\f15c"; +} + +.frm_file_text_icon::before { + content: "\e923"; +} + +.frm-option-icon::before, +.frm_option_icon::before { + content: "\e904"; +} + +.frm_option_solid_icon::before { + content: "\e906"; +} + +.frm_more_horiz_icon::before { + content: "\e5d3"; +} + +.frm_more_vert_icon::before { + content: "\e5d4"; +} + +.frm_more_horiz_solid_icon { + font-size: 28px !important; + font-weight: 700; + line-height: 18px; +} + +.frm_more_horiz_solid_icon::before { + content: "···"; +} + +.frm_more_vert_solid_icon::before { + content: "\f142"; +} + +.frm_calculator_icon::before { + content: "\f1ec"; +} + +.frm_keyboard_icon::before { + content: "\e924"; +} + +.frm_eye_icon::before { + content: "\f06e"; +} + +.frm_eye_solid_icon::before { + content: "\e945"; +} + +.frm_eye_slash_icon::before { + content: "\f070"; +} + +.frm_eye_slash_solid_icon::before { + content: "\e949"; +} + +.frm_page_break_icon::before { + content: "\e8e9"; +} + +.frm_view_day_icon::before { + content: "\e8ed"; +} + +.frm_attach_file_icon::before { + content: "\e226"; +} + +.frm_printer_icon::before { + content: "\e926"; +} + +.frm_header_icon::before { + content: "\f1dc"; +} + +.frm_h1_icon::before { + content: "\e94c"; +} + +.frm_repeat_icon::before { + content: "\f363"; +} + +.frm_repeater_icon::before { + content: "\e974"; +} + +.frm_hashtag_icon::before { + content: "\e292"; +} + +.frm_save_icon::before { + content: "\e927"; +} + +.frm_sliders_icon::before { + content: "\f1de"; +} + +.frm_code_commit_icon::before { + content: "\f386"; +} + +.frm_star_icon::before { + content: "\e9d7"; +} + +.frm_star_full_icon::before { + content: "\e9d9"; +} + +.frm_star_half_icon::before { + content: "\e9d8"; +} + +.frm_linear_scale_icon::before { + content: "\e260"; +} + +.frm_pie_chart_icon::before { + content: "\e99a"; +} + +.frm_stats_bars_icon::before { + content: "\e99c"; +} + +.frm_sms_icon::before { + content: "\e61c"; +} + +.frm_highrise_icon::before { + content: "\e617"; +} + +.frm_mailchimp_icon::before { + content: "\e622"; +} + +.frm_feed_icon::before { + content: "\e624"; +} + +.frm_align_right_icon::before { + content: "\e90f"; +} + +.frm_align_left_icon::before { + content: "\e910"; +} + +.frm_button_icon::before { + content: "\e911"; +} + +.frm_browser_icon::before { + content: "\e925"; +} + +.frm_cloud_upload_solid_icon::before { + content: "\e92c"; +} + +.frm_shuffle_icon::before { + content: "\e917"; +} + +.frm_swap_icon::before { + content: "\e918"; +} + +.frm_pallet_icon::before { + content: "\e96d"; +} + +.frm_fingerprint_icon::before { + content: "\e94a"; +} + +.frm_ghost_icon::before { + content: "\e94b"; +} + +.frm_heart_solid_icon::before { + content: "\e94d"; +} + +.frm_heart_icon::before { + content: "\e94e"; +} + +.frm_history_icon::before { + content: "\e94f"; +} + +.frm_import_icon::before { + content: "\e91a"; +} + +.frm_export_icon::before { + content: "\e91b"; +} + +.frm_label_solid_icon::before { + content: "\e952"; +} + +.frm_label_icon::before { + content: "\e953"; +} + +.frm_lock_open_icon::before { + content: "\e957"; +} + +.frm_lock_icon::before { + content: "\e959"; +} + +.frm_dollar_sign_icon::before { + content: "\e91c"; +} + +.frm_percent_icon::before { + content: "\e939"; +} + +.frm_external_link_icon::before { + content: "\e966"; +} + +.frm_pageview_solid_icon::before { + content: "\e96a"; +} + +.frm_pageview_icon::before { + content: "\e96b"; +} + +.frm_settings_icon::before { + content: "\e97a"; +} + +.frm_stamp_icon::before { + content: "\e980"; +} + +.frm_support_icon::before { + content: "\f1cd"; +} + +.frm_text_icon::before { + content: "\e98d"; +} + +.frm_text2_icon::before { + content: "\f031"; +} + +.frm_white_label_icon::before { + content: "\e91d" !important; +} + +.frm_authorize_icon::before { + content: "\e903"; +} + +.frm_icon_font.frm_activecampaign_icon { + background-image: none; +} + +.frm_activecampaign_icon::before { + content: "\e930"; +} + +.frm_aweber_icon::before { + content: "\e627"; +} + +.frm_campaignmonitor_icon::before { + content: "\e946"; +} + +.frm_constant_contact_icon::before { + content: "\e931"; +} + +.frm_getresponse_icon::before { + content: "\e932"; +} + +.frm_googlesheets_icon::before { + content: "\e944"; +} + +.frm_building_icon::before { + content: "\e93f"; +} + +.frm_hubspot_icon::before { + content: "\e933"; +} + +.frm_icontact_icon::before { + content: "\e940"; +} + +.frm_icon_font.frm_mailpoet_icon::before { + content: "\e934"; +} + +.frm_paypal_icon::before { + content: "\e61f"; +} + +.frm_sendinblue_icon::before { + content: "\e943"; +} + +.frm_sendy_icon::before { + content: "\e941"; +} + +.frm_salesforce_icon::before { + content: "\e935"; +} + +.frm_salesforcealt_icon::before { + content: "\e937"; +} + +.frm_stripe_icon::before { + content: "\e902"; +} + +.frm_stripealt_icon::before { + content: "\e93d"; +} + +.frm_twilio_icon::before { + content: "\e620"; +} + +.frm_woocommerce_icon::before { + content: "\e90e"; +} + +.frm_wordpress_icon::before { + content: "\f19a"; +} + +.frm_credit_card_icon::before { + content: "\e938"; +} + +.frm_credit-card-alt_icon::before, +.frm_credit_card_alt_icon::before { + content: "\f283"; +} + +.frm_cc_amex_icon::before { + content: "\f1f3"; +} + +.frm_cc_discover_icon::before { + content: "\f1f2"; +} + +.frm_cc_mastercard_icon::before { + content: "\f1f1"; +} + +.frm_cc_visa_icon::before { + content: "\f1f0"; +} + +.frm_cc_paypal_icon::before { + content: "\f1f4"; +} + +.frm_cc_stripe_icon::before { + content: "\f1f5"; +} + +/*# sourceMappingURL=font_icons.css.map*/ \ No newline at end of file diff --git a/css/frm_admin.css b/css/frm_admin.css index 34c5fa9d6a..2b58e78394 100644 --- a/css/frm_admin.css +++ b/css/frm_admin.css @@ -1,3 +1,12415 @@ -@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500) !important}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-text-left{text-align:left}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key{margin-left:19px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! +/*!*********************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm_admin.scss ***! + \*********************************************************************************************************************************************************************************************************************************/ +@charset "UTF-8"; +/** + * Formidable Admin Styles + * + * Note: Do not modify the import order unless the change is part of a deliberate refactor. + */ +/** + * Base & Foundation + * + * Core variables, typography, and essential base styles + */ +/** + * Font Icons + */ +@font-face { + font-family: "s11-fp"; + src: url("../fonts/s11-fp.woff?v=7") format("woff"); + font-weight: 400; + font-style: normal; +} +.frm-submenu-highlight { + background: #1da867; +} + +.frm-submenu-highlight a span { + color: #fff; + font-weight: 600; +} + +.frmfont, +.frm_icon_font { + text-decoration: none; + text-shadow: none; + font-weight: 400; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: auto; + line-height: 1.5; + transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; + font-size: 18px; +} + +i.frmfont, +i.frm_icon_font { + font-style: normal; + font-variant: normal; + speak: none; +} + +.frmfont::before, +select.frmfont, +.frm_icon_font::before, +select.frm_icon_font { + font-family: "s11-fp" !important; + text-align: center; +} + +.frmfont, +a.frmfont, +.frmfont:hover, +a.frmfont:hover .frm_icon_font, +a.frm_icon_font, +.frm_icon_font:hover, +a.frm_icon_font:hover { + text-decoration: none !important; + box-shadow: none; +} + +.frmfont:focus, +.frm_icon_font:focus { + box-shadow: none; +} + +.frmfont:active, +.frm_icon_font:active { + outline: none; +} + +.frm_trigger .frm_icon_font { + padding: 0 5px; +} + +.frm_logo_icon::before { + content: "\e601"; +} + +.frm_required_icon::before { + content: "\e612"; +} + +.frm_delete_icon::before { + content: "\e610" !important; +} + +.frm_move_icon::before { + content: "\e61a"; +} + +.frm_drag_icon::before { + content: "\e93b"; +} + +.frm_clear_icon::before { + content: "\e60a"; +} + +.frm_noclear_icon::before { + content: "\e60b"; +} + +.frm_duplicate_icon::before { + content: "\e61b"; +} + +.frm_copy_icon::before { + content: "\f0c5"; +} + +.frm_clone_icon::before { + content: "\f24d"; +} + +.frm_tooltip_icon::before { + content: "\e611"; +} + +.frm_tooltip_solid_icon::before { + content: "\e907"; +} + +.frm_forbid_icon::before { + content: "\e636"; +} + +.frm_checkmark_icon::before { + content: "\e90a"; +} + +.frm_check_icon::before { + content: "\e605"; +} + +.frm_check1_icon::before { + content: "\e606"; +} + +.frm_plus_icon::before { + content: "\e62f"; +} + +.frm_plus1_icon::before { + content: "\e602"; +} + +.frm_plus2_icon::before { + content: "\e603"; +} + +.frm_plus3_icon::before { + content: "\e632"; +} + +.frm_plus4_icon::before { + content: "\e60f"; +} + +.frm_minus_icon::before { + content: "\e62e"; +} + +.frm_minus1_icon::before { + content: "\e600"; +} + +.frm_minus2_icon::before { + content: "\e604"; +} + +.frm_minus3_icon::before { + content: "\e633"; +} + +.frm_minus4_icon::before { + content: "\e613"; +} + +.frm_cancel_icon::before { + content: "\e607"; +} + +.frm_cancel1_icon::before { + content: "\e608"; +} + +.frm_close_icon::before { + content: "\e928"; +} + +.frm_report_problem_solid_icon::before { + content: "\e914"; +} + +.frm_report_problem_icon::before { + content: "\e915"; +} + +.frm_arrowup_icon::before { + content: "\e60d"; +} + +.frm_arrowup1_icon::before { + content: "\e60e"; +} + +.frm_arrowup2_icon::before { + content: "\e630"; +} + +.frm_arrowup3_icon::before { + content: "\e62b"; +} + +.frm_arrowup4_icon::before { + content: "\e62c"; +} + +.frm_arrowup5_icon::before { + content: "\e635"; +} + +.frm_arrowup5_solid_icon::before { + content: "\e9d"; +} + +.frm_arrowup7_icon::before { + content: "\e908"; +} + +.frm_arrowup6_icon::before { + content: "\e62d"; +} + +.frm_arrowdown_icon::before { + content: "\e609"; +} + +.frm_arrowdown1_icon::before { + content: "\e60c"; +} + +.frm_arrowdown2_icon::before { + content: "\e631"; +} + +.frm_arrowdown3_icon::before { + content: "\e628"; +} + +.frm_arrowdown4_icon::before { + content: "\e629"; +} + +.frm_arrowdown5_icon::before { + content: "\e634"; +} + +.frm_arrowdown5_solid_icon::before { + content: "\e905"; +} + +.frm_arrowdown7_icon::before { + content: "\e90b"; +} + +.frm_arrowdown6_icon::before { + content: "\e62a"; +} + +.frm_arrow_left_icon::before { + content: "\e912"; +} + +.frm_arrow_right_icon::before { + content: "\e913"; +} + +.frm_filter_icon::before { + content: "\e90c"; +} + +.frm_download_icon::before { + content: "\e615"; +} + +.frm_upload2_icon::before { + content: "\f093"; +} + +.frm_upload_icon::before { + content: "\e616"; +} + +.frm_download2_icon::before { + content: "\f019"; +} + +.frm_hard_drive_icon::before { + content: "\e916"; +} + +.frm_pencil_solid_icon::before { + content: "\e901"; +} + +.frm_pencil_icon::before { + content: "\e61d"; +} + +.frm_signature_icon::before { + content: "\e919"; +} + +.frm_user_icon::before { + content: "\e7ff"; +} + +.frm_register_icon::before { + content: "\e637"; +} + +.frm_account_circle_solid_icon::before { + content: "\e853"; +} + +.frm_account_circle_icon::before { + content: "\e921"; +} + +.frm_address_card_icon::before { + content: "\e996"; +} + +.frm_paragraph_icon::before { + content: "\f1dd"; +} + +.frm_checkbox_unchecked_icon::before { + content: "\e91e"; +} + +.frm_checkbox_icon::before { + content: "\e922"; +} + +.frm_checkbox_solid_icon::before { + content: "\e91f"; +} + +.frm_dropdown_icon::before { + content: "\e909"; +} + +.frm_caret_square_down_icon::before { + content: "\f150"; +} + +.frm_check_square_icon::before { + content: "\f14a"; +} + +.frm_radio_unchecked_icon::before { + content: "\e971"; +} + +.frm_radio_checked_icon::before { + content: "\ea54"; +} + +.frm_scrubber_icon::before { + content: "\f2f8"; +} + +.frm_location_solid_icon::before { + content: "\e955"; +} + +.frm_location_icon::before { + content: "\e947"; +} + +.frm_toggle_on_icon::before { + content: "\f205"; +} + +.frm_toggle_off_icon::before { + content: "\f204"; +} + +.frm_shield_check_icon::before { + content: "\f2f7"; +} + +.frm_shield_check_solid_icon::before { + content: "\e97d"; +} + +.frm_clock_icon::before { + content: "\e929"; +} + +.frm_clock_solid_icon::before { + content: "\e985"; +} + +.frm_link_icon::before { + content: "\f0c1"; +} + +.frm_email_icon::before { + content: "\e626"; +} + +.frm_email_solid_icon::before { + content: "\f0e0"; +} + +.frm_mail_bulk_icon::before { + content: "\e95c"; +} + +.frm_phone_icon::before { + content: "\e942"; +} + +.frm_calendar_icon::before { + content: "\f073"; +} + +.frm_code_icon::before { + content: "\e90d"; +} + +.frm_tag_icon::before { + content: "\e98b"; +} + +.frm_tag_solid_icon::before { + content: "\e989"; +} + +.frm_price_tags_icon::before { + content: "\e936"; +} + +.frm_search_icon::before { + content: "\e978"; +} + +.frm_sitemap_icon::before { + content: "\f0e8"; +} + +.frm_file_icon::before { + content: "\f15b"; +} + +.frm_file_text_solid_icon::before { + content: "\f15c"; +} + +.frm_file_text_icon::before { + content: "\e923"; +} + +.frm-option-icon::before, +.frm_option_icon::before { + content: "\e904"; +} + +.frm_option_solid_icon::before { + content: "\e906"; +} + +.frm_more_horiz_icon::before { + content: "\e5d3"; +} + +.frm_more_vert_icon::before { + content: "\e5d4"; +} + +.frm_more_horiz_solid_icon { + font-size: 28px !important; + font-weight: 700; + line-height: 18px; +} + +.frm_more_horiz_solid_icon::before { + content: "···"; +} + +.frm_more_vert_solid_icon::before { + content: "\f142"; +} + +.frm_calculator_icon::before { + content: "\f1ec"; +} + +.frm_keyboard_icon::before { + content: "\e924"; +} + +.frm_eye_icon::before { + content: "\f06e"; +} + +.frm_eye_solid_icon::before { + content: "\e945"; +} + +.frm_eye_slash_icon::before { + content: "\f070"; +} + +.frm_eye_slash_solid_icon::before { + content: "\e949"; +} + +.frm_page_break_icon::before { + content: "\e8e9"; +} + +.frm_view_day_icon::before { + content: "\e8ed"; +} + +.frm_attach_file_icon::before { + content: "\e226"; +} + +.frm_printer_icon::before { + content: "\e926"; +} + +.frm_header_icon::before { + content: "\f1dc"; +} + +.frm_h1_icon::before { + content: "\e94c"; +} + +.frm_repeat_icon::before { + content: "\f363"; +} + +.frm_repeater_icon::before { + content: "\e974"; +} + +.frm_hashtag_icon::before { + content: "\e292"; +} + +.frm_save_icon::before { + content: "\e927"; +} + +.frm_sliders_icon::before { + content: "\f1de"; +} + +.frm_code_commit_icon::before { + content: "\f386"; +} + +.frm_star_icon::before { + content: "\e9d7"; +} + +.frm_star_full_icon::before { + content: "\e9d9"; +} + +.frm_star_half_icon::before { + content: "\e9d8"; +} + +.frm_linear_scale_icon::before { + content: "\e260"; +} + +.frm_pie_chart_icon::before { + content: "\e99a"; +} + +.frm_stats_bars_icon::before { + content: "\e99c"; +} + +.frm_sms_icon::before { + content: "\e61c"; +} + +.frm_highrise_icon::before { + content: "\e617"; +} + +.frm_mailchimp_icon::before { + content: "\e622"; +} + +.frm_feed_icon::before { + content: "\e624"; +} + +.frm_align_right_icon::before { + content: "\e90f"; +} + +.frm_align_left_icon::before { + content: "\e910"; +} + +.frm_button_icon::before { + content: "\e911"; +} + +.frm_browser_icon::before { + content: "\e925"; +} + +.frm_cloud_upload_solid_icon::before { + content: "\e92c"; +} + +.frm_shuffle_icon::before { + content: "\e917"; +} + +.frm_swap_icon::before { + content: "\e918"; +} + +.frm_pallet_icon::before { + content: "\e96d"; +} + +.frm_fingerprint_icon::before { + content: "\e94a"; +} + +.frm_ghost_icon::before { + content: "\e94b"; +} + +.frm_heart_solid_icon::before { + content: "\e94d"; +} + +.frm_heart_icon::before { + content: "\e94e"; +} + +.frm_history_icon::before { + content: "\e94f"; +} + +.frm_import_icon::before { + content: "\e91a"; +} + +.frm_export_icon::before { + content: "\e91b"; +} + +.frm_label_solid_icon::before { + content: "\e952"; +} + +.frm_label_icon::before { + content: "\e953"; +} + +.frm_lock_open_icon::before { + content: "\e957"; +} + +.frm_lock_icon::before { + content: "\e959"; +} + +.frm_dollar_sign_icon::before { + content: "\e91c"; +} + +.frm_percent_icon::before { + content: "\e939"; +} + +.frm_external_link_icon::before { + content: "\e966"; +} + +.frm_pageview_solid_icon::before { + content: "\e96a"; +} + +.frm_pageview_icon::before { + content: "\e96b"; +} + +.frm_settings_icon::before { + content: "\e97a"; +} + +.frm_stamp_icon::before { + content: "\e980"; +} + +.frm_support_icon::before { + content: "\f1cd"; +} + +.frm_text_icon::before { + content: "\e98d"; +} + +.frm_text2_icon::before { + content: "\f031"; +} + +.frm_white_label_icon::before { + content: "\e91d" !important; +} + +.frm_authorize_icon::before { + content: "\e903"; +} + +.frm_icon_font.frm_activecampaign_icon { + background-image: none; +} + +.frm_activecampaign_icon::before { + content: "\e930"; +} + +.frm_aweber_icon::before { + content: "\e627"; +} + +.frm_campaignmonitor_icon::before { + content: "\e946"; +} + +.frm_constant_contact_icon::before { + content: "\e931"; +} + +.frm_getresponse_icon::before { + content: "\e932"; +} + +.frm_googlesheets_icon::before { + content: "\e944"; +} + +.frm_building_icon::before { + content: "\e93f"; +} + +.frm_hubspot_icon::before { + content: "\e933"; +} + +.frm_icontact_icon::before { + content: "\e940"; +} + +.frm_icon_font.frm_mailpoet_icon::before { + content: "\e934"; +} + +.frm_paypal_icon::before { + content: "\e61f"; +} + +.frm_sendinblue_icon::before { + content: "\e943"; +} + +.frm_sendy_icon::before { + content: "\e941"; +} + +.frm_salesforce_icon::before { + content: "\e935"; +} + +.frm_salesforcealt_icon::before { + content: "\e937"; +} + +.frm_stripe_icon::before { + content: "\e902"; +} + +.frm_stripealt_icon::before { + content: "\e93d"; +} + +.frm_twilio_icon::before { + content: "\e620"; +} + +.frm_woocommerce_icon::before { + content: "\e90e"; +} + +.frm_wordpress_icon::before { + content: "\f19a"; +} + +.frm_credit_card_icon::before { + content: "\e938"; +} + +.frm_credit-card-alt_icon::before, +.frm_credit_card_alt_icon::before { + content: "\f283"; +} + +.frm_cc_amex_icon::before { + content: "\f1f3"; +} + +.frm_cc_discover_icon::before { + content: "\f1f2"; +} + +.frm_cc_mastercard_icon::before { + content: "\f1f1"; +} + +.frm_cc_visa_icon::before { + content: "\f1f0"; +} + +.frm_cc_paypal_icon::before { + content: "\f1f4"; +} + +.frm_cc_stripe_icon::before { + content: "\f1f5"; +} + +/** + * Base - Variables + */ +:root, +.frm-white-body, +.frm_wrap { + --grey-900: #101828; + --grey-800: #1D2939; + --grey-700: #344054; + --grey-600: #475467; + --grey-500: #667085; /* Roughly 65% opacity */ + --grey-400: #98A2B3; + --grey-300: #D0D5DD; + --grey-200: #EAECF0; + --grey-100: #F2F4F7; + --grey-50: #F9FAFB; + --grey-25: #FCFCFD; + --dark-grey: var(--grey-700); /* Deprecated */ + --medium-grey: rgba(40, 47, 54, .65); + --grey: var(--grey-500); /* Deprecated */ + --grey-border: var(--grey-300); /* Deprecated */ + --lightest-grey: rgb(250, 250, 250); + --sidebar-color: var(--grey-50); + --sidebar-hover: var(--grey-200); + --primary-700: #2B66A9; + --primary-500: #4199FD; + --primary-300: #80BBFE; + --primary-200: #C0DDFE; + --primary-50: #ECF5FF; + --primary-25: #F5FAFF; + --primary-color: var(--primary-500); /* Deprecated */ + --primary-hover: var(--primary-700); /* Deprecated */ + --light-blue: var(--primary-25); /* Deprecated */ + --blue-border: rgb(188, 224, 253); + --error-700: #B42318; + --error-500: #F04438; + --error-300: #FECDCA; + --error-100: #FEE4E2; + --error-25: #FFF5F4; + --green: rgb(63, 172, 37); + --orange: #F15A24; + --warning-500: #F79009; + --pink: rgb(226, 42, 110); + --purple: rgb(141, 53, 245); + --success-900: #054F31; + --success-800: #065F46; + --success-500: #12b76a; + --success-100: #D1FAE5; + --success-200: #A6F4C5; + --success-50: #ECFDF3; + --success-25: #f6fef9; + --border-radius: 35px; + --small-radius: 8px; + --medium-radius: 16px; + --small-sidebar: 275px; + --medium-sidebar: 350px; + --big-sidebar: 390px; + --biggest-sidebar: 450px; + --text-xs: 12px; + --text-sm: 14px; + --text-md: 16px; + --text-lg: 18px; + --text-xl: 20px; + --h-xs: 24px; + --h-sm: 30px; + --h-md: 36px; + --leading: 1.5; + --gap-2xs: 4px; + --gap-xs: 8px; + --gap-sm: 16px; + --gap-md: 24px; + --gap-lg: 32px; + --gap-xl: 40px; + --gap-2xl: 48px; + --box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05); + --box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); + --box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06); + --box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); + --box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03); + --box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18); + --button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1); + /* Override front-end CSS */ + --check-label-color: var(--grey-700); +} + +/** + * Base - Font + */ +@font-face { + font-family: "Inter"; + src: url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype"); +} +.with_frm_style, +.frm-white-body .wpbody-content, +.frm_wrap { + font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; +} + +/* Safari 11+ */ +@media not all and (min-resolution: 0.001dpcm) { + @supports (-webkit-appearance: none) and (stroke-color: transparent) { + .with_frm_style, + .frm-white-body .wpbody-content, + .frm_wrap { + -webkit-font-smoothing: antialiased; + } + } +} +/** + * Utilities - Z-index + */ +.frm-sm-z-index { + z-index: 1; +} + +.frm-md-z-index { + z-index: 5; +} + +/** + * Base - Text + */ +.frm-white-body, +.frm-white-body p, +.frm_wrap, +.frm_wrap p, +.frm-modal, +.frm-white-body .postbox .inside { + font-size: var(--text-sm); + color: var(--grey-500); + line-height: var(--leading); +} + +.frm-white-body p, +.frm_wrap p { + margin: var(--gap-sm) 0; +} + +body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields > fieldset { + --fieldset-padding: 15px 0; +} + +a, +.widget .widget-top, +.stuffbox h3, +.frm-collapsed { + cursor: pointer; + text-decoration: none; +} + +/** + * Layout & Primary Components + * + * Core structure and primary UI elements + */ +/** + * Layout - Wrap + */ +.post-type-frm_display .wrap > #posts-filter, +.wrap.frm-with-margin, +.frm_wrap > .wrap { + margin: var(--gap-sm) var(--gap-md) var(--gap-md); +} + +#frm_top_bar + .wrap { + margin: var(--gap-xl); +} + +.frm-full-screen #wpbody-content > .wrap { + margin: 0; +} + +.post-type-frm_display .wrap { + margin: 0; +} + +.toplevel_page_formidable #post-body-content { + overflow-x: visible; +} + +/** + * Components - Full Screen + */ +.frm-full-screen { + height: 100%; + overflow: hidden; +} + +.frm-full-screen.frm-admin-page-reports, +.frm-full-screen.frm-admin-page-entries, +.frm-full-screen.post-type-frm_display { + overflow: auto; +} + +.frm-full-screen #wpadminbar, +.frm-full-screen #adminmenumain, +.frm-full-screen .wp-header-end { + display: none; +} + +body.frm-white-body:not(.frm-full-screen) .mce-fullscreen { + top: 32px; + left: 160px; +} + +.frm-full-screen #wpbody-content, +.frm-full-screen #wpbody, +.frm-full-screen #wpcontent { + padding: 0; + overflow: hidden; + margin: 0 !important; +} + +/** + * Layout - Screen Meta + */ +.frm-white-body #wpbody-content { + position: relative; /* For screen meta links */ + padding-bottom: 0; +} + +.post-new-php.post-type-frm_display #screen-meta-links, +.post-php.post-type-frm_display #screen-meta-links { + display: none; +} + +.frm-white-body #screen-meta-links { + position: fixed; + bottom: 0; + right: 20px; +} + +.frm-full-screen #screen-meta-links .screen-meta-toggle { + right: 55px; +} + +.frm-white-body #screen-meta-links .show-settings { + border-radius: var(--small-radius) var(--small-radius) 0 0; + border: 1px solid var(--grey-300); + border-bottom: none; +} + +.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle { + right: 125px; /* Don't cover the lite upgrade button */ +} + +.frm-white-body #screen-meta { + margin: 0; +} + +.frm-white-body #screen-meta-links .show-settings::after { + color: var(--grey); +} + +/** + * Layout - Columns + */ +.frm-white-body .columns-2 { + border-bottom: 1px solid var(--grey-300); +} + +.frm-full-screen .columns-2 { + border: none; +} + +/** + * Layout - Body + */ +body.post-type-frm_display.edit-php, +body.frm-white-body { + background: #fff; +} + +body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after, +body.frm-white-body ul#adminmenu > li.current > a.current::after { + border-right-color: #fff; +} + +.frm-white-body #wpcontent { + padding-left: 0; + padding-right: 0; +} + +.frm-white-body .wrap #post-body { + padding: 0 20px; +} + +.frm-grey-body #wpbody { + background: var(--grey-100); +} + +.frm-grey-body #frm_top_bar { + background: #fff; +} + +/** + * Components - Table Nav + */ +.post-type-frm_display .tablenav, +.frm_wrap .tablenav { + margin-bottom: 10px; +} + +.frm-white-body .tablenav .actions select, +.wp-admin .frm_wrap .tablenav select { + margin-right: var(--gap-xs); +} + +.tablenav .actions .button { + margin-top: 1px; +} + +/** + * Components - Table Widefat + */ +.frm-white-body table.widefat { + background: var(--lightest-grey); + border-width: 0; + box-shadow: none; + margin: 20px 0; +} + +.frm-white-body table.widefat tfoot, +.frm-white-body table.widefat thead { + background: #fff; +} + +.frm-white-body table.widefat th { + font-size: var(--text-md); +} + +.frm-white-body table.widefat th a { + color: var(--grey-700); +} + +.frm-white-body table.widefat strong a { + color: var(--primary-700); +} + +/** + * Components - Scroll Box + */ +.frm-scroll-box { + clear: both; + overflow: auto; + max-height: 405px; + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); +} + +.frm_form_field.frm_scroll_box .frm_opt_container { + height: 100px; + overflow: auto; + border: 1px solid var(--grey-300); +} + +.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + p, +.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + div, +.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + span { + grid-column: span 6/span 6; + align-content: center; +} + +.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + p, +.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + div, +.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + span { + grid-column: span 12/span 12 !important; + align-content: center; +} + +.frm_form_field.frm-phone-type ~ [id*=frm-field-format-custom-] > label, +.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] > label { + opacity: 0; /* Hide the label for the format input in the phone field. */ +} + +.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] { + grid-column: span 6/span 6; +} + +/* Adjust "CSS Layout Classes" to full width when the "Format" setting is present. */ +.frm-single-settings.frm-type-textarea > .frm_grid_container [id*=frm-field-format-custom-] + p { + grid-column: span 12/span 12; +} + +.frm-single-settings .frm_grid_container { + column-gap: var(--gap-sm); +} + +.frm-content-center { + align-content: center; +} + +.frm-self-end { + align-self: end; +} + +/** + * Components - Short List + */ +.frm-short-list { + overflow: auto; + max-height: 190px; +} + +/** + * Components - Table Elements + */ +.frm-white-body table.frm-border td { + font-size: var(--text-sm); +} + +.frm-white-body .striped > tbody > :nth-child(odd) { + background-color: #fff; +} + +.frm_wrap td.column-title strong { + display: inline; +} + +td.column-title .frm_actions_dropdown { + float: right; +} + +/** + * Layout - Top Bar + */ +#frm_top_bar { + display: flex; + gap: var(--gap-sm); + width: 100%; + height: 72px; + margin: 0; + box-sizing: border-box; + text-align: center; + padding: 0 var(--gap-md); +} + +#frm_top_bar > .frm-full-close:last-child, +#frm_top_bar > #frm-publishing:last-child { + margin-left: auto; +} + +#frm_top_bar { + border-bottom: 1px solid var(--grey-300); + padding: 0 var(--gap-md); + overflow: visible; +} + +/** + * Base - Headings + */ +.frm-white-body h1, +.frm-white-body h2, +.frm-white-body h3, +.frm-white-body h4 { + color: var(--grey-900); + font-weight: 400; + line-height: var(--leading) !important; +} + +.frm-white-body .wrap h1, +.frm-white-body h1 { + font-size: var(--text-xl); +} + +.frm-white-body .wrap h2, +.frm-white-body h2 { + font-size: var(--text-lg); + font-weight: 500; +} + +.frm-white-body .wrap h3, +.frm-white-body h3 { + font-size: var(--text-md); +} + +.frm-white-body .wrap h4, +.frm-white-body h4 { + font-size: var(--text-sm); + font-weight: 500; +} + +/** + * Components - Error Modal + */ +#frm_error_modal .frm_lock_simple { + padding: 20px; + border-radius: 50%; + background-color: var(--primary-25); + display: inline-block; +} + +#frm_error_modal #frm_lock_simple { + color: var(--primary-500); +} + +#frm_error_modal .frm-modal-title { + display: block; +} + +#frm_error_modal .frm-modal-title h2 { + font-weight: 600; + font-size: var(--text-xl); + margin: 0; +} + +#frm_error_modal .frm_modal_content { + padding: var(--gap-md); + color: var(--grey-900); +} + +/** + * Layout - Editor Overrides + */ +/* Override CSS in Views plugin. */ +.frm-views-editor-body .frm_page_container #frm_top_bar h1 { + padding: 0 !important; + color: var(--grey-900); + font-size: var(--text-xl) !important; +} + +.post-type-frm_display .frm_top_left { + padding-bottom: 0 !important; +} + +.frm-new-table-view-option.frm-selected-table-view-option { + border-radius: var(--small-radius); + background: var(--primary-25); +} + +.frm-views-editor-body #frm_adv_info .tabs-panel { /* Views sidebar */ + padding-left: 4px; + padding-right: 4px; +} + +#frm_edit_box_content_modal .frm_modal_footer { + padding-top: var(--gap-sm); + border-top: 1px solid var(--grey-300); +} + +#frm_edit_box_content_modal .frm_modal_footer > div { + display: flex; + justify-content: space-between; +} + +#frm_edit_box_content_modal #frm_modal_box_select_area, +#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper, +#frm_edit_box_content_modal .frm_modal_content { + max-height: calc(100vh - 176px) !important; +} + +#frm_edit_box_content_modal #frm_modal_box_select_area { + height: calc(100vh - 176px) !important; +} + +#frm_edit_box_content_modal #wp-content-editor-tools { + padding-top: 0; +} + +#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title + div:last-child { + right: var(--gap-md); +} + +.frm_code_list.frm-full-hover .frm-dropdown-view a { + flex-direction: row-reverse; /* Switch in the HTML */ +} + +#frm_view_editor_left.frm-right-panel .accordion-section-title::before { + content: "" !important; + margin: 0; +} + +/** End Temporary View CSS */ +/** + * Components - Upgrade Bar + */ +.frm-gradient, +.frm-upgrade-bar { + background: linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important; + color: #fff !important; + border: 0 !important; +} + +.frm-gradient.frm-button-primary:not([disabled]), +.frm-gradient.frm-button-primary:not([disabled]):hover, +.frm-gradient.frm-button-primary:not([disabled]):focus { + background: linear-gradient(90deg, #1961D5, #816CFA) !important; +} + +.frm-upgrade-bar, +.frm-gradient { + position: relative; +} + +.frm-upgrade-bar::before, +.frm-gradient::before { + content: ""; + display: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: rgba(255, 255, 255, 0.1); + z-index: 0; +} + +.frm-upgrade-bar:hover::before, +.frm-gradient:hover::before, +.frm-gradient:focus::before { + display: block; +} + +.frm-upgrade-bar-inner, +.frm-gradient > * { + position: relative; + z-index: 1; +} + +.frm-upgrade-bar { + border-bottom: 1px solid var(--sidebar-hover); + padding: 9px 0; + font-size: 12px; + text-align: center; +} + +.frm-upgrade-bar a { + color: currentColor !important; + text-decoration: underline; +} + +.frm-upgrade-bar a:focus { + outline: 1px dotted var(--sidebar-hover); +} + +.frm-upgrade-bar span { + opacity: 0.9; +} + +/** + * Components - Links + */ +a h1 .frmsvg { + color: var(--grey-400); + vertical-align: middle; + min-width: var(--text-sm); +} + +a .frmsvg { + color: currentColor; +} + +.frm_wrap .view-switch a.current::before, +.frm-white-body a, +.frm_wrap a, +.frm_wrap a i { + color: var(--primary-color); +} + +.frm_wrap a:active, +.frm_wrap a:hover { + color: var(--primary-700); + box-shadow: none; +} + +.post-type-frm_display a:focus, +.frm_wrap a:focus { + box-shadow: none; +} + +/** + * Layout - Top Bar - Navigation + */ +.frm_top_left { + text-align: left; + float: left; + white-space: nowrap; + max-width: 250px; + overflow: hidden; + text-overflow: ellipsis; + align-self: center; +} + +.post-type-frm_display .frm_top_left, +.frm_top_left.frm_top_wide { + max-width: 100%; +} + +.post-type-frm_display .frm_nav_bar .frm-header-logo, +.frm_nav_bar .frm-header-logo { + margin: 18px 0 10px; +} + +#frm_top_bar .frm_form_nav { + flex: 1; +} + +ul.frm_form_nav { + margin: 0 auto; + padding-top: 18px; + display: block; + min-width: 240px; +} + +.nav-tab-wrapper.frm_form_nav { + padding: 0 25px; +} + +ul.frm_form_nav > li { + margin: 0 min(3.5%, 32px) 0 0; + display: inline-block; +} + +.post-type-frm_display #advanced-sortables h2.hndle, +.post-type-frm_display #side-sortables h2.hndle, +.post-type-frm_display #normal-sortables h2.hndle, +.post-type-frm_display .frm_form_nav .nav-tab-active, +.frm_form_nav > li > a { + font-size: 1.3em; + text-decoration: none; + display: block; + padding: 6px 2px 4px; + font-weight: 500; + color: var(--grey-700); + border-bottom: 2px solid transparent; +} + +.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before { + margin-top: 10px; +} + +.frm-nav-tabs a:focus, +.frm-nav-tabs a:active, +.frm_form_nav a:active, +.frm_form_nav a:focus { + outline: none; + box-shadow: none; +} + +.frm_form_nav > li > a { + font-size: var(--text-md); + font-weight: 400; + color: var(--grey-500); +} + +.frm_form_nav > li > a:hover { + border-color: var(--primary-700); +} + +.frm_form_nav .frm-dropdown-menu a:hover { + background-color: #eaf2fa; +} + +.post-type-frm_display .frm_form_nav .nav-tab-active, +.post-type-frm_display .frm_form_nav .nav-tab-active:hover, +.frm_form_nav > li a.current_page { + color: var(--primary-500); + border-color: var(--primary-500); + background: transparent; + opacity: 1; + font-weight: 600; +} + +/** + * Components - Full Close + */ +.frm-full-close { + display: none; + padding-left: var(--gap-md); + border: 0 solid var(--grey-300); + border-left-width: 1px; /* Make RTL a bit less maintenance */ + height: 100%; + box-sizing: border-box; +} + +.frm-full-screen .frm-full-close { + display: flex; + align-items: center; +} + +.frm-full-close a { + display: block; +} + +.frm-full-close .frmsvg { + font-size: 20px; + width: 20px; + height: 20px; + color: var(--grey-500); +} + +/** + * Layout - Top Bar - Elements + */ +#frm_top_bar h1 { + font-weight: 400; + padding: 0; + margin: 0; + color: var(--grey-900); + display: inline-flex; + gap: var(--gap-sm); + align-items: center; + text-align: left; + min-width: 200px; +} + +#frm_top_bar h1 span { + max-width: 175px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + display: inline-block; + vertical-align: bottom; +} + +#frm_top_bar ul.frm_form_nav, +#frm_top_bar .frm-header-logo, +#frm_top_bar #frm_bs_dropdown { + align-self: center; + margin-top: 0; + margin-bottom: 0; + padding-top: 0; +} + +#frm_top_bar .frm-header-logo { + display: flex; /* Get rid of extra padding below logo */ +} + +#frm_top_bar h2 { + float: left; + margin: 0 0 0 var(--gap-sm); + padding: 2px 0 2px var(--gap-sm); + font-weight: 400; + border-left: 2px solid var(--grey); +} + +.frm_wrap > #frm_top_bar #frm-publishing { + margin-top: 0; +} + +#frm-publishing { + min-width: 225px; + align-self: center; + align-items: center; + display: flex; + flex-direction: row-reverse; + gap: 0 var(--gap-sm); + flex-wrap: wrap; +} + +/** + * Layout - Postbox + */ +.frm_wrap .postbox { + border-color: var(--grey-300); + border-radius: 6px; + box-shadow: none; +} + +.frm_wrap .postbox h3.hndle { + cursor: default; + padding: 10px 20px; + margin: 0; + line-height: 1.4em; + border-color: var(--grey-300); +} + +.frm-pre-hndle { + font-size: 15px; + padding: 5px; + margin: 9px 15px; +} + +/** + * Components - Table - Row + */ +.frm-empty-row { + display: none; +} + +.frm-child-row { + box-shadow: 5px 0 0 0 inset var(--sidebar-hover); +} + +/** + * Utilities - Effects - Animate + */ +.frm_animate_bg { + transition: background 200ms linear, color 200ms linear; +} + +/** + * Components - List - Subsubsub + */ +.wrap > .subsubsub { + clear: both; + margin: 0; +} + +.frm_wrap .subsubsub a { + line-height: var(--leading); + font-size: var(--text-sm); +} + +/** + * Layout - Container + */ +.frm-admin-page-styles .frm_page_container, +.frm_wrap .frm_page_container { /* Use .frm_wrap to avoid messing up Views editor layout */ + height: calc(100vh - 32px); + display: flex; + flex-direction: column; + overflow: hidden; + padding-top: 0; + position: fixed; + top: 32px; + bottom: 0; + left: 0; + right: 0; +} + +.frm-admin-page-translate .frm_wrap .frm_page_container, .frm-admin-page-update_translations .frm_wrap .frm_page_container { + position: static; +} + +.auto-fold.frm-admin-page-styles .frm_page_container, +.auto-fold .frm_wrap .frm_page_container, +.frm-unfold.frm-admin-page-styles .frm_page_container, +.frm-unfold .frm_wrap .frm_page_container { + left: 160px; +} + +.folded.frm-admin-page-styles .frm_page_container, +.folded .frm_wrap .frm_page_container { + left: 38px; +} + +.frm-full-screen.frm-admin-page-styles .frm_page_container, +.frm-full-screen .frm_wrap .frm_page_container { + height: 100vh; + top: 0; + left: 0; +} + +.frm-full-screen.frm-admin-page-entries .frm_page_container, +.frm-new-entry .frm_page_container, +.frm-admin-page-reports .frm_page_container, +.frm_list_entry_page .frm_page_container { + height: auto; + display: block; +} + +/** + * Layout - Container - Columns Elements + */ +.frm-new-entry .columns-2 { + border: none; +} + +.frm-white-body #frm_top_bar, +.frm-white-body .columns-2 { + flex: 0 0 auto; +} + +.columns-2 .frm-right-panel + div { + padding-bottom: var(--gap-md); + border-left: 1px solid var(--grey-300); +} + +.columns-2 .frm-right-panel + div, +.frm_wrap #post-body-content { + padding-bottom: 0; + padding-top: var(--gap-sm); + margin-bottom: 0; + background: #fff; + width: auto; + float: none; + flex: 2; +} + +.frm-white-body .columns-2 { + flex: 1; + display: flex; + overflow: hidden; +} + +.frm-white-body .columns-2 > div { + overflow-y: auto; + box-sizing: border-box; +} + +.frm_wrap .columns-2 .frm-right-panel, +.frm-right-panel { + flex: 0 0 var(--biggest-sidebar); + float: none; + width: var(--biggest-sidebar); + min-width: var(--biggest-sidebar); + background-color: var(--sidebar-color); + margin: 0; + box-shadow: none; + border: none; + padding-bottom: 25px; +} + +.frm-right-panel .frm_field_list, +.frm_wrap .frm-right-panel #frm_adv_info, +.frm_wrap #postbox-container-1 #frm_adv_info { + box-shadow: none; + border: none; + margin-bottom: 26px; +} + +/** + * Components - Settings - Has Shortcodes + */ +#new_fields, +.frm-has-modal, +p.frm_has_shortcodes { + position: relative; +} + +.frm-inline-modal.postbox { + background: #fff; + border-color: var(--grey-100); + border-radius: var(--small-radius); + box-shadow: var(--box-shadow-lg); +} + +.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg), +.frm_has_shortcodes i:not([class*=mce-]) { + position: absolute; + color: var(--primary-500); + border-radius: 50%; + border: 1px solid transparent; + z-index: 100; + text-align: center; +} + +.frm_has_shortcodes .frmsvg.frm-show-box { + border-radius: 6px !important; +} + +.frm_has_shortcodes input, +.frm_has_shortcodes textarea { + padding-left: 18px; + box-sizing: border-box; +} + +/** + * Components - Settings - Adv Info + */ +#form_settings_page #frm_adv_info, #frm_builder_page #frm_adv_info { + display: none; + top: 0; + width: 310px; + max-height: 315px; + min-height: 200px; + overflow-y: scroll; + z-index: 100; +} + +#form_global_settings .columns-2 > div { + overflow: auto; + height: calc(100vh - 32px); +} + +#form_global_settings .columns-2 .frm-right-panel, +#form_settings_page .columns-2 .frm-right-panel, +#wpbody-content .frm-page-skeleton .frm-right-panel { + flex: 0 0 var(--small-sidebar); + width: var(--small-sidebar); + min-width: var(--small-sidebar); +} + +#form_global_settings .frm_grid_container { + gap: 0 var(--gap-md); +} + +.frm-inner-content { + padding: var(--gap-md); +} + +.post-type-frm_display #poststuff { + padding: 0 0 10px 40px; +} + +#postbox-container-2 .postbox .inside { + padding: 15px 25px; +} + +#postbox-container-2 #frm_advanced .inside h3 { + margin: 15px -25px; + font-weight: 600; +} + +#form_settings_page .frm-inner-content { + padding-top: 0; + padding-bottom: 150px; + position: relative; +} + +.frm_wrap #submitdiv { + margin-bottom: 0; + border-width: 0 0 1px; + width: 100%; + min-width: unset; +} + +.frm_wrap #frm_adv_info .handlediv, +.frm_wrap #frm_adv_info .hndle { + display: none; +} + +.frm_wrap .menu-settings { + /* for add-on reverse compatibility */ + border: none; + margin-top: 0; +} + +.nodrag a { + cursor: pointer; +} + +.frm_wrap #frm_adv_info .inside { + margin: 0; +} + +#frm_adv_info > .inside { + padding: 0; +} +#frm_adv_info ul.subsubsub { + padding-bottom: var(--gap-xs) !important; +} +#frm_adv_info ul.subsubsub a { + font-weight: 500; +} +#frm_adv_info ul.subsubsub .frm-vertical-separator { + display: inline-block; + width: 1px; + height: 8px; + background-color: var(--grey-300); +} +#frm_adv_info #frm-insert-condition { + background-color: var(--primary-50); +} +#frm_adv_info #frm-insert-condition:hover { + background-color: var(--primary-25); +} + +#frm_builder_page #frm_adv_info { + width: 322px; + max-height: 356px; + border-radius: var(--small-radius); + overflow: hidden; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory { + height: 356px; + overflow: hidden; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div { + max-height: 286px; + padding: 0; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > * { + padding-bottom: var(--gap-sm); + max-height: unset; +} +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > *:last-child { + padding-bottom: var(--gap-xs); +} +#frm_builder_page #frm_adv_info #frm-nav-tabs { + display: flex; + gap: var(--gap-xs); + background-color: var(--grey-100); + border-radius: var(--small-radius); + border: 0; + padding: var(--gap-xs); + margin: var(--gap-xs) var(--gap-2xs) var(--gap-sm); +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li { + flex: 1; + text-align: center; +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li a { + font-weight: 500; + line-height: 1; + color: var(--grey-500); + border-radius: var(--small-radius); + border: 0; + padding: var(--gap-xs); + margin: 0; +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li a:hover { + background-color: rgb(234, 236, 240); + color: var(--grey-500) !important; + box-shadow: var(--box-shadow-sm); +} +#frm_builder_page #frm_adv_info #frm-nav-tabs > li.frm-tabs a { + background-color: #fff; + color: var(--grey-900) !important; + box-shadow: var(--box-shadow-sm); +} +#frm_builder_page #frm_adv_info .frm-search, +#frm_builder_page #frm_adv_info .frm-with-search { + padding-top: 0; + margin: 0; +} + +/** + * Components - Modal - Inline Modal + */ +.frm-right-panel .frm-inline-modal.postbox .inside { + margin: 0; + padding: 0 14px 14px; +} +.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line, +.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4 { + margin-left: -14px; + margin-right: -14px; +} + +.frm-right-panel .frm-inline-modal .inside p:not(.howto), +.frm-right-panel .frm-inline-modal .inside a { + font-size: 15px; +} + +.frm-inline-modal .inside a.frm_icon_font { + font-size: 18px; +} + +/** + * Components - Nav Tabs + */ +.frm-nav-tabs { + margin: 10px 0 20px; + padding: 0 var(--gap-sm); + display: block; + border-bottom: 1px solid var(--grey-300); +} + +#frm-nav-tabs { + position: -webkit-sticky; + position: sticky; + top: 0; + background-color: var(--sidebar-color); + z-index: 98; /* must be < 99 */ + margin-top: 0; + padding-top: 5px; +} + +.frm_form_settings #frm_adv_info #frm-nav-tabs { + background-color: #fff; + margin: 0 -4px; +} + +.frm_form_settings span.frm-with-right-icon, +#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden) { + display: block; +} + +.frm-inline-modal .frm-nav-tabs, +#frm_adv_info .frm-nav-tabs { + margin: 5px 0 0; +} + +#frm_adv_info .frm-nav-tabs.frm-compact-nav { + padding-right: 0; + padding-left: 20px; +} + +.frm-nav-tabs li { + display: inline-block; + margin: 0; +} + +.frm-nav-tabs a { + color: var(--grey-700); + padding: 10px 1px; + margin: 0 9px; + border-bottom: 2px solid transparent; +} + +.frm_form_settings #frm_adv_info .frm-nav-tabs a { + padding: 5px 1px; + color: var(--grey-500); +} + +.frm-nav-tabs.frm-compact-nav a { + margin: 0 5px; +} + +.frm-nav-tabs a { + display: block; + opacity: 0.9; +} + +#frm_adv_info .frm-nav-tabs a { + color: var(--grey-700); +} + +.frm-nav-tabs a:hover, +.frm-nav-tabs .frm-tabs a { + color: var(--primary-500) !important; + border-color: var(--primary-500); +} + +.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a { + font-weight: 500; +} + +/** + * Components - Modal - Bulk Modal + */ +#frm-bulk-modal .howto, +#frm-bulk-modal h3 { + font-size: var(--text-sm); + font-weight: 400; + margin: 5px 0 10px; + color: var(--grey); +} + +#frm-bulk-modal h3 { + margin-left: 20px; +} + +/** + * Layout - Sidebar + */ +.frm-right-panel a.frm_add_logic_link, +.frm-right-panel h3 { + color: var(--grey-700); + font-size: var(--text-lg); + font-weight: 400; + margin: 0; +} +.frm-right-panel h3 i { + color: var(--grey-700); + float: right; + width: 16px; + cursor: pointer; +} + +.frm-settings-panel { + /* Right padding reduced to compensate for scrollbar width (~8px) */ + padding: var(--gap-sm); + padding-right: var(--gap-xs); +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter { + top: var(--gap-xs); + left: var(--gap-xs); + width: calc(100% - var(--gap-sm)); +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs { + padding: var(--gap-xs) var(--gap-xs) 0; +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div { + max-height: 0; + visibility: hidden; +} +.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div.frm-active { + max-height: unset; + visibility: visible; +} +.frm-settings-panel .frm-embed-field-placeholder { + height: unset; +} +.frm-settings-panel .frm-embed-field-placeholder img { + height: 100px; +} +.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: var(--gap-sm); + max-width: unset; + color: var(--grey-800); + padding: var(--gap-lg); + border: 0; + box-shadow: var(--box-shadow-sm); + margin: 1px; +} + +.frm-single-settings .frm-default-value-wrapper > p { + margin-bottom: 0; +} +.frm-single-settings .frm-default-value-wrapper + p:empty { + display: none; +} +.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p { + margin-top: 0 !important; +} +.frm-single-settings .frm_single_option[id^=frm_watch_lookup_] { + margin-bottom: var(--gap-xs) !important; +} +.frm-single-settings > h3:first-of-type { + position: relative; + background-color: transparent !important; + border-top: none; + padding-top: 0 !important; + margin-top: 0 !important; +} +.frm-single-settings > h3:first-of-type::after { + content: ""; + position: absolute; + left: var(--gap-sm); + right: var(--gap-sm); + bottom: 0; + height: 1px; + background-color: var(--sidebar-hover); +} + +.frm-flex-justify, +.frm-right-panel .frm-single-settings h3 { + display: flex; + justify-content: space-between; + align-items: center; +} + +/* right sidebar */ +#post-body-content + .frm-right-panel { + flex: 0 0 var(--medium-sidebar); + width: var(--medium-sidebar); + min-width: var(--medium-sidebar); + border-left: 1px solid var(--sidebar-hover); +} + +.frm-new-entry #post-body-content + .frm-right-panel, +.frm-new-entry .frm-right-panel { + background: none; + border: none; +} + +#post-body-content + .frm-right-panel h3 { + padding: 20px 20px 0; + font-size: 17px; +} +#post-body-content + .frm-right-panel .frm_with_icons:first-of-type h3 { + border: none; +} + +#frm-insert-fields h3 { + color: var(--grey); + font-size: 15px; + font-weight: 400; + border-top: none; + border-bottom: 1px solid var(--sidebar-hover); + margin: 0; + padding: 10px 10px 10px 25px; +} + +.frm_wrap #frm_adv_info ul.category-tabs { + margin: 0; + padding: 10px 0 9px; + font-size: 15px; + background: transparent; +} +.frm_wrap #frm_adv_info ul.category-tabs li { + padding: 10px; + background-color: transparent !important; +} +.frm_wrap #frm_adv_info ul.category-tabs li:first-child { + border: none; +} + +.frm_wrap #frm_adv_info .categorydiv div.tabs-panel { + border: none; + background: transparent; +} +.frm_wrap #frm-categorydiv { + border-right: none; +} + +#frm_adv_info #frm-conditionals { + padding-top: var(--gap-sm); +} + +#postbox-container-1 #taxonomy-linkcategory #frm-html-tags { + display: none; + max-height: none; +} +#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown { + position: relative; +} + +/** + * Components - Admin Footer + */ +.frm-white-body #footer-upgrade { + display: none; +} + +.frm-admin-footer-links, +.frm-admin-footer-links-nav, +.frm-admin-footer-links-socials { + display: flex; + justify-content: center; +} + +.frm-admin-footer-links { + gap: var(--gap-2xs); + flex-direction: column; + text-align: center; + padding: var(--gap-xl) 0 var(--gap-lg); + font-size: var(--text-xs); + color: var(--grey-400); +} + +body.frm-hidden-overflow { + height: 100%; + overflow: hidden; +} + +.frm-admin-footer-links-nav { + gap: var(--gap-2xs); + margin-bottom: var(--gap-xs); +} + +.frm-admin-footer-links-socials { + gap: var(--gap-xs); +} + +.frm-admin-footer-links-socials a { + color: var(--grey-400); +} + +/** + * Layout - List Entry Page + */ +.frm_list_entry_page h2 { + float: left; +} + +.frm_list_entry_page h2 + .error { + clear: both; +} + +/** + * Layout - Sidebar - Elements + */ +.frm_sidebar select { + width: 100%; + margin-left: 0; + margin-right: 0; +} + +.frm_sidebar #search-submit { + float: right; +} + +/** + * Layout - Single Entry Page + */ +.frm_single_entry_page #submitdiv { + margin: 0; +} + +.frm_single_entry_page .hndle a { + font-size: 13px; +} + +/** + * Components - Publish Actions + */ +.frm-right-panel #publishing-action { + float: none; +} + +.frm-right-panel #major-publishing-actions { + border-top: none; + height: 32px; + background: transparent; +} + +#major-publishing-actions .frm_submit_form { + float: right; + margin-left: 5px; +} + +/** + * Components - Button + */ +.frm_orange_button, +.frm_reverse_button { + font-size: 12px; + border: 1px solid var(--orange); + color: var(--orange); + font-weight: 600; + padding: 1px 4px; + border-radius: 4px; + background: transparent; +} + +.frm_reverse_button:hover, +.frm_reverse_button:active, +.frm_reverse_button:focus { + color: #fff; + background: var(--orange); + border: 1px solid var(--orange); +} + +.frm_reverse_button { + font-size: 1em; + transition: all 0.2s ease; +} + +.frm-button-primary, +.wp-core-ui .button-primary.frm-button-primary, +.wp-core-ui .button.frm-button-primary, +.frm-button-secondary, +.wp-core-ui .button-secondary.frm-button-secondary, +.wp-core-ui .button.frm-button-secondary, +.frm-white-body .frm-search .button, +.frm-white-body .search-box .button, +.frm-white-body .tablenav .button, +.frm_orange_button, +.toplevel_page_formidable #frm_upgrade_modal .button-primary, +.wp-core-ui.frm-white-body .button-primary, +.wp-core-ui.frm-white-body .button-secondary, +.frm-white-body .button-primary, +.frm-white-body .button-secondary, +#frm-form-button button, +.frm-form-button button, +.frm-preview-buttons button, +.frm-button-red, +.frm-button-tertiary { + text-shadow: none; + box-shadow: none; + border-radius: 30px; + border: 1px solid var(--primary-500); + font-size: var(--text-sm); + transition: all 0.2s ease; + padding: 7px 16px; + height: auto; + min-height: 28px; + outline: none; + line-height: var(--leading); + box-sizing: border-box; + font-weight: 500; + margin-bottom: 0; + display: inline-block; +} + +.frm-button-primary.frm-sharp, +.frm-button-secondary.frm-sharp { + border-radius: 12px !important; +} + +#wpcontent .frm-button-secondary.frm-button-gradient { + position: relative; + border-color: transparent !important; + background-clip: padding-box !important; +} +#wpcontent .frm-button-secondary.frm-button-gradient::before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + margin: -1px; + border-radius: inherit; + background: linear-gradient(90deg, #129EFD 0%, #A334FD 100%); + transition: opacity 150ms ease-out; +} +#wpcontent .frm-button-secondary:hover::before { + opacity: 0.5; +} + +.no-js.wp-core-ui .frm-search .button.hide-if-no-js, +.js.wp-core-ui .frm-search .button.hide-if-js { + display: none; +} + +.frm-button-tertiary { + border-color: transparent; + color: var(--primary-500); +} + +.frm-button-tertiary:focus { + outline: none; +} + +.frm-button-tertiary.frm_loading_button::before { + border-right-color: var(--grey); + border-bottom-color: var(--grey); +} + +.frm-button-red, +.frm-button-red:focus { + --primary-color: var(--error-500); + --primary-500: var(--error-500); + --primary-700: var(--error-700); +} + +.frm-button-red:not(.frm-button-tertiary), +.frm-button-red:not(.frm-button-tertiary):focus { + color: #fff !important; +} + +.frm-white-body h2 .button, +.post-type-frm_display h2 .frm-button-primary, +.frm-white-body .tablenav .button, +.frm-button-primary.frm-button-sm, +.frm-button-secondary.frm-button-sm, +.frm-button-tertiary.frm-button-sm, +.frm-button-red.frm-button-sm { + padding: 4px 12px !important; + font-size: var(--text-xs) !important; +} + +.frm_no_style_button { + background: transparent; +} + +.frm-with-icon { + display: flex; + gap: var(--gap-xs); + align-items: center; +} + +.frm-with-icon svg { + opacity: 0.65; /* Get close to grey-500 without overriding hover colors */ +} + +.frm-with-icon.button svg { + height: var(--text-sm); + width: var(--text-sm); +} + +.frm-with-icon.frm-button-sm svg { + height: var(--text-xs); + width: var(--text-xs); +} + +.frm-white-body .button.add_media { + /* Media buttons above RTE */ + padding-left: 12px !important; + padding-right: 12px !important; + font-size: var(--text-xs); + border-radius: var(--border-radius); +} + +.wp-core-ui.frm-white-body #post-query-submit.button, +.wp-core-ui.frm-white-body .button.tablenav-pages-navspan, +.wp-core-ui.frm-white-body .button.first-page, +.wp-core-ui.frm-white-body .button.prev-page, +.wp-core-ui.frm-white-body .button.next-page, +.wp-core-ui.frm-white-body .button.last-page, +.wp-core-ui.frm-white-body .button.action { + background-color: transparent; + border-color: var(--grey-300); + color: var(--grey-700); + border-radius: var(--border-radius); +} + +.post-type-frm_display.wp-core-ui .button-primary, +.frm-button-primary, +.wp-core-ui .button-primary.frm-button-primary, +.frm_single_entry_page #frm-publishing .button-primary { + background-color: var(--primary-500) !important; + color: #fff !important; +} + +.frm-button-primary.frm_large, +.frm-button-secondary.frm_large { + height: auto !important; + padding: 12px 16px !important; +} + +.frm-button-secondary.frm-small, +.frm-button-primary.frm-small { + font-size: var(--text-xs) !important; + height: auto !important; + padding: var(--gap-2xs) 12px !important; +} + +.frm-button-primary i::before { + color: #fff; +} + +.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover, +.frm-button-primary:not([disabled]):hover { + background: var(--primary-700) !important; + border-color: var(--primary-700) !important; +} + +.wp-core-ui .button-primary.frm-button-primary:active { + vertical-align: inherit; +} + +.frm-white-body #search-submit, +#frm-form-button .frm_button_submit, +.frm-form-button .frm_button_submit, +.frm-white-body .frm-preview-buttons button, +.frm-white-body .button:not(.frm-button-primary), +.wp-core-ui.frm-white-body .button-secondary, +.wp-core-ui .button-secondary.frm-button-secondary, +.wp-core-ui .button.frm-button-secondary, +.frm-white-body .frm-button-secondary, +.frm-button-secondary { + color: var(--grey-800); + border-color: var(--grey-300); + background-color: #fff; +} + +#wp-content-media-buttons button, +#wp-content-media-buttons a.button { + border-color: var(--grey-300); +} + +.frm_orange_button { + border-color: #da791d !important; + background: var(--orange); + color: #fff; +} + +.frm-white-body .button:not(.frm-button-primary):focus, +.frm-white-body .button:not(.frm-button-primary):active, +.frm-white-body .frm-button-secondary:hover, +.wp-core-ui.frm-white-body .frm-button-secondary:hover, +.wp-core-ui.frm-white-body .button-secondary:hover, +.wp-core-ui.frm-white-body .button-secondary:focus, +.wp-core-ui.frm-white-body .tablenav .button:hover, +.frm_wrap .preview > .button:hover, +.frm-white-body #search-submit:hover { + border-color: var(--grey-300) !important; + color: var(--grey-800); + background: var(--grey-50) !important; + box-shadow: none !important; + outline: none !important; +} + +.frm-button-primary .frmsvg { + color: #fff; +} + +.frm_wrap .preview i { + font-size: inherit; +} + +.frm-white-body .frm-button-primary:focus, +.frm-white-body .frm-button-primary:active, +#frm-addons-page .button-primary:focus, +#form_global_settings .button-primary:focus, +#frm_upgrade_modal .button:focus { + border-color: var(--primary-700) !important; + background-color: var(--primary-700) !important; + box-shadow: none !important; + outline: none !important; +} + +.frm_wrap .preview > .button:focus, +.frm_orange_button:hover, +.frm_orange_button:focus, +.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover, +.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus, +.toplevel_page_formidable .frm_wrap button.button-primary:hover, +.toplevel_page_formidable .frm_wrap button.button-primary:focus { + outline: none; +} + +.frm_orange_button:hover, +.frm_orange_button:focus { + border-color: var(--orange) !important; + background: transparent; + color: var(--orange); + opacity: 1; +} + +.major-publishing-actions.frm_create_form_header { + padding: 8px 0; +} + +.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner { + font-size: 15px; + background: transparent; +} + +.frm-menu-boxes .frm_blank_form_text { + padding-bottom: 26px; +} + +input.frm_insert_in_template { + font-size: 10px; + width: 98%; + font-weight: 400; +} + +.frm-dismissible a.dismiss:focus { + box-shadow: none; +} + +.frm-dismissible a.dismiss { + top: 10px; + right: 10px; + position: absolute; +} + +.frm-dismissible a.dismiss svg { + color: var(--grey-800); +} + +/** + * Components - Review Request + */ +.wp-admin .frm-review-notice { + position: fixed !important; + bottom: var(--gap-2xl); + right: var(--gap-lg); + width: 380px; + text-align: center; + border-color: var(--grey-100); + padding: var(--gap-lg); + border-radius: var(--medium-radius); + box-shadow: var(--box-shadow-lg) !important; + z-index: 999; + box-sizing: border-box; + --gap-sm: 16px; + --gap-md: 24px; + --gap-2xl: 48px; +} + +.wp-admin .frm-review-notice * { + box-sizing: border-box; +} + +.frm-review-notice-icon { + display: inline-flex; + margin-bottom: var(--gap-sm); +} + +.wp-admin .frm-review-notice-title { + font-weight: 600; + margin-top: 0; + margin-bottom: var(--gap-xs); +} + +.wp-admin .frm-review-notice-text { + margin-top: 0; + margin-bottom: var(--gap-md); +} + +.frm-review-notice-signature { + text-align: left; + margin: var(--gap-md) 0; +} + +.frm-review-notice-signature img { + width: 40px; + height: 40px; + padding: 3px; + box-shadow: var(--box-shadow-md); + border-radius: 100%; +} + +#wpwrap .frm-dismiss-review-notice { + top: 16px; + right: 19px; +} + +.frm-review-notice #frmapi-feedback [class^=frm__] { + display: none; +} + +.frm-review-notice #frmapi-feedback input, +.frm-review-notice #frmapi-feedback textarea { + border-color: var(--grey-300); + border-radius: var(--small-radius); +} + +.frm-review-notice #frmapi-feedback input { + min-height: unset; + max-height: 36px; +} + +.frm-review-notice #frmapi-feedback textarea { + max-height: 80px; + padding-top: var(--gap-xs); +} + +.frm-review-notice #frmapi-feedback .frm_message { + color: var(--success-900); + background-color: var(--success-25); + border: 1px solid var(--success-200); + padding: var(--gap-sm) var(--gap-md); + margin: 0; +} + +.frm-review-notice #frmapi-feedback .frm_message p { + margin: 0; +} + +.frm-review-notice #frmapi-feedback .frm_button_submit { + background-color: var(--primary-500); + border-color: var(--primary-500) !important; + cursor: pointer; +} + +.frm-review-notice #frmapi-feedback .frm_button_submit:hover, +.frm-review-notice #frmapi-feedback .frm_button_submit:focus { + color: #fff; + background-color: var(--primary-700); + border-color: var(--primary-700) !important; +} + +.frm-review-notice .frm_error, +.frm-review-notice label { + color: #444; + text-align: left; +} + +.frm-review-notice label { + font-size: var(--text-sm); +} + +.frm-floating-success-message { + position: fixed; + z-index: 999; + border-radius: 4px; + right: 10px; + bottom: 10px; +} + +/** + * Utility Classes + * + * Reusable helper classes for spacing, typography, effects, etc. + */ +/** + * Utilities - Box Shadow + */ +.frm-box-shadow-xxl { + box-shadow: var(--box-shadow-xxl) !important; +} + +/** + * Utilities - Text Color + */ +.frm-text-primary-500 { + color: var(--primary-500); +} + +.frm-text-grey-400 { + color: var(--grey-400) !important; +} + +.frm-text-grey-500 { + color: var(--grey-500) !important; +} + +.frm-text-grey-600 { + color: var(--grey-600) !important; +} + +.frm-text-grey-700 { + color: var(--grey-700); +} + +.frm-text-grey-900 { + color: var(--grey-900); +} + +.frm-text-success-500 { + color: var(--success-500); +} + +.frm-text-warning-500 { + color: var(--warning-500); +} + +/** + * Utilities - Margin + */ +.frm_no_margin, +.frm-m-0 { + margin: 0 !important; +} + +.frm-m-12 { + margin: var(--gap-2xl); +} + +.frm-m-2xs { + margin: var(--gap-2xs) !important; +} + +.frm_no_top_margin, +.frm-mt-0 { + margin-top: 0 !important; +} + +.frm-mt-2xs { + margin-top: var(--gap-2xs) !important; +} + +.-frm-mt-2xs { + margin-top: calc(-1 * var(--gap-2xs)) !important; +} + +.frm-mt-xs { + margin-top: var(--gap-xs) !important; +} + +.frm-mt-sm { + margin-top: var(--gap-sm) !important; +} + +.frm-mt-md { + margin-top: var(--gap-md) !important; +} + +.frm-mt-lg { + margin-top: var(--gap-lg) !important; +} + +.frm-mt-2xl { + margin-top: var(--gap-2xl) !important; +} + +.frm-mt-auto { + margin-top: auto !important; +} + +.frm_no_bottom_margin, +.frm-mb-0 { + margin-bottom: 0 !important; +} + +.frm-mb-2xs { + margin-bottom: var(--gap-2xs) !important; +} + +.frm-mb-6 { + margin-bottom: 6px !important; +} + +.frm-mb-sm { + margin-bottom: var(--gap-sm) !important; +} + +.frm-mb-12 { + margin-bottom: 12px !important; +} + +.frm-mb-xs { + margin-bottom: var(--gap-xs) !important; +} + +.frm-mb-md { + margin-bottom: var(--gap-md) !important; +} + +.frm-mb-lg { + margin-bottom: var(--gap-lg) !important; +} + +.frm-ml-2xs { + margin-left: var(--gap-2xs) !important; +} + +.frm-ml-xs { + margin-left: var(--gap-xs) !important; +} + +.frm-ml-auto { + margin-left: auto; +} + +.-frm-ml-2xs { + margin-left: calc(-1 * var(--gap-2xs)) !important; +} + +.frm-mr-auto { + margin-right: auto; +} + +.frm-force-mr-auto { + margin-right: auto !important; +} + +.frm-mr-2xs { + margin-right: var(--gap-2xs) !important; +} + +.frm-mr-xs { + margin-right: var(--gap-xs) !important; +} + +.frm-mr-2 { + margin-right: 2px !important; +} + +.frm-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.frm-mx-xs { + margin-left: var(--gap-xs) !important; + margin-right: var(--gap-xs) !important; +} + +.frm-mx-sm { + margin-left: var(--gap-sm) !important; + margin-right: var(--gap-sm) !important; +} + +.frm-my-sm { + margin-top: var(--gap-sm) !important; + margin-bottom: var(--gap-sm) !important; +} + +.frm-my-xs { + margin-top: var(--gap-xs) !important; + margin-bottom: var(--gap-xs) !important; +} + +/** + * Utilities - Padding + */ +.frm-p-0 { + padding: 0 !important; +} + +.frm-p-1, +.frm-p-2xs { + padding: var(--gap-2xs); +} + +.frm-p-sm, +.frm-p-4 { + padding: var(--gap-sm) !important; +} + +.frm-p-sm { + padding: var(--gap-sm) !important; +} + +.frm-p-6, +.frm-p-md { + padding: var(--gap-md) !important; +} + +.frm-p-xl { + padding: var(--gap-xl) !important; +} + +.frm-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.frm-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.frm-py-2xs { + padding-top: var(--gap-2xs) !important; + padding-bottom: var(--gap-2xs) !important; +} + +.frm-py-sm { + padding-top: var(--gap-sm) !important; + padding-bottom: var(--gap-sm) !important; +} + +.frm-pt-0 { + padding-top: 0 !important; +} + +.frm-pt-2xs { + padding-top: var(--gap-2xs) !important; +} + +.frm-pt-xs { + padding-top: var(--gap-xs) !important; +} + +.frm-pt-sm { + padding-top: var(--gap-sm) !important; +} + +.frm-pt-md { + padding-top: var(--gap-md) !important; +} + +.frm-pt-xl { + padding-top: var(--gap-xl) !important; +} + +.frm-pr-lg { + padding-right: var(--gap-lg) !important; +} + +.frm-pb-md { + padding-bottom: var(--gap-md) !important; +} + +.frm-pb-sm { + padding-bottom: var(--gap-sm) !important; +} + +.frm-pb-xs { + padding-bottom: var(--gap-xs) !important; +} + +.frm-pb-2xs { + padding-bottom: var(--gap-2xs) !important; +} + +.frm-pb-0 { + padding-bottom: 0 !important; +} + +.frm-px-sm { + padding-right: var(--gap-sm) !important; + padding-left: var(--gap-sm) !important; +} + +.frm-px-xs { + padding-right: var(--gap-xs) !important; + padding-left: var(--gap-xs) !important; +} + +.frm-px-md { + padding-right: var(--gap-md) !important; + padding-left: var(--gap-md) !important; +} + +/** + * Utilities - Font Size + */ +.frm-text-xs { + font-size: var(--text-xs) !important; +} + +.frm-text-sm { + font-size: var(--text-sm) !important; +} + +.frm-text-md { + font-size: var(--text-md) !important; +} + +.frm-text-lg { + font-size: var(--text-lg) !important; +} + +.frm-text-xl { + font-size: var(--text-xl) !important; +} + +.frm-leading-none { + line-height: 1; +} + +.frm-italic { + font-style: italic; +} + +.frm-no-italic { + font-style: normal; +} + +/** + * Utilities - Text Transform + */ +.frm-capitalize { + text-transform: capitalize; +} + +/** + * Utilities - Font Weight + */ +.frm-font-normal { + font-weight: 400 !important; +} + +.frm-font-medium { + font-weight: 500 !important; +} + +.frm-font-semibold { + font-weight: 600 !important; +} + +/** + * Utilities - Text Overflow + */ +.frm-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +[class*=frm-line-clamp-] { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; +} + +.frm-line-clamp-2 { + -webkit-line-clamp: 2; +} + +.frm-white-space-nowrap { + white-space: nowrap; +} + +/** + * Utilities - Border Radius + */ +.frm-rounded-sm { + border-radius: var(--small-radius) !important; +} + +.frm-rounded-6 { + border-radius: 6px !important; +} + +/** + * Utilities - Width + */ +.frm-w-auto { + width: auto !important; +} + +.frm-w-full { + width: 100% !important; +} + +.frm-w-half { + width: 50% !important; +} + +.frm-w-fit { + width: fit-content !important; +} + +.frm-max-w-fit { + max-width: fit-content; +} + +.frm-h-auto { + height: auto !important; +} + +/** + * Utilities - Display + */ +#wpwrap .frm-force-hidden { + display: none !important; +} + +.frm_block, +.frm-block { + display: block; +} + +.frm_inline { + display: inline; +} + +.frm-force-inline { + display: inline !important; +} + +.frm_inline_block { + display: inline-block !important; +} + +/** + * Utilities - Flex + */ +.frm-inline-flex, +#wpbody-content .frm-inline-flex { + display: inline-flex; +} + +.frm-flex { + display: flex; +} + +.frm-force-flex { + display: flex !important; +} + +.frm_hidden, +.js .frm-hide-js { + display: none; +} + +.frm-flex-box { + display: flex; + gap: var(--gap-sm); +} + +.frm-flex-col { + display: flex; + flex-direction: column; +} + +.frm-flex-full { + flex: 1; +} + +.frm-force-flex-center, .frm-flex-center { + justify-content: center; + align-items: center; +} + +.frm-flex-center { + display: flex; +} + +.frm-force-flex-center { + display: flex !important; +} + +.frm-shrink-0 { + flex-shrink: 0; +} + +.frm-gap-0 { + gap: 0 !important; +} + +.frm-gap-2xs { + gap: var(--gap-2xs); +} + +.frm-gap-xs { + gap: var(--gap-xs); +} + +.frm-gap-sm { + gap: var(--gap-sm); +} + +.frm-gap-md { + gap: var(--gap-md); +} + +.frm-gap-xl { + gap: var(--gap-xl); +} + +.frm-justify-start { + justify-content: start !important; +} + +.frm-justify-center { + justify-content: center !important; +} + +.frm-justify-between { + justify-content: space-between; +} + +.frm-justify-end { + justify-content: end; +} + +.frm-items-start { + align-items: flex-start; +} + +.frm-items-center { + align-items: center; +} + +.frm-items-stretch { + align-items: stretch; +} + +#wpbody-content .frm-flex-wrap { + flex-wrap: wrap; +} + +.frm-grow { + flex-grow: 1; +} + +.frm-order-first { + order: -9999; +} + +.frm-order-last { + order: 9999; +} + +.frm-order-none { + order: 0; +} + +.frm-h-stack-sm, .frm-h-stack-xs, .frm-h-stack { + display: flex !important; + align-items: center; +} +.frm-h-stack-sm > input[type=checkbox], .frm-h-stack-xs > input[type=checkbox], .frm-h-stack > input[type=checkbox], +.frm-h-stack-sm > input[type=radio], +.frm-h-stack-xs > input[type=radio], +.frm-h-stack > input[type=radio] { + margin: 0 !important; +} + +.frm-h-stack { + gap: var(--gap-2xs); +} + +.frm-h-stack-xs { + gap: var(--gap-xs); +} + +.frm-h-stack-sm { + gap: var(--gap-sm); +} + +/** + * Utilities - Transition + */ +.frm-transition-ease { + transition: all 0.2s ease; +} + +/** + * Utilities - Visibility + */ +.frm_invisible { + visibility: hidden; + transition: all 0.2s ease; +} + +.frm_disabled { + opacity: 0.5; + cursor: default; + pointer-events: none; +} +.frm_disabled .frm-show-inline-modal { + pointer-events: none !important; +} + +/** + * Utilities - Float + */ +.frm_no_float { + float: none; +} + +/** + * Utilities - Text Align + */ +.frm-text-right { + text-align: right; +} + +.frm-text-left { + text-align: left; +} + +/** + * Utilities - Border + */ +.frm-border-b { + border-bottom: 1px solid var(--grey-300); +} + +.frm-no-border { + border: none !important; +} + +.frm-hr { + display: block; + height: 1px; + background-color: var(--grey-200); + margin: var(--gap-xs) 0; +} + +/** + * Utilities - Opacity + */ +.frm-opacity-100 { + opacity: 1; +} + +/** + * Utilities - Z-index Helpers + */ +.frm-on-bottom { + z-index: -1; +} + +/** + * Utilities - Transform + */ +.frm-rotate-90 { + transform: rotate(90deg); +} + +/** + * Utilities - Cursor + */ +.frm-cursor-pointer { + cursor: pointer; +} + +/** + * Utilities - Vertical Align + */ +.frm-align-baseline { + vertical-align: baseline !important; +} + +/** + * Utilities - Generic Classes + */ +.frm-fields p > label.frm_hidden, +#wpbody-content label.frm_hidden, +.frm-lookup-modal .dismiss, +.frm-right-panel .inside a.frm_hidden, +#form_global_settings .frm_hidden, +ul.frm_form_nav > li.frm_hidden, +a.frm_hidden, +.button.frm_hidden, +.wp-core-ui .button.frm_hidden { + display: none; +} + +.postbox .inside > p.frm_no_bottom_margin:last-child { + margin-bottom: 0 !important; +} + +.frm_no_section_fields.frm_block { + display: block; +} + +.actions.frm_visible_overflow { + overflow: visible !important; +} + +.frm_full_opacity, +.frm_submit .frm_full_opacity, +.frm_submit .frm-opacity-100 { + opacity: 1; +} + +.frm-dropdown-menu.frm-on-top { + z-index: 99999; +} + +/** + * Utilities - Helper Classes + */ +.frm-vertical-line { + display: inline-block; + width: 1px; + height: 12px; + background-color: var(--grey-300); +} + +.frm-admin-full-screen #adminmenumain, +.frm-admin-full-screen #wpadminbar, +.frm-admin-full-screen #adminmenuback, +.frm-admin-full-screen #adminmenuwrap, +.frm-admin-full-screen #wpfooter { + display: none; +} + +.frm-admin-full-screen #wpcontent, +.frm-admin-full-screen.auto-fold #wpcontent { + margin: 0; + padding: 0; +} + +.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content { + padding: 0; +} + +/** + * Forms & UI Components + * + * Form elements, inputs, fields, modals and interactive components + */ +/** + * Components - General Form Styles + */ +.frm_forms.with_frm_style { + max-width: 100%; +} + +.post-type-frm_display .wrap > .subsubsub, +.post-type-frm_display .wrap > .icl_subsubsub, +.frm_form_settings > p { + margin: 6px var(--gap-md); + padding: 0; +} + +.frm-entry-container { + margin: 0 40px 40px; + padding: 0; +} + +#form_reports_page .frm-inner-content { + width: calc(100% - 40px); + max-width: 900px; + margin: 20px auto; + padding: 20px; +} + +.frm_inner_field_container > .frm_form_fields { + clear: both; +} + +.post-type-frm_display h2, +.frm_wrap h2 { + margin-top: 0 !important; + font-size: var(--text-lg); + line-height: var(--leading); +} + +.post-type-frm_display .wrap > h2:first-child, +.frm_wrap .wrap > h2:first-child { + padding-top: 0; + margin-top: 0 !important; + font-size: var(--text-lg); +} + +#frm_form_editor_container { + position: relative; + margin-top: 28px; +} + +/** + * Components - Form Field + */ +.form-field p { + /* for conflicts */ + background: none; + border: none; +} + +.form-field label.frm_primary_label { + display: block; + float: none; + width: auto; +} + +#frm_view_editor_left label, +#frm_view_editor_left .frm_primary_label, +.frm-dialog .frm-sub-label, +.frm-dialog label, +.dropdown .frm_primary_label, +.accordion-container label, +.frm-fields td > label, +.frm-fields td > div > label, +.frm_form_field > label:first-child, +.frm-fields p > label, +.frm_on_submit_type > label, +.post-type-frm_display .frm_form_field > label, +#new_fields .frm_primary_label, +#form_global_settings .frm_primary_label, +#frm_form_editor_container .frm_primary_label, +#permissions_settings_settings .frm_primary_label { + color: var(--grey-700); + margin: 0 0 6px; + padding: 0; + width: auto; + font-size: var(--text-sm); + display: block; + line-height: var(--leading); +} + +#frm_form_editor_container #frm-show-fields .frm_primary_label { + min-height: 21px; +} + +.frm-fields td input + label { + display: inline; +} + +#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label, +#frm_form_editor_container .edit_field_type_break .frm_primary_label { + display: none; +} + +form .frm_primary_label input { + font-size: 12px; +} + +.with_frm_style form .form-field { + margin-bottom: 20px; +} + +#frm_builder_page .with_frm_style form .frm_combo_inputs_container > .form-field { + margin-bottom: 0; +} + +.frm_description, +.with_frm_style form div.description, +.frm_error, +.with_frm_style form div.description textarea { + padding: 0; + font-size: 11px; +} + +.with_frm_style .description { + color: inherit; +} + +#frm_form_editor_container .divider_section_only .frm_primary_label { + display: flex; + align-items: center; + gap: var(--gap-xs); + font-size: 20px; +} + +#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label { + padding: 0; +} + +/** + * Token Input Component + * + * Displays space-separated values as selectable tokens + */ +.frm-token-container { + position: relative; + display: block; + direction: ltr; +} +.frm-token-container .frm-tokens { + position: absolute; + top: 0; + left: 0; + max-width: calc(100% - var(--gap-xl)); + display: flex; + align-items: center; + flex-wrap: wrap; + gap: var(--gap-2xs); + padding: 6px var(--gap-xs); + margin: 0; +} +.frm-token-container .frm-token { + position: relative; + display: flex; + align-items: center; + gap: var(--gap-xs); + min-height: 24px; + height: auto; + color: var(--grey-900); + background: var(--grey-100); + border-radius: 4px; + padding: 0 var(--gap-xs); + font-size: var(--text-md); + margin: 0; + z-index: 2; +} +.frm-token-container .frm-token .frm-token-value { + line-height: var(--leading); + white-space: normal; + word-break: break-word; +} +.frm-token-container .frm-token .frm-token-remove { + display: flex; + flex-shrink: 0; + cursor: pointer; +} +.frm-token-container .frm-token .frm-token-remove .frmsvg { + color: var(--grey-900); + position: static; + width: 12px; + height: 12px; + padding: 0; +} +.frm-token-container .frm-token .frm-token-remove:hover .frmsvg { + color: var(--error-500); +} +.frm-token-container .frm-show-inline-modal { + z-index: 3 !important; +} +.frm-token-container .frm-token-proxy-input { + position: relative; + z-index: 1; + padding-right: var(--gap-xl) !important; +} + +/** + * Components - Field Loading + */ +form .form-field.frm_field_loading { + margin-bottom: 0; + min-height: 0; + padding: 0; + text-align: center; +} + +.frm_sorting > .frm_field_loading .frm_visible_spinner.frm-wait { + margin-bottom: 10px; +} + +.frm_sorting > .frm_field_loading ~ .frm_field_loading .frm_visible_spinner.frm-wait { + margin-bottom: 0; + display: none; +} + +/** + * Components - Form Error + */ +.frm_description, +.with_frm_style form div.description, +.frm_error { + margin: 0; +} + +.frm_error { + color: #F04438; +} + +form .frm_blank_field input, +form .frm_blank_field textarea, +form .frm_blank_field select, +form .frm_blank_field .frm-g-recaptcha iframe, +form .frm_blank_field .g-recaptcha iframe { + border-color: #F04438; +} + +form .frm_blank_field label { + color: #F04438; +} + +.frm_required { + color: #F04438; +} + +/** + * Components - MCE Styles + */ +.with_frm_style .wp-editor-container textarea, +.postbox .wp-editor-container textarea, +.frm_remove_border { + border: none; +} + +.with_frm_style .mceIframeContainer, +.postbox .mceIframeContainer { + background-color: #fff; +} + +/** + * Components - License + */ +.frm_pro_license_msg { + clear: left; + margin-top: 10px; +} + +.frm-license-input { + position: relative; +} + +.frm-license-input span { + font-size: var(--text-sm); +} + +.frm-license-input .frmsvg { + width: 20px; + height: 20px; + margin-left: 5px; + vertical-align: text-top; +} + +.frm-license-input .frmsvg, +.frm-license-input span, +.frm-license-input i { + color: rgb(0, 131, 26); +} + +/** + * Components - Upgrade to Pro + */ +.upgrade_to_pro { + padding: 10px 25px 25px; + max-width: 700px; + margin: 20px auto !important; +} + +.upgrade_to_pro .error { + display: none; +} + +/** + * Components - Message Styles + */ +.toplevel_page_formidable #wpbody-content > .error { + margin: 1px; + padding: 5px 12px; +} + +.frm_error_style, +.frm_warning_style, +.frm_note_style2, +.frm_note_style, +.frm_message, +#post-body-content .frm_updated_message, +div.frm_updated_message { + border-radius: var(--small-radius); + background-color: #D5F2DC; + color: #1E561F; + padding: var(--gap-sm) var(--gap-md); + font-size: var(--text-sm); + margin: var(--gap-sm) 0; + text-align: left; +} + +.frm_note_style2 { + background: linear-gradient(90deg, #e9effa, #fcf6fe) padding-box, linear-gradient(90deg, #1961D5, #E8ABEF) border-box; + border: 1px solid transparent; +} + +#frm_top_bar + .wrap > .frm_updated_message, #frm_top_bar + .wrap > .frm_warning_style { + display: inline-block; + width: 100%; + box-sizing: border-box; +} + +#post-body-content > .frm_updated_message { + margin: 5px 65px; +} + +#form_global_settings #post-body-content > .frm_updated_message, +#form_global_settings #post-body-content > .frm_warning_style { + margin: 5px 25px; +} + +.frm_error_style { + color: #973937; + background-color: #EBCCCC; + clear: both; +} + +.frm_error_style a { + text-decoration: underline; + font-weight: 600; +} + +.frm_error_style svg { + opacity: 0.7; +} + +.frm_warning_style { + color: #7A4D05; + background-color: #FFF2D2; +} + +.frm_warning_heading { + font-weight: 700; + margin-bottom: 4px; +} + +/* Warning message dismiss */ +.frm_warning_style { + position: relative; + padding-right: calc(var(--gap-md) + 15px); +} + +body.rtl .frm_warning_style { + padding-right: var(--gap-md); + padding-left: calc(var(--gap-md) + 15px); +} + +.frm-warning-dismiss { + position: absolute; + top: 10px; + right: 10px; + display: flex; + cursor: pointer; + transition: opacity 0.2s ease-out; +} + +body.rtl .frm-warning-dismiss { + left: 10px; + right: auto; +} + +.frm-warning-dismiss:hover { + opacity: 0.8; +} + +.frm-warning-dismiss.frmsvg, +.frm-warning-dismiss.frmsvg svg { + width: 15px; + height: 15px; +} + +.frm_note_style { + background: rgba(188, 224, 253, 0.23); + color: var(--grey-700); +} + +.frm-banner-alert { + text-align: left; + margin: 0; + border-radius: 0; + padding: 10px 0 10px 40px; +} + +.frm-banner-alert a { + color: var(--primary-500); + font-weight: 400; + text-decoration: none; +} + +.frm_updated_message ul, +.frm_updated_message li, +.frm_warning_style ul, +.frm_warning_style li, +.frm_error_style ul, +.frm_error_style li { + margin: 0; +} + +.frm-inline-message { + border: 1px solid var(--primary-700); + border-radius: var(--small-radius); + color: var(--primary-700); + background: #fff; + text-align: center; + padding: 20px; + font-size: var(--text-sm); + line-height: var(--leading); +} + +.frm-inline-message a { + text-decoration: underline; + font-weight: 600; + color: var(--primary-700); +} + +.frm_pro_heading span { + margin-top: 10px; +} + +.frm_pro_heading .alignright { + text-align: right; +} + +.frm-yes { + color: var(--green); + font-size: var(--text-xl); +} + +.frm-nope { + color: var(--grey-400); + font-size: var(--text-xl); +} + +/** + * Components - Upgrade Bar Elements + */ +.upgrade_to_pro a { + color: var(--orange); +} + +.upgrade_to_pro table .frmsvg { + height: var(--text-xl); + width: var(--text-xl); +} + +.upgrade_to_pro table.widefat { + background-color: #fff; + border-collapse: collapse; +} + +.frm-white-body .upgrade_to_pro table th, +.upgrade_to_pro table td { + padding: 10px 15px; + border: 1px solid var(--grey-300); + line-height: var(--leading); + font-size: var(--text-sm); +} + +.upgrade_to_pro table th.frmcenter { + text-align: center; +} + +/** + * Components - Table Styles + */ +.widefat th.frm_table_break { + background-color: var(--sidebar-color); +} + +/** + * Base - Howto + */ +h2.frm-h2 + .howto { + color: var(--medium-grey); + max-width: 850px; + margin: 5px 0 20px; +} + +/** + * Components - Card + */ +.frm-card { + width: 100%; + border-radius: 10px; + border: 1px solid var(--grey-300); + opacity: 1; + transition: opacity 1s; +} + +.frm-card-box { + max-width: 524px; + background-color: #fff; + border-radius: var(--medium-radius); + padding: var(--gap-xl); + border: 1px solid var(--grey-200); + box-shadow: var(--box-shadow-md); +} + +.frm-card-box.frm-has-progress-bar { + position: relative; + overflow: hidden; + border-radius: var(--medium-radius); +} + +.frm-card-box-progress-bar { + position: absolute; + top: 0; + left: 0; + right: 0; + height: var(--gap-xs); + background-color: var(--primary-25); +} + +.frm-card-box-progress-bar > span { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 33%; + background-color: var(--primary-500); +} + +.frm-card-box-header { + display: flex; + justify-content: center; + margin-bottom: var(--gap-sm); +} + +.frm-card-box.frm-has-progress-bar .frm-card-box-header { + margin-top: var(--gap-xs); +} + +.frm-card-box-content > :last-child { + margin-bottom: 0; +} + +.frm-card-box-footer { + display: flex; + justify-content: end; + gap: var(--gap-sm); + margin-top: var(--gap-lg); +} + +.frm-card-box-title { + font-size: var(--text-xl) !important; + font-weight: 600 !important; + margin-bottom: var(--gap-xs); +} + +.frm-card-box-text { + font-size: var(--text-md) !important; + color: var(--grey-600) !important; + margin-top: 0 !important; +} + +/** + * Utilities - Fade + */ +.frm-fade { + opacity: 0; + transition: all 1s; +} + +/** + * Components - Add-on Tiles + */ +.frm-addons .frm-card.frm-addon-not-installed { + position: relative; +} + +.frm-addons .plugin-card-top { + min-height: 155px; + padding-top: var(--gap-lg); + overflow: hidden; +} + +.frm-addons .plugin-card-top h2 { + margin-top: 0; + font-weight: 400; +} + +.frm-template-row p, +.frm-addons .plugin-card-top p { + opacity: 0.8; +} + +.frm-addons .plugin-card-top > :not(p):not(h2) { + /* Hide notices from third party plugins */ + display: none; +} + +.frm-addons .plugin-card-bottom { + padding: 5px 20px 20px; + text-align: center; + background: transparent; + border-top: none; +} + +.frm-addons .plugin-card-bottom, +.frm-addons .plugin-card-bottom .button { + font-size: 15px; +} + +.frm-addons .button, +.frm-addons .frm-button-tertiary { + float: right; +} + +.frm-addons .addon-status { + float: left; + padding-top: 4px; +} + +.frm-addon-not-installed .frm-activate-addon, +.frm-addon-not-installed .frm-deactivate-addon, +.frm-addon-not-installed .frm-uninstall-addon, +.frm-addon-installed .frm-install-addon, +.frm-addon-installed .frm-deactivate-addon, +.frm-addon-active .frm-activate-addon, +.frm-addon-active .frm-install-addon, +.frm-addon-active .frm-uninstall-addon, +.plugin-card-pro.frm-addon-active .button, +.plugin-card-pro.frm-addon-active .frm-button-tertiary { + display: none !important; +} + +.frm-save-and-reload-options { + margin-top: 10px; + font-size: 13px; +} + +.frm-save-and-reload, +.frm-save-and-reload + .frm-button-secondary { + visibility: visible !important; +} + +.addon-status-label { + opacity: 0.7; +} + +.frm-addon-active .addon-status-label { + color: var(--green); + opacity: 1; +} + +.frm-addon-error { + position: absolute; + top: 55px; + left: 10px; + right: 10px; + font-weight: 700; + text-align: center; +} + +/** + * Components - Form Templates + */ +.frm-new-template.plugin-card-bottom { + overflow: visible; +} + +#frm-new-template p:first-child { + margin-top: 0; +} + +/** + * Layout - Admin Page + */ +.frm-admin-page-formidableedit #wpbody-content > *:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack), +#wpbody-content > .updated, +#wpbody-content > #update-nag, +#wpbody-content > .update-nag, +#wpbody-content > .notice, +#wpbody-content > .error:not(.frm_previous_install), +.frm-white-body .updated, +.frm-white-body .notice, +.frm_wrap > .wrap > .notice, +.frm-white-body .error:not(.frm_previous_install) { + display: none; +} + +.frm-admin-page-formidableedit #frm_builder_page { + display: block !important; +} + +.frm-white-body .updated, +.frm-white-body .error { + margin: 0; + padding: 10px 20px; +} + +/** + * Components - Modal + */ +.frm-modal:not(#frm-dismissable-cta) .postbox { + max-height: 600px; + overflow: hidden; + margin-bottom: 0; +} + +.frm-modal .postbox .frm_modal_top, +.frm-dialog .frm_common_modal .postbox > div:first-child, +.frm-error-modal .frm_modal_top { + padding: var(--gap-md) var(--gap-md) 0; + position: relative; +} + +.frm-modal h2, +.frm-modal .postbox .inside h2, +.frm-modal .postbox .frm-modal-title, +.frm-dialog .frm_common_modal .postbox > div:first-child > div:first-child, +.frm-error-modal .frm-modal-title { + display: inline-block; + font-size: var(--text-lg); + color: var(--grey-900); + font-weight: 600; + margin: 0; + padding: 0; +} + +.frm-modal h3 { + font-weight: 500; +} + +/* Dismiss icon button */ +.frm-inline-modal > a.dismiss, +.frm-modal .postbox > a.dismiss, +.frm-modal .postbox .frm-modal-title + div:last-child, +.frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { + position: absolute; + top: 19px; + right: 19px; + display: flex; + z-index: 2; +} + +body.rtl .frm-inline-modal > a.dismiss, +body.rtl .frm-modal .postbox > a.dismiss, +body.rtl .frm-modal .postbox .frm-modal-title + div:last-child, +body.rtl .frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { + right: unset; + left: 30px; +} + +.frm-info-modal .postbox > a.dismiss, +.frm-inline-modal > a.dismiss { + right: 13px; + top: 13px; +} + +.frm-modal .postbox .frm-modal-title + div:last-child a, +.frm-modal a.dismiss .frmsvg, +.frm_common_modal .frm_modal_top a .frmsvg { + color: var(--grey-500); +} + +.frm-modal .postbox .frm-modal-title + div:last-child a:hover, +.frm-modal a.dismiss .frmsvg:hover, +.frm_common_modal .frm_modal_top a .frmsvg:hover { + color: var(--grey-700); +} + +.frm-modal .frm_modal_content > div.inside, +.frm_common_modal .frm_modal_content > div.inside { + padding: var(--gap-md); + margin: 0; + font-size: var(--text-sm); + color: var(--grey-700); +} + +.frm-modal p { + color: var(--grey-900); +} + +.frm_common_modal .postbox { + display: flex; + flex-direction: column; +} + +.frm-modal .postbox > div.inside .cta-inside { + overflow-y: auto; + height: auto; +} + +.frm_modal_footer { + padding: 0 var(--gap-md) var(--gap-sm); + text-align: right; +} + +body.frm-body-with-open-modal { + overflow-y: hidden; +} + +/** + * Components - Template List + */ +/* These template list styles are still used to list the View types in the New View modal. */ +.frm-templates-list { + margin-top: 0; +} + +.frm-templates-list.frm_grid_container li { + margin-bottom: 0; +} + +.frm-templates-list li { + vertical-align: top; + position: relative; + box-sizing: border-box; + border-radius: 6px; + border: 1px solid transparent; + text-align: left; +} + +.frm-templates-list li:not(.frm_hidden) { + display: inline-block; +} + +.frm-templates-list.frm-categories-list li { + width: 100%; +} + +.frm-templates-list li.frm-selectable { + cursor: pointer; +} + +.frm-templates-list li.frm-selectable:hover { + background: var(--light-blue); + border-color: rgba(65, 153, 253, 0.5); +} + +.frm-templates-list li.frm-selectable:hover h3, +.frm-templates-list li.frm-selectable:hover p { + max-width: calc(100% - 65px); +} + +.frm-templates-list .frm-featured-form { + display: flex; + width: 100%; +} + +.frm-templates-list li .frm-featured-form { + padding: 7px 5px; +} + +.frm-templates-list li li > div { + padding-left: 0; +} + +.frm-templates-list li > div > div { + vertical-align: middle; +} + +.frm-category-icon, +.frm-icon-wrapper { + background: var(--primary-500); + border-radius: var(--small-radius); + color: #fff; + width: 32px; + height: 32px; + font-size: 18px; + box-sizing: border-box; + align-self: center; + justify-content: center; + align-items: center; + display: inline-flex; +} + +.frm-templates-list li .frm-category-icon { + overflow: hidden; +} + +.frm-templates-list li h3, +.frm-templates-list li p { + text-align: left; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.frm-templates-list li h3, +.frm-templates-list .frm-install-template h3 { + font-size: var(--text-sm) !important; +} + +.frm-templates-list .frm-install-template div { + text-align: left; +} + +#frm_leave_email, +#frm_code_from_email { + width: 480px; + max-width: 100%; +} + +.frm-templates-list.frm-categories-list li > div > div:last-child { + padding-left: 0; +} + +.frm-hover-icons { + position: absolute; + right: 0; + top: 17px; /* Template item height - borders - icon height */ + max-width: 91px; + height: 100%; + box-sizing: border-box; + padding: 0 10px 0 5px !important; + border-radius: var(--small-radius); + text-align: right; + display: flex; + gap: 5px; +} + +.frm-ready-made-solution .frm-hover-icons { + visibility: hidden; +} + +.frm-ready-made-solution:hover .frm-hover-icons { + visibility: visible; +} + +.frm-hover-icons a { + width: 22px; + height: 22px; + font-size: var(--text-md); + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 50%; + box-sizing: border-box; + line-height: var(--leading); + text-align: center; +} + +.frm-hover-icons > .frm-preview-form, +.frm-hover-icons > .frm-delete-form { + border: 1px solid var(--primary-500); +} + +.frm-hover-icons > .frm-create-form, +.frm-ready-made-solution .frm-hover-icons a { + background-color: var(--primary-500); +} + +.frm-hover-icons > a .frmsvg { + width: 14px; + height: 14px; + vertical-align: baseline; +} + +.frm-hover-icons > .frm-preview-form .frmsvg, +.frm-hover-icons > .frm-delete-form .frmsvg { + color: var(--primary-500); +} + +.frm-hover-icons > .frm-unlock-form { + background-color: var(--primary-500); +} + +.frm-hover-icons > .frm-unlock-form .frmsvg { + background-color: var(--primary-500); +} + +.frm-ready-made-solution .frmsvg { + width: 14px; + height: 14px; +} + +.frm-hover-icons .frm-create-form svg, +.frm-ready-made-solution .frm-hover-icons svg { + color: #fff; +} + +.frm-hover-icons .frm-create-form:hover, +.frm-ready-made-solution .frm-hover-icons a:hover, +.frm-hover-icons > .frm-unlock-form:hover, +.frm-hover-icons > .frm-unlock-form:hover .frmsvg { + background-color: var(--primary-700) !important; +} + +.frm-hover-icons .frm-preview-form:hover, +.frm-hover-icons .frm-delete-form:hover { + border: 1px solid var(--primary-700) !important; +} + +.frm-hover-icons .frm-preview-form:hover .frmsvg, +.frm-hover-icons .frm-delete-form:hover .frmsvg { + color: var(--primary-700) !important; +} + +.frm-application-card h4 .frmsvg, +.frm-locked-template h3 .frmsvg { + height: var(--text-sm); + width: var(--text-sm); + vertical-align: text-top; + color: var(--grey-500); +} + +/** + * Components - Modal Actions + */ +.frm-modal-back { + cursor: pointer; + margin-right: 4px; +} + +.frm-modal-cancel { + float: left; +} + +/** + * Components - Meta Tag + */ +.frm-meta-tag, +.frm-meta-tag:hover { + padding: var(--gap-2xs) var(--gap-xs); + border-radius: var(--small-radius); + font-weight: 600; + display: inline-flex; + background-color: #D9EBFF; + gap: 2px; +} + +.frm-meta-tag.frm-grey-tag, +.frm-meta-tag.frm-grey-tag:hover { + background-color: var(--sidebar-hover); + color: var(--grey-900); +} + +.frm-meta-tag.frm-red-tag, +.frm-meta-tag.frm-red-tag:hover { + background: var(--error-100); + color: var(--error-700); +} + +.frm-meta-tag.frm-orange-tag, +.frm-meta-tag.frm-orange-tag:hover { + background-color: #FEF7F4; + color: var(--orange); +} + +.frm-meta-tag.frm-green-tag, +.frm-meta-tag.frm-green-tag:hover { + background-color: var(--success-500); + color: #fff; +} + +.frm-entry-status-0, +.frm-meta-tag.frm-lt-green-tag, +.frm-meta-tag.frm-lt-green-tag:hover { + background-color: var(--success-100); + color: var(--success-800); +} + +.frm-meta-tag.frm-new-pill { + background-color: var(--success-500); + vertical-align: text-bottom; +} + +.frm_add_field span + .frm-meta-tag { + margin-left: 0; +} + +/** + * Components - Upgrade List + */ +/* Start entry statuses */ +.frm-entry-status { + font-weight: 500; +} + +.frm-entry-status-1 { + color: #7A4D05; + background: #FFF2D2; +} + +/* End entry statuses */ +#frm-create-footer { + padding: 15px 20px; +} + +li .frm-hover-icons .frm-preview-form, +.frm-hover-icons .frm-unlock-form, +.frm-locked-template .frm-hover-icons .frm-create-form, +.frm-modal-back { + display: none; +} + +.frm-locked-template .frm-hover-icons .frm-unlock-form, +li[data-preview] .frm-hover-icons .frm-preview-form { + display: inline-flex; +} + +.frm-modal-back svg { + color: #7F7F7F; +} + +#frm-upgrade-body-list-wrapper > div { + display: inline-block; + width: 33.3333333333%; + vertical-align: top; + text-align: left; + margin-bottom: 10px; +} + +#frm-upgrade-body-list-wrapper ul { + padding-left: 40px; +} + +#frm-upgrade-body-list-wrapper ul li::before { + content: "\2022"; + color: var(--primary-500); + display: inline-block; + width: 1em; + margin-left: -1em; +} + +/** + * Components - Embed Modal + */ +.frm-embed-modal-content { + padding: var(--gap-md); +} + +.frm-embed-modal-content.frm-loading-page-options { + display: flex; + justify-content: center; +} + +#frm_embed_modal .frm_embed_example { + background: var(--sidebar-color); + border: 1px solid var(--sidebar-hover); + border-radius: var(--small-radius); + color: var(--grey-900); + font-size: var(--text-sm); + padding-right: var(--gap-lg); + width: 100%; + height: auto !important; + resize: none; +} + +#frm_embed_modal textarea.frm_embed_example { + padding-bottom: 0; +} + +.frm-embed-modal-content > div a { + position: absolute; + right: 0; + top: 0; +} + +.frm-embed-modal-content > div { + position: relative; + margin-bottom: var(--gap-sm); +} + +.frm-embed-modal-content > div:last-child { + margin-bottom: 0; +} + +.frm-embed-modal-content svg[id^=frm_copy_embed_] { + position: absolute; + bottom: 10px; /* Input height - SVG height */ + right: 10px; + cursor: pointer; + opacity: 0.5; +} + +.frm-border-info-box, +.frm-embed-modal-option { + border-radius: var(--small-radius); + border: 1px solid var(--grey-300); + padding: var(--gap-sm); + cursor: pointer; + display: flex; + gap: var(--gap-sm); + font-size: var(--text-sm); +} + +.frm-embed-modal-option + .frm-embed-modal-option { + margin-top: var(--gap-sm); +} + +.caret.rotate-270, +.frm-embed-modal-option .caret { + align-self: center; + margin-left: auto; + transform: rotate(-90deg); +} + +#frm_embed_modal .frm_modal_footer { + display: none; +} + +#frm_embed_modal.frm-on-page-2 .frm_modal_footer { + display: block; +} + +.frm-embed-modal-content ul { + max-height: 300px; + overflow-y: scroll; +} + +.frm-embed-modal-wrapper.frm-dialog { + overflow: visible; +} + +/** + * Components - Bulk Options + */ +#frm-bulk-modal .frm_grid_container { + grid-template-columns: repeat(12, 8.33%); + grid-gap: 0; +} + +#frm-bulk-modal .frm8 { + border-right: 1px solid var(--grey-300); + padding: 10px 20px 10px var(--gap-lg); +} + +#frm-bulk-modal .frm4 { + padding: 10px 0; +} + +.frm-inline-modal .howto { + margin: 5px 0 10px; + color: var(--grey); +} + +.frm-inline-modal .frm_code_list + .howto { + margin-bottom: 0; +} + +#frm_bulk_options { + height: 240px; + width: 100%; + border: none; + box-shadow: none; + padding: 0; +} + +.frm-bulk-edit-link { + display: flex; + align-items: center; + justify-content: flex-end; + gap: var(--gap-2xs); + font-size: var(--text-sm); + margin: 12px 0 12px auto; +} +.frm-bulk-edit-link .frm-bulk-edit-link { + margin: 0; +} + +/** + * Components - Small Add + */ +.frm-small-add { + font-size: var(--text-sm) !important; +} + +.frm-small-add span { + color: var(--primary-500); + font-size: 12px; + height: 12px; + width: 12px; +} + +/** + * Components - Image From URL + */ +.frm_no_captcha_text { + font-weight: 700; + color: #A00; +} + +.frm_image_from_url { + height: 50px; +} + +/** + * Components - Dropdown + */ +/*Switch form dropdown*/ +h1 .fa-caret-down { + font-size: 18px; +} + +.caret { + display: inline-block; + width: 19px; + height: 9px; + margin-right: -8px; + vertical-align: middle; +} + +.caret, +.wp-admin .frm_wrap select, +.frm_wrap .frm_form_builder select, +.frm_wrap .ui-autocomplete-input { + background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%; + padding-right: var(--gap-lg) !important; +} + +.caret { + padding-right: var(--gap-xs) !important; + background-position-x: 5px; +} + +.frm-btn-group .caret { + float: right; + margin-top: calc(var(--text-md) / 2); +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.frm_wrap .ui-autocomplete, +#frm_adv_info.frm-dropdown-menu, +.frm-dropdown-menu { + /* Copied from .dropdown-menu rules from Bootstrap */ + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + padding-left: 4px; + padding-right: 4px; + margin: var(--gap-xs) 0 0; + text-align: left; + list-style: none; + background: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid var(--grey-100); + border-radius: 0.25rem; + box-shadow: var(--box-shadow-lg); + /* Custom rules */ + max-height: 200px; + overflow-y: auto; + overflow-x: hidden; + font-size: var(--text-md); + width: auto; + min-width: 160px; +} + +.frm6 .frm-dropdown-menu { + min-width: 100px; + max-width: 99%; +} + +#frm_bs_dropdown .frm-dropdown-menu { + max-width: 400px; +} + +.field_type_list .frm-dropdown-menu { + min-width: 150px !important; +} + +#frm_field_group_controls .frm-dropdown-menu, +.frm-field-action-icons .frm-dropdown-menu { + min-width: 180px !important; +} + +.frm-field-action-icons .frm-dropdown-toggle svg { + color: #9EA9B8; +} + +.multiselect-container.frm-dropdown-menu, +#search-submit .frm-dropdown-menu { + min-width: 200px !important; +} + +.preview .frm-dropdown-menu { + min-width: 230px !important; +} + +.frm-dropdown-menu.dropdown-menu-right { + right: 0; + left: auto; +} + +.frm-dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.frm-dropdown-menu > .dropdown-item { + margin: 0; +} + +.frm-select-list-item, +.frm_wrap .ui-autocomplete li > div, +.multiselect-container button.multiselect-option, +.frm-dropdown-menu > .dropdown-item > a, +.frm-dropdown-menu .frm_dropdown_li { + clear: both; + font-weight: 400; + white-space: nowrap; + text-decoration: none; + border-radius: var(--small-radius); +} + +.frm-dropdown-menu > .active > a, +.frm-dropdown-menu > .active > a:hover, +.frm-dropdown-menu > .active > a:focus { + text-decoration: none; + outline: 0; +} + +.frm-select-list-item.disabled, +.frm-dropdown-menu > .disabled > a, .frm-dropdown-menu > .disabled > a:hover, .frm-dropdown-menu > .disabled > a:focus { + color: #999; +} + +.frm-select-list-item.disabled:hover, +.frm-dropdown-menu > .disabled > a:hover, +.frm-dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + cursor: not-allowed; +} + +.open > .frm-dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 10px; + font-size: var(--text-xs); + color: var(--grey-400); +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} + +.dropdown-menu-right > .frm-dropdown-menu, +.pull-right > .frm-dropdown-menu { + right: 0; + left: auto; +} + +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000; + content: ""; +} + +.navbar-fixed-bottom .dropdown .frm-dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.btn { + border: 1px solid #ddd; + background: #fff; + height: 28px; + line-height: var(--leading); +} + +a.frm_option_icon::before { + color: var(--primary-500); + font-size: 22px; + width: 22px; + height: 22px; +} + +a.frm_option_icon:focus::before, +a.frm_option_icon:hover::before { + color: var(--primary-700); +} + +.frm_top_left .frm-dropdown-toggle { + color: #999; +} + +.frm-card ol { + margin-left: 15px; +} + +.frm-dropdown-toggle { + text-decoration: none; +} + +.frm-card .frm-dropdown-toggle { + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); + font-size: 13px; + color: var(--grey-700); + padding: 7px 20px; +} + +.frm_actions_dropdown .frm-dropdown-menu { + font-size: var(--text-sm); + color: #5F6C72; +} + +.frm-dropdown-menu .frm_icon_font { + vertical-align: middle; + color: #5F6C72; + margin-right: 3px; +} + +/* BS Multiselect */ +.multiselect-container.frm-dropdown-menu { + top: auto; + left: auto; + font-size: var(--text-sm); + padding: 4px; + margin-bottom: 3px; +} + +/** + * Accordion + */ +#post-body-content + .frm-right-panel h3.accordion-section-title { + padding: 7px 10px 8px 14px; + font-size: var(--text-md); + color: var(--grey-700); +} + +.frm-with-line, +.accordion-section-content h4 { + font-size: var(--text-md); + font-weight: 400; + margin: 20px -20px 10px; + padding: 0 20px; + color: var(--grey-700); + position: relative; + border: none !important; +} + +.frm-with-line span, +.accordion-section-content h4 span { + background: #fff; + padding: 0 var(--gap-xs); + position: relative; + display: inline-block; + z-index: 2; +} + +.accordion-section-content h4 span { + background: var(--sidebar-color); +} + +.frm-right-panel .frm-with-line span { + background: var(--sidebar-color) !important; + margin-left: -4px; +} + +.frm-right-panel .frm-inline-modal .frm-with-line span { + background: #fff !important; +} + +.frm-with-line::before, +.accordion-section-content h4::before { + content: ""; + display: block; + position: absolute; + border-bottom: 1px solid var(--grey-300); + left: 0; + width: 100%; + top: 50%; +} + +.control-section .accordion-section-title::after, +.customize-pane-child .accordion-section-title::after { + top: 15px; +} + +.accordion-container .frm-dropdown-menu { + min-width: 40px; +} + +.frm-btn-group .multiselect.dropdown-toggle { + box-sizing: border-box; + min-height: unset; + cursor: pointer; +} + +.accordion-container .frm-dropdown-menu::before, +.accordion-container .multiselect.dropdown-toggle::before { + font-family: "s11-fp" !important; +} + +/** + * Components - Multiselect + */ +.multiselect-container { + position: absolute; + list-style-type: none; + margin: 0; + padding: 0; + width: 100%; + max-width: 250px; +} + +.multiselect-container button.multiselect-option { + width: 100%; + text-align: left; + border: none; + margin-bottom: 4px; +} + +.multiselect-container button.multiselect-option label { + margin-left: 5px; +} + +.accordion-container .multiselect-container label { + padding: 3px 19px 3px 7px; +} + +.frm-btn-group.btn-group > .btn-group:nth-child(2) > .multiselect.btn { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.frm-btn-group.btn-group, .frm-btn-group.btn-group-vertical { + display: block; +} + +.multiselect-option label { + max-width: calc(100% - 22px); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +/** + * Components - Fields + */ +.frm_scale { + text-align: center; + float: left; + margin-right: 10px; +} + +.frm_scale input { + display: block; + margin: 5px; +} + +.frm_multi_fields_container { + float: left; +} + +.frm_multi_fields_container, +.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range], +.frm_form_builder .frm_form_fields input[type=text] { + width: 100%; + height: auto; +} + +.frm_form_builder .frm_time_wrap .frm_time_sep { + vertical-align: sub; + vertical-align: -webkit-baseline-middle; +} + +.frm_form_builder input[type=range]::-webkit-slider-runnable-track { + background-color: var(--blue-border); +} + +.frm_form_builder input[type=range]::-moz-range-track { + background-color: var(--blue-border); +} + +.frm_form_builder input[type=range]::-ms-fill-lower { + background-color: var(--blue-border); +} + +.frm_form_builder input[type=range]::-ms-fill-upper { + background-color: var(--blue-border); +} + +.frm-embed-field-placeholder { + text-align: center; + height: 145px; + display: flex; + align-items: center; + justify-content: center; +} + +.frm-fake-field { + display: block; + height: 25px; + background-color: var(--light-blue); + border: 1px solid var(--grey-300); + margin: 10px 0; + border-radius: var(--small-radius); +} + +.frm-embed-message { + position: absolute; + background: #fff; + border: 1px solid var(--grey-300); + color: var(--grey-700); + padding: var(--gap-md); + font-size: var(--text-lg); + max-width: 200px; + min-width: 50%; + margin: 0 var(--gap-md); + overflow: hidden; + text-overflow: ellipsis; +} + +.frm-summary-message { + top: 50%; + left: 50%; + padding: 15px 0; + font-size: var(--text-md); + transform: translate(-50%, -50%); +} + +.frm-summary-learn-more { + font-size: inherit !important; +} + +.frm-single-settings .frm-embed-message { + width: 100%; + position: static; + border-radius: var(--small-radius); +} + +#new_fields input[type=text], +#new_fields input[type=number], +.frm_field_box .frm_form_fields > textarea, +.frm_form_fields .frm_form_field > textarea, +.frm_form_fields .frm_form_field > input[type=email], +.frm_form_fields .frm_form_field > input[type=url], +.frm_form_fields .frm_form_field > input[type=number], +.frm_form_fields .frm_form_field > input[type=tel], +.frm_form_fields .frm_form_field > input[type=text], +.frm_form_fields .frm_form_field > input[type=range] { + width: 100%; +} + +.frm_form_fields textarea.wp-editor-area { + width: 100%; + border: none; +} + +.frm_form_fields input[type=file], .frm_form_fields input[type=file]:disabled { + background: transparent; + border: none; + box-shadow: none; + width: auto; +} + +.frm_form_fields select { + width: auto; + max-width: 100%; +} + +input[type=radio], +input[type=checkbox] { + width: 16px; + padding: 0; +} + +.frm_grid_container > p, +.frm_grid_container > p.frm_form_field, +.frm_grid_container > div.frm_form_field, +#new_fields .frm_grid_container > p { + margin-top: 8px; + margin-bottom: 8px; + margin-right: 0; +} +.frm_grid_container > p > label:only-child, +.frm_grid_container > p.frm_form_field > label:only-child, +.frm_grid_container > div.frm_form_field > label:only-child, +#new_fields .frm_grid_container > p > label:only-child { + margin-bottom: 0; +} + +.frm_grid_container > .frm-has-modal > p:only-child { + margin-bottom: var(--gap-xs); +} + +#new_fields div.frm_grid_container > .frm_primary_label { + margin-top: 8px; +} + +#new_fields .frm_primary_label + p, +#new_fields .frm_primary_label + .frm6 + .frm6, +#new_fields .frm_primary_label + .frm6 + .frm-inline-modal + .frm6 { + margin-top: 0; +} + +.frm_catlevel_2, .frm_catlevel_3, .frm_catlevel_4, .frm_catlevel_5 { + margin-left: 18px; +} + +.frm_wrap .frm-fields .auto_width, +.frm_form_fields input.auto_width, .frm_form_fields select.auto_width, .frm_form_fields textarea.auto_width { + width: auto !important; +} + +.frm_form_fields select.auto_width { + min-width: 60px; +} + +.frm_form_fields input:focus, .frm_form_fields select:focus, +.frm_form_fields textarea:focus, .frm_focus_field input { + background-color: #fff; + border-color: #ddd; +} + +.frm_form_builder .frm_radio, +.frm_form_builder .frm_checkbox { + display: block; + margin-bottom: 2px; +} + +.frm_form_builder .frm_radio label, +.frm_form_builder .frm_checkbox label { + font-size: var(--text-sm); +} + +/** + * Components - Copied Frontend + */ +.horizontal_radio .frm_radio, +.horizontal_radio .frm_checkbox { + margin-right: 5px; + display: inline-block; +} + +.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label, +.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label { + display: flex; + align-items: center; + gap: 9px; + white-space: normal; +} + +.frm_form_field.frm_two_col .frm_opt_container, +.frm_form_field.frm_three_col .frm_opt_container, +.frm_form_field.frm_four_col .frm_opt_container { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-auto-rows: max-content; + grid-gap: 0 2.5%; +} + +.frm_form_field.frm_three_col .frm_opt_container { + grid-template-columns: repeat(3, 1fr); +} + +.frm_form_field.frm_four_col .frm_opt_container { + grid-template-columns: repeat(4, 1fr); +} + +.frm_form_field.frm_two_col .frm_radio, +.frm_form_field.frm_two_col .frm_checkbox, +.frm_form_field.frm_three_col .frm_radio, +.frm_form_field.frm_three_col .frm_checkbox, +.frm_form_field.frm_four_col .frm_radio, +.frm_form_field.frm_four_col .frm_checkbox { + grid-column-end: span 1; +} + +/** + * Components - Fields Part 2 + */ +.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], +.frm_wrap .with_frm_style .frm_radio input[type=radio], +.frm_wrap input[type=checkbox], +.frm-white-body input[type=checkbox], +.field-group input[type=checkbox], +.frm_scale input[type=radio], +.frm_radio input[type=radio], +.frm_checkbox input[type=checkbox] { + width: 15px; + min-width: 15px; + height: 15px; + border: 1px solid var(--grey-300); + box-shadow: var(--box-shadow-sm); + -webkit-appearance: none; +} + +.frm_wrap input[type=radio] { + border-color: var(--grey-300); + box-shadow: var(--box-shadow-sm); +} +.frm_wrap input[type=radio]:checked::before { + background-color: var(--primary-500); +} + +.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], +.frm_wrap input[type=checkbox], +.frm-white-body input[type=checkbox], +.field-group input[type=checkbox], +.frm_checkbox input[type=checkbox] { + border-radius: 4px; +} + +.frm-white-body input[type=checkbox]:checked, +.frm_wrap input[type=checkbox]:checked { + background-color: var(--border-color-active, var(--primary-500)) !important; + border-color: var(--border-color-active, var(--primary-500)) !important; +} + +.frm-white-body input[type=checkbox]:checked:focus, +.frm_wrap input[type=checkbox]:checked:focus { + border-color: var(--border-color-active, var(--primary-500)); +} + +.frm-white-body input[type=checkbox]:checked::before, +.frm_wrap input[type=checkbox]:checked::before { + content: ""; + display: block; + width: 100% !important; + height: 100% !important; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important; + background-size: 8px !important; + background-repeat: no-repeat !important; + background-position: center !important; + margin: 0; +} + +.frm_radio input[type=radio], +.frm_checkbox input[type=checkbox] { + margin-right: 5px; +} + +.frm_inner_field_container { + margin-bottom: 10px; +} + +.frm_conf_inline .frm_inner_field_container, +.frm_conf_inline .frm_inner_conf_container { + width: 49%; + float: left; +} + +.frm_conf_inline .frm_inner_field_container { + margin-right: 2%; + clear: both; +} + +.frm_inner_field_container > label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > label, +.frm_field_box .divider_section_only:hover > .frm_inner_field_container > label, +li.ui-state-default.selected > .frm_inner_field_container > label { + max-width: calc(100% - 100px); +} + +.frm-drag-fade { + background-color: var(--lightest-grey) !important; + border-radius: 4px; +} + +.frm-drag-fade * { + opacity: 0; +} + +.frm-dragging .divider_section_only, +.frm-dragging .frm_field_box { + pointer-events: none; +} + +.frm_form_settings #op-popup, +.frm_form_settings com-1password-op-button, +.frm_conf_below .frm_conf_field_container .frm_primary_label, +.frm_conf_inline .frm_inner_field_container .frm-show-click a, +.frm_conf_below .frm_conf_field_container .frm-show-click a { + display: none !important; +} + +.frm_conf_inline .frm_inner_field_container .frm-field-action-icons { + position: absolute; + right: 5px; +} + +.frm_conf_below .frm_conf_field_container { + margin-top: 10px; +} + +.frm_calc_dec { + width: 50px; +} + +.frm_ext_sc { + display: none; +} + +.frm_long_input { + width: 100% !important; + box-sizing: border-box; +} + +/** + * Utilities - Text Align - Part 2 + */ +.frmcenter { + text-align: center; +} + +/** + * Components - Image Help + */ +img.frm_help { + margin-left: 2px; + vertical-align: middle; + padding-bottom: 2px; +} + +/** + * Components - Loading + */ +.frm_spinner.frm-wait, +.frm_spinner.spinner { + float: left; + visibility: hidden; + margin: 0 10px; +} + +.frm_visible_spinner.frm-wait, +.frm_visible_spinner.spinner { + visibility: visible; + float: none; +} + +.frm_form_action_settings .frm_spinner.frm-wait, +.frm_form_action_settings .frm_spinner.spinner { + visibility: visible; + float: none; + vertical-align: bottom; +} + +.frm_form_action_settings .frm_loading { + font-size: 15px; + text-align: center; +} + +.frm_ajax_settings_tab .frm-wait, +.frm_ajax_settings_tab .spinner { + visibility: visible; + float: none; + margin-top: 20px; +} + +.wp-core-ui .frm_loading_button.button-primary.frm-button-primary, +.frm_loading_button, +.frm_loading_form.frm_button_submit { + position: relative !important; + opacity: 0.8; + color: transparent !important; + text-shadow: none !important; +} + +.frm_loading_button:hover, +.frm_loading_button:active, +.frm_loading_button:focus, +.frm_loading_form.frm_button_submit:hover, +.frm_loading_form.frm_button_submit:active, +.frm_loading_form.frm_button_submit:focus { + cursor: not-allowed; + color: transparent !important; + outline: none !important; + box-shadow: none; +} + +.frm-wait { + margin: 20px; + width: 20px; + height: 20px; + position: relative; + display: inline-block; +} + +#frm-show-fields .frm-wait:only-child { + position: absolute; + left: 50px; + top: 30px; +} + +.frm-wait::before, +.frm_loading_button::before, +.frm_loading_form.frm_button_submit::before { + content: ""; + display: inline-block; + position: absolute; + background: transparent; + border: 1px solid #fff; + border-top-color: transparent; + border-left-color: transparent; + border-radius: 50%; + box-sizing: border-box; + top: 50%; + left: 50%; + margin-top: -10px; + margin-left: -10px; + width: 20px; + height: 20px; + animation: spin 2s linear infinite; +} + +.frm-wait::before { + border-bottom-color: var(--primary-700); + border-right-color: var(--primary-700); +} + +.frm_loading_button.frm-button-secondary::before { + border-bottom-color: var(--primary-500); + border-right-color: var(--primary-500); +} + +input[type=submit]:focus { + outline: none !important; +} + +/* Effects */ +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/** + * Components - Fields Part 3 + */ +label input[type=checkbox], label input[type=radio] { + vertical-align: inherit; +} + +#editorcontainer #dyncontent { + margin: 0; + width: 100%; + padding: 6px; + line-height: var(--leading); + border: 0 none; + outline: none; + box-sizing: border-box; +} + +/*ICONS*/ +.frm_postbox_icon { + margin: -6px 0 0 -10px; +} + +.frm_form_builder a:hover { + text-decoration: underline; +} + +.frm_form_builder .widget-title h4 { + padding: 10px 15px; +} + +.frm_form_builder .widget-top a.widget-action::after { + margin: 7px 12px 0; +} + +.frmbutton.frm_tgateway { + display: none !important; +} + +.frm_html_legend pre { + display: inline; +} + +#ed_fullscreen { + display: none !important; +} + +.frm_posttax_opt_list { + overflow: auto; + max-height: 200px; + background-color: #fff; +} + +.frm_posttax_opt_list p.howto { + font-size: 12px; +} + +.frm_border_bottom { + border-bottom: 1px solid var(--grey-300); + margin-bottom: 10px; + padding-bottom: 10px; +} + +.frm_posttax_opt_list .frm_border_bottom span.howto { + padding-right: 10px; +} + +.frm_posttax_opt_list .frm_border_bottom input { + margin-right: 1px; +} + +.frm_add_remove div.frm_form_field { + padding-bottom: 5px; +} + +.frm_field_opts_list { + max-height: 260px; + overflow: auto; +} + +/** + * Utilities - Background + */ +.frm_white_bg { + background-color: #fff; +} + +/** + * Utilities - Border - Light + */ +.frm_border_light { + border: solid 1px #ddd; +} + +/** + * Components - Form Input Styles + */ +#new_fields .form-table input[type=text], +#new_fields .form-table select, +.form-table .form-field input, +.form-table .form-field .quicktags-toolbar input, +.form-field input, .form-field .quicktags-toolbar input { + width: auto; +} + +/** + * Components - Affiliate Link + */ +.frm_aff_link { + float: right; +} + +/** + * Component: Select Box + */ +.frm_select_box { + text-align: center; + font-weight: 700; + width: 100%; + background-color: transparent !important; +} + +.wp-list-table input.frm_select_box { + text-align: left; + font-weight: 400; + font-size: inherit !important; + border: none; + padding: 0 !important; + background-color: transparent !important; +} + +.wp-list-table input.frm_select_box:focus { + outline: none; + box-shadow: none; +} + +.wp-list-table .frm_no_items.frm_select_box { + text-align: center; + font-weight: 700; + width: 500px; + max-width: 100%; + font-size: inherit; +} + +/** + * Component: Options Panel + */ +#frm-options-panel { + padding: 0 var(--gap-sm); + color: var(--grey-900); + overflow: hidden; +} + +.frm-right-panel a.frm_add_logic_link, +#frm-options-panel h3 { + font-size: var(--text-md); + font-weight: 500; + background-color: #fff; + border-radius: var(--small-radius); + padding: 18px var(--gap-sm); + margin: 2px calc(-1 * var(--gap-sm)); + transition: background-color 200ms ease-out, box-shadow 200ms ease-out, color 200ms ease-out; +} +.frm-right-panel a.frm_add_logic_link .frmsvg, +#frm-options-panel h3 .frmsvg { + width: 13px; + height: 13px; + color: var(--grey-500); + transition: transform 300ms ease-in; +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type), .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child, +#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type), +#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child { + color: var(--grey-700); + box-shadow: var(--box-shadow-sm); +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg, .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg, +#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg, +#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg { + transform: rotate(-180deg); +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div, +#frm-options-panel h3:not(.frm-collapsed) + div { + padding-top: 6px; + padding-bottom: 6px; +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container, +#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container { + padding-bottom: 14px; +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child, +#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child { + margin-top: var(--gap-sm); +} +.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6, +#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6 { + margin-top: var(--gap-sm); +} +.frm-right-panel a.frm_add_logic_link.frm-collapsed, +#frm-options-panel h3.frm-collapsed { + color: var(--grey-500); + background-color: transparent; +} +.frm-right-panel a.frm_add_logic_link:hover, +#frm-options-panel h3:hover { + color: var(--grey-700); + background-color: #fff; + box-shadow: var(--box-shadow-sm); +} +.frm-right-panel a.frm_add_logic_link:focus-visible, +#frm-options-panel h3:focus-visible { + outline: 1px solid var(--primary-500) !important; + outline-offset: -1px; +} + +.frm-right-panel a.frm_add_logic_link:focus { + outline: auto; +} + +/** + * Component: Field Key + */ +.frm_field_key { + background-color: #F7F7F7; +} + +/** + * Component: Form Editor + */ +#frm_form_editor_container #edit-slug-box { + padding: 0; +} + +/** + * Component: Alt Table + */ +.frm-alt-table { + position: relative; + width: 100%; + border-collapse: collapse; + margin-top: 0.5em; + font-size: 15px; +} + +/* Before `applyZebraStriping` is executed, an empty space is displayed */ +#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #fff; +} + +.frm-alt-table th { + width: 200px; +} + +.frm-alt-table tr, +.frm-alt-table tr.frm-odd { + background-color: transparent; +} + +.frm-alt-table tr.frm-even { + background-color: var(--sidebar-color); +} + +.frm-alt-table th, +.frm-alt-table td { + background-color: transparent; + vertical-align: top; + text-align: left; + padding: 20px; +} + +.frm-alt-table h3 { + margin-bottom: 0; +} + +/** + * Component: Checkbox Button + */ +.form-field .frm_cb_button { + height: 22px; + line-height: 20px; + margin-bottom: 10px; + margin-right: 5px; +} + +/** + * Option Label + */ +.edit_field_type_select .frm_option_val_label { + margin-left: 12px; +} + +/** + * Components - Rich Text Editor + */ +.frm_rte { + background: url(../images/rte.png) no-repeat; +} + +.frm_rte .howto { + margin: 10px 0 46px; +} + +/** + * Component: Subform Section + */ +.subform_section { + margin: 25px; +} + +.subform_section, +.subform_section label, +.subform_section input { + opacity: 80; +} + +.subform_section .frm_sortable_field_opts { + display: none; +} + +#frm_form_editor_container .subform_section .frm_primary_label { + display: block; +} + +.subform_section.subform_break { + border-top: 1px dashed #ccc; +} + +/** + * Component: HTML Field + */ +.button-secondary.frm_html_field { + background-color: #ededed; + padding: 10px 20px; + line-height: inherit; + width: auto; + height: auto !important; + border-radius: 0; + box-sizing: content-box; +} + +.frm_html_field_placeholder { + margin-bottom: 10px; + text-align: center; +} + +.recaptcha_placeholder { + border: 1px solid #d3d3d3; + width: 300px; +} + +.turnstile_placeholder { + width: 300px; +} + +/** + * Component: RTE Textarea + */ +.frm_sorting .frm_rte textarea { + width: 653px; + background: #fff; + margin: 1px 0 0; + border: 1px solid #dfdfdf; + border-top: none; + border-radius: 0; + float: none !important; +} + +.frm_full_rte textarea { + width: 98%; + padding: 0; +} + +/** + * Component: Field Box + */ +.frm_field_box { + padding: 5px; + min-height: 20px; + margin: 10px 0; +} + +/** + * Components - Indent Options + */ +.frm_indent_opt, td.frm_indent_opt { + padding-left: 25px; +} + +/** + * Components - Charts + */ +.frm_charts object { + background: transparent; +} + +.frm_charts h2 { + height: 34px; +} + +/** + * Component: Sortable Placeholder + */ +.frm_single_option.ui-sortable-placeholder, +li.sortable-placeholder { + border: none; + margin: 0; + visibility: visible !important; + box-shadow: 2px -10px 0 2px var(--primary-500); +} + +#frm_form_editor_container > ul > .frm_single_option.ui-sortable-placeholder, +#frm_form_editor_container > ul > li.sortable-placeholder { + width: calc(100% - 5px) !important; + height: 0 !important; +} + +#frm_form_editor_container > ul > li > ul { + position: relative; +} + +#frm_form_editor_container > ul > li > ul > li.sortable-placeholder, +#frm_form_editor_container ul.start_divider > li > ul > li.sortable-placeholder { + position: absolute; + top: 20px; + bottom: 0; +} + +.edit_field_type_divider + li.sortable-placeholder { + box-shadow: 2px 5px 0 2px var(--primary-500); +} + +.start_divider li.sortable-placeholder { + box-shadow: 2px -5px 0 2px var(--primary-500); +} + +.frm-is-collapsed + .sortable-placeholder { + box-shadow: 2px 15px 0 2px var(--primary-500); +} + +.frm_single_option.ui-sortable-placeholder { + box-shadow: 0 0 1px 1px var(--primary-500); +} + +/** + * Component: Sorting Display + */ +.frm_sorting > li.edit_field_type_end_divider:first-child, +.frm-show-click, +li.ui-state-default.edit_field_type_divider .frm-show-click { + display: none; +} + +.frm_form_field.ui-sortable-helper .frm-field-action-icons, +.frm_form_field.ui-sortable-helper .frm_form_fields, +.frm_form_field.ui-sortable-helper .frm_description, +.frm_form_field.ui-sortable-helper .description { + display: none; +} + +.frm_form_field.ui-sortable-helper .frm_primary_label, +.frm_form_field.ui-sortable-helper .frm_inner_field_container { + margin: 0 !important; +} + +.frm-single-settings .frm-show-click { + display: block !important; +} + +.frm-show-hover, +.frm_single_visible_hover, +li.ui-state-default.edit_field_type_divider .frm-show-hover { + opacity: 0; + transition: opacity 0.15s ease-in-out; +} + +#frm-show-fields .frm-field-settings-open .frm-show-hover { + opacity: 1; +} + +.frm_sortable_field_opts { + margin-top: 5px; +} + +/** + * Component: Single Option + */ +.frm_single_option { + clear: both; + margin: 0 !important; + padding-bottom: 5px; +} +.frm_single_option input[type=radio], +.frm_single_option input[type=checkbox] { + margin-top: 0; +} +.frm_single_option .frm-with-right-icon input[type=text] + .frmsvg { + position: relative; + right: 27px; + width: 14px; + height: 14px; + padding: 0; + margin: var(--gap-2xs) 0 0; +} + +.frm_product_price_wrapper, +.frm_image_preview_wrapper, +#new_fields .frm_single_option select, +#new_fields .frm_single_option input[type=text] { + width: calc(100% - 106px) !important; + flex-grow: 1; +} + +.frm-right-panel .frm_single_option a.frm_remove_tag, +.frm_single_option a { + padding-left: 7px; +} + +.frm_single_option:hover .frm_single_visible_hover { + opacity: 100; +} + +.frm_single_option .frm-drag { + font-size: 23px; + width: 24px; + height: 24px; + margin-left: -6px; + margin-right: var(--gap-xs); + color: var(--grey-500); +} + +.frm_single_option .frm-drag::before { + vertical-align: middle; +} + +.frm-drag, +.frm_single_option.ui-sortable-helper { + cursor: move; +} + +.frm_single_option .frm_option_key { + margin-left: 19px !important; +} + +.frm_option_key input[type=text] { + margin-top: var(--gap-xs) !important; + margin-left: 11px !important; +} +.frm_option_key input[type=checkbox] + input[type=text], +.frm_option_key input[type=radio] + input[type=text] { + margin-left: 30px !important; +} + +li.ui-state-default.selected .frm-show-click, +li.ui-state-default.selected.edit_field_type_divider .frm-show-click { + display: inline; + vertical-align: top; +} + +.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > .frm-show-hover, +.frm_field_box .divider_section_only:hover > .frm_inner_field_container > .frm-show-hover, +li.ui-state-default.selected > .frm_inner_field_container > .frm-show-hover, +li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { + opacity: 100; +} + +li.frm_field_box > ul.frm_grid_container { + position: relative; +} + +/** + * Component: UI Icon + */ +.frm_sorting span.ui-icon { + width: 16px; +} + +/** + * Component: Entry Page + */ +body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container { + --field-border-width: 1px; + --border-color: var(--grey-300); + --border-color-active: var(--primary-500); + --border-radius: var(--small-radius); +} + +#form_show_entry_page .frm_file_link, +#form_show_entry_page .frm_image_option_container { + display: inline-flex; + flex-wrap: nowrap; + flex-direction: column; + text-align: center; + align-items: center; + width: 150px; + margin-right: 10px; + margin-bottom: 10px; +} + +#form_show_entry_page .frm_image_option_container img { + width: 150px; + height: 150px; + object-fit: cover; +} + +#form_show_entry_page .frm_file_link img { + max-width: 150px; + height: auto; +} + +#form_show_entry_page .frm_file_link ~ br { + display: none; +} + +#form_show_entry_page .frm_upload_label { + padding: 10px; +} + +#form_show_entry_page.frm_wrap .postbox { + overflow: hidden; +} + +.frm_image_option_container .frm_image_placeholder_icon svg { + height: 150px; +} + +.frm_list_entry_page .frm_file_link, +.frm_list_entry_page .frm_image_option_container.frm_label_with_image { + display: block; + text-align: center; +} + +.frm_list_entry_page .frm_image_option_container img { + width: 75px; + height: 75px; + object-fit: cover; +} + +.frm_list_entry_page img { + max-width: 100%; + height: auto; +} + +.frm_image_option_container .frm_empty_url { + background-color: var(--sidebar-color); +} + +.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image { + display: block; + padding: 5px 0 10px; +} + +.frm_list_entry_page .frm_upload_label, +.frm-summary-page-wrapper .frm_text_label_for_image { + display: block; +} + +/** + * Welcome and Global Settings Image Options + */ +#frm-welcome .frm_image_options .frm_image_option_container, +#form_global_settings .frm_image_options .frm_image_option_container { + background: var(--sidebar-color); +} + +#frm-welcome .frm_image_option_container svg, +#form_global_settings .frm_image_option_container svg { + max-width: calc(100% - 20px); +} + +/** + * Component: Option Templates + */ +/* Style image option container for Directory add on. */ +#frm-new-template .frm_image_option_container svg { + height: 50px; + margin: 10px auto 0; +} + +/* Show an icon on top */ +.frm_image_option_container { + position: relative; +} + +.frm_text_label_for_image > svg { + width: 30px; + position: absolute; + top: 5px; + right: calc(50% - 15px); +} + +/* End show an icon on top */ +.frm_single_option .frm_option_key { + margin-top: 17px; +} +.frm_single_option .frm_option_key.frm_image_preview_wrapper { + margin-top: var(--gap-xs); +} + +/** + * Component: Image + */ +.frm_image_data { + margin-left: var(--gap-sm); + display: flex; + flex-direction: column; + font-size: var(--text-sm); + justify-content: space-around; + min-width: 0; /* Allows flex items to shrink below content size */ +} + +.frm_image_styling_frame { + display: flex; + align-items: stretch; + margin-left: 36px; + margin-bottom: var(--gap-xs); + width: 100%; +} +.frm_image_styling_frame img { + height: 54px; + width: 54px; + min-width: auto; + min-height: auto; + border-radius: 3px; + object-fit: cover; + object-position: center; +} +.frm_image_styling_frame .frm_email_attachment_icon img { + height: auto; + width: auto; + max-width: 54px; +} + +.frm_image_preview_title { + color: var(--grey-500); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + min-width: 0; /* Critical for text truncation in flex */ + flex: 1 1 auto; /* Better flex behavior */ +} + +.frm_wrap .frm_choose_image_box { + cursor: pointer; + color: var(--primary-500); + background-color: #fff; + margin-left: 32px; + text-align: center; + width: 100%; +} + +.frm-type-ranking .frm_option_key .frm_choose_image_box { + margin-left: 11px !important; +} + +.frm_wrap .frm_choose_image_box:hover { + background: #fff; +} + +a.frm_remove_image_option, +.frm_remove_image_option { + color: var(--grey-400); + cursor: pointer; +} + +a.frm_remove_image_option:hover .frmsvg, +a.frm_remove_image_option:hover, +.frm_remove_image_option:hover { + color: rgba(40, 47, 54, 0.8); +} + +/** + * Component: Settings and Panel + */ +/* Form Settings Tabs */ +.frm-form-setting-tabs { + margin-top: var(--gap-sm) !important; +} + +.frm-right-panel > .postbox { + background-color: transparent; + border: none; + box-shadow: none; + margin: 0; +} + +.frm-right-panel .postbox.frm_with_icons .inside, +.frm-right-panel .postbox .inside, +.frm-right-panel .inside { + font-size: var(--text-md); + padding: 15px 20px 20px; + color: var(--grey-700); +} + +.frm-right-panel .misc-pub-section { + padding: var(--gap-xs) 0; + position: relative; +} + +.frm-right-panel .inside a, +.frm-form-setting-tabs a { + font-size: var(--text-md); + color: var(--grey-700); + padding: var(--gap-sm); + display: block; +} + +.frm-form-setting-tabs a { + color: var(--grey-900); + padding: var(--gap-sm) var(--gap-md); +} + +.frm-right-panel .inside a { + padding: 0; + color: var(--primary-500); + display: inline-block; +} + +.frm-right-panel .inside a:hover { + color: var(--primary-700); +} + +.frm-form-setting-tabs a:hover { + background: var(--sidebar-hover); + color: var(--grey-900); +} + +.frm-right-panel .inside i, +.frm-form-setting-tabs a i, +.frm-form-setting-tabs a .frmsvg { + margin: 0 5px; + display: inline-block; + width: 20px; + height: 20px; + color: var(--grey-500); +} + +.frm-form-setting-tabs a .frmsvg { + margin: 0; +} + +.frm-right-panel .inside a:hover i, +.frm-right-panel .inside a:hover .frmsvg, +.frm-form-setting-tabs a:hover .frmsvg, +.frm-form-setting-tabs a:hover span { + color: var(--grey-700); +} + +.frm_settings_form .tabs-panel { + padding: 0 25px; +} + +#form_settings_page .tabs-panel, +.frm_settings_form .tabs-panel { + max-height: initial !important; + min-height: 50px !important; +} + +#frm_adv_info .tabs-panel { + min-height: 0 !important; + overflow-x: hidden; + padding: 0; + border: none; + background: transparent; +} + +select.frm_cancelnew, input.frm_enternew { + width: 175px; +} + +.frm_posttax_opt_list { + border: 1px solid var(--grey-300); + padding: var(--gap-md); + border-radius: var(--small-radius); + margin: 5px 0 5px var(--gap-md); +} + +/* Color picker CSS */ +.frm_settings_form .wp-picker-open + .wp-picker-input-wrap, +.frm-right-panel .wp-picker-open + .wp-picker-input-wrap { + position: absolute; + margin-left: calc((100% - 35px) * -1); + margin-top: 1px; + width: calc(100% - 36px); +} +.frm_settings_form .wp-picker-container input[type=text].wp-color-picker, +.frm-right-panel .wp-picker-container input[type=text].wp-color-picker { + border: none; + padding: 5px 8px; + font-family: inherit; + color: var(--grey-700); + font-size: var(--text-md); + width: 100%; + line-height: var(--leading); +} +.frm_settings_form .wp-picker-input-wrap .wp-picker-clear, +.frm-right-panel .wp-picker-input-wrap .wp-picker-clear { + display: none !important; +} +.frm_settings_form .wp-picker-holder, +.frm-right-panel .wp-picker-holder { + position: absolute; + z-index: 999; +} +.frm_settings_form .wp-picker-input-wrap label, +.frm-right-panel .wp-picker-input-wrap label { + margin-bottom: 0; +} +.frm_settings_form .wp-picker-container .wp-color-result.button, +.frm-right-panel .wp-picker-container .wp-color-result.button { + width: 100%; + overflow: hidden; + margin: 0 !important; + height: var(--h-md) !important; + padding: 0 0 0 var(--gap-lg) !important; + border-radius: var(--small-radius); + border-color: var(--grey-300); +} +.frm_settings_form .wp-color-result-text, +.frm-right-panel .wp-color-result-text { + line-height: var(--leading) !important; + font-size: var(--text-md); + background: #fff !important; + color: var(--grey-900); + padding: 5px 8px; + border-color: var(--grey-300); + text-align: left; +} +.frm_settings_form .color-alpha, +.frm-right-panel .color-alpha { + width: var(--gap-lg) !important; +} + +.frm_grid_container .wp-picker-container { + width: 100%; + position: relative; +} + +.wp-picker-container button.wp-color-result { + border: 1px solid var(--grey-300) !important; +} + +.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker { + max-width: 100%; + position: relative; +} + +.frm_end .wp-picker-holder { + margin-left: -145px; +} + +.frm_end.frm6 .wp-picker-holder { + margin-left: -86px; +} + +/* End of color picker CSS */ +/** + * Toggle Components + * + * These are the styles for the "Enable Formidable styling" toggle in the visual styler. + * To use this element, you can call the FrmHtmlHelper::toggle function. + */ +.frm_toggle_opt { + padding: 0; + white-space: normal; + display: inline; + vertical-align: middle; + font-weight: 400; +} + +.frm_on_label, +.frm_off_label { + color: var(--grey-700); +} + +.frm_toggle { + position: relative; + display: inline-block; + width: 40px; + height: var(--h-xs); + vertical-align: middle; +} + +.frm_toggle_block { + display: inline-flex !important; + gap: var(--gap-xs); + align-items: center; +} + +.frm_toggle input, +.frm_toggle_block input { + display: none !important; +} + +.frm_toggle_slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--grey-200); + transition: 0.4s; + border-radius: 30px; +} + +.frm_toggle_slider::before { + box-sizing: border-box; + content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E"); + position: absolute; + left: 2px; + bottom: 2px; + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + font-size: 20px; + line-height: 20px; + background-color: #fff; + border-radius: 50%; + transition: 0.4s; + box-shadow: var(--box-shadow-md); +} + +input:checked + .frm_toggle .frm_toggle_slider { + background-color: var(--primary-500); +} + +input:focus + .frm_toggle .frm_toggle_slider { + box-shadow: var(--box-shadow-md); +} + +input:checked + .frm_toggle .frm_toggle_slider::before { + transform: translateX(16px); + content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E"); +} + +input[disabled] + .frm_toggle_slider, +input[disabled] + .frm_toggle .frm_toggle_slider { + pointer-events: none; + cursor: text; + opacity: 0.5; +} + +.frm_toggle_opt ~ .frm_toggle .frm_toggle_slider::before { + content: "" !important; /* Don't show x/check if off label included or on builder page */ +} + +.rtl .frm_toggle_opt { + padding: 0 8px; +} + +.rtl .frm_toggle_slider::before { + left: 17px; +} + +.rtl input:checked + .frm_toggle .frm_toggle_slider::before { + transform: none !important; + left: 1px; +} + +/* Deprecated admin toggle */ +.frm_toggle_off, +.frm_toggle_on { + display: none; + color: #fff; + z-index: 999; + position: absolute; + font-size: 10px; + line-height: 20px; + left: 6px; +} + +.frm_toggle_off { + display: inline; + left: auto; + right: 5px; + color: var(--dark-grey); +} + +.frm_toggle_long { + width: 80% !important; + height: 28px; + display: inline-block !important; +} + +.frm_toggle_long .frm_toggle_slider { + background: var(--primary-700); + box-shadow: 0 0 0 2px var(--primary-700); +} + +.frm_toggle_long .frm_toggle_off, +.frm_toggle_long .frm_toggle_on { + width: 50%; + text-align: center; + font-size: 13px; + line-height: 28px; +} + +.frm_toggle_long .frm_toggle_on { + left: 0; +} + +.frm_toggle_long .frm_toggle_off { + right: 0; +} + +.frm_toggle_long .frm_toggle_slider::before { + width: 50%; + left: 0; + top: 0; + border-radius: var(--border-radius) 0 0 var(--border-radius); + height: 100%; + background-color: #fff; + color: var(--primary-color); + content: "" !important; +} + +.frm_toggle_long input:checked + .frm_toggle_slider::before { + transform: translateX(101%); + border-radius: 0 var(--border-radius) var(--border-radius) 0; +} + +input:checked + .frm_toggle_slider + .frm_toggle_on { + display: inline; +} + +input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { + display: none; +} + +.frm_toggle_long .frm_toggle_on, +.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { + display: inline; + color: var(--primary-500); + font-weight: 400; +} + +.frm_toggle_long .frm_toggle_off, +.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on { + color: #fff; + font-weight: 700; +} + +/* End toggle styling */ +/** + * Global Settings + */ +.tabs-panel { + height: auto !important; + min-height: 260px; +} + +.tabs-panel.panel_secondary { + min-height: 20px; + margin-top: 10px; + margin-left: 150px; +} + +label.frm-example-icon { + margin-right: 20px !important; + display: inline-block !important; +} + +#frm_stripe_icon { + border-radius: 5px; +} + +#captcha_settings .frm_primary_label { + margin-top: var(--gap-sm); +} + +.frm-long-icon-buttons { + display: flex; + gap: var(--gap-md); +} + +.frm-long-icon-buttons > label { + border: 1px solid var(--grey-300); + color: var(--grey-700); + border-radius: var(--small-radius); + display: flex; + padding: var(--gap-sm); + gap: var(--gap-sm); + justify-content: center; + align-items: center; + width: calc(33% - var(--gap-sm)); + box-sizing: border-box; +} + +.frm-long-icon-buttons > label:hover { + color: var(--primary-500); +} + +.frm-long-icon-buttons input[type=radio] { + display: none; +} + +.frm-long-icon-buttons input[type=radio]:checked + label { + border-color: var(--primary-500); + box-shadow: 0 0 0 1px var(--primary-color); +} + +.frm-long-icon-buttons label > svg { + height: 21px; +} + +.frm-example-icon .frmsvg, +.frm-example-icon i { + height: 20px; + width: 20px; + font-size: 20px; + color: var(--grey-700); +} + +.frm_license_msg { + margin-top: 0; +} + +.frm_authorized_box .frm-show-unauthorized, +.frm_unauthorized_box .frm-show-authorized { + display: none; +} + +.edd_frm_status_icon.frmsvg { + margin: 0 5px; +} + +.edd_frm_license_row .frm_action_success .frmsvg { + color: green; +} + +.edd_frm_license_row .frm_action_error .frmsvg { + color: #D54E21; +} + +/* Hide the install steps for solutions */ +#form_global_settings .tabs-panel .num svg { + display: none; +} + +/* Empty List */ +.frm_no_items { + margin: 0 auto 50px; + text-align: center; + color: var(--grey-700); + max-width: 500px; +} + +.frm-subscribe { + margin: var(--gap-lg) 0; +} + +.frm_inbox_count { + color: #fff; + border-radius: 50%; + display: inline-block; + margin-right: 8px; + font-size: 11px; + text-align: center; + min-width: 18px; + height: 18px; + margin-left: 2px; + vertical-align: text-bottom; +} + +/** + * Global Payment Settings + */ +#payments_settings .frm_payments_section .form-table td { + padding-left: 0; + padding-right: 0; +} + +#payments_settings .frm_payments_section .form-table { + margin-top: 0; +} + +#frm_authnet_general_settings > tr:first-of-type > td:first-of-type { + padding-top: 0; +} + +#frm_authnet_general_settings h3 { + margin-bottom: 0; +} + +.frm_payment_settings_tab .frmsvg { + height: 22px; +} + +.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg { + width: 83px; +} + +.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg { + width: 99px; +} + +.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg { + width: 89px; +} + +.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg { + width: 53px; +} + +.frm-email-style { + float: left; + margin-right: var(--gap-md); +} +.frm-email-style:last-of-type { + margin-right: 0; +} +.frm-email-style__card { + position: relative; +} +.frm-email-style__name { + margin-top: var(--gap-xs); + padding-top: var(--gap-2xs); + text-align: center; +} +.frm-email-style__name .frmsvg { + vertical-align: sub; +} +.frm-email-style__click { + display: block; + border-radius: 12px; + border: 1px solid var(--grey-200); + box-shadow: 0px 0.47px 0.94px 0px rgba(16, 24, 40, 0.0588235294); +} +.frm-email-style__click:focus, .frm-email-style--selected .frm-email-style__click { + border-color: var(--primary-500); + outline: 1px solid var(--primary-500); +} +.frm-email-style__click img { + width: 160px; + display: block; +} +.frm-email-style--disabled .frm-email-style__click:after { + content: ""; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: var(--grey-100); + opacity: 0.5; +} +.frm-email-style__buttons { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 100; + display: none; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 12px; +} +.frm-email-style__button { + cursor: pointer; + display: block; +} +.frm-email-style__button:disabled { + cursor: not-allowed; + display: none; + background: var(--primary-700) !important; + border-color: var(--primary-700) !important; +} +.frm-email-style--selected .frm-email-style__button:disabled { + display: block; +} +.frm-email-style--selected .frm-email-style__button[data-action=choose] { + display: none; +} +.frm-email-style--disabled .frm-email-style__button[data-action=choose] { + display: none; +} +.frm-email-style:hover .frm-email-style__buttons, .frm-email-style__click:focus + .frm-email-style__buttons, .frm-email-style:focus-within .frm-email-style__buttons { + display: flex; +} + +#frm-send-test-email, +.frm-upload-image-btn, +.frm-remove-image-btn, +.frm-reset-colors-btn { + cursor: pointer; +} + +#frm-send-test-email-modal .postbox { + padding: var(--gap-sm) var(--gap-md); +} +#frm-send-test-email-modal .postbox * { + box-sizing: border-box; +} +#frm-send-test-email-modal .inside { + margin: 0; + padding: 0; +} + +/** + * Import/Export + */ +.frm-lite .xml_opts .frm-export-xml-items { + display: none; +} + +.csv_opts #frm_csv_col_sep { + width: 45px; +} + +#frm_advanced td.frm_left_label { + width: 20%; + padding-right: 2px; +} + +/** + * Component: Where Options + */ +#frm_where_options select { + max-width: 200px; +} + +#frm_where_options select.frm_insert_where_options { + width: 30%; +} + +#frm_where_options select.frm_where_is_options { + width: 20%; +} + +#frm_where_options span.frm_where_val { + width: 32%; + display: inline-block; + position: relative; +} + +#frm_where_options span.frm_where_val .frm_tooltip_icon, +#frm_where_options span.frm_where_val .frm_help { + left: -4px; + position: absolute; +} + +#frm_where_options span.frm_where_val.frm_hidden { + display: none; +} + +#frm_where_options span.frm_where_val input, #frm_where_options span.frm_where_val select { + width: 90%; + margin-left: 10px; +} + +#frm_where_options { + min-height: 31px; +} + +/** + * Component: Tabs Panel + */ +.tabs-panel.active .tabs-panel, +.frm_settings_form .tabs-panel .tabs-panel { + border: none; + padding: 0; +} + +/** + * Component: Feature Banner + */ +.frm-feature-banner { + background: var(--grey-700); + color: #fff; + border-radius: var(--small-radius); + padding: 20px; + margin: 10px 0; +} + +.frm-feature-banner p { + font-size: var(--text-sm); +} + +.frm-feature-banner .dismiss { + margin-top: -10px; + margin-right: -10px; +} + +.frm-feature-banner .dismiss svg { + color: #fff; +} + +.frm-feature-banner .frm-big-icon { + padding-right: 20px; + float: left; + min-height: 60px; +} + +.frm-big-icon svg { + height: 60px; + width: 60px; +} + +.frm-feature-banner p { + margin-top: 0; +} + +/** + * Add-on Backward Compatibility + */ +/*for add-on reverse compatibility */ +.frm_98_width { + width: 100% !important; +} + +/** + * Form Settings Tab styles + */ +h2.frm-h2, +.frm_form_settings h2 { + border-bottom: 1px solid var(--grey-300); + color: var(--grey-900); + font-weight: 400 !important; + padding: 9px 0 5px; + margin: 0; +} + +.frm_settings_form h3, +.frm_form_settings h3, +.frm_form_settings span.frm_add_logic_link { + font-size: var(--text-md); + border-top: 1px solid var(--grey-300); + padding-top: var(--gap-sm); + margin: var(--gap-sm) 0; + font-weight: 400; + text-transform: uppercase; + color: var(--medium-grey); + display: block; +} + +.frm_form_settings .howto { + color: var(--grey-500); + font-size: var(--text-sm); + margin-top: 8px; +} + +.frm_form_settings .advanced_settings .form-table { + margin-top: 0; +} + +.frm_form_settings td.frm_175_width { + width: 175px; +} + +.frm_form_settings #success_url { + width: 95%; +} + +.frm_wrap .ui-autocomplete { + padding: 3px 0; + max-height: 310px; +} + +.frm_wrap .ui-widget { + font-family: inherit; +} + +.frm_wrap .ui-autocomplete li { + padding: 2px 4px; + background: none; + color: var(--grey-700); + border: none; + font-weight: 400; +} + +.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active { + border: none; + font-weight: inherit; +} + +.frm_select_with_label { + margin: 7px 0 0; +} + +/** + * Customization Panel styles + */ +/* Customization Panel */ +#frm-insert-fields-box, #frm-conditionals { + max-height: none; +} + +#frm-conditionals, #frm-adv-info-tab { + display: none; + max-height: 355px; +} + +#frm-insert-fields-box ul.subsubsub, +#frm-conditionals ul.subsubsub { + float: right; + margin: 0; +} + +#frm-insert-fields-box ul.alignleft, +#frm-conditionals ul.alignleft { + margin: 4px 0 0; +} + +#frm_adv_info ul.frm_code_list.frm-full-hover { + clear: both; + max-height: 215px; + overflow: auto; +} + +#frm-insert-fields-box ul.frm_code_list li.clear.frm_block { + height: 10px; +} + +#frm_adv_info .frm_noallow { + display: none; +} + +#frm_adv_info #frm-conditionals .frm_noallow { + display: block; +} + +/** + * Customize HTML Tab styles + */ +/* Customize HTML Tab */ +#frm_html_tab.frm_hidden { + display: none; +} + +#frm_html_tab.active { + display: inline; +} + +/** + * Form Actions Tab styles + */ +.frm_email_reply_container select, +.frm_email_reply_container input, +.form-table td.frm_150_width { + width: 170px; +} + +#frm_notification_settings .frm_no_top_padding { + padding-top: 0; +} + +.frm_email_settings.frm_email_settings.widgets-holder-wrap { + overflow: auto; + box-shadow: none; +} + +#frm_notification_settings .widget-top .widget-action, +#frm_form_editor_container .widget-top .widget-action { + border: 0; + margin: 0; + padding: 8px; + background: 0 0; + cursor: pointer; + outline: 0; +} + +#frm_notification_settings .widget-top .widget-action { + padding-top: 13.5px; +} + +#frm_email_addon_menu { + border: 1px solid var(--grey-300); + padding: var(--gap-sm); + border-radius: 4px; + margin: var(--gap-md) 0 var(--gap-sm); +} + +#frm_email_addon_menu .frm-search { + float: right; + margin: 0; +} + +#frm_email_addon_menu h3.frm-no-border { + clear: none; + padding-top: 7px; +} + +.frm_email_settings .widget .widget-top { + background-color: var(--sidebar-color); +} + +.frm_email_settings .widget .widget-top, +.frm_email_settings .widget .widget-top h3 { + cursor: pointer !important; +} + +.frm_email_settings .widget { + margin-bottom: var(--gap-sm); +} + +.frm_form_action_settings .widget-top { + box-shadow: none; + border-color: var(--grey-300); + border-radius: var(--small-radius); + background: var(--lightest-grey); + color: var(--grey-700); +} + +.frm_form_action_settings:hover .widget-top { + border-color: var(--grey); +} + +.frm_form_action_settings.open .widget-top { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom: none; +} + +.frm_form_action_settings.open:hover .widget-top { + border-color: var(--grey-300); +} + +.frm_form_action_settings > .widget-inside { + display: none; +} + +.frm_form_action_settings.open > .widget-inside { + display: block; +} + +.frm_form_action_settings .widget-inside { + min-height: 25px; + padding: 15px; + border-color: var(--grey-300); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.frm_form_action_settings .widget-title h4, +.frm_form_action_settings .widget-title h3 { + display: inline-block; + border-bottom: none; + padding: 10px 10px 5px; + font-size: var(--text-md); + font-weight: 500; +} + +#frm_email_addon_menu h3 { + margin: 0 0 var(--gap-sm); + clear: both; +} + +.frm_single_api_settings p > label { + display: inline; +} + +.frm_form_action_icon { + margin-right: 5px; +} + +.frm_actions_list { + margin: 0; + display: inline; +} + +.frm_actions_list li { + float: left; + width: 15.6%; + margin: 10px 0.5% 15px; + height: 100px; + text-align: center; +} + +.frm-limited-actions .frm-group-heading, +.frm-limited-actions #frm-hide-groups, +.frm-all-actions #frm-show-groups, +.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show) { + display: none; +} + +label.frm_action_events { + padding-left: 15px; +} + +#frm-hide-groups, +#frm-show-groups { + font-size: var(--text-md); + float: right; +} + +.frm_actions_list a:active, .frm_actions_list a:focus { + outline: none; +} + +.frm_actions_list a { + font-size: var(--text-sm); + color: var(--grey-700); + word-break: break-word; +} + +.frm_actions_list span.frm-outer-circle { + /* 50px total with 30px content */ + background-color: var(--grey-100); + padding: 10px; + text-align: center; + border-radius: 50%; + display: block; + width: 30px; + height: 30px; + margin: 0 auto 15px; + line-height: 1; +} + +.frm_email_settings .widget-title h4 { + color: var(--grey-700); +} + +.frm_disabled_action .widget-title h4 { + color: var(--grey); +} + +.frm_actions_list a .frmsvg, +.frm_actions_list a i { + height: 18px; + width: 18px; + font-size: 18px; + padding: 2px; + color: var(--lightest-grey); +} + +span.frm-inner-circle, +.frm_email_settings .widget-title .frm_form_action_icon { + background-color: var(--grey-400); + border-radius: 50%; + display: inline-block; + text-align: center; + line-height: 1; +} + +span.frm-inner-circle { + background-color: var(--primary-700); + height: 22px; + width: 22px; + padding: 4px; + color: #fff; +} + +.frm-inner-circle svg { + fill: currentColor; +} + +.frm_email_settings .widget-title .frm_form_action_icon { + height: 15px; + width: 15px; + padding: 5px; + color: #fff; + vertical-align: middle; +} + +.frm_actions_list .frmsvg, +.frm_actions_list i::before, +.frm_email_settings .widget-title .frm_form_action_icon i, +.frm_email_settings .widget-title .frm_form_action_icon .frmsvg { + height: 15px; + width: 15px; + vertical-align: text-top; +} + +.frm_actions_list i::before { + vertical-align: middle; +} + +.frm_email_settings .widget-title:hover .frm_form_action_icon { + background-color: var(--grey); +} + +span.frm-inner-circle.frm-inverse { + background-color: transparent; + color: var(--primary-700); + padding: 0; + height: 30px; + width: 100%; +} + +.frm_actions_list span.frm-inverse i, +.frm_actions_list span.frm-inverse .frmsvg { + color: var(--primary-700); + height: 30px; + width: 30px; + font-size: 30px; + padding: 0; +} + +.frm_actions_list i.frm-inverse::before { + height: 30px; + width: 100%; + font-size: 30px; +} + +.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse { + background: #fff; + padding: 0; + height: 24px; + width: 24px; +} + +.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg, +.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before { + color: var(--grey-400); + height: 24px; + width: 24px; + font-size: 24px; +} + +.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg, +.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before { + color: var(--grey-500); +} + +.frm_email_icons { + padding: 10px 0 5px 6px; + font-size: 20px; +} + +.frm_email_icons a { + margin-left: 8px; + color: var(--grey); + opacity: 0; + transition: all 0.2s ease; +} + +.frm_email_icons a .frmsvg { + color: var(--grey); +} + +.frm_email_icons a:hover, +.widget-top:hover .frm_email_icons a { + opacity: 1; +} + +.frm_actions_list a.frm_inactive_action { + color: var(--grey); +} + +.frm_inactive_action .frm-inner-circle, +.frm_actions_list .frm_inactive_action i { + opacity: 0.4; +} + +/** + * Component: Notification Settings + */ +table td, .form-table tr td { + vertical-align: top; +} + +#new_fields .form-table tr td { + display: block; + padding: 7px 0 0; +} + +#new_fields .form-table tr td:first-child { + margin: 0; +} + +#new_fields .form-table tr td:last-child { + margin-bottom: 9px; +} + +.form-table #list-table th { + text-align: center; +} + +#form_settings_page th, +#form_settings_page td, +.frm_settings_form td, +#frm_notification_settings .frm_form_action_settings td p { + padding: 7px 0; +} + +#permissions_settings_settings .frm_grid_container { + align-items: center; +} + +#frm_notification_settings .form-table > tbody > tr > th { + width: 150px; + font-weight: 400; + padding-right: 10px; +} + +#frm_notification_settings .frm_single_email_settings .form-table > tbody > tr > th { + width: 80px; +} + +#frm_notification_settings table tr td:first-child { + padding-left: 0; +} + +#frm_notification_settings table tr td:last-child { + padding-right: 0; +} + +#frm_notification_settings .frm_left_label { + float: none; /* For add-ons that haven't been updated for 4.0 */ + width: auto !important; +} + +.frm-fields .frm_autoresponder_rows select { + width: auto; +} + +#frm_notification_settings .frm_with_left_label, +#frm_notification_settings .frm_left_label + textarea, +#frm_notification_settings .frm_left_label + select, +#frm_notification_settings .frm_left_label + input[type=text] { + width: 100%; +} + +#frm_notification_settings .frm_email_buttons { + padding: var(--gap-2xs); + background: var(--light-blue); + color: var(--primary-700); + border-radius: var(--small-radius); + border-color: var(--blue-border); + line-height: 1; + height: auto; + min-height: 12px; + font-size: var(--text-xs); + box-shadow: none; +} + +p.frm_bcc_cc_container, +p.frm_reply_to_container { + float: right; + z-index: 1; + position: relative; +} + +p.frm_bcc_cc_container { + margin: 14px 0 0; +} + +p.frm_reply_to_container { + margin: -4px 0 0; +} + +.frm_email_row .frm_cancel1_icon::before { + vertical-align: bottom; +} + +.frm_cc_row.frm_email_row .frm-with-right-icon, +.frm_bcc_row.frm_email_row .frm-with-right-icon, +.frm_reply_to_row.frm_email_row .frm-with-right-icon { + width: calc(100% - 20px); + display: inline-block; +} + +.frm_email_row .frm_remove_field .frm_close_icon { + position: relative; + fill: var(--grey-500); + vertical-align: middle; +} + +/** + * Component: Logic Fields + */ +.frm-inline-select, +p.frm-inline-select, +.frm_logic_rows .frm-collapse-me { + line-height: var(--h-md) !important; +} + +.frm_logic_row { + padding: var(--gap-xs) 0 0; +} + +.frm-single-settings ul.frm_sortable_field_opts { + border-bottom: 1px solid var(--grey-200); + padding-bottom: var(--gap-xs); + margin-bottom: var(--gap-xs); +} + +.frm-single-settings .frm-add-other svg.frm_add_tag { + position: relative; + top: 5px; + margin-right: 4px; +} + +.frm-single-settings .frm_single_option .frm_remove_tag::before { + content: ""; +} + +.frm-single-settings input[type=checkbox][readonly] { + opacity: 0.5; + pointer-events: none; +} + +.advanced_settings .frm_logic_row { + margin: 14px 0; +} + +.advanced_settings .frm_logic_row select, +.advanced_settings .frm_logic_row input { + max-width: 30% !important; +} + +.frm_form_action_settings .frm_logic_row p { + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +/** + * Component: Form Settings Widget + */ +#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside { + padding-bottom: 0; +} + +#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside { + padding-left: 15px; + padding-right: 15px; +} + +#form_global_settings h3 { + font-size: var(--text-sm); + margin-top: 25px; +} + +#form_global_settings .tabs-panel + h3 { + margin-top: 0; + border: none; +} + +#poststuff .frm_form_settings .widget-inside h3, +#poststuff .frm_form_settings .advanced_settings h3, +#poststuff .frm_settings_form h3, +#frm_advanced .inside h3 { + border-top: 1px solid #eee; + border-bottom: none; + margin: 15px -15px 0; + padding: 8px 15px; + font-size: var(--text-sm); +} + +#poststuff .frm_form_settings h3.frm_first_h3, +#poststuff h3.frm_first_h3 { + border: none; + margin-top: 0; +} + +h3.frm_add_logic_link { + margin-bottom: 0 !important; +} + +a.frm_add_logic_link.frm_hidden { + display: none; +} +a.frm_add_logic_link.frm_hidden + .frm_logic_rows { + height: auto; +} + +/** + * Icon Font styles + */ +.frm_icon_font { + color: #A0A0A0; + color: var(--grey); +} + +.frm-fields label .frm_icon_font { + font-size: inherit; +} + +.misc-pub-revisions.frm_icon_font, +.misc-pub-revisions.frm_icon_font:hover { + color: inherit; +} + +.postbox.frm_with_icons .inside { + padding: 0; + margin: 0; +} + +.frm_add_tag::before { + content: "\e602"; +} + +.frm_remove_tag::before { + content: "\e600"; +} + +.frm_logic_row .frm1 > .frm_remove_tag { + padding: 0; +} + +.frm_tooltip_icon::before { + font-size: 13px; + vertical-align: top; +} + +.frm_help svg, +.frm_help .frmsvg { + height: 13px; + width: 13px; + vertical-align: top; + color: var(--grey-400); +} + +.form-field input[type=text].frm_other_input { + width: 30%; + margin-left: 10px; +} + +.frm-add-other { + text-align: right; +} + +.frm-add-other .frm_add_tag { + vertical-align: 20%; +} + +.frm_action_icon { + margin: 5px 0 0 5px; +} + +span.frm_action_icon { + margin: 0 4px 0 0; +} + +.frm_action_icon:active { + outline: none; +} + +a.frm_action_icon:hover { + text-decoration: none; +} + +.frm_action_icon.frm_error_icon::before { + content: "\e608"; +} + +.frm_inactive_icon.frm_action_icon.frm_error_icon::before { + content: "\e606"; +} + +.frm-field-action-icons { + text-align: right; + position: absolute; + top: 2px; + right: 2px; + max-width: 100%; +} + +.frm-field-action-icons .frm-field-id { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 80px; + max-width: calc(100% - 50px); + position: relative; + top: 2px; +} + +.frm-field-action-icons > a { + font-size: var(--text-md); + width: 17px; +} + +.frm-field-action-icons a:hover { + text-decoration: none; +} + +.frm-field-action-icons .dropdown { + display: inline-block; +} + +.frm-field-action-icons > a .frmsvg { + color: var(--grey-500) !important; + font-size: 17px; + width: 17px; + height: 17px; +} + +.frm-field-action-icons > a .frmsvg, +.frm-field-action-icons > div > a .frmsvg { + vertical-align: baseline; +} + +.edit_field_type_end_divider .frm-field-action-icons { + display: none !important; +} + +.frm-move { + cursor: grab; +} + +/** + * Extended Howto styles + */ +span.howto { + display: inline; +} + +.frm_import_message { + margin: 15px 0; + line-height: 2.5; +} + +/** + * Form Widget styles + */ +.frm_sorting .form-field .widget input[type=text], +.frm_sorting .form-field .widget input[type=number], +.frm_sorting .form-field .widget select, +#wpcontent .frm_sorting .form-field .widget select, +.frm_sorting .form-field .widget textarea { + width: auto; +} + +/** + * Tag Checklist styles + */ +.tagchecklist span.no_taglist { + display: inline; + float: none; + line-height: 15px; + margin-right: 0; + font-size: inherit; +} + +.tagchecklist .frm_exclude_cat_list span { + display: inline; +} + +.tagchecklist span a::before { + line-height: 23px; + text-align: start; +} + +.frm_form_action_settings .frm_email_row .frm_tooltip_icon { + position: relative; + bottom: 2px; +} + +/** + * No Entries Page styles + */ +.frm_no_entries_form { + padding: 60px 0; +} + +.frm_no_entries_form .frm_no_entries_header { + font-size: 20px; + margin-bottom: 10px; +} + +.frm_no_entries_form .frm_no_entries_text { + line-height: var(--leading); +} + +#form_entries_page #the-list .no-items { + height: 240px; /* Equals to the max height of search dropdown */ +} + +/** + * Reports Page styles + */ +#form_reports_page img.frm_no_reports { + max-width: 100%; +} + +.frm_wrap .google-visualization-table .gradient, +.frm_wrap .google-visualization-table-tr-head, +.frm_wrap .google-visualization-table-tr-odd, +.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over { + background: var(--lightest-grey); +} + +.frm_wrap .google-visualization-table-tr-over { + background: #fff; +} + +.frm_wrap .google-visualization-table-table th, +.frm_wrap .google-visualization-table-table td { + border-right-width: 0; + padding: 10px !important; +} + +.frm_wrap .google-visualization-table-tr-head, +.frm_wrap .google-visualization-table-tr-head th { + white-space: pre-wrap; + font-size: var(--text-md); + font-weight: 400 !important; + text-align: left; +} + +.frm_wrap .google-visualization-table-td-number { + text-align: inherit; +} + +#form_reports_page .postbox { + text-align: center; + float: none; + display: inline-block; + margin-right: 2%; + width: 20%; + min-width: 175px; +} + +/** + * Views Page styles + */ +#form_views_page img.frm_no_views { + max-width: 100%; +} + +/** + * Component: Field Options Popup + */ +.frm_field_opts_popup { + min-width: 300px; + background-color: #fff; +} + +.frm_field_opts_popup #wpadminbar { + display: none; +} + +.frm_prepop { + width: 100%; + list-style: none; + overflow: auto; + margin: 0; + max-height: 295px; +} + +.frm_prepop li { + margin: 0; +} + +.frm_prepop li a { + display: block; + text-decoration: none; + cursor: pointer; + padding: 5px 20px; +} + +.frm_prepop li a:hover { + background: var(--sidebar-color); +} + +/** + * Form Editor Container + */ +#frm_form_editor_container #frm_form_key_box { + width: 13em; + max-width: 30%; +} + +#frm_form_editor_container #frm_form_desc { + width: 70%; +} + +#frm_form_editor_container .ui-widget-content { + display: none; + padding: 15px; +} + +#frm_form_editor_container .ui-widget-content label { + float: left; + width: 170px; + text-align: right; + padding-right: 5px; + clear: both; +} + +#frm_form_editor_container .ui-widget-content label.nofloat { + clear: none; + float: none; + margin-left: 10px; +} + +#frm_form_editor_container .ui-state-default { + color: #333 !important; +} + +.frm_green { + color: var(--green) !important; +} + +#frm_form_editor_container .ui-state-default a.frm_orange, .frm-right-panel a.frm_orange, #postbox-container-1 a.frm_orange { + color: #D54E21; +} + +#styling_settings input[type=checkbox], #styling_settings input[type=radio] { + border: solid 1px #bbb; +} + +#styling_settings .widget .widget-top, #frm_form_editor_container .widget .widget-top { + cursor: pointer; +} + +/** + * Widget Sorting + */ +.frm_sorting .widget, .frm_settings_page .widget { + background: #fff; +} + +.frm_sorting .widget-title h4 { + font-weight: 400; +} + +.frm_sorting .widget, #postbox-container-1 .widget, .frm-right-panel .widget, .frm_settings_page .widget { + margin-bottom: 0; +} + +.frm_settings_page .widget-inside { + padding: 0 5px 5px; +} + +.frm_sorting .widget, +.widget-inside, +.frm_sorting .form-field .widget { + display: none; +} + +#frm-show-fields { + min-height: 350px; + padding: 0 0 35px; + margin: 0; + position: relative; +} + +.frm-has-fields #frm-show-fields { + min-height: 50px; +} + +#frm_builder_page .frm-lite-credit-card-element, +body.frm-admin-page-styles .frm-lite-credit-card-element { + position: relative; +} + +#frm_builder_page .frm-lite-credit-card-element > div, +body.frm-admin-page-styles .frm-lite-credit-card-element > div { + position: absolute; + top: calc(50% - 1px); + transform: translateY(-50%); + right: 10px; + color: #d0d4dd; +} + +#frm_builder_page #frm_field_group_controls { + position: absolute; + padding: 5px; + border-radius: 4px 4px 0 0; + text-align: right; + box-sizing: border-box; + right: 0; + top: -28px; + height: 28px; + z-index: 3; /* section dividers use z-index: 2; position above that to avoid it taking over hover control. */ +} + +.frm-field-group-hover-target, +.frm-has-open-field-group-popup, +#frm_builder_page #frm_field_group_controls, +.frm-selected-field-group { + background: rgba(65, 153, 253, 0.04); +} + +.frm-selected-field-group { + position: relative; +} + +#frm_builder_page #frm_field_group_controls > span:first-child { + margin-right: 5px; +} + +#frm_builder_page #frm_field_group_controls svg { + pointer-events: none; +} + +#frm_field_group_controls { + visibility: hidden; +} + +.frm-field-group-hover-target #frm_field_group_controls { + visibility: visible; +} + +#frm_field_group_controls .dropdown-item a span { + color: var(--grey-700); +} + +#frm_field_group_controls .dropdown-item a:hover { + text-decoration: none; +} + +/** + * Field Sorting + */ +.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider { + display: none !important; +} + +.frm-right-panel .ui-state-default, +#postbox-container-1 .ui-state-default, +.frm_sorting > li.ui-state-default, +.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { + border: 1px solid transparent; + font-weight: 400 !important; + background-color: transparent; + background-image: none; + padding: 5px; + margin: 0; + box-shadow: none; + display: block; + text-align: inherit !important; + overflow: visible; + position: relative; +} + +#frm-show-fields li.frm_cancel_sort { + /* If a section gets dropped into a section, hide it */ + display: none; +} + +.divider_drop { + text-align: center; +} + +.divider_drop .howto .frm_icon_font { + font-style: normal; +} + +.show_repeat_sec { + display: none; +} + +.repeat_section .show_repeat_sec { + display: inline-block; + margin: 5px 0 0; +} + +.repeat_section tr.show_repeat_sec { + display: table-row; +} + +.repeat_format .frm_repeat_label, +.repeat_formattext .frmsvg, +.repeat_formattext i { + display: none; +} + +/** + * Frm Button + */ +.frm_button { + text-decoration: none; + border: 1px solid #eee; + padding: 5px; + color: #444; + vertical-align: middle; + box-shadow: none !important; +} + +a.frm_button:hover { + text-decoration: none !important; +} + +.frm_button, +.frm_button .frm_icon_font::before { + font-size: 13px; + vertical-align: middle; +} + +.frm_button .frmsvg { + width: 13px; + height: 13px; +} + +/** + * Components - Divider + */ +.frm-right-panel .ui-state-default, +#postbox-container-1 .ui-state-default { + padding: 0; + margin: 0; +} + +ul.start_divider { + padding: 8px 13px 0 8px; + min-height: 115px; + transition: all 0.4s linear; +} + +.frm-section-collapsed .frm_no_section_fields, +.frm-section-collapsed ul.start_divider { + height: 0; + min-height: 0 !important; +} + +.frm-section-collapsed ul.start_divider { + overflow: hidden; +} + +.frm-section-collapsed .frm_no_section_fields { + overflow: hidden; + padding: 0; + opacity: 0; +} + +.frm-section-collapsed .divider_section_only .frm-collapsed-label { + display: inline; +} + +.frm-page-collapsed .frm_clone_icon, +.frm-page-collapsed .frm_delete_field, +.frm-page-collapsed .frm_clone_field, +.frm-section-collapsed .frm_clone_icon { + opacity: 0.5; + cursor: not-allowed; +} + +/* Hide the Duplicate summary option because we are missing the logic that also adds a new page */ +.edit_field_type_summary .frm_more_options_li:nth-child(2) { + display: none !important; +} + +.edit_field_type_submit .frm_more_options_li:not(:last-child) { + display: none !important; +} + +.frm_no_section_fields:not(.frm_block) + ul.start_divider { + padding: 0; + min-height: 132px; +} + +.frm_sorting li.ui-state-default .divider_section_only { + padding: 6px; + margin-top: -10px; + border: 2px solid transparent; + border-radius: var(--small-radius); + z-index: 2; + position: relative; +} + +.divider_section_only > .frm_inner_field_container { + padding: 5px 0; + margin: 0; +} + +.frm-collapsed-label, +.divider_section_only > .frm_inner_field_container .frm_form_fields { + display: none; +} + +.frm-section-collapsed .divider_section_only::after, +.divider_section_only::before { + content: ""; + display: block; + padding: 2px 0; + line-height: 1px; + border-top: 2px solid var(--grey-300); + top: -2px; + position: absolute; + width: 100%; + transition: 0.5s border-color ease-in-out; +} + +.frm-section-collapsed .divider_section_only::after { + top: auto; + bottom: -6px; +} + +.frm-section-collapsed .divider_section_only:hover::after, +li.selected.frm-section-collapsed .divider_section_only::before, +li.selected.frm-section-collapsed .divider_section_only::after, +.divider_section_only:hover::before, +li.selected .divider_section_only::before { + border-color: transparent; +} + +.frm_sorting li.ui-state-default.edit_field_type_divider { + overflow: visible; + position: relative; + padding: 0 0 0 20px; + margin: 25px 0 0 -5px; + border-left: 1px solid var(--primary-700); + transition: border 0.7s ease-out; +} + +.frm-section-collapsed { + border-left-color: transparent !important; +} + +.frm_sorting li.edit_field_type_end_divider, +.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { + margin: 0 0 var(--gap-sm); +} + +.frm-first-page .frm_prev_page { + display: none; +} + +/** + * Components - Form Rows + */ +#frm_builder_page .frm_remove_form_row.frm_button, +#frm_builder_page .frm_add_form_row.frm_button { + border-radius: var(--small-radius); + border: 1px solid var(--blue-border); +} + +#frm_builder_page .frm_remove_form_row .frmsvg, +#frm_builder_page .frm_remove_form_row i::before, +#frm_builder_page .frm_add_form_row .frmsvg, +#frm_builder_page .frm_add_form_row i::before { + color: var(--primary-700); +} + +.frm-preview-buttons .frm_button_submit { + margin: 0 5px; +} + +.frm-page-break { + border-top: 1px dashed var(--primary-700); + margin-top: var(--gap-lg); + position: relative; +} + +.frm-page-break::before, +.frm-page-break::after { + content: ""; + position: absolute; + background-color: #fff; + border-radius: 50%; + border: 1px solid var(--primary-700); + text-rendering: auto; + -webkit-font-smoothing: antialiased; +} + +/** + * Components - Divider Icons + */ +.edit_field_type_divider .frm-divider-icon.frmsvg { + padding: 2px; + position: absolute; + left: -12px; + color: #fff; + background-color: var(--primary-700); + border-radius: 50%; +} + +.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg { + height: 8px; + width: 8px; + padding: 0; + bottom: -4px; + left: -24.5px; + color: var(--primary-700); + background-color: #fff; +} + +.edit_field_type_divider.selected .frm-divider-icon.frmsvg, +.edit_field_type_divider:hover .frm-divider-icon.frmsvg { + background: var(--primary-500); +} + +.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg, +.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg { + background-color: #fff; + color: var(--primary-500); +} + +.frm-page-break::before, +.frm-page-break::after { + width: 8px; + height: 8px; + top: -6px; + border-color: var(--grey); +} + +.frm-page-break::after { + right: 0; +} + +#frm-fake-page .frm-page-break { + border-color: var(--grey); +} + +#frm-fake-page { + padding: 0 5px; +} + +.frm_sorting li.edit_field_type_divider:hover, +.frm_sorting li.edit_field_type_divider.selected { + border-left-color: var(--primary-500); +} + +/** + * Component: Page Collapsed + */ +.frm-section-collapsed::after { + border-color: transparent !important; + color: transparent; +} + +.frm-page-break .frm-collapse-page.button { + margin-left: 46%; + margin-top: -16px; + padding: 6px 12px !important; +} + +#frm-fake-page.frm-page-collapsed { + margin-bottom: 0; +} + +.frm-page-collapsed { + position: relative; + overflow: visible !important; + margin-bottom: var(--gap-lg); +} + +.frm-collapse-page .frmsvg, +.frm-collapse-page .frm_arrowdown6_icon { + width: var(--text-sm); + height: var(--text-sm); + font-size: var(--text-sm); + text-align: center; + margin-left: 2px; + color: currentColor; + transition: transform 300ms ease-in-out; +} + +.frm-page-collapsed .frm-collapse-page .frmsvg { + transform: rotate(180deg); +} + +#frm-fake-page .frm_arrowdown6_icon { + color: currentColor; +} + +.frm-collapsed i::before, +.frm-page-collapsed .frm_arrowdown6_icon::before { + content: "\e913"; +} + +.frm-collapse-section svg { + fill: var(--primary-color); + transition: transform 0.2s ease-out, fill 0.2s ease-out; +} + +.frm-collapse-section:hover svg { + fill: var(--primary-700); +} + +.frm-section-collapsed .frm-collapse-section svg { + transform: rotate(-90deg); +} + +.open .widget-top .widget-title-action button .frmsvg { + transform: rotate(90deg); +} + +.widget-top .widget-title-action button .frmsvg use { + color: var(--grey); +} + +.frm-collapsed + .frm-collapse-me { + overflow: hidden !important; +} + +.frm-collapse-me { + padding-bottom: 10px; +} + +.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect) { + position: relative; + z-index: 1; +} + +.frm-collapsed + div { + height: 0; + padding: 0; +} +.frm-collapsed + div.frm-collapse-me { + display: none; +} + +.frm-collapsible { + display: flex; + justify-content: space-between; + align-items: center; + font-weight: 700; + padding: var(--gap-xs) 0; + margin: 0; + cursor: pointer; + /* prevent text selection */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.frm-collapsible.frm-collapsed { + font-weight: 400; +} +.frm-collapsible:not(.frm-collapsed) .frmsvg { + transform: rotate(-180deg); +} +h4.frm-collapsible { + font-size: var(--text-md); +} + +.frm-collapsible + .frm-collapse-me { + padding-bottom: 0; +} +.frm-collapsible:focus-visible { + outline: 1px solid var(--primary-500); +} + +/** + * Divider Labels + */ +.frm_sorting .divider_section_only > .frm_ipe_field_label { + font-size: 116%; +} + +#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button { + width: 150px; + text-align: center; + margin-bottom: 3px; + display: block; +} + +tr.frm_options_heading td { + padding-bottom: 0; +} + +.frm_sorting .widget-inside .form-table td p, +.frm_sorting .widget-inside .form-wrap label { + padding: 10px 0; +} + +/** + * Empty Fields + */ +.frm_no_fields, +.frm_no_section_fields { + text-align: center; + position: absolute; + color: var(--medium-grey); + font-size: var(--text-md); + box-sizing: border-box; + border: 1px dashed var(--grey-300); + outline: 2px solid transparent; +} + +.frm-over-droppable + .frm_no_fields { + border-style: solid; + border-color: var(--primary-500); + outline-color: var(--primary-500); +} + +.frm_no_section_fields { + display: none; + margin: 0; + padding: 20px 0 0; + width: calc(100% - 20px); + height: 121px; + transition: all 0.4s linear; +} + +.frm-empty-fields .frm_updated_message ~ .frm_no_fields { + top: 60px; +} + +#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields > .frm_field_box:last-child { + visibility: hidden; +} + +.frm-has-fields .frm_no_fields { + display: none; +} + +#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder { + display: none; +} + +#frm-form-button { + display: none; + margin: 0 7px 25px; +} + +.frm-has-fields #frm-form-button { + display: block; +} + +.frm-large-plus.frmsvg { + color: var(--primary-700); + height: 45px; + width: 45px; +} + +.frm_no_section_fields p { + color: var(--grey); + font-size: 15px; +} + +.frm_no_fields { + top: 0; + width: calc(100% - 24px); + min-height: 320px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: var(--gap-md); + padding: var(--gap-md); + border: 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); + border-radius: var(--medium-radius); + margin: var(--gap-sm) 12px; +} +.frm_no_fields img { + margin-left: calc(-1 * var(--gap-lg)); +} +.frm_no_fields .frm_drag_inst { + font-size: 20px; + font-weight: 600; + margin: 0 0 12px; +} +.frm_no_fields p { + color: var(--grey-600); + font-size: var(--text-md); + margin: 0; +} + +/** + * Product Fields + */ +.frm_product_price_wrapper { + display: inline-block; + vertical-align: middle; +} + +.frm_prod_type_single .frm_product_price_wrapper { + width: 100%; +} + +#new_fields .frm_product_price_wrapper input:first-child { + width: 60% !important; + float: left; +} + +#new_fields .frm_product_price_wrapper input:nth-child(2) { + width: 37% !important; + float: right; +} + +/** + * Field Choices + */ +li.frm_single_option { + padding-bottom: var(--gap-sm); + border-bottom: 0; +} + +.frm_prod_type_single input[type=radio], +.frm_prod_type_single .frm_drag_icon, +.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3), +.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag, +.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product), +.frm_prod_type_single .frm-bulk-edit-link, +.frm_prod_type_user_def.frm_grid_container, +.frm_prod_options_heading.frm_prod_user_def { + display: none; +} + +.frm_prod_type_single .frm-ai-generate-options-modal-trigger { + display: none !important; +} + +.frm_prod_type_single .frm_option_key { + margin-left: 0 !important; +} +.frm_prod_type_single .frm_option_key input[type=checkbox] + input[type=text], +.frm_prod_type_single .frm_option_key input[type=radio] + input[type=text] { + margin-left: 0 !important; +} + +.plugin-card-bottom .frm-trash { + color: #a00; +} + +/** + * Field Labels + */ +.frm-fields p > .frm_inline_label, +.frm_inline_label { + padding-left: 3px; + margin-right: 12px; + display: inline-block; +} + +.frm_left_label { + clear: both; + float: left; + width: 32% !important; + margin-right: 2% !important; + line-height: 2em; +} + +table td.frm_left_label { + float: none; + line-height: inherit; + padding: 5px 0 5px 2%; +} + +.frm_left_label.frm_alignright { + padding-right: 10px; + text-align: right; +} + +.frm-fields .frm_left_label + textarea, +.frm-fields .frm_left_label + select, +.frm-fields .frm_left_label + input[type=text], +.frm_with_left_label { + width: 66%; +} + +td.frm_left_label + td { + width: 66%; + padding-top: 0; +} + +#html_settings label { + display: block; +} + +#html_settings .frm_field_html_box { + width: 100%; +} + +.frm-has-required .frm-required { + color: var(--error-500); +} + +/** + * Category Tabs + */ +ul.frm-category-tabs { + margin-top: 2px; +} + +.frm-category-tabs > li a, +.frm-category-tabs > li a:active { + outline: none; + box-shadow: none; + display: flex; + gap: var(--gap-xs); + align-items: center; +} + +.frm-category-tabs > li.active .frmsvg, +.frm-category-tabs > li.active i, +.frm-category-tabs > li.active span, +.frm-category-tabs > li.active a { + color: var(--primary-500); +} + +.frm_wrap .manage-menus { + margin-top: 0; + border: none; + border-bottom: 1px solid var(--grey-300); + background: var(--lightest-grey); +} + +.general_settings .postbox .manage-menus { + border-top: none; + border-left: none; + border-right: none; +} + +.frm-postbox-no-h3 { + padding-top: 10px; +} + +/** + * Components : UI State Defaults + */ +.frm-right-panel .ui-state-default, #postbox-container-1 .ui-state-default { + color: var(--grey-900); +} + +.no_repeat_section .frm_sorting > li.ui-state-default.edit_field_type_end_divider:hover { + box-shadow: none; +} + +.frm-selected-field-group li.ui-state-default, +.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected, +.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover, +.frm_sorting li.ui-state-default.frm_not_divider:hover, +.frm_sorting li.ui-state-default.ui-sortable-helper, +.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover, +.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover, +.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only, +.frm_update_msg, +.frm_sorting li.ui-state-default.frm_not_divider.selected, +.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only { + border-color: var(--primary-500); + transition: 0.5s border-color ease-in-out; +} + +.frm_sorting li.ui-state-default.frm_not_divider.selected { + box-shadow: 0 0 1px 0 var(--primary-500); +} + +.frm_sorting li.ui-state-default { + transition: 0.7s box-shadow ease-in-out, 0.7s height linear; +} + +.frm_sorting li.ui-state-default.frm-newly-added { + box-shadow: inset 0 0 2px 1px var(--blue-border); +} + +.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { + visibility: visible !important; + display: inline !important; +} + +.edit_field_type_end_divider > label { + display: none !important; +} + +/** + * Update Message + */ +.frm_email_actions.feature-filter { + font-weight: 700; + border: 1px solid #DFDFDF; + background-color: #EEE; + padding: 3px 5px 2px; + font-size: var(--text-md); + line-height: 20px; +} + +.frm_update_msg { + border-style: solid; + margin: 10px 0; + color: #21759B; + padding: 8px 15px; + border-radius: 4px; +} + +.frm_update_msg.wrap { + margin: 10px 20px 0 2px; +} + +#frm-insert-fields-box .frm_update_msg { + margin-right: 0.9em; +} + +.frm_update_msg a { + font-weight: 700; +} + +.widefat td { + width: auto; +} + +.widefat .column-id { + width: 3.7em; +} + +.widefat .column-show_count { + width: 5em; +} + +.widefat .column-shortcode { + width: 9em; +} + +/** + * Admin Columns + */ +.toplevel_page_formidable .column-shortcode div { + display: flex; + gap: var(--gap-xs); +} + +.widefat .column-entries, .widefat .column-link { + width: 10%; + text-align: center; +} + +.widefat .column-form_key, .widefat .column-created_at { + width: 10%; +} + +.frm-white-body .search-box, +.frm_wrap .frm-search { + float: right; + margin: 0; + clear: right; +} + +.frm-white-body .search-box, +.frm-search { + min-width: 32%; + position: relative; + display: flex; + gap: var(--gap-sm); + align-items: center; +} + +.frm-inline-modal .frm-search, +#frm_adv_info .frm-search { + float: none; + width: 100%; + clear: both; + margin: var(--gap-xs) 0; +} + +/** + * Button Group + */ +.frm-button-group a { + margin: 0 7px !important; +} + +/** + * Input Icons + */ +.frm_has_textarea .frm-with-right-icon { + display: block; +} + +.frm-with-left-icon, +.frm-with-right-icon { + position: relative; +} + +i.frm-show-box, +i.frm-show-inline-modal, +.frm-with-left-icon i, +.frm-with-right-icon i:not([class*=mce-]), +.frmsvg.frm-show-box, +.frmsvg.frm-show-inline-modal, +.frm-with-left-icon .frmsvg, +.frm-with-right-icon .frmsvg, +.frm-search > .frmsvg, +.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { + position: absolute; + padding: 0 14px; + pointer-events: none; + left: 0; + color: var(--grey-400); + font-size: var(--text-xs); +} + +.frm-search > .frmsvg, +.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { + padding-left: var(--gap-xs); + padding-right: var(--gap-xs); +} + +.frm-search > .frmsvg { + box-sizing: unset; +} + +.frm-with-right-icon .frmsvg, +.frm-with-right-icon i:not([class*=mce-]) { + right: 0; + top: -3px; + left: auto; + padding: 0 10px 0 5px; +} + +.frm_form_settings .frm-with-right-icon .frmsvg { + top: 0; +} + +.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg, +#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg { + top: auto; + bottom: var(--gap-sm); +} +.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg, +#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg { + bottom: var(--gap-lg); +} + +.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg { + top: auto; + bottom: 6px; +} + +.frmsvg.frm-show-box, +.frmsvg.frm-show-inline-modal, +i.frm-show-box, +i.frm-show-inline-modal { + top: auto; + background-color: var(--primary-50); + color: var(--primary-500); + border-radius: 6px; + padding: var(--gap-2xs); + margin: 5px; /* input height - svg / 2 */ + margin-bottom: 0; + z-index: 1; + cursor: pointer; + pointer-events: initial; +} +.frmsvg.frm-show-box:focus, +.frmsvg.frm-show-inline-modal:focus, +i.frm-show-box:focus, +i.frm-show-inline-modal:focus { + outline: 1px solid var(--primary-500); +} + +/** + * Inline Modals + */ +.frm-open + .frm-inline-modal { + top: -10px; + margin-bottom: 0; +} +.frm-open + .frm-inline-modal.frm-modal-no-dismiss .inside > .frm-search:first-child { + margin-top: var(--gap-sm); +} + +.frm_grid_container > .frm-open + .frm-inline-modal { + top: -4px; +} +.frm_grid_container > .frm-open + .frm-inline-modal.frm-modal-no-dismiss { + top: 0 !important; +} + +/** + * Input Positioning + */ +.frm-with-left-icon input { + padding-left: 37px !important; +} + +.frm_wrap .frm-with-right-icon textarea, +.frm_wrap .frm-with-right-icon input, +.frm_wrap .frm-with-right-icon input[type=text] { + padding-right: var(--gap-md); +} + +#frm-show-fields .frm-with-left-icon .frmsvg, +#frm-show-fields .frm-with-left-icon i { + padding-top: 10px; +} + +/** + * Search Inputs + */ +.frm-search input[name=s], +.frm-search .dropdown-toggle, +.frm-search input.frm-search-input { + color: var(--grey-800); + border-color: var(--grey-300); + border-radius: var(--small-radius); + box-shadow: var(--box-shadow-xs); +} +.frm-search input[type=search], +.frm-search input[type=text] { + padding-left: var(--gap-lg) !important; +} +.frm-search .dropdown-toggle { + width: 100%; + float: none; + max-width: 200px; + background: transparent; + padding: 7px; + padding-left: 33px !important; + min-height: 32px; + text-align: inherit; + overflow: hidden; + text-overflow: ellipsis; +} +.frm-search #search-submit a { + color: var(--grey-800); +} +.frm-search #search-submit .caret { + opacity: 0.7; +} + +.frm-white-body .search-box input[name=s], +#wpwrap .frm-search input[type=search] { + flex: 1; + font-size: var(--text-md); + line-height: var(--text-xl); + padding: var(--gap-xs); +} + +span.multiselect-selected-text { + white-space: nowrap; + display: inline-block; + max-width: calc(90% - var(--gap-xs)); + text-overflow: ellipsis; + overflow: hidden; +} + +/** + * Not Set Fields + */ +.frm-not-set input { + color: var(--primary-500) !important; + font-size: 13px; +} + +.frm-not-set .frmsvg, +.frm-not-set i { + color: var(--primary-700); + opacity: 1; +} + +/** + * Shortcode Select + */ +.post-type-frm_display select[name=m] + #post-query-submit, +select[name=m] { + display: none; +} + +.frm_shortcode_select optgroup option { + margin-left: 1em; +} + +.frm_shortcode_select optgroup { + padding-top: 5px; +} + +.frm_shortcode_select .frm_subopt { + margin-left: 2em; +} + +.misc-pub-section a.edit-frm_shortcode, .misc-pub-section a.edit-form-status { + float: none; + font-size: 13px; +} + +.frm-grid { + border-collapse: collapse; + border: none; + margin-right: 10px; +} + +.frm-grid td, .frm-grid th { + padding: 5px; + border: 1px solid black; +} + +/** + * View Page Admin + */ +.post-type-frm_display #poststuff #post-body.columns-2 { + margin-right: var(--big-sidebar); +} + +.post-type-frm_display #post-body.columns-2 #postbox-container-1 { + margin-right: calc(var(--big-sidebar) * -1); + width: calc(var(--big-sidebar) - 40px); +} + +.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables { + width: 100%; +} + +#frm_dyncontent .hndle, +#frm_dyncontent .handlediv { + display: none !important; +} + +.post-type-frm_display .meta-box-sortables .frm_form_nav > li > a, +.post-type-frm_display .frm_form_nav .nav-tab-active { + padding: 0 2px 5px; + line-height: 1.4; +} + +.post-type-frm_display #advanced-sortables h2.hndle, +.post-type-frm_display #side-sortables h2.hndle, +.post-type-frm_display #normal-sortables h2.hndle { + border-bottom: 1px solid var(--grey-300); + margin: 10px 0 0 !important; + padding: 0 25px 8px; +} + +.post-type-frm_display #side-sortables h2.hndle { + margin-top: 0 !important; + padding-top: 10px; +} + +.post-type-frm_display #post-body-content { + margin-top: var(--gap-lg); +} + +.post-type-frm_display.edit-php #wpbody-content > .wrap { + margin: 0; +} + +.post-type-frm_display .postbox .hndle, +.post-type-frm_display .postbox { + border-color: var(--grey-300); +} + +.post-type-frm_display #postbox-container-1 .postbox, +.post-type-frm_display #postbox-container-2 .postbox { + border-radius: var(--small-radius); + border-color: var(--grey-300); + box-shadow: none; +} + +.post-type-frm_display #side-sortables .postbox { + border-radius: 0; + border-top-width: 0; + margin-bottom: 0; +} + +.post-type-frm_display #side-sortables .misc-pub-section { + padding: 15px 20px 10px; +} + +/** + * View Page Admin Icons + */ +.post-type-frm_display .misc-pub-section .frmsvg, +.post-type-frm_display #post-body .misc-pub-post-status::before, +.post-type-frm_display #post-body #visibility::before, +.post-type-frm_display .curtime #timestamp::before, +.post-type-frm_display #post-body .misc-pub-revisions::before, +.post-type-frm_display span.wp-media-buttons-icon::before { + color: var(--grey); +} + +.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #publishing-action, +.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #minor-publishing-actions, +.post-type-frm_display #frm_top_bar + #poststuff #edit-slug-box, +.post-type-frm_display .wrap h1.wp-heading-inline, +.post-type-frm_display .wrap > .page-title-action { + display: none; +} + +/** + * View Page Admin Tabs + */ +.post-type-frm_display #poststuff h2.nav-tab-wrapper { + padding-left: 10px; + margin-bottom: 0; + padding-bottom: 0; +} + +.post-type-frm_display .nav-menus-php .wrap { + margin: 10px 0 0; +} + +.post-type-frm_display .nav-menus-php .wrap p { + padding-left: 12px; + padding-right: 12px; +} + +.post-type-frm_display .nav-tab { + display: inline-block; + background-color: #f4f4f4; +} + +.post-type-frm_display .nav-tab.frm_hidden { + display: none; +} + +.post-type-frm_display .nav-tab:hover { + background-color: #e4e4e4; +} + +/** + * Order/Where Rows + */ +.frm_order_row, +.frm_where_row { + margin-bottom: 7px; + line-height: 30px; +} + +.frm-single-settings .frm_prod_field_opt_cont { + margin-top: initial; + margin-bottom: 20px; +} + +/** + * Editor Elements + */ +/*hide elements if js is avail*/ +select.texture { + display: none; +} + +.post-type-frm_display #wp-content-editor-tools, +#wp-content-editor-tools { + background-color: transparent; +} + +.post-type-frm_display #major-publishing-actions { + border-color: var(--grey-300); + background: var(--sidebar-color); +} + +/** + * Advanced Info Panel + */ +.post-type-frm_display #frm_adv_info { + width: calc(var(--big-sidebar) - 40px); + height: calc(100vh - 32px); + overflow: hidden; +} + +.post-type-frm_display #frm_adv_info:not(.frm_fixed) { + top: 0 !important; +} + +.post-type-frm_display #frm_adv_info.frm_fixed { + position: fixed; + z-index: 9999; + top: 32px; +} + +.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover { + max-height: calc(100vh - 180px); +} + +/** + * Column Layout + */ +.frm_col_one { + margin-right: 4%; + clear: both; +} + +ul .frm_col_one { + float: left; +} + +ul .frm_col_two { + float: right; +} + +ul.frm_two_col { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: var(--gap-sm); +} + +.frm_two_col li { + margin-bottom: 0; +} + +/** + * Component: Info Modals + */ +.frm-info-modal a, +.frm-info-modal ul, +.frm-info-modal p, +.frm-info-modal, +.settings-lite-cta a, +.settings-lite-cta ul, +.settings-lite-cta { + color: var(--grey-500); + font-size: var(--text-md); + box-shadow: none !important; +} + +.frm-info-modal h3, +.settings-lite-cta h3 { + font-size: 17px !important; +} + +.frm-green-icons .frmsvg { + color: var(--green); +} + +.frm-info-modal .postbox .inside, +.settings-lite-cta .postbox .inside { + padding: var(--gap-md); + margin: 0; +} + +.cta-inside a { + color: var(--orange); +} + +.info-modal-inside a.frm-standard-link { + color: var(--primary-500); +} + +.info-modal-inside a.frm-standard-link:hover { + color: var(--primary-700); +} + +.frm_no_p_margin > p { + margin: 0; +} + +/** + * Component: Code List + */ +.frm_code_list a.button { + display: block; + text-align: center; + font-size: 11px; + overflow: hidden; +} + +#frm-navbarDrop + .frm_code_list.frm-full-hover { + margin: var(--gap-xs) 0 0; + min-width: 300px; + max-height: 256px; +} + +.frm_code_list.frm-full-hover li { + margin: 0; +} + +.frm-select-list-item, +.frm_wrap .ui-autocomplete li > div, +.multiselect-container button.multiselect-option, +.frm-dropdown-menu > .dropdown-item > a, +.frm-dropdown-menu > .dropdown-item > a:visited, +.frm-dropdown-menu > .dropdown-item > a:link, +.frm-dropdown-menu .frm_dropdown_li, +.frm_code_list.frm-full-hover a { + display: flex; + color: var(--grey-700); + padding: 5px 10px; + font-size: var(--text-md); + gap: var(--gap-xs); + align-items: center; +} + +.multiselect-container button.multiselect-option.disabled { + opacity: 0.5; +} + +.frm_code_list.frm-full-hover a span { + max-width: 83px; + margin-right: var(--gap-xs); + margin-left: auto; +} + +.frm_code_list.frm-full-hover a { + border-radius: var(--small-radius); +} +.frm_code_list.frm-full-hover a:not(#frm-insert-condition), +.frm_code_list.frm-full-hover a span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.frm_code_list.frm-full-hover a:focus span:last-child { + outline: 1px solid var(--primary-500); + outline-offset: var(--gap-2xs); +} + +.frm_code_list.frm-full-hover.frmcenter a { + display: block; +} + +#frm-layout-classes frm-full-hover a span { + max-width: 45%; +} + +.frm-select-list-item.active, +.frm-select-list-item:hover, +.frm_wrap .ui-autocomplete li div.ui-state-active, +.frm_wrap .ui-autocomplete li.ui-state-focus, +.multiselect-container button.multiselect-option.active, +.multiselect-container button.multiselect-option:hover, +.frm-dropdown-menu > .dropdown-item > a:hover, +.frm_code_list.frm-full-hover a:hover span, +.frm_code_list.frm-full-hover a:hover { + background: var(--primary-25); + color: var(--primary-500); +} + +.frm-select-list-item .frmsvg, +.frm-dropdown-menu > .dropdown-item > a .frmsvg { + opacity: 0.8; +} + +.frm-select-list-item:hover .frmsvg, +.frm-dropdown-menu > .dropdown-item > a:hover .frmsvg { + opacity: 1; +} + +.frm-dropdown-menu.frm_code_list > li > a { + padding: 3px 15px; + width: 300px; +} + +#frm_edit_box_content_modal .frm-with-search, +.frm-dropdown-menu .frm-with-search { + padding: var(--gap-xs) 10px 0; +} + +.frm-dropdown-menu .subsubsub { + padding: 0 10px; +} + +.frm_grid_container { + overflow: visible; +} + +.frm_code_list.frm_grid_container { + grid-gap: var(--gap-xs); +} + +.frm_code_list.frm_grid_container li { + width: auto; + margin: 0; +} + +.frm_code_list.frm_grid_container a { + display: block; + font-size: var(--text-md) !important; + font-weight: 500; + text-align: center; + color: var(--primary-500); + background-color: var(--light-blue); + border: 1px solid var(--primary-300); + border-radius: var(--small-radius); + padding: 10px 0; + box-shadow: var(--box-shadow-sm); +} +.frm_code_list.frm_grid_container a:hover { + background-color: var(--primary-500); + color: #fff; +} +.frm_code_list.frm_grid_container a:focus-visible { + outline: 2px solid var(--primary-500); + outline-offset: -1px; +} + +.frm-single-settings .frm_code_list.frm-full-hover, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { + padding: 0; + margin: var(--gap-xs) -10px 0; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a { + font-size: var(--text-md); + color: var(--grey-900); + padding: var(--gap-xs) 12px; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a span, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span { + margin: 0; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a span:first-child, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:first-child { + max-width: 130px; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a span:last-child, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:last-child { + max-width: 120px; + margin-left: auto; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover { + font-weight: 500; +} +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover .frmsvg, +.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover span, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover .frmsvg, +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover span { + color: var(--primary-500); +} + +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { + margin: var(--gap-xs) 0 0; +} +#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg { + width: 20px; + height: 20px; +} + +/** + * Component: Insert Fields + */ +.frm_field_list #frm-insert-fields { + max-height: none; + font-size: var(--text-sm); +} +.frm_field_list #frm-insert-fields .button a { + display: block; + max-width: 95%; + overflow: hidden; +} + +#frm-insert-fields { + padding: 0 var(--gap-xs); + overflow: hidden; +} +#frm-insert-fields .frm-search { + float: none; + margin: 0 0 var(--gap-md); + width: auto; +} +#frm-insert-fields li { + /* Prevents advanced fields from always appearing in search results */ +} +#frm-insert-fields li, +#frm-insert-fields li a { + text-decoration: none; + font-weight: 500; + font-size: var(--text-md) !important; + color: var(--grey-900); +} +#frm-insert-fields li.frm_show_upgrade { + cursor: pointer; + opacity: 0.5; +} +#frm-insert-fields li span:not(.frm-new-pill) { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: left; +} +#frm-insert-fields li a.disabled:hover { + cursor: not-allowed; +} +#frm-insert-fields li.ui-draggable-disabled { + opacity: 0.5; +} +#frm-insert-fields li a:not(.disabled):hover .frmsvg, +#frm-insert-fields li a:not(.disabled):hover i { + color: var(--grey-600); +} +#frm-insert-fields li.frm_show_upgrade, +#frm-insert-fields li a { + text-decoration: none; + display: inline-flex !important; + gap: var(--gap-xs); + align-items: center; + border-radius: var(--small-radius) !important; + padding: 11px var(--gap-md) 11px var(--gap-xs) !important; + color: var(--grey-900) !important; +} +#frm-insert-fields li a { + display: flex !important; + transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out; +} +#frm-insert-fields li a:not(.disabled):hover { + background: #fff; + box-shadow: var(--box-shadow-md); +} +#frm-insert-fields li a:focus-visible { + outline: 1px solid var(--primary-500); +} +#frm-insert-fields li.frm_show_upgrade.frm_hidden { + display: none !important; +} +#frm-insert-fields .frm-with-line { + padding: 12px var(--gap-md); + font-weight: 500; + font-size: var(--text-sm); +} +#frm-insert-fields .frm-with-line::before { + margin-left: calc(-1 * var(--gap-sm)); + width: calc(100% + var(--gap-md)); +} + +.frm_code_list { + clear: both; +} +.frm_code_list.frm-full-hover a.frm_hidden, +.frm_code_list .frmkeys { + display: none; +} + +.frmsvg { + fill: currentColor; + width: 18px; + height: 18px; + vertical-align: middle; +} +.frmsvg svg { + pointer-events: none; +} +.frmsvg.frm_svg40 { + width: 40px; + height: 40px; +} +.frmsvg.frm_svg24 { + width: 24px; + height: 24px; +} +.frmsvg.frm_svg20 { + width: 20px; + height: 20px; +} +.frmsvg.frm_svg15 { + width: 15px; + height: 15px; +} +.frmsvg.frm_svg14 { + width: 14px !important; + height: 14px !important; +} +.frmsvg.frm_svg13 { + width: 13px; + height: 13px; +} +.frmsvg.frm_svg12 { + width: 12px; + height: 12px; +} +.frmsvg.frm_svg9 { + width: 9px; + height: 9px; +} + +input[disabled] { + pointer-events: none; +} + +.frmbutton.ui-sortable-helper .frmsvg, +.field_type_list li.frmbutton .frmsvg, +.frmbutton.ui-sortable-helper i, +.field_type_list li.frmbutton i, +.frm_code_list a .frmsvg, +.frm_code_list a i { + color: var(--grey-500); + display: inline-block; + vertical-align: middle; + width: var(--text-md); + font-size: var(--text-md); +} + +.field_type_list.frm_grid_container { + gap: 10px; + margin: 13px 0; +} +.field_type_list li { + margin: 0; + padding: 0; +} +.field_type_list li.frmbutton .frmsvg { + width: 24px; + height: 24px; + font-size: 24px; +} + +.frm_code_list i::before { + font-size: inherit; +} + +/* Icon while dragging */ +.frmbutton.ui-draggable-dragging { + pointer-events: none; +} +.frmbutton.ui-draggable-dragging a { + color: var(--grey-900) !important; + background: var(--grey-100); + text-decoration: none; + display: inline-flex !important; + gap: var(--gap-xs); + align-items: center; + border-radius: var(--small-radius) !important; + padding: 11px var(--gap-md) 11px var(--gap-xs) !important; + box-shadow: var(--box-shadow-md); +} + +/** + * Component: Field Dragging + */ +.frmbutton.ui-draggable-dragging a { + border: 1px solid var(--grey-300); + box-shadow: var(--box-shadow-md); +} + +.frmbutton.ui-draggable-dragging span { + font-size: 15px; +} + +#frm-show-fields .frmbutton.ui-sortable-helper i, +.frmbutton.ui-draggable-dragging i, +.frmbutton.ui-draggable-dragging .frmsvg { + color: #fff !important; +} + +.frmbutton.ui-draggable-dragging i, +.frmbutton.ui-draggable-dragging .frmsvg { + color: var(--grey-700) !important; +} + +.frm_sorting li.ui-state-default.ui-sortable-helper, +.frmbutton.ui-sortable-helper { + transition: opacity 0.2s; + opacity: 1; + position: fixed; + z-index: 99999; +} + +#frm-insert-fields .frmbutton.ui-sortable-helper a, +#frm-show-fields .frmbutton.ui-sortable-helper a { + min-width: 100px; +} + +/* End dragging */ +li.frm_noallow.button, +.frm_noallow { + opacity: 0.5; +} + +.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before, +li.frm_noallow.button.frm_show_upgrade { + cursor: pointer; +} + +.field_type_list li.frm_noallow.button.frm_show_upgrade:hover { + border-color: inherit; +} + +.frm_noallow a { + color: inherit; +} + +/** + * Component: Upgrade Modal + */ +#frm_upgrade_modal_image { + max-width: 200px; +} + +#frm_upgrade_modal .frm-upgrade-message img { + margin-top: 10px; + width: 100%; +} + +/** + * Layout: Reports Info + */ +.frm-tab-message { + max-width: 600px; + margin: 20px auto; + color: rgba(63, 75, 91, 0.8); +} + +.frm-settings-screenshot-toolbar { + min-height: 39px; + display: flex; +} + +.frm-settings-screenshot-toolbar .frm-minmax-icon { + height: 8px; + width: 8px; + border-radius: 50%; + align-self: center; + margin-left: 10px; +} + +.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type { + margin-left: 20px; +} + +.frm-settings-screenshot-toolbar img { + object-fit: contain; + align-self: flex-end; + margin-left: 25px; +} + +.frm-settings-screenshot-toolbar + div { + background: #fff; + padding-top: 25px; + border-radius: 0 0 16px 16px; +} + +.frm-settings-screenshot-toolbar + div img { + max-width: calc(100% - 40px); +} + +.frm-settings-screenshot-wrapper { + max-width: 700px; + margin: 50px auto 0; + box-shadow: 0 4px 4px rgba(189, 196, 205, 0.25), 0 12px 56px rgba(42, 57, 75, 0.25); + border-radius: 16px; + background: #EBECF1; +} + +/** + * Component: Dialog + */ +.frm-dialog { + z-index: 100; + padding: 0 !important; + border-radius: 16px; + border: none; + background-color: #fff; + max-width: 100% !important; +} + +.frm-dialog .postbox { + background: transparent; + box-shadow: none; + border: none; + line-height: var(--leading); +} + +.frm-dialog input[type=text], +.frm-dialog textarea { + font-size: var(--text-md); +} + +.frm-dialog textarea { + height: 75px; +} + +.frm-dialog button.frm-button-primary { + margin-right: 10px; +} + +.frm-dialog .frm-sub-label, +.frm-sub-label { + color: var(--grey); + text-transform: none; + padding-left: 8px; +} + +h2 .frm-sub-label { + font-size: var(--text-md); +} + +.frm-views-editor-body .ui-widget-overlay, +.frm-white-body .ui-widget-overlay, +.toplevel_page_formidable .ui-widget-overlay, +body[class*=formidable-payments] .ui-widget-overlay, +body.plugins-php .ui-widget-overlay { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: var(--grey-500); + opacity: 0.5; + z-index: 2; +} + +/** + * Component: Circled Icons + */ +.frm-circled-icon { + width: 60px; + height: 60px; + border-radius: 50%; + background-color: var(--primary-25); +} + +.frm-circled-icon-large { + width: 80px; + height: 80px; +} + +.frm-circled-icon-green { + background-color: var(--success-50); +} + +.frm-circled-icon .frmsvg { + width: 21px; + height: 24px; +} + +.frm-circled-icon-large .frmsvg { + width: 24px; +} + +.frm-circled-icon .frmsvg use { + color: var(--primary-500); +} + +.frm-circled-icon-green .frmsvg use { + color: var(--success-500); +} + +.frm-border-icon { + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + border: 1px solid var(--grey-300); + border-radius: var(--small-radius); +} + +.frm-upgrade-message img { + max-width: 100%; +} + +/** + * Component: Link Styles + */ +a.frm-link-secondary { + color: #c4c4c4; + font-size: var(--text-sm); + text-decoration: underline; +} + +.field_type_list li.button.frm_noallow, +.field_type_list li.button.frm_noallow:hover, +.button.frm_noallow, +.button.frm_noallow:hover { + color: inherit; + border-color: #ccc; + background: inherit; +} + +iframe#dyncontent_ifr { + min-height: 150px; +} + +/*! * Bootstrap v4.6.1 - */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.wp-core-ui .frm_grey.frm-button-primary.disabled,.wp-core-ui .frm_grey.frm-button-primary,#frm-welcome .frm_grey{opacity:.5;background:#f6f6f6 !important;border-color:#ddd !important;color:#9fa5aa !important}.windows::-webkit-scrollbar,.windows ::-webkit-scrollbar{width:7px;background:rgba(0,0,0,0)}.windows::-webkit-scrollbar-thumb,.windows ::-webkit-scrollbar-thumb{background:var(--grey-300);-webkit-border-radius:var(--border-radius);-webkit-box-shadow:none}.windows::-webkit-scrollbar-corner,.windows ::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.frm-scrollbar-wrapper,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list,#frm_builder_page #frm_adv_info .frm_code_list,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div,.frm-single-settings .frm_field_opts_list{overflow-x:hidden;overflow-y:auto !important;-ms-overflow-style:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.frm-scrollbar-wrapper:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover,#frm_builder_page #frm_adv_info .frm_code_list:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover,.frm-single-settings .frm_field_opts_list:hover{scrollbar-color:var(--grey-300) rgba(0,0,0,0)}.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb{background:var(--grey-300)}.frm-scrollbar-wrapper::-webkit-scrollbar,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar{width:3px}.frm-scrollbar-wrapper::-webkit-scrollbar-track,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-track,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover{background:var(--grey-300)}.rtl h3{font-weight:inherit !important}.rtl.js .accordion-section-title::after{left:10px;right:auto}.rtl #frm_top_bar #frm_bs_dropdown{padding-left:15px}.rtl .frm-full-close,.rtl .frm_wrap .columns-2 .frm-right-panel+div,.rtl .frm-right-panel{border-left-width:0;border-right:1px solid var(--grey-300)}.rtl .frm-full-close{padding-left:0;padding-right:var(--gap-md)}.rtl .frm-text-right{text-align:left}.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child{border-left-width:1px}.rtl .frm-dropdown-menu{text-align:right}.rtl .frm_actions_dropdown .frm_icon_font{float:right;margin-right:0;margin-left:3px}.rtl #frm-insert-fields-box,.rtl #frm-conditionals{padding-right:.9em}.rtl #html_settings .frm_field_html_box{margin-right:0}.rtl .frm_list_entry_page h2{float:right}.rtl .frm_scale{float:right;margin-left:10px;margin-right:0}.rtl .frm-page-break .frm-collapse-page.button{margin-left:0;margin-right:46%}.rtl .frm-field-action-icons{right:unset;left:2px}.rtl .frm_has_shortcodes>i{right:auto;left:5px}.rtl p.frm_reply_to_container,.rtl p.frm_bcc_cc_container{float:left}.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg{right:auto;left:0}.rtl .frm-inline-modal>a.dismiss{left:13px;right:auto}.rtl.wp-admin .frm_wrap select{padding-left:var(--gap-lg) !important;padding-right:5px !important;background-position:left 11px top 55%}.rtl .frm_code_list.frm-full-hover a span{margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:unset;margin-right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:unset;margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline{left:unset !important;right:0}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first{right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last{right:calc(-1*var(--gap-xs))}.rtl .frm-unit-input .frm-input-group-suffix{right:unset;left:1px;padding-right:unset;padding-left:var(--gap-xs)}.rtl .frm-unit-input .frm-input-group-suffix select{text-align:left;background-position:left 0 top 50%;padding-left:21px !important}span.clear{display:block}.clearfix::after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:inline-block}.frm_form_fields .clear{height:auto}* html .clearfix{height:1%}.clearfix{display:block}#frm_small_device_message_container{display:none}@media only screen and (max-width: 1200px){.frm-addons{grid-template-columns:1fr 1fr}#frm_top_bar h1{min-width:0}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin:0}.frm_actions_list{margin-left:0}#frm_bs_dropdown .frm_bstooltip{display:none !important}}@media only screen and (max-width: 960px){.frm-white-body,.frm_wrap{--gap-sm: 8px;--gap-md: 16px;--gap-2xl: 24px}.frm-settings-panel{--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 32px}.auto-fold #adminmenuwrap{width:36px}.frm_wrap #postbox-container-1 #frm_adv_info{min-width:220px}p.howto{display:inline-block}.auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container,.auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container{left:36px}}@media only screen and (max-width: 850px){.frm-white-body,.frm_wrap{--biggest-sidebar: 350px;--big-sidebar: 350px}.frm_col_one{clear:none}.frm-fields p>.frm_inline_label,.frm_inline_label{display:block;margin:5px 0}#frm_top_bar h1{width:auto;max-width:200px}#frm-publishing{width:auto}#frm_form_editor_container,.frm-entry-container{margin:0 20px}.frm_wrap .frm-search{float:none !important;width:auto;clear:both}.post-type-frm_display #frm_adv_info{top:auto !important;position:static;width:auto}.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{min-width:275px}.frm_wrap #frm_adv_info ul.category-tabs li,.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border:none}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:12px}.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border-bottom:2px solid #5b9dd9;padding-bottom:8px}.post-type-frm_display #poststuff{padding:10px 25px}.post-type-frm_display #side-sortables .postbox{margin-bottom:20px;border-radius:var(--small-radius);border-top-width:1px}#frm_top_bar .frm_form_nav{box-shadow:0 -0.47px 10px 0 rgba(16,24,40,.0588235294)}#frm_top_bar ul.frm_form_nav{padding:1em 0;position:fixed;bottom:0;width:100%;background:#fff;z-index:99;transform:translate(-50%, 0);left:50%}.frm_page_container>.columns-2,#frm_styler_wrapper{padding-bottom:64px}#frm_style_preview .frm_floating_style_button:not(.frm_hidden){position:static;display:inline-block}.frm_wrap .columns-2 .frm-right-panel{padding-bottom:0}#frm-publishing{margin-left:auto}#frm_top_bar>.frm-full-close:last-child{margin-left:0}#frm_bs_dropdown{display:block}#frm_bs_dropdown .frm_bstooltip{display:block !important}}@media only screen and (max-width: 782px){.frm-white-body,.frm_wrap{--small-sidebar: 20%;--medium-sidebar: 35% }#form_settings_page .advanced_settings .form-table td,.form-table th{display:table-cell;width:auto !important}.frm-white-body #publishing-action,.frm_wrap #publishing-action{line-height:normal}.frm-white-body #screen-meta-links{display:none}.frm_wrap .misc-pub-section{padding:6px 0}.frm_wrap .misc-pub-section>a{float:none;white-space:nowrap}.frm-form-setting-tabs a{position:relative;padding:10px 5px 10px 40px}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{position:absolute;left:13px;top:calc(50% - 10px);margin:0}#frm-insert-fields .button,#frm-insert-fields .button a,.frmbutton.ui-sortable-helper a{line-height:26px;max-height:28px}a.frm_add_logic_link{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}a.frm_add_logic_link:not([id^=logic_]) .frmsvg,a.frm_add_logic_link i{display:none}#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 83px)}.frm_single_entry_page .frm_form_fields input[type=text],.frm_single_entry_page .frm_form_fields select,.frm_single_entry_page .frm_form_fields textarea{width:100%}.with_frm_style .frm_radio input[type=radio],.with_frm_style .frm_checkbox input[type=checkbox]{width:25px !important}.frm_single_entry_page .with_frm_style .frm_radio input[type=radio],.frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox]{width:18px !important}.wp-list-table.toplevel_page_formidable .column-entries,.wp-list-table.toplevel_page_formidable .column-form_key,.wp-list-table.toplevel_page_formidable .column-shortcode,.wp-list-table.toplevel_page_formidable .column-created_at{display:none !important}.wp-list-table.toplevel_page_formidable td.column-entries,.wp-list-table.toplevel_page_formidable td.column-form_key,.wp-list-table.toplevel_page_formidable td.column-shortcode,.wp-list-table.toplevel_page_formidable td.column-created_at{padding:3px 8px 3px 35%;text-align:left}#form_entries_page .wp-list-table th.frm_hidden,#form_entries_page .wp-list-table td.frm_hidden{display:none !important}.frm-white-body.auto-fold #wpcontent{padding-left:0}.frm_right_addon .frm_remove_field{bottom:11px}.frm-addons{grid-template-columns:1fr}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{left:0 !important}.frm_single_entry_page.frm_wrap .columns-2{display:block;border-bottom:none}.frm_single_entry_page .wrap.frm-with-margin{margin:10px 20px}.frm_single_entry_page #post-body-content+.frm-right-panel{width:auto;margin:0 20px;border:1px solid var(--sidebar-hover);border-radius:6px}#wp-content-media-buttons a.frm_insert_form{padding:0 var(--gap-sm)}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{width:1.2rem;height:1.2rem}}@media only screen and (max-width: 700px){.frm-white-body,.frm_wrap{--biggest-sidebar: 50%;--big-sidebar: 50%}}@media only screen and (max-width: 600px){.frm-white-body,.frm_wrap{--small-sidebar: 45px}.frm-form-setting-tabs a{visibility:collapse;font-size:0;padding:0 var(--gap-sm)}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{visibility:visible;position:initial;font-size:18px}#frm_builder_page #frm-insert-fields{padding:0}.frm_wrap #frm_adv_info ul.category-tabs li{display:inline-block;padding:0;margin:2px 0;border-bottom:2px solid rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li.tabs,.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:0;padding:0}.field_type_list li{text-align:center}#frm-insert-fields li a{padding:5px}#frm_form_editor_container .frm_primary_label{clear:both}#frm_builder_page .frm_code_list a.button{padding:2px}#frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:0;left:auto}.frm-right-panel h3.accordion-section-title{padding-right:10px;padding-left:10px;font-size:20px;white-space:nowrap;overflow:hidden}.frm-right-panel .accordion-section-title::before{margin-left:0;margin-right:3px}.rtl #frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:auto;left:0}.frm_on_submit_type svg{display:none}}@media only screen and (max-width: 475px){#frm_bs_dropdown{float:none}#frm-nav-tabs{padding:0;white-space:nowrap}#frm-nav-tabs a{margin-right:0}#frm_small_device_message_container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;width:100%;height:100%;z-index:999999;background:var(--primary-500)}#frm_small_device_message{text-align:center;display:flex;flex-direction:column;align-items:center;width:80%;padding:1rem;background:#fff;border:solid 1px #fff;border-radius:var(--medium-radius)}#frm_small_device_message::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-78%, -65%);width:900px;height:900px;background-color:#0d7dfc;border-radius:50%;z-index:-1;opacity:.3}#frm_small_device_message>svg{padding-bottom:1rem}.toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter,.post-type-frm_display:has(#frm_small_device_message_container) #posts-filter{display:none}}@media print{a,.misc-pub-section a{color:#000 !important}.add-new-h2,#frm_top_bar,.dashicons,#adminmenuwrap,#adminmenuback,#wphead,#button_bar,#submitdiv,.button-secondary,#screen-metas,#screen-meta-links,#footer,#wpfooter,.inner-sidebar,.frm_form_nav,.frm_flash_graph,.frm_no_print,object,.error{visibility:hidden;display:none !important}.widget,.postbox,.stuffbox,.postbox h3{border-width:0 !important;border-color:#fff}.postbox{background:#fff !important;border:none;position:static}.postbox h3,.postbox h4{background:#fff !important}#wpbody-content{float:none}#wpcontent,#post-body-content,.has-right-sidebar #post-body,#poststuff .columns-2{margin:0 !important}.frm_wrap #poststuff .columns-2{display:block}#post-body-content+.frm-right-panel,.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{border:none;width:auto;display:block;padding:20px}.frm_wrap .columns-2,.frm_wrap .frm_page_container{height:auto;display:block}.misc-pub-section>span{padding:0}.frm-right-panel .postbox .inside{padding-left:12px;padding-right:12px}.curtime #timestamp::before{display:none;content:none !important}.frm_charts .alignleft{float:none}.pg_odd,.pg_even{page-break-inside:avoid;max-width:600px}.form-table td,.form-table th{padding:0}.frm_file_container a{display:block;width:100%}}.frm-admin-page-styles #frm-publishing #save_menu_header,.frm-admin-page-styles2 #frm-publishing #save_menu_header{display:inline-block}.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first{order:2}.frm-video-wrapper iframe{width:100%;max-width:843px;border-radius:var(--border-radius)}#frm_field_group_popup{position:absolute;top:0;right:0;width:366px;max-height:231px;border-radius:8px;background:#fff;box-shadow:0 20px 48px rgba(40,47,54,.15);z-index:3;box-sizing:border-box;padding:24px 0;text-align:left}.rtl #frm_field_group_popup{text-align:right}.frm-merge-fields-into-row #frm_field_group_popup{top:unset;bottom:50px;height:196px}#frm_field_group_popup>hr{margin:12px 0}#frm_field_group_popup .frm-cancel-custom-field-group-layout,#frm_field_group_popup .frm-save-custom-field-group-layout{padding:4px 18px}#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover{border-color:var(--primary-500) !important;color:var(--primary-500);background-color:rgba(0,0,0,0) !important}.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group{display:none}.frm-merge-fields-into-row>a{color:rgba(40,47,54,.85);position:relative;top:2px}.frm-row-layout-title{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:27px}.frm-row-layout-option{background:#f6f7fb;box-sizing:border-box;border-radius:2px;padding:15px 10px}#frm_field_group_popup .frm-row-layout-option .frm_grid_container{grid-gap:0 5%;grid-template-columns:repeat(12, auto)}#frm_field_group_popup .frm-row-layout-option{cursor:pointer;border:2px solid rgba(0,0,0,0)}#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,#frm_field_group_popup .frm-row-layout-option:hover{border-color:var(--primary-500)}.frm-custom-field-group-layout,.frm-break-field-group{padding:4px 24px;cursor:pointer;font-size:var(--text-sm);line-height:19px;color:#484e54}.frm-custom-field-group-layout:hover,.frm-break-field-group:hover{background-color:rgba(245,245,245,.9607843137)}.frm-custom-field-group-layout svg,.frm-break-field-group svg{margin-right:5px}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}#frm_banner{width:100%;color:#fff;background:var(--primary-500);height:40px;line-height:40px;text-align:center;position:relative}.frm-banner-emoji{font-size:19px}.frm-banner-emoji,.frm-banner-title{margin-right:5px;vertical-align:top}.frm-banner-cta a{text-decoration:underline !important}#frm_banner .frm-banner-cta a.frm_inbox_dismiss{display:none}.frm-banner-dismiss{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.frm-banner-dismiss .frmsvg{vertical-align:top}.frm-ready-made-solution:not(.frm-search-result){display:none !important}#frm_leave_email_wrapper .frmsvg{top:0}#frm-add-my-email-address{margin-top:30px}.frm-ready-made-solution h3~a{color:var(--primary-500)}.frm-ready-made-solution img{max-width:100%;display:block;box-shadow:var(--box-shadow-lg)}.frm_single_on_submit_settings .frm_form_field{margin:22px 0}.frm_on_submit_type_setting{padding:8px 0}.frm_on_submit_type label{display:flex;border:1px solid var(--grey-border);border-radius:var(--small-radius);gap:16px;padding:16px;align-items:center;justify-content:center}.frm_on_submit_type input{opacity:0 !important;position:absolute;z-index:-1}.frm_on_submit_type input[type=radio]:checked+label{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}#form_settings_page .frm_on_submit_type label:hover,.frm_on_submit_type input[type=radio]:checked+label svg{color:var(--primary-color)}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}#frm-form-templates-modal textarea{height:108px}#frm-form-templates-modal .frm-fields button.btn{border-color:var(--grey-300);color:var(--grey-900);cursor:pointer}#frm-form-templates-modal .frm-fields button.btn .frmsvg{color:var(--grey-400);width:14px;height:14px}#frm-form-templates-modal .frm-form-templates-modal-fieldset{position:relative}#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg{padding:0;top:0;left:13px}#frm-form-templates-modal .postbox{display:block !important}#frm_empty_inbox #frm-leave-email-modal{margin-top:var(--gap-2xl)}#frm-name-your-form-modal .frm_modal_top{padding-top:var(--gap-sm)}#frm-field-group-message{position:absolute;bottom:32px;right:calc(50% - var(--biggest-sidebar));padding:var(--gap-xs) var(--gap-sm);border-radius:100px;background-color:var(--primary-25)}#frm-field-group-message .frm-field-group-message-text{gap:10px;color:var(--grey-800)}#frm-field-group-message-dismiss{margin-left:var(--gap-xs)}#frm-field-group-message-dismiss .frmsvg{color:var(--grey-800);width:15px;height:15px;cursor:pointer;transition:color 300ms ease-in-out}#frm-field-group-message-dismiss .frmsvg:hover{color:var(--grey-500)}.frm-card-item{display:flex;border:1px solid var(--grey-200);border-radius:var(--small-radius);padding:var(--gap-sm);box-shadow:var(--box-shadow-xs);background:#fff}.frm-card-item:not(.frm-counter-card){gap:10px}.frm-compact-card-item{padding:var(--gap-sm) 35px 10px 35px}.frm-card-bottom{background-color:var(--grey-50);margin-left:calc(var(--gap-sm)*-1);margin-bottom:calc(var(--gap-sm)*-1);margin-right:calc(var(--gap-sm)*-1);padding:var(--gap-sm);border-radius:0 0 var(--small-radius) var(--small-radius)}#welcome-panel:has(#frm_form_pf_importer){background-color:#fff;margin:var(--gap-sm) var(--gap-md) var(--gap-md);line-height:2}#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content{text-align:start !important;min-height:unset;display:block}#frm_form_pf_importer div{margin:10px 0 !important}#frm_form_pf_importer button{border:1px solid var(--primary-500);padding:7px 16px;min-height:28px;line-height:var(--leading);margin-bottom:0;background:var(--primary-500);color:#fff !important}#frm_form_pf_importer button:hover{background:#135e96;border-color:#135e96}.frm-option-box{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;background-color:#fff;padding:12px var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius);margin-bottom:var(--gap-xs);transition:background-color 100ms ease-out;cursor:pointer}.frm-option-box:hover{background-color:var(--grey-25)}.frm-option-box.frm-checked{background-color:var(--primary-25);border-color:var(--primary-200)}.frm-option-box.frm-disabled{cursor:default}.frm-option-box input[type=checkbox]{margin:0}.frm-option-box.frm-disabled input[type=checkbox]{opacity:.5}.frm-option-box .frm_help .frmsvg{width:12px;height:12px}.frm-validation-error:not(.frm_hidden){display:flex}.frm-validation-error{gap:calc(var(--gap-xs) + var(--gap-2xs))}.frm-validation-error span{color:var(--error-500)}.frm-validation-error span[frm-error]{display:none}.frm-validation-error[frm-error=empty] span[frm-error=empty],.frm-validation-error[frm-error=invalid] span[frm-error=invalid],.frm-validation-error[frm-error=custom] span[frm-error=custom]{display:inline-block}.frm-box{padding:var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius)}.frm-link-with-external-icon{display:flex;align-items:center;gap:var(--gap-2xs);font-size:var(--text-xs)}.frm-link-with-external-icon .frmsvg{width:16px;height:16px;transform:rotate(45deg)}#wpbody-content .frm-page-skeleton ul,#wpbody-content .frm-page-skeleton li{margin:0}#wpbody-content .frm-page-skeleton .frm-right-panel{padding:2px;overflow-y:initial}#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper{padding:var(--gap-md) var(--gap-sm)}#wpbody-content .frm-page-skeleton .frm-search{float:none;padding:0 var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>svg{left:var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>input{width:100%}.frm-page-skeleton-cat{cursor:pointer;padding:var(--gap-xs);border-radius:var(--small-radius);background-color:rgba(0,0,0,0);transition:background-color 250ms ease-out}.frm-page-skeleton-cat:hover{background-color:var(--grey-100)}.frm-page-skeleton-cat>*{z-index:2}.frm-page-skeleton-cat-text{color:var(--grey-900);text-transform:capitalize}.frm-page-skeleton-cat-count{color:var(--grey-400)}.frm-current .frm-page-skeleton-cat-text,.frm-current .frm-page-skeleton-cat-count{color:var(--primary-500)}.frm-list-grid-layout{display:grid;grid-template-columns:repeat(auto-fill, minmax(303px, 1fr));grid-auto-rows:max-content;gap:var(--gap-sm)}.frm-list-grid-layout>*{grid-column:span 1}#frm-page-skeleton-empty-state{height:100%;margin-top:calc(-1*var(--gap-md))}#frm-page-skeleton-empty-state .frm-page-skeleton-text{max-width:420px}.frm-page-skeleton-divider{border-top:1px solid var(--grey-200);margin:0}.field_type_list .frm_tsubmit{display:none !important}#frm_style_sidebar .accordion-section-title::after,#frm_view_editor_left .accordion-section-title::after{content:""}a[href="#square_settings"] svg.frmsvg{width:23px !important;height:22px !important}#frm_square_test_setup_modal a:focus{box-shadow:none !important}@media only screen and (max-width: 900px){#square_settings .frm_grid_container:has(.frm-card-item){grid-template-columns:repeat(1, 1fr)}#square_settings .frm-card-item+.frm-card-item{margin-top:var(--gap-sm)}}#frm_sale_banner{display:flex;height:90px;flex-direction:row;align-items:center;gap:var(--gap-sm);cursor:pointer;position:relative}#frm_sale_banner>div:first-child{align-self:flex-end;width:150px;height:100%;display:flex;justify-content:center}#frm_sale_banner>div:first-child img{align-self:center}#frm_sale_banner>div:nth-child(3){margin-left:auto;margin-right:50px}#frm_sale_banner>div:nth-child(2)>div:last-child{opacity:.8}#frm_sale_banner a:not(.dismiss){text-shadow:none;border-radius:30px;border:1px rgba(0,0,0,0);font-size:var(--text-sm);padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;margin-bottom:0;display:inline-block;font-weight:700;background-color:#fff;color:#000}#frm_sale_banner .dismiss{position:absolute;color:#fff;opacity:.6;right:15px;top:10px}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"]{background-color:#f0f0f0 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"]{background-color:#e6470f !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"]{background-color:#ed1d34 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"]{background-color:#3e041a !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"]{background-color:#362630 !important}.frm-get-free-templates-banner{flex-grow:1}.frm-get-free-templates-banner .frm-banner-image-wrapper{display:flex;justify-content:center;align-items:flex-end;background-color:var(--primary-25);padding:19px 14px 0;border-radius:var(--small-radius)}.frm-get-free-templates-banner[data-direction=vertical]{flex-direction:column;align-items:stretch;gap:12px}.frm-get-free-templates-banner[data-direction=vertical] .frm-banner-content{align-items:center;text-align:center}.frm-lookup-box-label{display:none}.frm-inline-modal[id^=frm-lookup-box]{background-color:rgba(0,0,0,0);border:0;box-shadow:none}.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs,.frm-inline-modal[id^=frm-lookup-box] .dismiss{display:none}.frm_single_option a.frm_remove_tag svg,.frm_single_option a.frm_add_opt svg{width:15px;height:15px}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px} + */ +.tooltip { + /* Copied from Bootstrap */ + position: absolute; + display: block; + margin: 0; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; + /* Custom rules */ + z-index: 9999999; + pointer-events: none; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; + margin-left: 0 !important; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.frm-dropdown-menu.show { + display: block; +} + +.frm-single-settings .frm-dropdown-menu.show { + background: #fff; +} + +/* End Bootstrap */ +.preview.dropdown .dropdown-menu { + min-width: 205px; +} + +.frm_clear { + clear: both; +} + +.frm_clearfix::after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +.frm_clearfix { + display: block; +} + +.frm_admin_progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.frm_admin_progress_bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + transition: width 0.6s ease; + background-color: #04A4CC; +} + +.tooltip.frm_tooltip { + position: fixed; + top: auto !important; + bottom: 0 !important; + left: 0 !important; + max-width: none; + width: 100% !important; + z-index: 99999; +} + +.tooltip.frm_tooltip.bottom { + padding: 0; +} + +.frm_tooltip .tooltip-inner { + max-width: none; + min-height: 40px !important; + text-align: left; + box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.5); + padding: 10px 40px; + border-top-color: #ccc; + background: var(--sidebar-color); + color: var(--grey-700); + border-radius: 0; + opacity: 1; + font-size: var(--text-sm); +} + +#frm_custom_css_box { + width: 100%; +} + +/** + * Component: Admin Inputs + */ +.frmdates_add_blackout_date_link, +.frmdates_add_exception_link, +.frm_form_field.frm_scroll_box .frm_opt_container, +.frm-white-body .wrap input[type=text], +.frm-white-body .wrap input[type=search], +.frm-white-body .wrap input[type=number], +.frm-white-body .wrap select, +#frm-form-templates-modal select, +.frm-white-body .wrap textarea, +button.frm_choose_image_box, +#titlediv input[type=text], +.frm-fields button.btn, +.frm_wrap textarea, +.frm_wrap input[type=tel], +.frm_wrap input[type=text], +.frm_wrap input[type=email] .frm_wrap input[type=search], +.frm_wrap input[type=number], +.frm_wrap input[type=date], +.frm_wrap select, +.wp-admin .frm_wrap select, +.field-group textarea, +.field-group input[type=text], +.field-group select, +.frm-fields .frm-input-field { + outline: 0; + box-shadow: var(--box-shadow-xs); + border-radius: var(--small-radius); + padding: 5px 14px; + border-color: var(--grey-300); + color: var(--grey-800); + font-size: var(--text-md); + margin: 0; + background-color: #fff; + line-height: var(--leading); +} + +.frm_input_with_suffix { + border-radius: var(--small-radius); + border: 1px solid var(--grey-300); + display: inline-block; + padding-right: 14px; +} + +.frm_input_with_suffix input { + border: 0 !important; + padding-right: 5px !important; +} + +.frm_wrap ::-webkit-datetime-edit { + line-height: var(--leading); +} + +.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus, +.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus, +.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus, +.frm_wrap input:focus, +.frm_wrap select:focus, +.wp-core-ui .frm_wrap select:focus, +#frm-form-templates-modal select:focus, +.frm-btn-group .multiselect.dropdown-toggle:focus, +.frm_wrap textarea:focus { + border-color: var(--primary-500) !important; + box-shadow: none !important; +} + +/* +Pages like Entries and Styles need the border-color and box-shadow properties without the !important flag. +To achieve this, we exclude them above and duplicate these rules specifically for those pages without using !important. +*/ +.wp-admin .frm_fields_container textarea:focus, +.wp-admin .frm_fields_container input:focus, +.wp-admin .frm_fields_container select:focus { + border-color: var(--primary-500); + box-shadow: none; +} + +#postbox-container-2 textarea, +.frm_wrap textarea, +.field-group textarea { + line-height: 2; +} + +.frm_wrap input[type=number] { + height: auto; +} + +.frm_wrap select { + padding: 2px; +} + +.wp-admin .frm_wrap select, +#frm-form-templates-modal select { + max-width: 100%; +} + +.frm_form_field.frm_scroll_box .frm_opt_container { + padding: 10px 12px; +} + +.frm_wrap input[disabled], +.frm_wrap select[disabled], +.frm_wrap textarea[disabled], +.frm_wrap input[readonly], +.frm_wrap select[readonly], +.frm_wrap textarea[readonly], +.frm_wrap input::placeholder { + color: var(--grey-500); +} + +textarea[id^=frm_calc_]::placeholder { + font-size: var(--text-sm); + line-height: var(--leading); + font-style: italic; + color: var(--grey-400); + padding-top: 5px; +} + +.frm_wrap .frm-button-primary.frm-disabled { + opacity: 0.5; + cursor: default; +} + +#postcustomstuff table td > div { + /* To override some inline css in add-on */ + padding-top: 0 !important; +} + +.wp-admin .frm_wrap .form-table select { + vertical-align: top; +} + +.frm_wrap .frm_form_builder select { + line-height: var(--leading); + height: var(--text-md); + width: 100%; +} + +#postbox-container-2 select, +.wp-admin .frm_wrap select, +.frm_wrap .frm_form_builder select, +#frm-form-templates-modal select { + height: auto; +} + +.frm-white-body .tablenav select, +.frm-white-body .tablenav input[type=text], +.wp-admin .frm_wrap .tablenav select, +.frm_wrap .tablenav input[type=date], +.frm_wrap .tablenav input[type=text] { + padding-top: 0; + padding-bottom: 0; + line-height: 1; +} + +.frm_wrap .tablenav ::-webkit-datetime-edit { + line-height: 1; +} + +.frm-fields button.btn, +.frm-fields textarea, +.frm-fields input[type=text], +.frm-fields select, +.field-group textarea, +.field-group input[type=text], +.field-group select, +.accordion-container input.hex, +.frm-fields .frm-input-field { + width: 100%; + outline: 0; +} + +.frm-fields button.btn { + height: var(--h-md); + text-align: inherit; +} + +.global-font .field-group input[type=text] { + width: auto; +} + +/** + * Component: Button Grey + */ +.wp-core-ui .frm_grey.frm-button-primary.disabled, +.wp-core-ui .frm_grey.frm-button-primary, +#frm-welcome .frm_grey { + opacity: 0.5; + background: #F6F6F6 !important; + border-color: #ddd !important; + color: #9FA5AA !important; +} + +/** + * Component: Scrollbars + */ +.windows::-webkit-scrollbar, +.windows ::-webkit-scrollbar { + width: 7px; + background: transparent; +} +.windows::-webkit-scrollbar-thumb, +.windows ::-webkit-scrollbar-thumb { + background: var(--grey-300); + -webkit-border-radius: var(--border-radius); + -webkit-box-shadow: none; +} +.windows::-webkit-scrollbar-corner, +.windows ::-webkit-scrollbar-corner { + background: transparent; +} + +.frm-scrollbar-wrapper, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list, +#frm_builder_page #frm_adv_info .frm_code_list, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div, +.frm-single-settings .frm_field_opts_list { + overflow-x: hidden; + overflow-y: auto !important; /* Enable scrolling */ + -ms-overflow-style: none; /* For IE and Edge */ + scrollbar-color: transparent transparent; /* Firefox Scrollbar - transparent by default and show on hover */ + scrollbar-width: thin; +} +.frm-scrollbar-wrapper:hover, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover, +#frm_builder_page #frm_adv_info .frm_code_list:hover, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover, +.frm-single-settings .frm_field_opts_list:hover { + scrollbar-color: var(--grey-300) transparent; /* Firefox Scrollbar - Show on hover with transparent background */ +} +.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover::-webkit-scrollbar-thumb, +.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb { + background: var(--grey-300); /* Show scrollbar on hover */ +} +.frm-scrollbar-wrapper::-webkit-scrollbar, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar { + width: 3px; +} +.frm-scrollbar-wrapper::-webkit-scrollbar-track, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-track, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track { + background: transparent; /* Transparent background */ + border-radius: 100vw; /* Consistent radius with thumb */ +} +.frm-scrollbar-wrapper::-webkit-scrollbar-thumb, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb { + background: transparent; + border-radius: 100vw; +} +.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover, +.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover, +#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover, +#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb:hover, +.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover { + background: var(--grey-300); /* Show scrollbar on hover */ +} + +/** + * Component: RTL + */ +.rtl h3 { + font-weight: inherit !important; +} + +.rtl.js .accordion-section-title::after { + left: 10px; + right: auto; +} + +.rtl #frm_top_bar #frm_bs_dropdown { + padding-left: 15px; +} + +.rtl .frm-full-close, +.rtl .frm_wrap .columns-2 .frm-right-panel + div, +.rtl .frm-right-panel { + border-left-width: 0; + border-right: 1px solid var(--grey-300); +} + +.rtl .frm-full-close { + padding-left: 0; + padding-right: var(--gap-md); +} + +.rtl .frm-text-right { + text-align: left; +} + +.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child { + border-left-width: 1px; +} + +.rtl .frm-dropdown-menu { + text-align: right; +} + +.rtl .frm_actions_dropdown .frm_icon_font { + float: right; + margin-right: 0; + margin-left: 3px; +} + +.rtl #frm-insert-fields-box, +.rtl #frm-conditionals { + padding-right: 0.9em; +} + +.rtl #html_settings .frm_field_html_box { + margin-right: 0; +} + +.rtl .frm_list_entry_page h2 { + float: right; +} + +.rtl .frm_scale { + float: right; + margin-left: 10px; + margin-right: 0; +} + +.rtl .frm-page-break .frm-collapse-page.button { + margin-left: 0; + margin-right: 46%; +} + +.rtl .frm-field-action-icons { + right: unset; + left: 2px; +} + +.rtl .frm_has_shortcodes > i { + right: auto; + left: 5px; +} + +.rtl p.frm_reply_to_container, +.rtl p.frm_bcc_cc_container { + float: left; +} + +.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg { + right: auto; + left: 0; +} + +.rtl .frm-inline-modal > a.dismiss { + left: 13px; + right: auto; +} + +.rtl.wp-admin .frm_wrap select { + padding-left: var(--gap-lg) !important; + padding-right: 5px !important; + background-position: left 11px top 55%; +} + +.rtl .frm_code_list.frm-full-hover a span { + margin-left: var(--gap-xs); +} + +.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { + margin-left: unset; + margin-right: var(--gap-xs); +} +.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { + margin-right: unset; + margin-left: var(--gap-xs); +} +.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline { + left: unset !important; + right: 0; +} +.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first { + right: var(--gap-xs); +} +.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last { + right: calc(-1 * var(--gap-xs)); +} + +.rtl .frm-unit-input .frm-input-group-suffix { + right: unset; + left: 1px; + padding-right: unset; + padding-left: var(--gap-xs); +} +.rtl .frm-unit-input .frm-input-group-suffix select { + text-align: left; + background-position: left 0 top 50%; + padding-left: 21px !important; +} + +/** + * Component: Clearfix + */ +span.clear { + display: block; +} + +.clearfix::after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.clearfix { + display: inline-block; +} + +/*Override styling from other plugins*/ +.frm_form_fields .clear { + height: auto; +} + +/* Hides from IE-mac \*/ +* html .clearfix { + height: 1%; +} + +.clearfix { + display: block; +} + +#frm_small_device_message_container { + display: none; +} + +/* End hide from IE-mac */ +/** + * Responsive Styles + * + * Media queries for desktop, tablet, and mobile devices + */ +@media only screen and (max-width: 1200px) { + .frm-addons { + grid-template-columns: 1fr 1fr; + } + #frm_top_bar h1 { + min-width: 0; /* Reset the min-width to prevent menu items from stacking vertically */ + } +} +@media only screen and (max-width: 1050px) { + .frm-white-body, + .frm_wrap { + --biggest-sidebar: 390px; + } + #form_settings_page .columns-2 { + margin: 0; + } + .frm_actions_list { + margin-left: 0; + } + #frm_bs_dropdown .frm_bstooltip { + /* There isn't enough room for the title on a screen this size so just hide it. */ + display: none !important; + } +} +@media only screen and (max-width: 960px) { + .frm-white-body, + .frm_wrap { + --gap-sm: 8px; + --gap-md: 16px; + --gap-2xl: 24px; + } + /* Revert settings panel gap variables to default */ + .frm-settings-panel { + --gap-sm: 16px; + --gap-md: 24px; + --gap-2xl: 32px; + } + .auto-fold #adminmenuwrap { + width: 36px; + } + .frm_wrap #postbox-container-1 #frm_adv_info { + min-width: 220px; + } + p.howto { + display: inline-block; + } + /* Fix: Issue where the admin page content had extra white space to the left on small screens */ + .auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container, + .auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container { + left: 36px; + } +} +@media only screen and (max-width: 850px) { + .frm-white-body, + .frm_wrap { + --biggest-sidebar: 350px; + --big-sidebar: 350px; + } + .frm_col_one { + clear: none; + } + .frm-fields p > .frm_inline_label, + .frm_inline_label { + display: block; + margin: 5px 0; + } + #frm_top_bar h1 { + width: auto; + max-width: 200px; + } + #frm-publishing { + width: auto; + } + #frm_form_editor_container, + .frm-entry-container { + margin: 0 20px; + } + .frm_wrap .frm-search { + float: none !important; + width: auto; + clear: both; + } + .post-type-frm_display #frm_adv_info { + top: auto !important; + position: static; + width: auto; + } + .frm_wrap .frm-right-panel #frm_adv_info, + .frm_wrap #postbox-container-1 #frm_adv_info { + min-width: 275px; + } + .frm_wrap #frm_adv_info ul.category-tabs li, + .frm_wrap #frm_adv_info ul.category-tabs li.tabs { + border: none; + } + .frm_wrap #frm_adv_info ul.category-tabs li:first-child { + margin-left: 12px; + } + .frm_wrap #frm_adv_info ul.category-tabs li.tabs { + border-bottom: 2px solid #5b9dd9; + padding-bottom: 8px; + } + .post-type-frm_display #poststuff { + padding: 10px 25px; + } + .post-type-frm_display #side-sortables .postbox { + margin-bottom: 20px; + border-radius: var(--small-radius); + border-top-width: 1px; + } + #frm_top_bar .frm_form_nav { + box-shadow: 0 -0.47px 10px 0 rgba(16, 24, 40, 0.0588235294); + } + #frm_top_bar ul.frm_form_nav { + padding: 1em 0; + position: fixed; + bottom: 0; + width: 100%; + background: white; + z-index: 99; + transform: translate(-50%, 0); + left: 50%; + } + .frm_page_container > .columns-2, + #frm_styler_wrapper { + padding-bottom: 64px; + } + #frm_style_preview .frm_floating_style_button:not(.frm_hidden) { + position: static; + display: inline-block; + } + .frm_wrap .columns-2 .frm-right-panel { + padding-bottom: 0; + } + #frm-publishing { + margin-left: auto; + } + #frm_top_bar > .frm-full-close:last-child { + margin-left: 0; + } + #frm_bs_dropdown { + display: block; + } + #frm_bs_dropdown .frm_bstooltip { + display: block !important; + } +} +@media only screen and (max-width: 782px) { + .frm-white-body, + .frm_wrap { + --small-sidebar: 20%; + --medium-sidebar: 35% ; + } + #form_settings_page .advanced_settings .form-table td, .form-table th { + display: table-cell; + width: auto !important; + } + .frm-white-body #publishing-action, + .frm_wrap #publishing-action { + line-height: normal; + } + .frm-white-body #screen-meta-links { + display: none; + } + .frm_wrap .misc-pub-section { + padding: 6px 0; + } + .frm_wrap .misc-pub-section > a { + float: none; + white-space: nowrap; + } + .frm-form-setting-tabs a { + position: relative; + padding: 10px 5px 10px 40px; + } + .frm-form-setting-tabs a .frmsvg, + .frm-form-setting-tabs a i { + position: absolute; + left: 13px; + top: calc(50% - 10px); + margin: 0; + } + #frm-insert-fields .button, + #frm-insert-fields .button a, + .frmbutton.ui-sortable-helper a { + line-height: 26px; + max-height: 28px; + } + a.frm_add_logic_link { + margin-left: 0; + margin-right: 0; + width: 100%; + box-sizing: border-box; + } + a.frm_add_logic_link:not([id^=logic_]) .frmsvg, + a.frm_add_logic_link i { + display: none; + } + #new_fields .frm_single_option select, + #new_fields .frm_single_option input[type=text] { + width: calc(100% - 83px); + } + .frm_single_entry_page .frm_form_fields input[type=text], + .frm_single_entry_page .frm_form_fields select, + .frm_single_entry_page .frm_form_fields textarea { + width: 100%; + } + .with_frm_style .frm_radio input[type=radio], + .with_frm_style .frm_checkbox input[type=checkbox] { + width: 25px !important; + } + .frm_single_entry_page .with_frm_style .frm_radio input[type=radio], + .frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox] { + width: 18px !important; + } + .wp-list-table.toplevel_page_formidable .column-entries, + .wp-list-table.toplevel_page_formidable .column-form_key, + .wp-list-table.toplevel_page_formidable .column-shortcode, + .wp-list-table.toplevel_page_formidable .column-created_at { + display: none !important; + } + .wp-list-table.toplevel_page_formidable td.column-entries, + .wp-list-table.toplevel_page_formidable td.column-form_key, + .wp-list-table.toplevel_page_formidable td.column-shortcode, + .wp-list-table.toplevel_page_formidable td.column-created_at { + padding: 3px 8px 3px 35%; + text-align: left; + } + #form_entries_page .wp-list-table th.frm_hidden, + #form_entries_page .wp-list-table td.frm_hidden { + display: none !important; + } + .frm-white-body.auto-fold #wpcontent { + padding-left: 0; + } + .frm_right_addon .frm_remove_field { + bottom: 11px; + } + .frm-addons { + grid-template-columns: 1fr; + } + .frm-admin-page-styles .frm_page_container, + .frm_wrap .frm_page_container { + left: 0 !important; + } + .frm_single_entry_page.frm_wrap .columns-2 { + display: block; + border-bottom: none; + } + .frm_single_entry_page .wrap.frm-with-margin { + margin: 10px 20px; + } + .frm_single_entry_page #post-body-content + .frm-right-panel { + width: auto; + margin: 0 20px; + border: 1px solid var(--sidebar-hover); + border-radius: 6px; + } + #wp-content-media-buttons a.frm_insert_form { + padding: 0 var(--gap-sm); + } + .frm-white-body input[type=checkbox]:checked::before, + .frm_wrap input[type=checkbox]:checked::before { + width: 1.2rem; + height: 1.2rem; + } +} +@media only screen and (max-width: 700px) { + .frm-white-body, + .frm_wrap { + --biggest-sidebar: 50%; + --big-sidebar: 50%; + } +} +@media only screen and (max-width: 600px) { + .frm-white-body, + .frm_wrap { + --small-sidebar: 45px; + } + .frm-form-setting-tabs a { + visibility: collapse; + font-size: 0; + padding: 0 var(--gap-sm); + } + .frm-form-setting-tabs a .frmsvg, + .frm-form-setting-tabs a i { + visibility: visible; + position: initial; + font-size: 18px; + } + #frm_builder_page #frm-insert-fields { + padding: 0; + } + .frm_wrap #frm_adv_info ul.category-tabs li { + display: inline-block; + padding: 0; + margin: 2px 0; + border-bottom: 2px solid transparent; + } + .frm_wrap #frm_adv_info ul.category-tabs li.tabs, + .frm_wrap #frm_adv_info ul.category-tabs li:first-child { + margin-left: 0; + padding: 0; + } + .field_type_list li { + text-align: center; + } + #frm-insert-fields li a { + padding: 5px; + } + #frm_form_editor_container .frm_primary_label { + clear: both; + } + #frm_builder_page .frm_code_list a.button { + padding: 2px; + } + #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { + right: 0; + left: auto; + } + .frm-right-panel h3.accordion-section-title { + padding-right: 10px; + padding-left: 10px; + font-size: 20px; + white-space: nowrap; + overflow: hidden; + } + .frm-right-panel .accordion-section-title::before { + margin-left: 0; + margin-right: 3px; + } + .rtl #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { + right: auto; + left: 0; + } + .frm_on_submit_type svg { + display: none; + } +} +@media only screen and (max-width: 475px) { + #frm_bs_dropdown { + float: none; + } + #frm-nav-tabs { + padding: 0; + white-space: nowrap; + } + #frm-nav-tabs a { + margin-right: 0; + } + #frm_small_device_message_container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: fixed; + top: 0; + width: 100%; + height: 100%; + z-index: 999999; + background: var(--primary-500); + } + #frm_small_device_message { + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + width: 80%; + padding: 1rem; + background: #fff; + border: solid 1px #fff; + border-radius: var(--medium-radius); + } + #frm_small_device_message::before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-78%, -65%); + width: 900px; + height: 900px; + background-color: #0D7DFC; + border-radius: 50%; + z-index: -1; + opacity: 0.3; + } + #frm_small_device_message > svg { + padding-bottom: 1rem; + } + .toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter, + .post-type-frm_display:has(#frm_small_device_message_container) #posts-filter { + display: none; + } +} +@media print { + a, .misc-pub-section a { + color: #000 !important; + } + .add-new-h2, #frm_top_bar, .dashicons, + #adminmenuwrap, #adminmenuback, #wphead, #button_bar, #submitdiv, .button-secondary, + #screen-metas, #screen-meta-links, #footer, #wpfooter, .inner-sidebar, .frm_form_nav, + .frm_flash_graph, .frm_no_print, object, .error { + visibility: hidden; + display: none !important; + } + .widget, .postbox, .stuffbox, .postbox h3 { + border-width: 0 !important; + border-color: #fff; + } + .postbox { + background: #fff !important; + border: none; + position: static; + } + .postbox h3, .postbox h4 { + background: #fff !important; + } + #wpbody-content { + float: none; + } + #wpcontent, #post-body-content, + .has-right-sidebar #post-body, + #poststuff .columns-2 { + margin: 0 !important; + } + .frm_wrap #poststuff .columns-2 { + display: block; + } + #post-body-content + .frm-right-panel, + .frm_wrap .columns-2 .frm-right-panel, + .frm-right-panel { + border: none; + width: auto; + display: block; + padding: 20px; + } + .frm_wrap .columns-2, + .frm_wrap .frm_page_container { + height: auto; + display: block; + } + .misc-pub-section > span { + padding: 0; + } + .frm-right-panel .postbox .inside { + padding-left: 12px; + padding-right: 12px; + } + .curtime #timestamp::before { + display: none; + content: none !important; + } + .frm_charts .alignleft { + float: none; + } + .pg_odd, .pg_even { + page-break-inside: avoid; + max-width: 600px; + } + .form-table td, .form-table th { + padding: 0; + } + .frm_file_container a { + display: block; + width: 100%; + } +} +/** + * Extended Components + * + * Additional components loaded after the main layout + */ +/** + * Layout: Publishing + */ +.frm-admin-page-styles #frm-publishing #save_menu_header, +.frm-admin-page-styles2 #frm-publishing #save_menu_header { + display: inline-block; +} + +/* Change the order of subfields of the Name field in the backend */ +.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first { + order: 2; +} + +.frm-video-wrapper iframe { + width: 100%; + max-width: 843px; + border-radius: var(--border-radius); +} + +/** + * Field group popup and related functionality + */ +#frm_field_group_popup { + position: absolute; + top: 0; + right: 0; + width: 366px; + max-height: 231px; + border-radius: 8px; + background: #fff; + box-shadow: 0 20px 48px rgba(40, 47, 54, 0.15); + z-index: 3; + box-sizing: border-box; + padding: 24px 0; + text-align: left; +} + +.rtl #frm_field_group_popup { + text-align: right; +} + +.frm-merge-fields-into-row #frm_field_group_popup { + top: unset; + bottom: 50px; + height: 196px; +} + +#frm_field_group_popup > hr { + margin: 12px 0; +} + +#frm_field_group_popup .frm-cancel-custom-field-group-layout, +#frm_field_group_popup .frm-save-custom-field-group-layout { + padding: 4px 18px; +} + +#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover { + border-color: var(--primary-500) !important; + color: var(--primary-500); + background-color: transparent !important; +} + +.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group { + display: none; +} + +.frm-merge-fields-into-row > a { + color: rgba(40, 47, 54, 0.85); + position: relative; + top: 2px; +} + +.frm-row-layout-title { + font-weight: 600; + font-size: 11px; + line-height: 15px; + text-transform: uppercase; + color: rgba(40, 47, 54, 0.45); + margin-bottom: 27px; +} + +.frm-row-layout-option { + background: #F6F7FB; + box-sizing: border-box; + border-radius: 2px; + padding: 15px 10px; +} + +#frm_field_group_popup .frm-row-layout-option .frm_grid_container { + grid-gap: 0 5%; + grid-template-columns: repeat(12, auto); +} + +#frm_field_group_popup .frm-row-layout-option { + cursor: pointer; + border: 2px solid transparent; +} + +#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout, +#frm_field_group_popup .frm-row-layout-option:hover { + border-color: var(--primary-500); +} + +.frm-custom-field-group-layout, +.frm-break-field-group { + padding: 4px 24px; + cursor: pointer; + font-size: var(--text-sm); + line-height: 19px; + color: rgb(72, 78, 84); +} + +.frm-custom-field-group-layout:hover, +.frm-break-field-group:hover { + background-color: rgba(245, 245, 245, 0.9607843137); +} + +.frm-custom-field-group-layout svg, +.frm-break-field-group svg { + margin-right: 5px; +} + +/** + * Field multiselect popup + */ +#frm_field_multiselect_popup { + background: white; + height: 48px; + position: fixed; + border-radius: 4px; + box-shadow: 0 8px 24px rgba(40, 47, 54, 0.15); + color: rgba(40, 47, 54, 0.85); + font-size: 13px; + right: 30px; + bottom: 10px; + z-index: 2; +} + +#frm_field_multiselect_popup > div { + display: inline-block; + line-height: 48px; + vertical-align: top; +} + +#frm_field_multiselect_popup.frm-unmergable > .frm-merge-fields-into-row, +#frm_field_multiselect_popup.frm-unmergable > .frm-multiselect-popup-separator { + display: none; +} + +#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator) { + padding: 0 20px; + cursor: pointer; +} + +#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator):hover { + background: rgba(245, 245, 245, 0.9607843137); +} + +.frm-builder-popup-heading { + font-weight: 600; + font-size: 11px; + line-height: 15px; + text-transform: uppercase; + color: rgba(40, 47, 54, 0.45); + margin-bottom: 7px; +} + +.frm-builder-popup-subheading { + font-size: 12px; + line-height: 16px; + color: rgba(40, 47, 54, 0.45); +} + +#frm_field_group_popup input[type=text] { + height: 30px; + border-radius: 3px; + font-size: 14px; + padding: 8px; + color: rgb(84, 95, 110); + border-color: rgba(40, 47, 54, 0.2); +} + +.frm-multiselect-popup-separator { + height: 36px; + width: 1px; + position: relative; + top: 6px; + background: #C4C4C4; +} + +.frm-sortable-helper, +.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider) { + pointer-events: none; +} + +.frm-sortable-helper { + /* Make sure the item being dragged appears above other form builder fields */ + z-index: 99; +} + +/** + * Component: Banner Notification + */ +#frm_banner { + width: 100%; + color: #fff; + background: var(--primary-500); + height: 40px; + line-height: 40px; + text-align: center; + position: relative; +} + +.frm-banner-emoji { + font-size: 19px; +} + +.frm-banner-emoji, +.frm-banner-title { + margin-right: 5px; + vertical-align: top; +} + +.frm-banner-cta a { + text-decoration: underline !important; +} + +#frm_banner .frm-banner-cta a.frm_inbox_dismiss { + display: none; +} + +.frm-banner-dismiss { + cursor: pointer; + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); +} + +.frm-banner-dismiss .frmsvg { + vertical-align: top; +} + +/** + * Ready-made solution styles + */ +.frm-ready-made-solution:not(.frm-search-result) { + display: none !important; +} + +#frm_leave_email_wrapper .frmsvg { + top: 0; +} + +#frm-add-my-email-address { + margin-top: 30px; +} + +.frm-ready-made-solution h3 ~ a { + color: var(--primary-500); +} + +.frm-ready-made-solution img { + max-width: 100%; + display: block; + box-shadow: var(--box-shadow-lg); +} + +/** + * Component: On Submit Action + */ +.frm_single_on_submit_settings .frm_form_field { + margin: 22px 0; +} + +.frm_on_submit_type_setting { + padding: 8px 0; +} + +.frm_on_submit_type label { + display: flex; + border: 1px solid var(--grey-border); + border-radius: var(--small-radius); + gap: 16px; + padding: 16px; + align-items: center; + justify-content: center; +} + +.frm_on_submit_type input { + opacity: 0 !important; + position: absolute; + z-index: -1; +} + +.frm_on_submit_type input[type=radio]:checked + label { + border-color: var(--primary-color); + box-shadow: 0 0 0 1px var(--primary-color); +} + +#form_settings_page .frm_on_submit_type label:hover, +.frm_on_submit_type input[type=radio]:checked + label svg { + color: var(--primary-color); +} + +/** + * Component: Call-to-Action + */ +.frm_pro_tip, +.frm-cta { + justify-content: space-between; + align-items: center; + gap: var(--gap-2xl); + padding: var(--gap-xs) var(--gap-sm); + border-radius: var(--small-radius); + background: var(--primary-25); +} + +.frm-cta.frm-cta-border { + border: 1px solid var(--primary-200); +} + +.frm-cta.frm-cta-border .frm-cta-footer { + background-color: #fff; + padding: 12px var(--gap-sm); + border-top: 1px solid var(--primary-200); + border-bottom-left-radius: var(--small-radius); + border-bottom-right-radius: var(--small-radius); + margin-top: 12px; + margin-bottom: calc(-1 * var(--gap-sm)); + margin-left: calc(-1 * var(--gap-sm)); + margin-right: calc(-1 * var(--gap-sm)); +} + +.frm-cta h4 { + font-weight: 600; + margin-top: 0; + margin-bottom: var(--gap-2xs); +} + +.frm-cta-green { + background-color: var(--success-25); +} + +.frm-cta-green .frm-banner-title { + gap: calc(var(--gap-2xs) + 1px); + color: var(--grey-700); +} + +.frm-cta-green.frm-cta-border { + border-color: var(--success-100); +} + +.frm-cta-green.frm-cta-border .frm-cta-footer { + border-color: var(--success-100); +} + +.frm-cta-red { + background-color: var(--error-25); +} + +.frm-cta-red.frm-cta-border { + border-color: var(--error-100); +} + +.frm-cta-icon { + padding: 3px 15px 3px 0; + border-right: 1px solid currentColor; +} + +#frm-upgrade-banner { + gap: 0; +} + +#frm-upgrade-banner .frm-cta-icon + .frm-cta-content { + margin-right: auto; + padding-left: 15px; +} + +#frm-upgrade-banner.frm-gradient h4, +#frm-upgrade-banner.frm-gradient p { + color: currentColor; +} + +#frm-upgrade-banner.frm-gradient h4 { + font-size: 16px; + font-weight: 600; +} + +#frm-upgrade-banner.frm-gradient p { + font-size: 14px; +} + +.frm-right-panel .inside .frm_pro_tip, +.frm_pro_tip { + color: var(--grey-700); + background: #FFE7DE; + margin: 0 auto; + display: flex; + gap: var(--gap-xs); +} + +.frm_field_list .frm_pro_tip { + margin: 10px 15px; + position: relative; + width: calc(100% - 30px); + box-sizing: border-box; + font-size: 14px; +} + +.frm_pro_tip .frmsvg, +.frm_pro_tip i { + color: var(--orange); +} + +.frm-tip-info { + flex: 1; + text-align: left; +} + +.frm-tip-cta { + color: var(--orange); +} + +.frm-gradient .frm-tip-cta, +.frm-light-tip .frm-gradient .frm-tip-cta { + color: currentColor; + font-weight: 700; +} + +.frm-tip-badge { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + color: #1E63D5; + background-color: #fff; + line-height: 1; + border-radius: 4px; + padding: 3px 4px; +} + +.frm-light-tip .frm_pro_tip { + background: var(--primary-25); +} + +.frm-light-tip .frm_pro_tip .frmsvg, +.frm-light-tip .frm_pro_tip i, +.frm-light-tip .frm-tip-cta { + color: var(--primary-500); +} + +.nav-tab-wrapper .frm_pro_tip { + float: right; +} + +/** + * Component: Form Templates Modal + */ +/* Start confirm and form templates modals */ +#frm-form-templates-modal textarea { + height: 108px; +} + +#frm-form-templates-modal .frm-fields button.btn { + border-color: var(--grey-300); + color: var(--grey-900); + cursor: pointer; +} + +#frm-form-templates-modal .frm-fields button.btn .frmsvg { + color: var(--grey-400); + width: 14px; + height: 14px; +} + +#frm-form-templates-modal .frm-form-templates-modal-fieldset { + position: relative; +} + +#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg { + padding: 0; + top: 0; + left: 13px; +} + +/* Fixes pro issue #3508, prevent a conflict that hides the postbox in modal */ +#frm-form-templates-modal .postbox { + display: block !important; +} + +/* Leave email modal */ +#frm_empty_inbox #frm-leave-email-modal { + margin-top: var(--gap-2xl); +} + +/* Name your form modal */ +#frm-name-your-form-modal .frm_modal_top { + padding-top: var(--gap-sm); +} + +/* End confirm and form templates modals */ +/** + * Component: Field Group Message + */ +#frm-field-group-message { + position: absolute; + bottom: 32px; + right: calc(50% - var(--biggest-sidebar)); + padding: var(--gap-xs) var(--gap-sm); + border-radius: 100px; + background-color: var(--primary-25); +} + +#frm-field-group-message .frm-field-group-message-text { + gap: 10px; + color: var(--grey-800); +} + +#frm-field-group-message-dismiss { + margin-left: var(--gap-xs); +} + +#frm-field-group-message-dismiss .frmsvg { + color: var(--grey-800); + width: 15px; + height: 15px; + cursor: pointer; + transition: color 300ms ease-in-out; +} + +#frm-field-group-message-dismiss .frmsvg:hover { + color: var(--grey-500); +} + +/** + * Component - Card Item + */ +.frm-card-item { + display: flex; + border: 1px solid var(--grey-200); + border-radius: var(--small-radius); + padding: var(--gap-sm); + box-shadow: var(--box-shadow-xs); + background: #FFF; +} + +.frm-card-item:not(.frm-counter-card) { + gap: 10px; +} + +.frm-compact-card-item { + padding: var(--gap-sm) 35px 10px 35px; +} + +.frm-card-bottom { + background-color: var(--grey-50); + margin-left: calc(var(--gap-sm) * -1); + margin-bottom: calc(var(--gap-sm) * -1); + margin-right: calc(var(--gap-sm) * -1); + padding: var(--gap-sm); + border-radius: 0 0 var(--small-radius) var(--small-radius); +} + +/** + * Component: Pirate Forms Importer + */ +#welcome-panel:has(#frm_form_pf_importer) { + background-color: #fff; + margin: var(--gap-sm) var(--gap-md) var(--gap-md); + line-height: 2; +} + +#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content { + text-align: start !important; + min-height: unset; + display: block; +} + +#frm_form_pf_importer div { + margin: 10px 0 !important; +} + +#frm_form_pf_importer button { + border: 1px solid var(--primary-500); + padding: 7px 16px; + min-height: 28px; + line-height: var(--leading); + margin-bottom: 0; + background: var(--primary-500); + color: #fff !important; +} + +#frm_form_pf_importer button:hover { + background: #135e96; + border-color: #135e96; +} + +/** + * Component: Option Box + */ +.frm-option-box { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 14px; + font-weight: 500; + background-color: #fff; + padding: 12px var(--gap-sm); + border: 1px solid var(--grey-200); + border-radius: var(--small-radius); + margin-bottom: var(--gap-xs); + transition: background-color 100ms ease-out; + cursor: pointer; +} + +.frm-option-box:hover { + background-color: var(--grey-25); +} + +.frm-option-box.frm-checked { + background-color: var(--primary-25); + border-color: var(--primary-200); +} + +.frm-option-box.frm-disabled { + cursor: default; +} + +.frm-option-box input[type=checkbox] { + margin: 0; +} + +.frm-option-box.frm-disabled input[type=checkbox] { + opacity: 0.5; +} + +.frm-option-box .frm_help .frmsvg { + width: 12px; + height: 12px; +} + +/** + * Component: Validation Error + */ +.frm-validation-error:not(.frm_hidden) { + display: flex; +} + +.frm-validation-error { + gap: calc(var(--gap-xs) + var(--gap-2xs)); +} + +.frm-validation-error span { + color: var(--error-500); +} + +.frm-validation-error span[frm-error] { + display: none; +} + +.frm-validation-error[frm-error=empty] span[frm-error=empty], +.frm-validation-error[frm-error=invalid] span[frm-error=invalid], +.frm-validation-error[frm-error=custom] span[frm-error=custom] { + display: inline-block; +} + +/** + * Utility: Box + */ +.frm-box { + padding: var(--gap-sm); + border: 1px solid var(--grey-200); + border-radius: var(--small-radius); +} + +/** + * External Link styles + */ +.frm-link-with-external-icon { + display: flex; + align-items: center; + gap: var(--gap-2xs); + font-size: var(--text-xs); +} + +.frm-link-with-external-icon .frmsvg { + width: 16px; + height: 16px; + transform: rotate(45deg); +} + +/** + * Page Skeleton + * + * Manages the layout and appearance of the page's content area. + */ +/* Core Styles for the Page */ +#wpbody-content .frm-page-skeleton { + /* Sidebar Styles */ + /* Scrollbar */ + /* Search */ +} +#wpbody-content .frm-page-skeleton ul, +#wpbody-content .frm-page-skeleton li { + margin: 0; +} +#wpbody-content .frm-page-skeleton .frm-right-panel { + padding: 2px; + overflow-y: initial; +} +#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper { + padding: var(--gap-md) var(--gap-sm); +} +#wpbody-content .frm-page-skeleton .frm-search { + float: none; + padding: 0 var(--gap-2xs); +} +#wpbody-content .frm-page-skeleton .frm-search > svg { + left: var(--gap-2xs); +} +#wpbody-content .frm-page-skeleton .frm-search > input { + width: 100%; +} + +/* Categories */ +.frm-page-skeleton-cat { + cursor: pointer; + padding: var(--gap-xs); + border-radius: var(--small-radius); + background-color: transparent; + transition: background-color 250ms ease-out; +} +.frm-page-skeleton-cat:hover { + background-color: var(--grey-100); +} +.frm-page-skeleton-cat > * { + z-index: 2; +} + +.frm-page-skeleton-cat-text { + color: var(--grey-900); + text-transform: capitalize; +} + +.frm-page-skeleton-cat-count { + color: var(--grey-400); +} + +.frm-current .frm-page-skeleton-cat-text, +.frm-current .frm-page-skeleton-cat-count { + color: var(--primary-500); +} + +/* Page Content Styles */ +.frm-list-grid-layout { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(303px, 1fr)); + grid-auto-rows: max-content; + gap: var(--gap-sm); +} +.frm-list-grid-layout > * { + grid-column: span 1; +} + +/* Empty State Styles */ +#frm-page-skeleton-empty-state { + height: 100%; + margin-top: calc(-1 * var(--gap-md)); +} +#frm-page-skeleton-empty-state .frm-page-skeleton-text { + max-width: 420px; +} + +/* Helper Classes */ +.frm-page-skeleton-divider { + border-top: 1px solid var(--grey-200); + margin: 0; +} + +/** + * Submit field styles + */ +.field_type_list .frm_tsubmit { + display: none !important; +} + +/** + * Component: Accordion Title + */ +#frm_style_sidebar .accordion-section-title::after, +#frm_view_editor_left .accordion-section-title::after { + content: ""; +} + +a[href="#square_settings"] svg.frmsvg { + width: 23px !important; + height: 22px !important; +} + +#frm_square_test_setup_modal a:focus { + box-shadow: none !important; +} + +@media only screen and (max-width: 900px) { + #square_settings .frm_grid_container:has(.frm-card-item) { + grid-template-columns: repeat(1, 1fr); + } + #square_settings .frm-card-item + .frm-card-item { + margin-top: var(--gap-sm); + } +} +#frm_sale_banner { + display: flex; + height: 90px; + flex-direction: row; + align-items: center; + gap: var(--gap-sm); + cursor: pointer; + position: relative; +} +#frm_sale_banner > div:first-child { + align-self: flex-end; + width: 150px; + height: 100%; + display: flex; + justify-content: center; +} +#frm_sale_banner > div:first-child img { + align-self: center; +} +#frm_sale_banner > div:nth-child(3) { + margin-left: auto; + margin-right: 50px; +} +#frm_sale_banner > div:nth-child(2) > div:last-child { + opacity: 0.8; +} +#frm_sale_banner a:not(.dismiss) { + text-shadow: none; + border-radius: 30px; + border: 1px transparent; + font-size: var(--text-sm); + padding: 7px 16px; + height: auto; + min-height: 28px; + outline: none; + line-height: var(--leading); + box-sizing: border-box; + margin-bottom: 0; + display: inline-block; + font-weight: 700; + background-color: #fff; + color: #000; +} +#frm_sale_banner .dismiss { + position: absolute; + color: #fff; + opacity: 0.6; + right: 15px; + top: 10px; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"] { + background-color: #F0F0F0 !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"] { + background-color: #E6470F !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"] { + background-color: #ED1D34 !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"] { + background-color: #3E041A !important; +} +#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"] { + background-color: #362630 !important; +} + +.frm-get-free-templates-banner { + flex-grow: 1; +} +.frm-get-free-templates-banner .frm-banner-image-wrapper { + display: flex; + justify-content: center; + align-items: flex-end; + background-color: var(--primary-25); + padding: 19px 14px 0; + border-radius: var(--small-radius); +} +.frm-get-free-templates-banner[data-direction=vertical] { + flex-direction: column; + align-items: stretch; + gap: 12px; +} +.frm-get-free-templates-banner[data-direction=vertical] .frm-banner-content { + align-items: center; + text-align: center; +} + +/** + * Backwards Compatibility + */ +.frm-lookup-box-label { + display: none; +} + +.frm-inline-modal[id^=frm-lookup-box] { + background-color: transparent; + border: 0; + box-shadow: none; +} +.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs, +.frm-inline-modal[id^=frm-lookup-box] .dismiss { + display: none; +} + +.frm_single_option a.frm_remove_tag svg, +.frm_single_option a.frm_add_opt svg { + width: 15px; + height: 15px; +} + +#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame { + margin-left: 12px; +} + +/*# sourceMappingURL=frm_admin.css.map*/ \ No newline at end of file diff --git a/js/addons-page.js b/js/addons-page.js index c3de805933..b7ec44212a 100644 --- a/js/addons-page.js +++ b/js/addons-page.js @@ -1 +1,4799 @@ -(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return function(t,e){var n,r,a,c,l,s,u,f,d,p=1,y=t.length,m="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),s=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,l=c.width&&u>0?s.repeat(u):"",m+=c.align?d+n+l:"0"===s?d+l+n:l+d+n)}return m}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],l=e[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}var c=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.url,r=(t.nonce,"frm_hidden"),o="frm-hide-js",i="frm-current";function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},O=["(","?"],_={")":["("],":":["?","?:"]},j=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var T={contextDelimiter:"",onMissingKey:null};function F(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},T)this.options[n]=void 0!==e&&n in e?e[n]:T[n]}function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||x[o]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(N(n)&&R(r))if("function"==typeof o)if("number"==typeof i){var c={callback:o,priority:i,namespace:r};if(a[n]){var l,s=a[n].handlers;for(l=s.length;l>0&&!(i>=s[l-1].priority);l--);l===s.length?s[l]=c:s.splice(l,0,c),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++}))}else a[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},B=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var i=t[e];if(N(r)&&(n||R(o))){if(!i[r])return 0;var a=0;if(n)a=i[r].handlers.length,i[r]={runs:i[r].runs,handlers:[]};else for(var c=i[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),a++,i.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},s=c.length-1;s>=0;s--)l(s);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),a}}},M=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some((function(t){return t.namespace===r})):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,c=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},L),r.data[e]),t),r.data[e][""]=D(D({},L[""]),r.data[e][""])},c=function(t,e){a(t,e),i()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},s=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+s(r),o,t,e,r)):o};if(n){var f=function(t){q.test(t)&&i()};n.addAction("hookAdded","core/i18n",f),n.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+s(e),r,t,e)):r},_x:u,_n:function(t,e,r,o){var i=l(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+s(o),i,t,e,r,o)):i},_nx:function(t,e,r,o,i){var a=l(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+s(i),a,t,e,r,o,i)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(t,e,o){var i,a,c=e?e+""+t:t,l=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+s(o),l,t,e,o)),l}}}(0,0,V));G.getLocaleData.bind(G),G.setLocaleData.bind(G),G.resetLocaleData.bind(G),G.subscribe.bind(G);var J=G.__.bind(G),H=(G._x.bind(G),G._n.bind(G),G._nx.bind(G),G.isRTL.bind(G),G.hasTranslation.bind(G),window.frmDom),Q=H.tag,W=H.div,Y=H.a,tt=H.img;function et(t){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(t)}function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function rt(t,e,n){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ot,it=document.getElementById("post-body-content"),at=document.getElementById("".concat(v,"-sidebar")),ct=((ot=Y({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),W({id:"".concat(v,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(r),children:[tt({src:"".concat(e,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),W({className:"frmcenter",children:[Q("h2",{className:"".concat(v,"-title frm-mb-0")}),Q("p",{className:"".concat(v,"-text frm-mb-0")})]}),ot]}));null==it||it.appendChild(ct);var lt=function(){var t=document.querySelector("#".concat(v,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(v,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(v,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==mt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==mt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=pt(pt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:b,selectedCategoryEl:vt}),ht=bt.getState,gt=bt.getSingleState,St=bt.setState,wt=bt.setSingleState,xt=function(t){var e,n=t.currentTarget,r=n.getAttribute("data-category"),o=ht(),a=o.selectedCategory,c=o.selectedCategoryEl,l=o.notEmptySearchText;if(a!==r){a=wp.hooks.applyFilters("frmPage.selectedCategory",r),c.classList.remove(i),(c=n).classList.add(i),St({selectedCategory:a,selectedCategoryEl:c}),l&&((e=ut().searchInput).value="",e.dispatchEvent(new Event("input",{bubbles:!0}))),wp.hooks.doAction("frmPage.onCategoryClick",a);var u=ut().bodyContent;new s(u).fadeIn()}};function Ot(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),xt(t))}var _t=window.frmAddonsVars.addonRequestURL,jt="frm-addons",Et="available-addons",Pt="active-addons",kt="basic",At="plus",Ct="business",Tt="elite",Ft=ut(),It=Ft.bodyContent,Dt=Ft.sidebar;It.querySelectorAll(".frm-card-item:not(.plugin-card-formidable-pro)").forEach((function(t){var e=t.dataset.categories;switch(!0){case e.includes(Ct):t.setAttribute("data-categories","".concat(e,",").concat(Tt));break;case e.includes(At):t.setAttribute("data-categories","".concat(e,",").concat(Ct,",").concat(Tt));break;case e.includes(kt):t.setAttribute("data-categories","".concat(e,",").concat(At,",").concat(Ct,",").concat(Tt))}})),ft({upgradeBanner:document.getElementById("frm-upgrade-banner"),availableCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Et,'"]')),activeCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Pt,'"]')),categoriesTopDivider:Dt.querySelector(".".concat(v,"-divider")),basicPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(kt,'"]')),plusPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(At,'"]')),businessPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Ct,'"]')),elitePlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Tt,'"]')),addonsList:document.getElementById("".concat(jt,"-list")),addons:It.querySelectorAll(".frm-card-item"),availableAddons:It.querySelectorAll(".frm-card-item:not(.frm-locked-item)"),addonsToggle:It.querySelectorAll(".frm_toggle_block"),bodyContentChildren:null==It?void 0:It.children});var Lt={};Lt[Et]=[],Lt[Pt]=[];var qt,Rt=".".concat(v,"-cat-count");function Nt(){var t=ut(),e=t.activeCategory,n=t.availableCategory,r=t.categoriesTopDivider,o=document.querySelectorAll(".frm-addon-active:not(.frm-locked-item)");0!==o.length?(Lt[Pt]=o,e.querySelector(Rt).textContent=o.length):p([e,n,r])}function zt(){var t=ht().selectedCategory,e=ut(),n=e.emptyState,r=e.emptyStateButton,o=e.emptyStateTitle,i=e.emptyStateText;n.setAttribute("data-view",t),o.textContent=J("No add-ons found","formidable"),i.textContent=J("Sorry, we didn't find any add-ons that match your criteria.","formidable"),r.textContent=J("Request Add-On","formidable"),r.href=_t,r.setAttribute("target","_blank"),d([n,r])}function Bt(t,e){if(t){if("string"==typeof t)return Mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mt(t,e):void 0}}function Mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(new Map([["frm-addon-not-installed",".frm-install-addon"],["frm-addon-installed",".frm-activate-addon"],["frm-addon-active",".frm-deactivate-addon"]]).entries());try{for(a.s();!(o=a.n()).done;){var c=(n=o.value,r=2,function(t){if(Array.isArray(t))return t}(n)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],l=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(t){s=!0,o=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(n,r)||Bt(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],s=c[1];if(i.classList.contains(l)){(qt=i.querySelector(s)).click();break}}}catch(t){a.e(t)}finally{a.f()}}};var Ut=window.frmDom.search.init;function Zt(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=ht(),a=ut().allItemsCategory;wt("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ut(),n=e.bodyContent,r=e.bodyContentChildren,o=e.addonsList;t&>("selectedCategoryEl").classList.remove(i),p(r),y(o),new s(n).fadeIn()}(r),r&&wt("selectedCategory","")),function(t){if(t){var e,n=ut().emptyState;e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")&&m(n)}else zt()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}function Kt(){var t;ut().categoryItems.forEach((function(t){f(t,xt),t.addEventListener("keydown",Ot)})),wp.hooks.addAction("frmPage.onCategoryClick","frmAddonsPage",(function(t){!function(t){var e=ut(),n=e.bodyContent,r=e.addons,o=e.emptyState,i=e.upgradeBanner;m(o),y(i),n.dataset.category=t,b!==t?(p(r),0===Lt[t].length?(zt(),m(i)):d(Lt[t])):d(r)}(t)})),ut().addonsToggle.forEach((function(t){return t.addEventListener("click",$t)})),wp.hooks.addAction("frm_update_addon_state","frmAddonPage",(function(){Nt()})),t=ut().searchInput,Ut(t,"frm-card-item",{handleSearchResult:Zt})}var Xt;Xt=function(){(function(){var t,e,n,r,i,a,c,l,u,f,d=ut(),p=d.sidebar,m=d.searchInput,v=d.bodyContent,b=new s(v);m.value="",Nt(),function(){var t=ut(),e=t.bodyContent,n=t.availableCategory,r=t.availableAddons;if(Lt[Et]=r,n){n.querySelector(Rt).textContent=r.length;var o=e.querySelector(".".concat(jt,"-available-count"));o&&(o.textContent=r.length)}}(),function(){var t=ut(),e=t.allItemsCategory,n=t.addons;e.querySelector(Rt).textContent=n.length}(),e=(t=ut()).basicPlanCategory,n=t.plusPlanCategory,r=t.businessPlanCategory,i=t.elitePlanCategory,c=(a=function(t){return parseInt(t.querySelector(Rt).textContent,10)||0})(e),l=a(n)-1,u=a(r)-1,f=a(i)-1,n.querySelector(Rt).textContent=c+l,r.querySelector(Rt).textContent=c+l+u,i.querySelector(Rt).textContent=c+l+u+f,v.classList.remove(o),p.classList.remove(o),b.fadeIn(),y(p)})(),ut().addons.forEach((function(t){var e=t.getAttribute("data-categories");e&&e.split(",").forEach((function(e){Lt[e]||(Lt[e]=[]),Lt[e].push(t)}))})),Kt()},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Xt):Xt())})()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@tannin/compile/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/compile/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compile) +/* harmony export */ }); +/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); +/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); + + + +/** + * Given a C expression, returns a function which can be called to evaluate its + * result. + * + * @example + * + * ```js + * import compile from '@tannin/compile'; + * + * const evaluate = compile( 'n > 1' ); + * + * evaluate( { n: 2 } ); + * // ⇒ true + * ``` + * + * @param {string} expression C expression. + * + * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. + */ +function compile( expression ) { + var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( variables ) { + return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/evaluate/index.js": +/*!************************************************!*\ + !*** ./node_modules/@tannin/evaluate/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ evaluate) +/* harmony export */ }); +/** + * Operator callback functions. + * + * @type {Object} + */ +var OPERATORS = { + '!': function( a ) { + return ! a; + }, + '*': function( a, b ) { + return a * b; + }, + '/': function( a, b ) { + return a / b; + }, + '%': function( a, b ) { + return a % b; + }, + '+': function( a, b ) { + return a + b; + }, + '-': function( a, b ) { + return a - b; + }, + '<': function( a, b ) { + return a < b; + }, + '<=': function( a, b ) { + return a <= b; + }, + '>': function( a, b ) { + return a > b; + }, + '>=': function( a, b ) { + return a >= b; + }, + '==': function( a, b ) { + return a === b; + }, + '!=': function( a, b ) { + return a !== b; + }, + '&&': function( a, b ) { + return a && b; + }, + '||': function( a, b ) { + return a || b; + }, + '?:': function( a, b, c ) { + if ( a ) { + throw b; + } + + return c; + }, +}; + +/** + * Given an array of postfix terms and operand variables, returns the result of + * the postfix evaluation. + * + * @example + * + * ```js + * import evaluate from '@tannin/evaluate'; + * + * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' + * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; + * + * evaluate( terms, {} ); + * // ⇒ 6.333333333333334 + * ``` + * + * @param {string[]} postfix Postfix terms. + * @param {Object} variables Operand variables. + * + * @return {*} Result of evaluation. + */ +function evaluate( postfix, variables ) { + var stack = [], + i, j, args, getOperatorResult, term, value; + + for ( i = 0; i < postfix.length; i++ ) { + term = postfix[ i ]; + + getOperatorResult = OPERATORS[ term ]; + if ( getOperatorResult ) { + // Pop from stack by number of function arguments. + j = getOperatorResult.length; + args = Array( j ); + while ( j-- ) { + args[ j ] = stack.pop(); + } + + try { + value = getOperatorResult.apply( null, args ); + } catch ( earlyReturn ) { + return earlyReturn; + } + } else if ( variables.hasOwnProperty( term ) ) { + value = variables[ term ]; + } else { + value = +term; + } + + stack.push( value ); + } + + return stack[ 0 ]; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/plural-forms/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@tannin/plural-forms/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluralForms) +/* harmony export */ }); +/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); + + +/** + * Given a C expression, returns a function which, when called with a value, + * evaluates the result with the value assumed to be the "n" variable of the + * expression. The result will be coerced to its numeric equivalent. + * + * @param {string} expression C expression. + * + * @return {Function} Evaluator function. + */ +function pluralForms( expression ) { + var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( n ) { + return +evaluate( { n: n } ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/postfix/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/postfix/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ postfix) +/* harmony export */ }); +var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + +/** + * Operator precedence mapping. + * + * @type {Object} + */ +PRECEDENCE = { + '(': 9, + '!': 8, + '*': 7, + '/': 7, + '%': 7, + '+': 6, + '-': 6, + '<': 5, + '<=': 5, + '>': 5, + '>=': 5, + '==': 4, + '!=': 4, + '&&': 3, + '||': 2, + '?': 1, + '?:': 1, +}; + +/** + * Characters which signal pair opening, to be terminated by terminators. + * + * @type {string[]} + */ +OPENERS = [ '(', '?' ]; + +/** + * Characters which signal pair termination, the value an array with the + * opener as its first member. The second member is an optional operator + * replacement to push to the stack. + * + * @type {string[]} + */ +TERMINATORS = { + ')': [ '(' ], + ':': [ '?', '?:' ], +}; + +/** + * Pattern matching operators and openers. + * + * @type {RegExp} + */ +PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + +/** + * Given a C expression, returns the equivalent postfix (Reverse Polish) + * notation terms as an array. + * + * If a postfix string is desired, simply `.join( ' ' )` the result. + * + * @example + * + * ```js + * import postfix from '@tannin/postfix'; + * + * postfix( 'n > 1' ); + * // ⇒ [ 'n', '1', '>' ] + * ``` + * + * @param {string} expression C expression. + * + * @return {string[]} Postfix terms. + */ +function postfix( expression ) { + var terms = [], + stack = [], + match, operator, term, element; + + while ( ( match = expression.match( PATTERN ) ) ) { + operator = match[ 0 ]; + + // Term is the string preceding the operator match. It may contain + // whitespace, and may be empty (if operator is at beginning). + term = expression.substr( 0, match.index ).trim(); + if ( term ) { + terms.push( term ); + } + + while ( ( element = stack.pop() ) ) { + if ( TERMINATORS[ operator ] ) { + if ( TERMINATORS[ operator ][ 0 ] === element ) { + // Substitution works here under assumption that because + // the assigned operator will no longer be a terminator, it + // will be pushed to the stack during the condition below. + operator = TERMINATORS[ operator ][ 1 ] || operator; + break; + } + } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { + // Push to stack if either an opener or when pop reveals an + // element of lower precedence. + stack.push( element ); + break; + } + + // For each popped from stack, push to terms. + terms.push( element ); + } + + if ( ! TERMINATORS[ operator ] ) { + stack.push( operator ); + } + + // Slice matched fragment from expression to continue match. + expression = expression.substr( match.index + operator.length ); + } + + // Push remainder of operand, if exists, to terms. + expression = expression.trim(); + if ( expression ) { + terms.push( expression ); + } + + // Pop remaining items from stack into terms. + return terms.concat( stack.reverse() ); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback AddHook + * + * Adds the hook to the appropriate hooks container. + * + * @param {string} hookName Name of hook to add + * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. + * @param {import('.').Callback} callback Function to call when the hook is run + * @param {number} [priority=10] Priority of this hook + */ + +/** + * Returns a function which, when invoked, will add a hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {AddHook} Function that adds a new hook. + */ + +function createAddHook(hooks, storeKey) { + return function addHook(hookName, namespace, callback) { + var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } + + if ('function' !== typeof callback) { + // eslint-disable-next-line no-console + console.error('The hook callback must be a function.'); + return; + } // Validate numeric priority + + + if ('number' !== typeof priority) { + // eslint-disable-next-line no-console + console.error('If specified, the hook priority must be a number.'); + return; + } + + var handler = { + callback: callback, + priority: priority, + namespace: namespace + }; + + if (hooksStore[hookName]) { + // Find the correct insert index of the new hook. + var handlers = hooksStore[hookName].handlers; + /** @type {number} */ + + var i; + + for (i = handlers.length; i > 0; i--) { + if (priority >= handlers[i - 1].priority) { + break; + } + } + + if (i === handlers.length) { + // If append, operate via direct assignment. + handlers[i] = handler; + } else { + // Otherwise, insert before index via splice. + handlers.splice(i, 0, handler); + } // We may also be currently executing this hook. If the callback + // we're adding would come after the current callback, there's no + // problem; otherwise we need to increase the execution index of + // any other runs by 1 to account for the added element. + + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex++; + } + }); + } else { + // This is the first hook of its type. + hooksStore[hookName] = { + handlers: [handler], + runs: 0 + }; + } + + if (hookName !== 'hookAdded') { + hooks.doAction('hookAdded', hookName, namespace, callback, priority); + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); +//# sourceMappingURL=createAddHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Returns a function which, when invoked, will return the name of the + * currently running hook, or `null` if no hook of the given type is currently + * running. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {() => string | null} Function that returns the current hook name or null. + */ +function createCurrentHook(hooks, storeKey) { + return function currentHook() { + var _hooksStore$__current, _hooksStore$__current2; + + var hooksStore = hooks[storeKey]; + 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; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); +//# sourceMappingURL=createCurrentHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + +/** + * @callback DidHook + * + * Returns the number of times an action has been fired. + * + * @param {string} hookName The hook name to check. + * + * @return {number | undefined} The number of times the hook has run. + */ + +/** + * Returns a function which, when invoked, will return the number of times a + * hook has been called. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DidHook} Function that returns a hook's call count. + */ + +function createDidHook(hooks, storeKey) { + return function didHook(hookName) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { + return; + } + + return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); +//# sourceMappingURL=createDidHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback DoingHook + * Returns whether a hook is currently being executed. + * + * @param {string} [hookName] The name of the hook to check for. If + * omitted, will check for any hook being executed. + * + * @return {boolean} Whether the hook is being executed. + */ + +/** + * Returns a function which, when invoked, will return whether a hook is + * currently being executed. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DoingHook} Function that returns whether a hook is currently + * being executed. + */ +function createDoingHook(hooks, storeKey) { + return function doingHook(hookName) { + var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. + + if ('undefined' === typeof hookName) { + return 'undefined' !== typeof hooksStore.__current[0]; + } // Return the __current hook. + + + return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); +//# sourceMappingURL=createDoingHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback HasHook + * + * Returns whether any handlers are attached for the given hookName and optional namespace. + * + * @param {string} hookName The name of the hook to check for. + * @param {string} [namespace] Optional. The unique namespace identifying the callback + * in the form `vendor/plugin/function`. + * + * @return {boolean} Whether there are handlers that are attached to the given hook. + */ + +/** + * Returns a function which, when invoked, will return whether any handlers are + * attached to a particular hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {HasHook} Function that returns whether any handlers are + * attached to a particular hook and optional namespace. + */ +function createHasHook(hooks, storeKey) { + return function hasHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; // Use the namespace if provided. + + if ('undefined' !== typeof namespace) { + return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { + return hook.namespace === namespace; + }); + } + + return hookName in hooksStore; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); +//# sourceMappingURL=createHasHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _Hooks: () => (/* binding */ _Hooks), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); +/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); +/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); +/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); +/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); +/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); +/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Internal class for constructing hooks. Use `createHooks()` function + * + * Note, it is necessary to expose this class to make its type public. + * + * @private + */ + +var _Hooks = function _Hooks() { + (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); + + /** @type {import('.').Store} actions */ + this.actions = Object.create(null); + this.actions.__current = []; + /** @type {import('.').Store} filters */ + + this.filters = Object.create(null); + this.filters.__current = []; + this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); + this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); + this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); + this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); + this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); + this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); + this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); + this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); + this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); + this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); + this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); + this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); + this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); + this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); + this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); + this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); +}; +/** @typedef {_Hooks} Hooks */ + +/** + * Returns an instance of the hooks object. + * + * @return {Hooks} A Hooks instance. + */ + +function createHooks() { + return new _Hooks(); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); +//# sourceMappingURL=createHooks.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback RemoveHook + * Removes the specified callback (or all callbacks) from the hook with a given hookName + * and namespace. + * + * @param {string} hookName The name of the hook to modify. + * @param {string} namespace The unique namespace identifying the callback in the + * form `vendor/plugin/function`. + * + * @return {number | undefined} The number of callbacks removed. + */ + +/** + * Returns a function which, when invoked, will remove a specified hook or all + * hooks by the given name. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, + * without regard to namespace. Used to create + * `removeAll*` functions. + * + * @return {RemoveHook} Function that removes hooks. + */ + +function createRemoveHook(hooks, storeKey) { + var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function removeHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } // Bail if no hooks exist by this name + + + if (!hooksStore[hookName]) { + return 0; + } + + var handlersRemoved = 0; + + if (removeAll) { + handlersRemoved = hooksStore[hookName].handlers.length; + hooksStore[hookName] = { + runs: hooksStore[hookName].runs, + handlers: [] + }; + } else { + // Try to find the specified callback to remove. + var handlers = hooksStore[hookName].handlers; + + var _loop = function _loop(i) { + if (handlers[i].namespace === namespace) { + handlers.splice(i, 1); + handlersRemoved++; // This callback may also be part of a hook that is + // currently executing. If the callback we're removing + // comes after the current callback, there's no problem; + // otherwise we need to decrease the execution index of any + // other runs by 1 to account for the removed element. + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex--; + } + }); + } + }; + + for (var i = handlers.length - 1; i >= 0; i--) { + _loop(i); + } + } + + if (hookName !== 'hookRemoved') { + hooks.doAction('hookRemoved', hookName, namespace); + } + + return handlersRemoved; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); +//# sourceMappingURL=createRemoveHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); + + +/** + * Returns a function which, when invoked, will execute all callbacks + * registered to a hook of the specified type, optionally returning the final + * value of the call chain. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to + * return its first argument. + * + * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. + */ +function createRunHook(hooks, storeKey) { + var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function runHooks(hookName) { + var hooksStore = hooks[storeKey]; + + if (!hooksStore[hookName]) { + hooksStore[hookName] = { + handlers: [], + runs: 0 + }; + } + + hooksStore[hookName].runs++; + var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. + + if (true) { + // Handle any 'all' hooks registered. + if ('hookAdded' !== hookName && hooksStore.all) { + handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); + } + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!handlers || !handlers.length) { + return returnFirstArg ? args[0] : undefined; + } + + var hookInfo = { + name: hookName, + currentIndex: 0 + }; + + hooksStore.__current.push(hookInfo); + + while (hookInfo.currentIndex < handlers.length) { + var handler = handlers[hookInfo.currentIndex]; + var result = handler.callback.apply(null, args); + + if (returnFirstArg) { + args[0] = result; + } + + hookInfo.currentIndex++; + } + + hooksStore.__current.pop(); + + if (returnFirstArg) { + return args[0]; + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); +//# sourceMappingURL=createRunHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ actions: () => (/* binding */ actions), +/* harmony export */ addAction: () => (/* binding */ addAction), +/* harmony export */ addFilter: () => (/* binding */ addFilter), +/* harmony export */ applyFilters: () => (/* binding */ applyFilters), +/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ currentAction: () => (/* binding */ currentAction), +/* harmony export */ currentFilter: () => (/* binding */ currentFilter), +/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), +/* harmony export */ didAction: () => (/* binding */ didAction), +/* harmony export */ didFilter: () => (/* binding */ didFilter), +/* harmony export */ doAction: () => (/* binding */ doAction), +/* harmony export */ doingAction: () => (/* binding */ doingAction), +/* harmony export */ doingFilter: () => (/* binding */ doingFilter), +/* harmony export */ filters: () => (/* binding */ filters), +/* harmony export */ hasAction: () => (/* binding */ hasAction), +/* harmony export */ hasFilter: () => (/* binding */ hasFilter), +/* harmony export */ removeAction: () => (/* binding */ removeAction), +/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), +/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), +/* harmony export */ removeFilter: () => (/* binding */ removeFilter) +/* harmony export */ }); +/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); +/** + * Internal dependencies + */ + +/** @typedef {(...args: any[])=>any} Callback */ + +/** + * @typedef Handler + * @property {Callback} callback The callback + * @property {string} namespace The namespace + * @property {number} priority The namespace + */ + +/** + * @typedef Hook + * @property {Handler[]} handlers Array of handlers + * @property {number} runs Run counter + */ + +/** + * @typedef Current + * @property {string} name Hook name + * @property {number} currentIndex The index + */ + +/** + * @typedef {Record & {__current: Current[]}} Store + */ + +/** + * @typedef {'actions' | 'filters'} StoreKey + */ + +/** + * @typedef {import('./createHooks').Hooks} Hooks + */ + +var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); +var addAction = defaultHooks.addAction, + addFilter = defaultHooks.addFilter, + removeAction = defaultHooks.removeAction, + removeFilter = defaultHooks.removeFilter, + hasAction = defaultHooks.hasAction, + hasFilter = defaultHooks.hasFilter, + removeAllActions = defaultHooks.removeAllActions, + removeAllFilters = defaultHooks.removeAllFilters, + doAction = defaultHooks.doAction, + applyFilters = defaultHooks.applyFilters, + currentAction = defaultHooks.currentAction, + currentFilter = defaultHooks.currentFilter, + doingAction = defaultHooks.doingAction, + doingFilter = defaultHooks.doingFilter, + didAction = defaultHooks.didAction, + didFilter = defaultHooks.didFilter, + actions = defaultHooks.actions, + filters = defaultHooks.filters; + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a hookName string. + * + * @param {string} hookName The hook name to validate. Should be a non empty string containing + * only numbers, letters, dashes, periods and underscores. Also, + * the hook name cannot begin with `__`. + * + * @return {boolean} Whether the hook name is valid. + */ +function validateHookName(hookName) { + if ('string' !== typeof hookName || '' === hookName) { + // eslint-disable-next-line no-console + console.error('The hook name must be a non-empty string.'); + return false; + } + + if (/^__/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name cannot begin with `__`.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); +//# sourceMappingURL=validateHookName.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a namespace string. + * + * @param {string} namespace The namespace to validate - should take the form + * `vendor/plugin/function`. + * + * @return {boolean} Whether the namespace is valid. + */ +function validateNamespace(namespace) { + if ('string' !== typeof namespace || '' === namespace) { + // eslint-disable-next-line no-console + console.error('The namespace must be a non-empty string.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { + // eslint-disable-next-line no-console + console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); +//# sourceMappingURL=validateNamespace.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": +/*!******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createI18n: () => (/* binding */ createI18n) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); + + +function 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; } + +function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } + +/** + * External dependencies + */ + +/** + * @typedef {Record} LocaleData + */ + +/** + * Default locale data to use for Tannin domain when not otherwise provided. + * Assumes an English plural forms expression. + * + * @type {LocaleData} + */ + +var DEFAULT_LOCALE_DATA = { + '': { + /** @param {number} n */ + plural_forms: function plural_forms(n) { + return n === 1 ? 0 : 1; + } + } +}; +/* + * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, + * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. + */ + +var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; +/** + * @typedef {(domain?: string) => LocaleData} GetLocaleData + * + * Returns locale data by domain in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData + * + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData + * + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** @typedef {() => void} SubscribeCallback */ + +/** @typedef {() => void} UnsubscribeCallback */ + +/** + * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe + * + * Subscribes to changes of locale data + */ + +/** + * @typedef {(domain?: string) => string} GetFilterDomain + * Retrieve the domain to use when calling domain-specific filters. + */ + +/** + * @typedef {(text: string, domain?: string) => string} __ + * + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + */ + +/** + * @typedef {(text: string, context: string, domain?: string) => string} _x + * + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n + * + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx + * + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + */ + +/** + * @typedef {() => boolean} IsRtl + * + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + */ + +/** + * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation + * + * Check if there is a translation for a given string in singular form. + */ + +/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ + +/** + * An i18n instance + * + * @typedef I18n + * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. + * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. + * @property {__} __ Retrieve the translation of text. + * @property {_x} _x Retrieve translated string with gettext context. + * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied + * number. + * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * @property {IsRtl} isRTL Check if current locale is RTL. + * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. + */ + +/** + * Create an i18n instance + * + * @param {LocaleData} [initialData] Locale data configuration. + * @param {string} [initialDomain] Domain for which configuration applies. + * @param {Hooks} [hooks] Hooks implementation. + * @return {I18n} I18n instance + */ + +var createI18n = function createI18n(initialData, initialDomain, hooks) { + /** + * The underlying instance of Tannin to which exported functions interface. + * + * @type {Tannin} + */ + var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); + var listeners = new Set(); + + var notifyListeners = function notifyListeners() { + listeners.forEach(function (listener) { + return listener(); + }); + }; + /** + * Subscribe to changes of locale data. + * + * @param {SubscribeCallback} callback Subscription callback. + * @return {UnsubscribeCallback} Unsubscribe callback. + */ + + + var subscribe = function subscribe(callback) { + listeners.add(callback); + return function () { + return listeners.delete(callback); + }; + }; + /** @type {GetLocaleData} */ + + + var getLocaleData = function getLocaleData() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return tannin.data[domain]; + }; + /** + * @param {LocaleData} [data] + * @param {string} [domain] + */ + + + var doSetLocaleData = function doSetLocaleData(data) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits + // a plural forms expression). + + tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); + }; + /** @type {SetLocaleData} */ + + + var setLocaleData = function setLocaleData(data, domain) { + doSetLocaleData(data, domain); + notifyListeners(); + }; + /** @type {ResetLocaleData} */ + + + var resetLocaleData = function resetLocaleData(data, domain) { + // Reset all current Tannin locale data. + tannin.data = {}; // Reset cached plural forms functions cache. + + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + /** + * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not + * otherwise previously assigned. + * + * @param {string|undefined} domain Domain to retrieve the translated text. + * @param {string|undefined} context Context information for the translators. + * @param {string} single Text to translate if non-plural. Used as + * fallback return value on a caught error. + * @param {string} [plural] The text to be used if the number is + * plural. + * @param {number} [number] The number to compare against to use + * either the singular or plural form. + * + * @return {string} The translated string. + */ + + + var dcnpgettext = function dcnpgettext() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + var context = arguments.length > 1 ? arguments[1] : undefined; + var single = arguments.length > 2 ? arguments[2] : undefined; + var plural = arguments.length > 3 ? arguments[3] : undefined; + var number = arguments.length > 4 ? arguments[4] : undefined; + + if (!tannin.data[domain]) { + // use `doSetLocaleData` to set silently, without notifying listeners + doSetLocaleData(undefined, domain); + } + + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + /** @type {GetFilterDomain} */ + + + var getFilterDomain = function getFilterDomain() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return domain; + }; + /** @type {__} */ + + + var __ = function __(text, domain) { + var translation = dcnpgettext(domain, undefined, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext', translation, text, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) + ); + }; + /** @type {_x} */ + + + var _x = function _x(text, context, domain) { + var translation = dcnpgettext(domain, context, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation based on context information. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) + ); + }; + /** @type {_n} */ + + + var _n = function _n(single, plural, number, domain) { + var translation = dcnpgettext(domain, undefined, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) + ); + }; + /** @type {_nx} */ + + + var _nx = function _nx(single, plural, number, context, domain) { + var translation = dcnpgettext(domain, context, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string with gettext context. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) + ); + }; + /** @type {IsRtl} */ + + + var isRTL = function isRTL() { + return 'rtl' === _x('ltr', 'text direction'); + }; + /** @type {HasTranslation} */ + + + var hasTranslation = function hasTranslation(single, context, domain) { + var _tannin$data, _tannin$data2; + + var key = context ? context + "\x04" + single : single; + 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]); + + if (hooks) { + /** + * Filters the presence of a translation in the locale data. + * + * @param {boolean} hasTranslation Whether the translation is present or not.. + * @param {string} single The singular form of the translated text (used as key in locale data) + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation', result, single, context, domain); + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); + } + + return result; + }; + + if (initialData) { + setLocaleData(initialData, initialDomain); + } + + if (hooks) { + /** + * @param {string} hookName + */ + var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + + hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); + hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); + } + + return { + getLocaleData: getLocaleData, + setLocaleData: setLocaleData, + resetLocaleData: resetLocaleData, + subscribe: subscribe, + __: __, + _x: _x, + _n: _n, + _nx: _nx, + isRTL: isRTL, + hasTranslation: hasTranslation + }; +}; +//# sourceMappingURL=create-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* binding */ __), +/* harmony export */ _n: () => (/* binding */ _n), +/* harmony export */ _nx: () => (/* binding */ _nx), +/* harmony export */ _x: () => (/* binding */ _x), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), +/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), +/* harmony export */ isRTL: () => (/* binding */ isRTL), +/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), +/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), +/* harmony export */ subscribe: () => (/* binding */ subscribe) +/* harmony export */ }); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); +/** + * Internal dependencies + */ + +/** + * WordPress dependencies + */ + + +var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); +/** + * Default, singleton instance of `I18n`. + */ + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); +/* + * Comments in this file are duplicated from ./i18n due to + * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 + */ + +/** + * @typedef {import('./create-i18n').LocaleData} LocaleData + * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback + * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback + */ + +/** + * Returns locale data by domain in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {string} [domain] Domain for which to get the data. + * @return {LocaleData} Locale data. + */ + +var getLocaleData = i18n.getLocaleData.bind(i18n); +/** + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var setLocaleData = i18n.setLocaleData.bind(i18n); +/** + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var resetLocaleData = i18n.resetLocaleData.bind(i18n); +/** + * Subscribes to changes of locale data + * + * @param {SubscribeCallback} callback Subscription callback + * @return {UnsubscribeCallback} Unsubscribe callback + */ + +var subscribe = i18n.subscribe.bind(i18n); +/** + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + * + * @param {string} text Text to translate. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated text. + */ + +var __ = i18n.__.bind(i18n); +/** + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + * + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated context string without pipe. + */ + +var _x = i18n._x.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _n = i18n._n.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _nx = i18n._nx.bind(i18n); +/** + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + * + * @return {boolean} Whether locale is RTL. + */ + +var isRTL = i18n.isRTL.bind(i18n); +/** + * Check if there is a translation for a given string (in singular form). + * + * @param {string} single Singular form of the string to look up. + * @param {string} [context] Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * @return {boolean} Whether the translation exists or not. + */ + +var hasTranslation = i18n.hasTranslation.bind(i18n); +//# sourceMappingURL=default-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), +/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), +/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), +/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), +/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), +/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), +/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), +/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), +/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), +/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), +/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), +/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) +/* harmony export */ }); +/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": +/*!**************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ sprintf: () => (/* binding */ sprintf) +/* harmony export */ }); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); +/** + * External dependencies + */ + + +/** + * Log to console, once per message; or more precisely, per referentially equal + * argument set. Because Jed throws errors, we log these to the console instead + * to avoid crashing the application. + * + * @param {...*} args Arguments to pass to `console.error` + */ + +var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console + +/** + * Returns a formatted string. If an error occurs in applying the format, the + * original format string is returned. + * + * @param {string} format The format of the string to generate. + * @param {...*} args Arguments to apply to the format. + * + * @see https://www.npmjs.com/package/sprintf-js + * + * @return {string} The formatted string. + */ + +function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); + } catch (error) { + logErrorOnce('sprintf error: \n\n' + error.toString()); + return format; + } +} +//# sourceMappingURL=sprintf.js.map + +/***/ }), + +/***/ "./js/src/addons-page/addons/categorizeAddons.js": +/*!*******************************************************!*\ + !*** ./js/src/addons-page/addons/categorizeAddons.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedAddons: () => (/* binding */ buildCategorizedAddons), +/* harmony export */ categorizedAddons: () => (/* binding */ categorizedAddons) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * Internal dependencies + */ + + +var categorizedAddons = {}; +categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE] = []; +categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE] = []; + +/** + * Builds a categorized list of addons. + * + * @return {void} + */ +function buildCategorizedAddons() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + addons = _getElements.addons; + addons.forEach(function (addon) { + // Extract and split the categories from data attribute + var dataCategories = addon.getAttribute('data-categories'); + if (!dataCategories) { + return; + } + var categories = dataCategories.split(','); + categories.forEach(function (category) { + // Initialize the category array if not already done + if (!categorizedAddons[category]) { + categorizedAddons[category] = []; + } + + // Add the addon to the appropriate category + categorizedAddons[category].push(addon); + }); + }); +} + +/***/ }), + +/***/ "./js/src/addons-page/addons/index.js": +/*!********************************************!*\ + !*** ./js/src/addons-page/addons/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedAddons), +/* harmony export */ categorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.categorizedAddons) +/* harmony export */ }); +/* harmony import */ var _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeAddons */ "./js/src/addons-page/addons/categorizeAddons.js"); + + +/***/ }), + +/***/ "./js/src/addons-page/constants.js": +/*!*****************************************!*\ + !*** ./js/src/addons-page/constants.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PLANS: () => (/* binding */ PLANS), +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ VIEWS: () => (/* binding */ VIEWS), +/* harmony export */ addonRequestURL: () => (/* binding */ addonRequestURL) +/* harmony export */ }); +var addonRequestURL = window.frmAddonsVars.addonRequestURL; + +var PREFIX = 'frm-addons'; +var VIEWS = { + AVAILABLE: 'available-addons', + ACTIVE: 'active-addons' +}; +var PLANS = { + BASIC: 'basic', + PLUS: 'plus', + BUSINESS: 'business', + ELITE: 'elite' +}; + +/***/ }), + +/***/ "./js/src/addons-page/elements/elements.js": +/*!*************************************************!*\ + !*** ./js/src/addons-page/elements/elements.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + bodyContent = _getElements.bodyContent, + sidebar = _getElements.sidebar; +bodyContent.querySelectorAll('.frm-card-item:not(.plugin-card-formidable-pro)').forEach(function (addon) { + var categories = addon.dataset.categories; + switch (true) { + case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS): + addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); + break; + case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS): + addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); + break; + case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC): + addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); + break; + } +}); +(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ + // Body elements + upgradeBanner: document.getElementById('frm-upgrade-banner'), + // Category elements + availableCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE, "\"]")), + activeCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE, "\"]")), + categoriesTopDivider: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-divider")), + basicPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC, "\"]")), + plusPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, "\"]")), + businessPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, "\"]")), + elitePlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE, "\"]")), + // Card elements + addonsList: document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")), + addons: bodyContent.querySelectorAll('.frm-card-item'), + availableAddons: bodyContent.querySelectorAll('.frm-card-item:not(.frm-locked-item)'), + addonsToggle: bodyContent.querySelectorAll('.frm_toggle_block'), + // Add children of the bodyContent to the elements object + bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children +}); + + +/***/ }), + +/***/ "./js/src/addons-page/elements/index.js": +/*!**********************************************!*\ + !*** ./js/src/addons-page/elements/index.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/addons-page/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/addons-page/events/addonToggleListener.js": +/*!**********************************************************!*\ + !*** ./js/src/addons-page/events/addonToggleListener.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui/ */ "./js/src/addons-page/ui/index.js"); +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +/** + * Internal dependencies + */ + + +var targetButton; + +/** + * Manages event handling for addons toggle. + * + * @return {void} + */ +function addAddonToggleEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + addonsToggle = _getElements.addonsToggle; + addonsToggle.forEach(function (addonToggle) { + return addonToggle.addEventListener('click', onAddonToggleClick); + }); + wp.hooks.addAction('frm_update_addon_state', 'frmAddonPage', function () { + (0,_ui___WEBPACK_IMPORTED_MODULE_1__.setupActiveCategory)(); + }); +} + +/** + * Handles the click event on the addon toggle. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onAddonToggleClick = function onAddonToggleClick(event) { + var _targetButton; + if ((_targetButton = targetButton) !== null && _targetButton !== void 0 && _targetButton.classList.contains('frm_loading_button')) { + return; + } + var addonToggle = event.currentTarget; + var addon = addonToggle.closest('.frm-card-item'); + var actionMap = new Map([['frm-addon-not-installed', '.frm-install-addon'], ['frm-addon-installed', '.frm-activate-addon'], ['frm-addon-active', '.frm-deactivate-addon']]); + var _iterator = _createForOfIteratorHelper(actionMap.entries()), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _slicedToArray(_step.value, 2), + className = _step$value[0], + selector = _step$value[1]; + if (addon.classList.contains(className)) { + targetButton = addon.querySelector(selector); + targetButton.click(); + break; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addAddonToggleEvents); + +/***/ }), + +/***/ "./js/src/addons-page/events/index.js": +/*!********************************************!*\ + !*** ./js/src/addons-page/events/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); +/* harmony import */ var _addonToggleListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addonToggleListener */ "./js/src/addons-page/events/addonToggleListener.js"); +/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./searchListener */ "./js/src/addons-page/events/searchListener.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Attaches event listeners for handling user interactions. + * + * @return {void} + */ +function addEventListeners() { + (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); + wp.hooks.addAction('frmPage.onCategoryClick', 'frmAddonsPage', function (selectedCategory) { + (0,_ui__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory)(selectedCategory); + }); + (0,_addonToggleListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_searchListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + +/***/ }), + +/***/ "./js/src/addons-page/events/searchListener.js": +/*!*****************************************************!*\ + !*** ./js/src/addons-page/events/searchListener.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); +/** + * Internal dependencies + */ + + + +var initSearch = window.frmDom.search.init; + +/** + * Adds search-related event listeners by calling the 'initSearch' function. + * + * @see frmDom.search method + * @return {void} + */ +function addSearchEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + searchInput = _getElements.searchInput; + initSearch(searchInput, 'frm-card-item', { + handleSearchResult: handleSearchResult + }); +} + +/** + * Manages UI state based on search results and input value. + * + * @private + * @param {Object} args Contains flags for search status. + * @param {boolean} args.foundSomething True if search yielded results. + * @param {boolean} args.notEmptySearchText True if search input is not empty. + * @param {Event} event The event object (input, search, or change event). + * @return {void} + */ +function handleSearchResult(_ref, event) { + var foundSomething = _ref.foundSomething, + notEmptySearchText = _ref.notEmptySearchText; + // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, + // triggering this method twice on 'x' button click. + if (event && event.type === 'search' && event.target.value === '') { + return; + } + var state = (0,_shared__WEBPACK_IMPORTED_MODULE_1__.getState)(); + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + allItemsCategory = _getElements2.allItemsCategory; + (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('notEmptySearchText', notEmptySearchText); + + // Revert to 'All Templates' if search and selected category are both empty + if (!state.notEmptySearchText && !state.selectedCategory) { + allItemsCategory.dispatchEvent(new Event('click', { + bubbles: true + })); + return; + } + + // Display search state if a category is selected + if (state.selectedCategory) { + (0,_ui__WEBPACK_IMPORTED_MODULE_2__.showSearchState)(notEmptySearchText); + + // Setting "selectedCategory" to an empty string as a flag for search state + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('selectedCategory', ''); + } + } + (0,_ui__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements)(foundSomething); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); + +/***/ }), + +/***/ "./js/src/addons-page/shared/index.js": +/*!********************************************!*\ + !*** ./js/src/addons-page/shared/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/addons-page/shared/pageState.js"); + + +/***/ }), + +/***/ "./js/src/addons-page/shared/pageState.js": +/*!************************************************!*\ + !*** ./js/src/addons-page/shared/pageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/** + * External dependencies + */ + + +// NOTE: +// Use setState() here to add new states on the Add-Ons page. +// Check the 'core/page-skeleton' package for shared states you can use. + + + +/***/ }), + +/***/ "./js/src/addons-page/ui/index.js": +/*!****************************************!*\ + !*** ./js/src/addons-page/ui/index.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements), +/* harmony export */ setupActiveCategory: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupActiveCategory), +/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupInitialView), +/* harmony export */ showEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_3__.showEmptyState), +/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.showSearchState), +/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory) +/* harmony export */ }); +/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/addons-page/ui/setupInitialView.js"); +/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/addons-page/ui/showSelectedCategory.js"); +/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./searchState */ "./js/src/addons-page/ui/searchState.js"); +/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/addons-page/ui/showEmptyState.js"); + + + + + +/***/ }), + +/***/ "./js/src/addons-page/ui/searchState.js": +/*!**********************************************!*\ + !*** ./js/src/addons-page/ui/searchState.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), +/* harmony export */ showSearchState: () => (/* binding */ showSearchState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Updates the UI to display the search state. + * + * @param {boolean} notEmptySearchText True if search input is not empty. + * @return {void} + */ +function showSearchState(notEmptySearchText) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + bodyContent = _getElements.bodyContent, + bodyContentChildren = _getElements.bodyContentChildren, + addonsList = _getElements.addonsList; + + // Remove highlighting from the currently selected category if the search text is not empty + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); + } + + // Hide non-relevant elements in the body content + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(addonsList); + + // Smoothly display the updated UI elements + new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent).fadeIn(); +} + +/** + * Displays search results based on search outcome. + * + * @param {boolean} foundSomething True if search yielded results. + * @return {void} + */ +function displaySearchElements(foundSomething) { + // Show empty state if no templates found + if (!foundSomething) { + (0,___WEBPACK_IMPORTED_MODULE_5__.showEmptyState)(); + return; + } + + // Hide empty state if currently displayed + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + emptyState = _getElements2.emptyState; + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); + } +} + +/***/ }), + +/***/ "./js/src/addons-page/ui/setupInitialView.js": +/*!***************************************************!*\ + !*** ./js/src/addons-page/ui/setupInitialView.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupActiveCategory: () => (/* binding */ setupActiveCategory), +/* harmony export */ setupInitialView: () => (/* binding */ setupInitialView) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * External dependencies + */ + + + + +/** + * Internal dependencies + */ + + + +var CAT_COUNT_CLASS = ".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-cat-count"); + +/** + * Sets up the initial view, performing any required + * DOM manipulations for proper element presentation. + * + * @return {void} + */ +function setupInitialView() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + sidebar = _getElements.sidebar, + searchInput = _getElements.searchInput, + bodyContent = _getElements.bodyContent; + var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); + searchInput.value = ''; + setupActiveCategory(); + setupAvailableCategory(); + setupAllAddonsCategory(); + setupPlansCategory(); + + // Smoothly display the updated UI elements + bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + bodyContentAnimate.fadeIn(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(sidebar); +} + +/** + * Sets up the "Active" category, updating the + * categorizedAddons object and the category count. + * + * @return {void} + */ +function setupActiveCategory() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + activeCategory = _getElements2.activeCategory, + availableCategory = _getElements2.availableCategory, + categoriesTopDivider = _getElements2.categoriesTopDivider; + var activeAddons = document.querySelectorAll('.frm-addon-active:not(.frm-locked-item)'); + if (activeAddons.length === 0) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([activeCategory, availableCategory, categoriesTopDivider]); + return; + } + _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.ACTIVE] = activeAddons; + + // Set "Active" category count + activeCategory.querySelector(CAT_COUNT_CLASS).textContent = activeAddons.length; +} + +/** + * Sets up the "Available" category, updating the + * categorizedAddons object and the category count. + * + * @private + * @return {void} + */ +function setupAvailableCategory() { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + bodyContent = _getElements3.bodyContent, + availableCategory = _getElements3.availableCategory, + availableAddons = _getElements3.availableAddons; + _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.AVAILABLE] = availableAddons; + + // Set "Available" category count + if (availableCategory) { + availableCategory.querySelector(CAT_COUNT_CLASS).textContent = availableAddons.length; + var upgradeBannerAvailableCount = bodyContent.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_5__.PREFIX, "-available-count")); + if (upgradeBannerAvailableCount) { + upgradeBannerAvailableCount.textContent = availableAddons.length; + } + } +} + +/** + * Sets up the "All Add-Ons" category, updating the + * category count. + * + * @private + * @return {void} + */ +function setupAllAddonsCategory() { + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + allItemsCategory = _getElements4.allItemsCategory, + addons = _getElements4.addons; + + // Set "All Add-Ons" category count + allItemsCategory.querySelector(CAT_COUNT_CLASS).textContent = addons.length; +} + +/** + * Sets up the "All Add-Ons" category, updating the + * category count. + * + * @private + * @return {void} + */ +function setupPlansCategory() { + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + basicPlanCategory = _getElements5.basicPlanCategory, + plusPlanCategory = _getElements5.plusPlanCategory, + businessPlanCategory = _getElements5.businessPlanCategory, + elitePlanCategory = _getElements5.elitePlanCategory; + var getCount = function getCount(category) { + return parseInt(category.querySelector(CAT_COUNT_CLASS).textContent, 10) || 0; + }; + + // The "Formidable Pro" add-on is included in all plans, so we just consider that in the basicCount + var basicCount = getCount(basicPlanCategory); + var plusCount = getCount(plusPlanCategory) - 1; + var businessCount = getCount(businessPlanCategory) - 1; + var eliteCount = getCount(elitePlanCategory) - 1; + + // Update the text content for each category + plusPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount; + businessPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount; + elitePlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount + eliteCount; +} + +/***/ }), + +/***/ "./js/src/addons-page/ui/showEmptyState.js": +/*!*************************************************!*\ + !*** ./js/src/addons-page/ui/showEmptyState.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showEmptyState: () => (/* binding */ showEmptyState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Display the search-empty state. + * + * @return {void} + */ +function showEmptyState() { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory; + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyState = _getElements.emptyState, + emptyStateButton = _getElements.emptyStateButton, + emptyStateTitle = _getElements.emptyStateTitle, + emptyStateText = _getElements.emptyStateText; + emptyState.setAttribute('data-view', selectedCategory); + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No add-ons found', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any add-ons that match your criteria.', 'formidable'); + emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request Add-On', 'formidable'); + emptyStateButton.href = _constants__WEBPACK_IMPORTED_MODULE_4__.addonRequestURL; + emptyStateButton.setAttribute('target', '_blank'); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); +} + +/***/ }), + +/***/ "./js/src/addons-page/ui/showSelectedCategory.js": +/*!*******************************************************!*\ + !*** ./js/src/addons-page/ui/showSelectedCategory.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); +/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Show addons based on selected category. + * + * @param {string} selectedCategory The selected category to display addons for. + * @return {void} + */ +function showSelectedCategory(selectedCategory) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements.bodyContent, + addons = _getElements.addons, + emptyState = _getElements.emptyState, + upgradeBanner = _getElements.upgradeBanner; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(emptyState); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(upgradeBanner); + bodyContent.dataset.category = selectedCategory; + if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === selectedCategory) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(addons); + return; + } + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(addons); + if (_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory].length === 0) { + (0,___WEBPACK_IMPORTED_MODULE_4__.showEmptyState)(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(upgradeBanner); + } else { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory]); + } +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/factory/createPageElements.js": +/*!***************************************************!*\ + !*** ./js/src/core/factory/createPageElements.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* binding */ createPageElements) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page elements manager. + * + * @param {Object} [initialElements={}] An object containing initial DOM elements. + * @throws {Error} Throws an error if the `initialElements` is not an object. + * @return {Object} An object with methods to get and add elements. + */ +function createPageElements() { + var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialElements) !== 'object' || initialElements === null) { + throw new Error('createPageElements: initialElements must be a non-null object'); + } + var elements = initialElements; + + /** + * Retrieve the initialized essential DOM elements. + * + * @return {Object} The initialized elements object. + */ + function getElements() { + return elements; + } + + /** + * Add new elements to the elements object. + * + * @param {Object} newElements An object containing new elements to be added. + * @throws {Error} Throws an error if the `newElements` is not a non-null object. + * @return {void} Updates the elements object by merging the new elements into it. + */ + function addElements(newElements) { + if (_typeof(newElements) !== 'object' || newElements === null) { + throw new Error('addElements: newElements must be a non-null object'); + } + elements = _objectSpread(_objectSpread({}, elements), newElements); + } + return { + getElements: getElements, + addElements: addElements + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageState.js": +/*!************************************************!*\ + !*** ./js/src/core/factory/createPageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageState: () => (/* binding */ createPageState) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page state manager. + * + * @param {Object} [initialState={}] An object containing the initial state. + * @throws {Error} Throws an error if the `initialState` is not a plain object. + * @return {Object} An object with methods to initialize, get, and set the page state. + */ +function createPageState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialState) !== 'object' || initialState === null) { + throw new Error('createPageState: initialState must be a non-null object'); + } + var state = initialState; + + /** + * Returns the current page state. + * + * @return {Object|null} The current state of the page or null if not initialized. + */ + var getState = function getState() { + return state; + }; + + /** + * Returns a specific property from the current page state. + * + * @param {string} propertyName The name of the property to retrieve. + * @return {*} The value of the specified property, or null if it doesn't exist. + */ + var getSingleState = function getSingleState(propertyName) { + var value = Reflect.get(state, propertyName); + + // We convert `undefined` to `null` for a consistent API. + // This makes it easier for users to handle the results since all missing properties return `null`. + return value === undefined ? null : value; + }; + + /** + * Updates the page state with new values. + * + * @param {Object} newState The new values to update the state with. + * @throws {Error} Throws an error if `newState` is not a plain object. + * @return {void} + */ + var setState = function setState(newState) { + if (_typeof(newState) !== 'object' || newState === null) { + throw new Error('setState: newState must be a non-null object'); + } + state = _objectSpread(_objectSpread({}, state), newState); + }; + + /** + * Updates a specific property in the page state with a new value. + * + * @param {string} propertyName The name of the property to update. + * @param {*} value The new value to set for the property. + * @return {void} + */ + var setSingleState = function setSingleState(propertyName, value) { + if (Reflect.has(state, propertyName)) { + Reflect.set(state, propertyName, value); + } + }; + return { + getState: getState, + getSingleState: getSingleState, + setState: setState, + setSingleState: setSingleState + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/index.js": +/*!**************************************!*\ + !*** ./js/src/core/factory/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), +/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) +/* harmony export */ }); +/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); +/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/constants.js": +/*!************************************************!*\ + !*** ./js/src/core/page-skeleton/constants.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* binding */ VIEWS) +/* harmony export */ }); +var PREFIX = 'frm-page-skeleton'; +var SEARCH_RESULT_ITEM = 'frm-card-item'; +var VIEWS = { + ALL_ITEMS: 'all-items' +}; + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/elements.js": +/*!********************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/elements.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* binding */ addElements), +/* harmony export */ getElements: () => (/* binding */ getElements) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var bodyContent = document.getElementById('post-body-content'); +var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); + +// Append empty state elements to body content +var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); +bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); +var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); +var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ + bodyContent: bodyContent, + // Sidebar elements + sidebar: sidebar, + searchInput: sidebar.querySelector('.frm-search-input'), + categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), + allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) + }, emptyStateElements)), + getElements = _createPageElements.getElements, + addElements = _createPageElements.addElements; + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": +/*!*****************************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), +/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _window$frmDom = window.frmDom, + tag = _window$frmDom.tag, + div = _window$frmDom.div, + a = _window$frmDom.a, + img = _window$frmDom.img; + +/** + * Create and return the Empty State HTML element. + * + * @return {HTMLElement} The Empty State element. + */ +function createEmptyStateElement() { + var button = a({ + className: 'button button-primary frm-button-primary' + }); + button.setAttribute('role', 'button'); + return div({ + id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), + className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), + children: [img({ + src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), + alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') + }), div({ + className: 'frmcenter', + children: [tag('h2', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") + }), tag('p', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") + })] + }), button] + }); +} + +/** + * Return the elements related to the Empty State. + * + * @return {Object} Object containing Empty State related DOM elements. + */ +function getEmptyStateElements() { + var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); + return { + emptyState: emptyState, + emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), + emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), + emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') + }; +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/index.js": +/*!*****************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/categoryListener.js": +/*!**************************************************************!*\ + !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Manages event handling for sidebar category links. + * + * @return {void} + */ +function addCategoryEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + categoryItems = _getElements.categoryItems; + + // Attach click and keyboard event listeners to each sidebar category + categoryItems.forEach(function (category) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); + category.addEventListener('keydown', onCategoryKeydown); + }); +} + +/** + * Handles the click event on a category item. + * + * @private + * @param {Event} event The click event object. + */ +var onCategoryClick = function onCategoryClick(event) { + var clickedCategory = event.currentTarget; + var newSelectedCategory = clickedCategory.getAttribute('data-category'); + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory, + selectedCategoryEl = _getState.selectedCategoryEl, + notEmptySearchText = _getState.notEmptySearchText; + + // If the selected category hasn't changed, return early + if (selectedCategory === newSelectedCategory) { + return; + } + + /** + * Filter hook to modify the selected category. + * + * @param {string} selectedCategory The selected category + */ + selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); + + // Highlight the newly clicked category and update the application state + selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + selectedCategoryEl = clickedCategory; + selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ + selectedCategory: selectedCategory, + selectedCategoryEl: selectedCategoryEl + }); + + // Reset the search input if it contains text + if (notEmptySearchText) { + (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); + } + + /** + * Trigger custom action to update category content. + * + * @param {string} selectedCategory The selected category. + */ + wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); + + // Smoothly display the updated UI elements + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements2.bodyContent; + new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); +}; + +/** + * Handles the keyboard event on a category item. + * + * @param {KeyboardEvent} event The keyboard event object. + * @return {void} + */ +function onCategoryKeydown(event) { + // Only respond to 'Enter' or 'Space' key presses + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + onCategoryClick(event); + } +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/events/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), +/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); +/** + * Internal dependencies + */ + + +/** + * Resets the value of the search input and triggers an input event. + * + * @return {void} + */ +function resetSearchInput() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + searchInput = _getElements.searchInput; + searchInput.value = ''; + searchInput.dispatchEvent(new Event('input', { + bubbles: true + })); +} + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/index.js": +/*!********************************************!*\ + !*** ./js/src/core/page-skeleton/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), +/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), +/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), +/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); + + + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/pageState.js": +/*!*******************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/pageState.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* binding */ getSingleState), +/* harmony export */ getState: () => (/* binding */ getState), +/* harmony export */ setSingleState: () => (/* binding */ setSingleState), +/* harmony export */ setState: () => (/* binding */ setState) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + allItemsCategory = _getElements.allItemsCategory; +var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ + notEmptySearchText: false, + selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, + selectedCategoryEl: allItemsCategory + }), + getState = _createPageState.getState, + getSingleState = _createPageState.getSingleState, + setState = _createPageState.setState, + setSingleState = _createPageState.setSingleState; + + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/** + * Removes a query parameter and updates history with replaceState. + * + * @param {string} paramName The query parameter to remove. + * @return {void} + */ +var removeParamFromHistory = function removeParamFromHistory(paramName) { + return history.replaceState({}, '', removeQueryParam(paramName)); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./node_modules/memize/index.js": +/*!**************************************!*\ + !*** ./node_modules/memize/index.js ***! + \**************************************/ +/***/ ((module) => { + +/** + * Memize options object. + * + * @typedef MemizeOptions + * + * @property {number} [maxSize] Maximum size of the cache. + */ + +/** + * Internal cache entry. + * + * @typedef MemizeCacheNode + * + * @property {?MemizeCacheNode|undefined} [prev] Previous node. + * @property {?MemizeCacheNode|undefined} [next] Next node. + * @property {Array<*>} args Function arguments for cache + * entry. + * @property {*} val Function result. + */ + +/** + * Properties of the enhanced function for controlling cache. + * + * @typedef MemizeMemoizedFunction + * + * @property {()=>void} clear Clear the cache. + */ + +/** + * Accepts a function to be memoized, and returns a new memoized function, with + * optional options. + * + * @template {Function} F + * + * @param {F} fn Function to memoize. + * @param {MemizeOptions} [options] Options object. + * + * @return {F & MemizeMemoizedFunction} Memoized function. + */ +function memize( fn, options ) { + var size = 0; + + /** @type {?MemizeCacheNode|undefined} */ + var head; + + /** @type {?MemizeCacheNode|undefined} */ + var tail; + + options = options || {}; + + function memoized( /* ...args */ ) { + var node = head, + len = arguments.length, + args, i; + + searchCache: while ( node ) { + // Perform a shallow equality test to confirm that whether the node + // under test is a candidate for the arguments passed. Two arrays + // are shallowly equal if their length matches and each entry is + // strictly equal between the two sets. Avoid abstracting to a + // function which could incur an arguments leaking deoptimization. + + // Check whether node arguments match arguments length + if ( node.args.length !== arguments.length ) { + node = node.next; + continue; + } + + // Check whether node arguments match arguments values + for ( i = 0; i < len; i++ ) { + if ( node.args[ i ] !== arguments[ i ] ) { + node = node.next; + continue searchCache; + } + } + + // At this point we can assume we've found a match + + // Surface matched node to head if not already + if ( node !== head ) { + // As tail, shift to previous. Must only shift if not also + // head, since if both head and tail, there is no previous. + if ( node === tail ) { + tail = node.prev; + } + + // Adjust siblings to point to each other. If node was tail, + // this also handles new tail's empty `next` assignment. + /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; + if ( node.next ) { + node.next.prev = node.prev; + } + + node.next = head; + node.prev = null; + /** @type {MemizeCacheNode} */ ( head ).prev = node; + head = node; + } + + // Return immediately + return node.val; + } + + // No cached value found. Continue to insertion phase: + + // Create a copy of arguments (avoid leaking deoptimization) + args = new Array( len ); + for ( i = 0; i < len; i++ ) { + args[ i ] = arguments[ i ]; + } + + node = { + args: args, + + // Generate the result from original function + val: fn.apply( null, args ), + }; + + // Don't need to check whether node is already head, since it would + // have been returned above already if it was + + // Shift existing head down list + if ( head ) { + head.prev = node; + node.next = head; + } else { + // If no head, follows that there's no tail (at initial or reset) + tail = node; + } + + // Trim tail if we're reached max size and are pending cache insertion + if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { + tail = /** @type {MemizeCacheNode} */ ( tail ).prev; + /** @type {MemizeCacheNode} */ ( tail ).next = null; + } else { + size++; + } + + head = node; + + return node.val; + } + + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + + if ( false ) {} + + // Ignore reason: There's not a clear solution to create an intersection of + // the function with additional properties, where the goal is to retain the + // function signature of the incoming argument and add control properties + // on the return value. + + // @ts-ignore + return memoized; +} + +module.exports = memize; + + +/***/ }), + +/***/ "./node_modules/sprintf-js/src/sprintf.js": +/*!************************************************!*\ + !*** ./node_modules/sprintf-js/src/sprintf.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports.sprintf = sprintf + exports.vsprintf = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line + + +/***/ }), + +/***/ "./node_modules/tannin/index.js": +/*!**************************************!*\ + !*** ./node_modules/tannin/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Tannin) +/* harmony export */ }); +/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); + + +/** + * Tannin constructor options. + * + * @typedef {Object} TanninOptions + * + * @property {string} [contextDelimiter] Joiner in string lookup with context. + * @property {Function} [onMissingKey] Callback to invoke when key missing. + */ + +/** + * Domain metadata. + * + * @typedef {Object} TanninDomainMetadata + * + * @property {string} [domain] Domain name. + * @property {string} [lang] Language code. + * @property {(string|Function)} [plural_forms] Plural forms expression or + * function evaluator. + */ + +/** + * Domain translation pair respectively representing the singular and plural + * translation. + * + * @typedef {[string,string]} TanninTranslation + */ + +/** + * Locale data domain. The key is used as reference for lookup, the value an + * array of two string entries respectively representing the singular and plural + * translation. + * + * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain + */ + +/** + * Jed-formatted locale data. + * + * @see http://messageformat.github.io/Jed/ + * + * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData + */ + +/** + * Default Tannin constructor options. + * + * @type {TanninOptions} + */ +var DEFAULT_OPTIONS = { + contextDelimiter: '\u0004', + onMissingKey: null, +}; + +/** + * Given a specific locale data's config `plural_forms` value, returns the + * expression. + * + * @example + * + * ``` + * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' + * ``` + * + * @param {string} pf Locale data plural forms. + * + * @return {string} Plural forms expression. + */ +function getPluralExpression( pf ) { + var parts, i, part; + + parts = pf.split( ';' ); + + for ( i = 0; i < parts.length; i++ ) { + part = parts[ i ].trim(); + if ( part.indexOf( 'plural=' ) === 0 ) { + return part.substr( 7 ); + } + } +} + +/** + * Tannin constructor. + * + * @class + * + * @param {TanninLocaleData} data Jed-formatted locale data. + * @param {TanninOptions} [options] Tannin options. + */ +function Tannin( data, options ) { + var key; + + /** + * Jed-formatted locale data. + * + * @name Tannin#data + * @type {TanninLocaleData} + */ + this.data = data; + + /** + * Plural forms function cache, keyed by plural forms string. + * + * @name Tannin#pluralForms + * @type {Object} + */ + this.pluralForms = {}; + + /** + * Effective options for instance, including defaults. + * + * @name Tannin#options + * @type {TanninOptions} + */ + this.options = {}; + + for ( key in DEFAULT_OPTIONS ) { + this.options[ key ] = options !== undefined && key in options + ? options[ key ] + : DEFAULT_OPTIONS[ key ]; + } +} + +/** + * Returns the plural form index for the given domain and value. + * + * @param {string} domain Domain on which to calculate plural form. + * @param {number} n Value for which plural form is to be calculated. + * + * @return {number} Plural form index. + */ +Tannin.prototype.getPluralForm = function( domain, n ) { + var getPluralForm = this.pluralForms[ domain ], + config, plural, pf; + + if ( ! getPluralForm ) { + config = this.data[ domain ][ '' ]; + + pf = ( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + if ( typeof pf !== 'function' ) { + plural = getPluralExpression( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); + } + + getPluralForm = this.pluralForms[ domain ] = pf; + } + + return getPluralForm( n ); +}; + +/** + * Translate a string. + * + * @param {string} domain Translation domain. + * @param {string|void} context Context distinguishing terms of the same name. + * @param {string} singular Primary key for translation lookup. + * @param {string=} plural Fallback value used for non-zero plural + * form index. + * @param {number=} n Value to use in calculating plural form. + * + * @return {string} Translated string. + */ +Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { + var index, key, entry; + + if ( n === undefined ) { + // Default to singular. + index = 0; + } else { + // Find index by evaluating plural form for value. + index = this.getPluralForm( domain, n ); + } + + key = singular; + + // If provided, context is prepended to key with delimiter. + if ( context ) { + key = context + this.options.contextDelimiter + singular; + } + + entry = this.data[ domain ][ key ]; + + // Verify not only that entry exists, but that the intended index is within + // range and non-empty. + if ( entry && entry[ index ] ) { + return entry[ index ]; + } + + if ( this.options.onMissingKey ) { + this.options.onMissingKey( singular, domain ); + } + + // If entry not found, fall back to singular vs. plural with zero index + // representing the singular value. + return index === 0 ? singular : plural; +}; + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) +/* harmony export */ }); +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _classCallCheck) +/* harmony export */ }); +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _iterableToArray) +/* harmony export */ }); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) +/* harmony export */ }); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _toConsumableArray) +/* harmony export */ }); +/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); +/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); + + + + +function _toConsumableArray(r) { + return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; + } +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _defineProperty) +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(e, r, t) { + return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPrimitive) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function toPrimitive(t, r) { + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPropertyKey) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function toPropertyKey(t) { + var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); + return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!*************************************!*\ + !*** ./js/src/addons-page/index.js ***! + \*************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/addons-page/ui/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/addons-page/events/index.js"); +/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addons */ "./js/src/addons-page/addons/index.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__["default"])(function () { + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); + (0,_addons__WEBPACK_IMPORTED_MODULE_2__.buildCategorizedAddons)(); + (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); +}); +})(); + +/******/ })() +; +//# sourceMappingURL=addons-page.js.map \ No newline at end of file diff --git a/js/form-templates.js b/js/form-templates.js index a5ecd8b989..5847ea0e72 100644 --- a/js/form-templates.js +++ b/js/form-templates.js @@ -1,2 +1,6752 @@ -/*! For license information please see form-templates.js.LICENSE.txt */ -(()=>{var t={616:t=>{t.exports=function(t,e){var r,n,o=0;function a(){var a,i,c=r,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(i=0;i{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,i,c,l,u,s,f,p,m=1,d=t.length,h="";for(n=0;n=0),c.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,c.width?parseInt(c.width):0);break;case"e":r=c.precision?parseFloat(r).toExponential(c.precision):parseFloat(r).toExponential();break;case"f":r=c.precision?parseFloat(r).toFixed(c.precision):parseFloat(r);break;case"g":r=c.precision?String(Number(r.toPrecision(c.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=c.precision?r.substring(0,c.precision):r;break;case"t":r=String(!!r),r=c.precision?r.substring(0,c.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=c.precision?r.substring(0,c.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=c.precision?r.substring(0,c.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?h+=r:(!o.number.test(c.type)||f&&!c.sign?p="":(p=f?"+":"-",r=r.toString().replace(o.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",s=c.width-(p+r).length,l=c.width&&s>0?u.repeat(s):"",h+=c.align?p+r+l:"0"===u?p+l+r:l+p+r)}return h}(function(t){if(c[t])return c[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=o.text.exec(r)))n.push(e[0]);else if(null!==(e=o.modulo.exec(r)))n.push("%");else{if(null===(e=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var i=[],l=e[2],u=[];if(null===(u=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=o.key_access.exec(l)))i.push(u[1]);else{if(null===(u=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(u[1])}e[2]=i}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return c[t]=n}(t),arguments)}function i(t,e){return a.apply(null,[t].concat(e||[]))}var c=Object.create(null);e.sprintf=a,e.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=i,void 0===(n=function(){return{sprintf:a,vsprintf:i}}.call(e,r,e,t))||(t.exports=n))}()}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.canAccessApplicationDashboard,n=t.applicationsUrl,o=window.frmFormTemplatesVars,a=o.FEATURED_TEMPLATES_IDS,i=o.FREE_TEMPLATES_IDS,c=o.upgradeLink,l="frm-form-templates",u="available-templates",s="favorites",f="custom",p="search",m="440px",d="550px",h="frm-page-skeleton",y="all-items";function v(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function g(t){for(var e=1;e":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},x=["(","?"],E={")":["("],":":["?","?:"]},_=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};var P={contextDelimiter:"",onMissingKey:null};function F(t,e){var r;for(r in this.data=t,this.pluralForms={},this.options={},P)this.options[r]=void 0!==e&&r in e?e[r]:P[r]}function B(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function N(t){for(var e=1;e=0||S[o]3&&void 0!==arguments[3]?arguments[3]:10,i=t[e];if(G(r)&&q(n))if("function"==typeof o)if("number"==typeof a){var c={callback:o,priority:a,namespace:n};if(i[r]){var l,u=i[r].handlers;for(l=u.length;l>0&&!(a>=u[l-1].priority);l--);l===u.length?u[l]=c:u.splice(l,0,c),i.__current.forEach((function(t){t.name===r&&t.currentIndex>=l&&t.currentIndex++}))}else i[r]={handlers:[c],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,n,o,a)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},z=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n,o){var a=t[e];if(G(n)&&(r||q(o))){if(!a[n])return 0;var i=0;if(r)i=a[n].handlers.length,a[n]={runs:a[n].runs,handlers:[]};else for(var c=a[n].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),i++,a.__current.forEach((function(e){e.name===n&&e.currentIndex>=t&&e.currentIndex--})))},u=c.length-1;u>=0;u--)l(u);return"hookRemoved"!==n&&t.doAction("hookRemoved",n,o),i}}},Y=function(t,e){return function(r,n){var o=t[e];return void 0!==n?r in o&&o[r].handlers.some((function(t){return t.namespace===n})):r in o}},V=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=t[e];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var a=o[n].handlers,i=arguments.length,c=new Array(i>1?i-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";n.data[e]=N(N(N({},D),n.data[e]),t),n.data[e][""]=N(N({},D[""]),n.data[e][""])},c=function(t,e){i(t,e),a()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return n.data[t]||i(void 0,t),n.dcnpgettext(t,e,r,o,a)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},s=function(t,e,n){var o=l(n,e,t);return r?(o=r.applyFilters("i18n.gettext_with_context",o,t,e,n),r.applyFilters("i18n.gettext_with_context_"+u(n),o,t,e,n)):o};if(r){var f=function(t){M.test(t)&&a()};r.addAction("hookAdded","core/i18n",f),r.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[t]},setLocaleData:c,resetLocaleData:function(t,e){n.data={},n.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var n=l(e,void 0,t);return r?(n=r.applyFilters("i18n.gettext",n,t,e),r.applyFilters("i18n.gettext_"+u(e),n,t,e)):n},_x:s,_n:function(t,e,n,o){var a=l(o,void 0,t,e,n);return r?(a=r.applyFilters("i18n.ngettext",a,t,e,n,o),r.applyFilters("i18n.ngettext_"+u(o),a,t,e,n,o)):a},_nx:function(t,e,n,o,a){var i=l(a,o,t,e,n);return r?(i=r.applyFilters("i18n.ngettext_with_context",i,t,e,n,o,a),r.applyFilters("i18n.ngettext_with_context_"+u(a),i,t,e,n,o,a)):i},isRTL:function(){return"rtl"===s("ltr","text direction")},hasTranslation:function(t,e,o){var a,i,c=e?e+""+t:t,l=!(null===(a=n.data)||void 0===a||null===(i=a[null!=o?o:"default"])||void 0===i||!i[c]);return r&&(l=r.applyFilters("i18n.has_translation",l,t,e,o),l=r.applyFilters("i18n.has_translation_"+u(o),l,t,e,o)),l}}}(0,0,J));K.getLocaleData.bind(K),K.setLocaleData.bind(K),K.resetLocaleData.bind(K),K.subscribe.bind(K);var X=K.__.bind(K),W=(K._x.bind(K),K._n.bind(K),K._nx.bind(K),K.isRTL.bind(K),K.hasTranslation.bind(K),window.frmGlobal),Q=W.url,tt=(W.nonce,"frm_hidden"),et="frm-hide-js",rt="frm-current",nt=window.frmDom,ot=nt.tag,at=nt.div,it=nt.a,ct=nt.img;function lt(t){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lt(t)}function ut(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function st(t,e,r){return(e=function(t){var e=function(t){if("object"!=lt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=lt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==lt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var ft,pt=document.getElementById("post-body-content"),mt=document.getElementById("".concat(h,"-sidebar")),dt=((ft=it({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),at({id:"".concat(h,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(tt),children:[ct({src:"".concat(Q,"/images/page-skeleton/empty-state.svg"),alt:X("Empty State","formidable")}),at({className:"frmcenter",children:[ot("h2",{className:"".concat(h,"-title frm-mb-0")}),ot("p",{className:"".concat(h,"-text frm-mb-0")})]}),ft]}));null==pt||pt.appendChild(dt);var ht=function(){var t=document.querySelector("#".concat(h,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(h,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(h,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),yt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==xt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==xt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=wt(wt({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({notEmptySearchText:!1,selectedCategory:y,selectedCategoryEl:Et}),Tt=_t.getState,Lt=_t.getSingleState,Ot=_t.setState,kt=_t.setSingleState;function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function It(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):02&&void 0!==arguments[2]?arguments[2]:"pushState";if(Gt.set(t,e),qt.search=Gt.toString(),["pushState","replaceState"].includes(a)){var i=(r={},o=e,(n=function(t){var e=function(t){if("object"!=Nt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Nt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Nt(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[a](i,"",qt)}return qt.toString()},Yt=function(t){return Gt.has(t)},Vt=function(t){return"string"==typeof t&&/^(([^<>()\[\]\\.,;:\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(t)},$t=function(t){return t instanceof HTMLElement||console.warn("Invalid argument: Element must be an instance of HTMLElement")||!1},Ut=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach((function(t){return Zt(t)}))},Ht=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach((function(t){return Jt(t)}))},Zt=function(t){return null==t?void 0:t.classList.remove(tt)},Jt=function(t){return null==t?void 0:t.classList.add(tt)},Kt=function(t){var e=t.currentTarget,r=e.getAttribute("data-category"),n=Tt(),o=n.selectedCategory,a=n.selectedCategoryEl,i=n.notEmptySearchText;if(o!==r){o=wp.hooks.applyFilters("frmPage.selectedCategory",r),a.classList.remove(rt),(a=e).classList.add(rt),Ot({selectedCategory:o,selectedCategoryEl:a}),i&&Wt(),wp.hooks.doAction("frmPage.onCategoryClick",o);var c=vt().bodyContent;new Ct(c).fadeIn()}};function Xt(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),Kt(t))}function Wt(){var t=vt().searchInput;t.value="",t.dispatchEvent(new Event("input",{bubbles:!0}))}var Qt=vt().bodyContent,te=document.getElementById("".concat(l,"-list")),ee=document.getElementById("".concat(l,"-custom-list-section")),re=document.querySelector(".".concat(h,'-cat[data-category="').concat(s,'"]')),ne=document.getElementById("".concat(l,"-modal"));gt({headerCancelButton:null===(Dt=document.getElementById("frm-publishing"))||void 0===Dt?void 0:Dt.querySelector("a"),createFormButton:document.getElementById("".concat(l,"-create-form")),pageTitle:document.getElementById("".concat(l,"-page-title")),pageTitleText:document.getElementById("".concat(l,"-page-title-text")),pageTitleDivider:document.getElementById("".concat(l,"-page-title-divider")),upsellBanner:null!==(Mt=document.getElementById("frm-renew-subscription-banner"))&&void 0!==Mt?Mt:document.getElementById("frm-upgrade-banner"),extraTemplateCountElements:document.querySelectorAll(".".concat(l,"-extra-templates-count")),templatesList:te,templateItems:te.querySelectorAll(".frm-card-item"),availableTemplateItems:te.querySelectorAll(".frm-card-item:not(.".concat(l,"-locked-item)")),twinFeaturedTemplateItems:te.querySelectorAll(".".concat(l,"-featured-item")),featuredTemplatesList:document.getElementById("".concat(l,"-featured-list")),customTemplatesSection:ee,customTemplateItems:ee.querySelectorAll(".frm-card-item"),customTemplatesTitle:document.getElementById("".concat(l,"-custom-list-title")),customTemplatesList:document.getElementById("".concat(l,"-custom-list")),favoritesCategory:re,favoritesCategoryCountEl:null==re?void 0:re.querySelector(".".concat(h,"-cat-count")),availableTemplatesCategory:document.querySelector(".".concat(h,'-cat[data-category="').concat(u,'"]')),getFreeTemplatesBannerButton:document.querySelector(".frm-get-free-templates-banner .button"),modal:ne,modalItems:null==ne?void 0:ne.querySelectorAll(".".concat(l,"-modal-item")),showCreateTemplateModalButton:document.getElementById("frm-show-create-template-modal"),createTemplateModal:document.getElementById("frm-create-template-modal"),createTemplateFormsDropdown:document.getElementById("frm-create-template-modal-forms-select"),createTemplateName:document.getElementById("frm_create_template_name"),createTemplateDescription:document.getElementById("frm_create_template_description"),createTemplateButton:document.getElementById("frm-create-template-button"),renewAccountModal:document.getElementById("frm-renew-modal"),leaveEmailModal:document.getElementById("frm-leave-email-modal"),leaveEmailModalInput:document.getElementById("frm_leave_email"),leaveEmailModalButton:document.getElementById("frm-get-code-button"),upgradeModal:document.getElementById("frm-form-upgrade-modal"),upgradeModalTemplateNames:null==ne?void 0:ne.querySelectorAll(".frm-upgrade-modal-template-name"),upgradeModalPlansIcons:null==ne?void 0:ne.querySelectorAll(".frm-upgrade-modal-plan-icon"),upgradeModalLink:document.getElementById("frm-upgrade-modal-link"),newTemplateForm:document.getElementById("frm-new-template"),newTemplateNameInput:document.getElementById("frm_template_name"),newTemplateDescriptionInput:document.getElementById("frm_template_desc"),newTemplateLinkInput:document.getElementById("frm_link"),newTemplateActionInput:document.getElementById("frm_action_type"),bodyContentChildren:null==Qt?void 0:Qt.children});var oe,ae=window.frmDom,ie=ae.tag,ce=ae.div,le=ae.span,ue=ae.a,se=ae.img,fe="".concat(Q,"/images/applications/thumbnails");var pe=window.frmFormTemplatesVars,me=pe.templatesCount,de=pe.favoritesCount,he=pe.customCount,ye=vt().availableTemplateItems.length;Ot({availableTemplatesCount:ye,customCount:Number(he),extraTemplatesCount:me-ye,favoritesCount:de}),window.frmDom.span;var ve=function(t,e){return t.textContent=String(e),t},ge=function(t,e,r,n,o,a,i){e._counterStartTime||(e._counterStartTime=t,e._counterLastTimestamp=t,e._counterFrameDropCount=0,e._counterLastValue=r);var c=t-e._counterLastTimestamp,l=t-e._counterStartTime;if(c>50&&null!==e._counterLastTimestamp&&(e._counterFrameDropCount++,e._counterFrameDropCount>3))return e.style.transition="opacity ".concat(Math.max(o-l,100),"ms ease-out"),e.textContent=String(n),void delete e._counterAnimation;var u=Math.min(l/o,1),s=i(u),f=Math.round(r+a*s);f!==e._counterLastValue&&(e.textContent=String(f),e._counterLastValue=f),e._counterLastTimestamp=t,u<1?e._counterAnimation=requestAnimationFrame((function(t){return ge(t,e,r,n,o,a,i)})):(e.textContent=String(n),["_counterAnimation","_counterStartTime","_counterLastTimestamp","_counterFrameDropCount","_counterLastValue"].forEach((function(t){return delete e[t]})),e.style.removeProperty("transition"))},be=function(t){return 1-Math.pow(1-t,4)};const we=function(){var t,e=vt(),r=e.sidebar,n=e.searchInput,o=e.bodyContent,a=e.twinFeaturedTemplateItems,c=e.availableTemplatesCategory,l=e.extraTemplateCountElements,u=new Ct(o);n.value="",Ht(a),function(t){if(t){var e,r,n=Lt("availableTemplatesCount");if(Yt("registered-for-free-templates"))history.replaceState({},"",Rt("registered-for-free-templates")),e=t,r=n,setTimeout((function(){e.dispatchEvent(new Event("click",{bubbles:!0}))}),0),setTimeout((function(){!function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="string"==typeof t?document.querySelector(t):t;if(!(n&&n instanceof HTMLElement))return null;var o="number"==typeof e?e:parseInt(e,10);if(isNaN(o))return console.warn("Counter: Invalid value provided, defaulting to 0"),ve(n,"0");if(0===o)return ve(n,"0");var a=r.duration,i=void 0===a?3e3:a,c=r.easing,l=void 0===c?be:c,u=parseInt(n.textContent,10)||0,s=o-u;0===s||(n._counterAnimation&&cancelAnimationFrame(n._counterAnimation),n.classList.add("frm-fadein"),n._counterAnimation=requestAnimationFrame((function(t){return ge(t,n,u,o,i,s,l)})))}(e.querySelector(".".concat(h,"-cat-count")),r)}),150),setTimeout((function(){vt().availableTemplateItems.forEach((function(t){i.includes(Number(t.dataset.id))||(t.classList.add("frm-background-highlight"),t.addEventListener("animationend",(function t(e){"backgroundHighlight"===e.animationName&&(this.classList.remove("frm-background-highlight"),this.removeEventListener("animationend",t))})))}))}),750);else t.querySelector(".".concat(h,"-cat-count")).textContent=n}}(c),l.forEach((function(t){return t.textContent=Lt("extraTemplatesCount")})),o.classList.remove(et),r.classList.remove(et),u.fadeIn(),Yt("return_page")&&(t=vt().headerCancelButton,new Ct(t).fadeIn())};function Se(t){return Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Se(t)}function xe(){xe=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var a=e&&e.prototype instanceof v?e:v,i=Object.create(a.prototype),c=new I(n||[]);return o(i,"_invoke",{value:L(t,r,c)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",m="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,i)&&(w=x);var E=b.prototype=v.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,a,i,c){var l=f(t[o],t,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Se(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(s).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function L(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=O(c,n);if(l){if(l===y)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?h:m,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=h,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Ee(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var _e=null;function Te(){var t;return t=xe().mark((function t(){var e,r,n;return xe().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=window.frmAdminBuild,r=e.initModal,n=e.offsetModalY,(_e=r("#frm-form-templates-modal",m))&&n(_e,"103px"),Yt("free-templates")&&vt().leaveEmailModal&&fr(),wp.hooks.addAction("frmAdmin.beforeOpenConfirmModal","frmFormTemplates",(function(t){var e=t.$info;e.dialog("option","width",d),n(e,"103px")}));case 5:case"end":return t.stop()}}),t)})),Te=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){Ee(a,n,o,i,c,"next",t)}function c(t){Ee(a,n,o,i,c,"throw",t)}i(void 0)}))},Te.apply(this,arguments)}function Le(){return _e}function Oe(t){var e=vt().pageTitleText,r=t||Lt("selectedCategoryEl").querySelector(".".concat(h,"-cat-text")).textContent;e.textContent=r}var ke=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-favorite-item"))},je=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-custom-item"))},Ie={},Ae=function(){var t=vt(),e=t.createFormButton,r=t.newTemplateForm,n=t.newTemplateNameInput,o=t.newTemplateActionInput,a=window.frmAdminBuild.installNewForm;n.value="",o.value="frm_install_form",a(r,"frm_install_form",e)};var Ce=".".concat(l,"-item-favorite-button"),Pe="".concat(Ce," use"),Fe="#frm_heart_solid_icon",Be="#frm_heart_icon",Ne=function(t){var e,r=t.currentTarget,n=vt(),o=n.templatesList,i=n.featuredTemplatesList,c=n.favoritesCategoryCountEl,u=n.customTemplatesTitle,f=r.closest(".frm-card-item"),p=f.dataset.id,m=ke(f),d=je(f),h=function(t){return!!$t(t)&&a.includes(Number(t.dataset.id))}(f),y=null;if(f.classList.toggle("".concat(l,"-favorite-item"),!m),h){var v=f.closest("#".concat(l,"-list"))?i:o;v&&(y=v.querySelector('.frm-card-item[data-id="'.concat(p,'"]'))).classList.toggle("".concat(l,"-favorite-item"),!m)}var g,b=Tt(),w=b.selectedCategory,S=b.favoritesCount,x=m?"remove":"add",E=f.querySelector(Pe),_=null===(e=y)||void 0===e?void 0:e.querySelector(Pe);"add"===x?(++S.total,d?++S.custom:++S.default,E.setAttribute("xlink:href",Fe),null==_||_.setAttribute("xlink:href",Fe)):(--S.total,d?--S.custom:--S.default,E.setAttribute("xlink:href",Be),null==_||_.setAttribute("xlink:href",Be)),c.textContent=S.total,kt("favoritesCount",S),s===w&&(0===S.total&&rr(),Jt(f),0===S.default&&Jt(o),0!==S.custom&&0!==S.default||Jt(u)),g=function(){return t=p,e=x,r=d,n=new FormData,o=frmDom.ajax.doJsonPost,n.append("template_id",t),n.append("operation",e),n.append("is_custom_template",r),o("add_or_remove_favorite_template",n);var t,e,r,n,o},Pt=Pt.then(g).catch(g)};var De=function(t){var e=t.currentTarget,r=e.closest(".frm-card-item"),n=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-locked-item"))}(r),o=je(r);if(n||!o)if(t.preventDefault(),n)!function(t){var e=t.dataset.requiredPlan;switch(e){case"basic":case"plus":case"business":case"elite":ur(e,t);break;case"renew":sr();break;case"free":fr()}}(r);else{var a=vt(),i=a.newTemplateForm,c=a.newTemplateNameInput,u=a.newTemplateDescriptionInput,s=a.newTemplateLinkInput,f=a.newTemplateActionInput,p=window.frmAdminBuild.installNewForm,m=r.querySelector(".frm-form-template-name").textContent.trim(),d=r.querySelector(".frm-form-templates-item-description").textContent.trim(),h="frm_install_template";c.value=m,u.value=d,f.value=h,s.value=e.href,p(i,h,e)}};var Me=window.frmDom.search.init;function qe(t,e){var r=t.foundSomething,n=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=Tt(),a=vt().allItemsCategory;kt("notEmptySearchText",n),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=vt(),r=e.bodyContent,n=e.bodyContentChildren,o=e.pageTitle,a=e.templatesList,i=e.applicationTemplates,c=new Ct(r);t&&Lt("selectedCategoryEl").classList.remove(rt),Ht(n),Oe(X("Search Result","formidable")),Ut([o,a,i]),c.fadeIn()}(n),n&&kt("selectedCategory","")),function(t){if(t){var e,r=vt().emptyState;if(e=r,"none"!==window.getComputedStyle(e).getPropertyValue("display")){var n=vt().pageTitle;Jt(r),Zt(n)}var o=vt(),a=o.templatesList,i=o.applicationTemplates,c=o.applicationTemplatesTitle,l=o.applicationTemplatesList;Ut([a,i,c]),0===a.offsetHeight&&Ht([a,c]),0===(null==l?void 0:l.offsetHeight)&&Jt(i)}else!function(){var t,e=Tt().notEmptySearchText,r=vt(),n=r.pageTitle,o=r.emptyState,a=r.emptyStateButton,i=r.applicationTemplates;if(p!==(null===(t=o.dataset)||void 0===t?void 0:t.view)){o.setAttribute("data-view",p);var c=vt(),l=c.emptyStateTitle,u=c.emptyStateText;l.textContent=X("No templates found","formidable"),u.textContent=X("Sorry, we didn't find any templates that match your criteria.","formidable"),a.textContent=X("Start from Scratch","formidable"),Ht([n,i]),Ut([o,a])}else e?(Zt(o),Ht([n,i])):(Jt(o),o.removeAttribute("data-view"))}()}(r)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}var Ge=function(){var t,e=vt().emptyState;p===(null===(t=e.dataset)||void 0===t?void 0:t.view)&&(kt("selectedCategory",""),Wt(),vt().searchInput.focus())};var Re=function(){var t=Tt().selectedCategory;f===t&&pr()},ze=function(){var t=vt().createTemplateFormsDropdown,e=t.value;if(e&&"no-forms"!==e){Ye(!1);var r=t.options[t.selectedIndex],n=r.dataset.description.trim(),o=r.dataset.name.trim(),a=" ".concat(X("Template","formidable"));o.endsWith(a)||(o+=a);var i=vt(),c=i.createTemplateName,l=i.createTemplateDescription;c.value=o,l.value=n}else Ye(!0)},Ye=function(t){var e=vt(),r=e.createTemplateName,n=e.createTemplateDescription,o=e.createTemplateButton;[r,n].forEach((function(e){e.disabled=t,t&&(e.value="")})),o.classList.toggle("disabled",t)},Ve=function(){var t=window.frmAdminBuild.installNewForm,e="frm_create_template",r=vt(),n=r.newTemplateForm,o=r.newTemplateActionInput,a=r.newTemplateNameInput,i=r.newTemplateDescriptionInput,c=r.newTemplateLinkInput,l=r.createTemplateName,u=r.createTemplateDescription,s=r.createTemplateFormsDropdown,f=r.createTemplateButton;o.value=e,a.value=l.value.trim(),i.value=u.value.trim(),c.value=s.value,t(n,e,f)};function $e(t){return $e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$e(t)}function Ue(){Ue=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var a=e&&e.prototype instanceof v?e:v,i=Object.create(a.prototype),c=new I(n||[]);return o(i,"_invoke",{value:L(t,r,c)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",m="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,i)&&(w=x);var E=b.prototype=v.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,a,i,c){var l=f(t[o],t,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==$e(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(s).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function L(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=O(c,n);if(l){if(l===y)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?h:m,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=h,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function He(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var Ze=window.frmDom.tag,Je=function(){var t,e=(t=Ue().mark((function t(){var e,r,n,o,a,i,c,l;return Ue().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=vt(),r=e.leaveEmailModalInput,n=r.value.trim()){t.next=5;break}return mr("empty"),t.abrupt("return");case 5:if(Vt(n)){t.next=8;break}return mr("invalid"),t.abrupt("return");case 8:return o=vt(),(a=o.leaveEmailModalButton).style.setProperty("cursor","not-allowed"),a.classList.add("frm_loading_button"),(i=new FormData).append("email",n),l=frmDom.ajax.doJsonPost,t.prev=14,t.next=17,l("get_free_templates",i);case 17:c=t.sent,t.next=25;break;case 20:return t.prev=20,t.t0=t.catch(14),console.error("An error occurred:",t.t0),Ke(),t.abrupt("return");case 25:if(c.success){t.next=28;break}return Ke(),t.abrupt("return");case 28:Yt("free-templates")&&Rt("free-templates"),zt("registered-for-free-templates","1"),window.location.reload();case 31:case"end":return t.stop()}}),t,null,[[14,20]])})),function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){He(a,n,o,i,c,"next",t)}function c(t){He(a,n,o,i,c,"throw",t)}i(void 0)}))});return function(){return e.apply(this,arguments)}}();function Ke(){var t=vt().leaveEmailModal;t.querySelector(".inside").replaceChildren(Ze("p",X("Failed to get templates, please try again later.","formidable"))),t.querySelector(".frm_modal_footer").classList.add("frm_hidden")}var Xe=function(t){if(!t.target.closest("a")){var e=t.currentTarget;window.location.href=e.dataset.href}};function We(){var t,e,r,n;vt().categoryItems.forEach((function(t){Bt(t,Kt),t.addEventListener("keydown",Xt)})),wp.hooks.addAction("frmPage.onCategoryClick","frmFormTemplates",(function(t){!function(t){var e=vt(),r=e.bodyContentChildren,n=e.pageTitle,o=e.showCreateTemplateModalButton,a=e.templatesList,i=e.templateItems,c=e.upsellBanner;switch(y!==t&&Ht(r),Oe(),Jt(o),Zt(n),t){case y:!function(){var t=vt(),e=t.bodyContentChildren,r=t.pageTitleDivider,n=t.templateItems,o=t.twinFeaturedTemplateItems,a=t.customTemplatesSection,i=t.emptyState,c=t.applicationTemplates;Ut([].concat(tr(e),tr(n))),Ht([r].concat(tr(o),[a,i,c]))}();break;case u:!function(){if(0!==Tt().availableTemplatesCount){var t=vt(),e=t.templatesList,r=t.templateItems,n=t.availableTemplateItems,o=t.upsellBanner;Ht(r),Ut([o,e].concat(tr(n)))}else!function(){var t=vt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",u);var o=vt(),a=o.emptyStateTitle,i=o.emptyStateText,c=Tt().extraTemplatesCount;a.textContent=X("No Templates Available","formidable"),i.textContent=function(t){try{for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0&&s.push(n),t.custom>0){var p=Array.from(u).filter((function(t){return!ke(t)}));Ht(p),s.push(a),s.push(c),0===t.default?Jt(i):s.push(i)}Ut(s)}else rr()}();break;case f:!function(){if(0!==Tt().customCount){var t=vt(),e=t.showCreateTemplateModalButton,r=t.pageTitleDivider,n=t.customTemplatesSection,o=t.customTemplatesList,a=t.customTemplatesTitle,i=t.customTemplateItems;Jt(a),Ut([e,r,n,o].concat(tr(i)))}else!function(){var t=vt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",f);var o=vt(),a=o.emptyStateTitle,i=o.emptyStateText;a.textContent=X("You currently have no templates.","formidable"),i.textContent=X("You haven't created any form templates. Begin now to simplify your workflow and save time.","formidable"),n.textContent=X("Create Template","formidable"),Jt(e),Ut([r,n])}()}();break;default:Ht(i),Ut([c,a].concat(tr(Ie[t])))}}(t)})),n=vt().createFormButton,Bt(n,Ae),document.querySelectorAll(Ce).forEach((function(t){return Bt(t,Ne)})),document.querySelectorAll(".".concat(l,"-use-template-button")).forEach((function(t){return t.addEventListener("click",De)})),t=vt(),e=t.searchInput,r=t.emptyStateButton,Me(e,"frm-card-item",{handleSearchResult:qe}),Bt(r,Ge),function(){var t=vt(),e=t.createTemplateFormsDropdown,r=t.createTemplateButton,n=t.showCreateTemplateModalButton,o=t.emptyStateButton;Bt(n,Re),Bt(o,Re),e.addEventListener("change",ze),Bt(r,Ve)}(),function(){var t=vt(),e=t.leaveEmailModalButton,r=t.getFreeTemplatesBannerButton;Bt(e,Je),Bt(r,fr)}()}function Qe(t){var e,r;(function(t){if(t&&t.length){var e=t.map((function(t){return function(t){var e=t.name,r=t.key,o=t.hasLiteThumbnail,a=t.isWebp,i=o?a?"".concat(fe,"/").concat(r,".webp"):"".concat(fe,"/").concat(r,".png"):"".concat(fe,"/placeholder.svg");return ie("li",{className:"frm-card-item",data:{href:"".concat(n,"&triggerViewApplicationModal=1&template=").concat(r),"frm-search-text":e.toLowerCase()},children:[ce({className:"".concat(l,"-item-icon"),child:se({src:i})}),ce({className:"".concat(l,"-item-body"),children:[le({text:X("Ready Made Solution","formidable"),className:"frm-meta-tag frm-orange-tag frm-text-xs"}),ie("h3",{text:e,className:"frm-text-sm frm-font-medium frm-m-0"}),ue({text:X("See all applications","formidable"),className:"frm-text-xs frm-font-semibold",href:n})]})]})}(t)}));oe=ce({id:"".concat(l,"-applications"),className:tt,children:[ie("h2",{text:X("Application Templates"),className:"frm-text-sm frm-mb-sm"}),ie("ul",{className:"".concat(l,"-list frm-list-grid-layout"),children:e})]})}})(t.templates),(e=vt()).applicationTemplates||void 0===oe||(e.bodyContent.appendChild(oe),gt({applicationTemplates:oe,applicationTemplatesTitle:oe.querySelector("h2"),applicationTemplatesList:oe.querySelector(".".concat(l,"-list")),applicationTemplateItems:oe.querySelectorAll(".frm-card-item")})),void 0!==(r=vt().applicationTemplateItems)&&r.forEach((function(t){t.addEventListener("click",Xe)}))}function tr(t){return function(t){if(Array.isArray(t))return er(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return er(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?er(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function er(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function ar(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function ir(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){ar(a,n,o,i,c,"next",t)}function c(t){ar(a,n,o,i,c,"throw",t)}i(void 0)}))}}var cr=function(t){return ir(or().mark((function e(){var r,n,o,a,i,c,l=arguments;return or().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Le()){e.next=3;break}return e.abrupt("return");case 3:for(n=vt(),o=n.modalItems,Ht(o),r.dialog("option","width",m),a=l.length,i=new Array(a),c=0;c use").setAttribute("xlink:href",n?"#frm_checkmark_icon":"#frm_close_icon")}));var u=e.dataset.slug?"-".concat(e.dataset.slug):"";l.href=c+u,Zt(o)})),sr=cr((function(){var t=vt().renewAccountModal;Zt(t)})),fr=cr((function(){var t=vt().leaveEmailModal;Zt(t)})),pr=cr((function(){Le().dialog("option","width",d);var t=vt().createTemplateModal;Zt(t)})),mr=function(t){!function(t,e,r){var n=document.querySelector("#frm_leave_email"),o=document.querySelector("#frm_leave_email_error");n&&o?(o.setAttribute("frm-error",r),Zt(o),n.addEventListener("keyup",(function(){Jt(o)}),{once:!0})):console.warn("showFormError: Unable to find input or error element.")}(0,0,t)};var dr;dr=function(){wp.hooks.doAction("frmFormTemplates.beforeInitialize",{getState:Tt,setState:Ot}),e&&(0,frmDom.ajax.doJsonFetch)("get_applications_data&view=templates").then(Qe),function(){Te.apply(this,arguments)}(),vt().templateItems.forEach((function(t){t.getAttribute("data-categories").split(",").forEach((function(e){Ie[e]||(Ie[e]=[]),Ie[e].push(t)}))})),we(),We(),wp.hooks.doAction("frmFormTemplates.afterInitialize",{getState:Tt,setState:Ot}),wp.hooks.doAction("frm_new_form_modal_form",jQuery("#frm-new-template"))},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",dr):dr())})()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@tannin/compile/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/compile/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compile) +/* harmony export */ }); +/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); +/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); + + + +/** + * Given a C expression, returns a function which can be called to evaluate its + * result. + * + * @example + * + * ```js + * import compile from '@tannin/compile'; + * + * const evaluate = compile( 'n > 1' ); + * + * evaluate( { n: 2 } ); + * // ⇒ true + * ``` + * + * @param {string} expression C expression. + * + * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. + */ +function compile( expression ) { + var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( variables ) { + return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/evaluate/index.js": +/*!************************************************!*\ + !*** ./node_modules/@tannin/evaluate/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ evaluate) +/* harmony export */ }); +/** + * Operator callback functions. + * + * @type {Object} + */ +var OPERATORS = { + '!': function( a ) { + return ! a; + }, + '*': function( a, b ) { + return a * b; + }, + '/': function( a, b ) { + return a / b; + }, + '%': function( a, b ) { + return a % b; + }, + '+': function( a, b ) { + return a + b; + }, + '-': function( a, b ) { + return a - b; + }, + '<': function( a, b ) { + return a < b; + }, + '<=': function( a, b ) { + return a <= b; + }, + '>': function( a, b ) { + return a > b; + }, + '>=': function( a, b ) { + return a >= b; + }, + '==': function( a, b ) { + return a === b; + }, + '!=': function( a, b ) { + return a !== b; + }, + '&&': function( a, b ) { + return a && b; + }, + '||': function( a, b ) { + return a || b; + }, + '?:': function( a, b, c ) { + if ( a ) { + throw b; + } + + return c; + }, +}; + +/** + * Given an array of postfix terms and operand variables, returns the result of + * the postfix evaluation. + * + * @example + * + * ```js + * import evaluate from '@tannin/evaluate'; + * + * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' + * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; + * + * evaluate( terms, {} ); + * // ⇒ 6.333333333333334 + * ``` + * + * @param {string[]} postfix Postfix terms. + * @param {Object} variables Operand variables. + * + * @return {*} Result of evaluation. + */ +function evaluate( postfix, variables ) { + var stack = [], + i, j, args, getOperatorResult, term, value; + + for ( i = 0; i < postfix.length; i++ ) { + term = postfix[ i ]; + + getOperatorResult = OPERATORS[ term ]; + if ( getOperatorResult ) { + // Pop from stack by number of function arguments. + j = getOperatorResult.length; + args = Array( j ); + while ( j-- ) { + args[ j ] = stack.pop(); + } + + try { + value = getOperatorResult.apply( null, args ); + } catch ( earlyReturn ) { + return earlyReturn; + } + } else if ( variables.hasOwnProperty( term ) ) { + value = variables[ term ]; + } else { + value = +term; + } + + stack.push( value ); + } + + return stack[ 0 ]; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/plural-forms/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@tannin/plural-forms/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluralForms) +/* harmony export */ }); +/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); + + +/** + * Given a C expression, returns a function which, when called with a value, + * evaluates the result with the value assumed to be the "n" variable of the + * expression. The result will be coerced to its numeric equivalent. + * + * @param {string} expression C expression. + * + * @return {Function} Evaluator function. + */ +function pluralForms( expression ) { + var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( n ) { + return +evaluate( { n: n } ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/postfix/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/postfix/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ postfix) +/* harmony export */ }); +var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + +/** + * Operator precedence mapping. + * + * @type {Object} + */ +PRECEDENCE = { + '(': 9, + '!': 8, + '*': 7, + '/': 7, + '%': 7, + '+': 6, + '-': 6, + '<': 5, + '<=': 5, + '>': 5, + '>=': 5, + '==': 4, + '!=': 4, + '&&': 3, + '||': 2, + '?': 1, + '?:': 1, +}; + +/** + * Characters which signal pair opening, to be terminated by terminators. + * + * @type {string[]} + */ +OPENERS = [ '(', '?' ]; + +/** + * Characters which signal pair termination, the value an array with the + * opener as its first member. The second member is an optional operator + * replacement to push to the stack. + * + * @type {string[]} + */ +TERMINATORS = { + ')': [ '(' ], + ':': [ '?', '?:' ], +}; + +/** + * Pattern matching operators and openers. + * + * @type {RegExp} + */ +PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + +/** + * Given a C expression, returns the equivalent postfix (Reverse Polish) + * notation terms as an array. + * + * If a postfix string is desired, simply `.join( ' ' )` the result. + * + * @example + * + * ```js + * import postfix from '@tannin/postfix'; + * + * postfix( 'n > 1' ); + * // ⇒ [ 'n', '1', '>' ] + * ``` + * + * @param {string} expression C expression. + * + * @return {string[]} Postfix terms. + */ +function postfix( expression ) { + var terms = [], + stack = [], + match, operator, term, element; + + while ( ( match = expression.match( PATTERN ) ) ) { + operator = match[ 0 ]; + + // Term is the string preceding the operator match. It may contain + // whitespace, and may be empty (if operator is at beginning). + term = expression.substr( 0, match.index ).trim(); + if ( term ) { + terms.push( term ); + } + + while ( ( element = stack.pop() ) ) { + if ( TERMINATORS[ operator ] ) { + if ( TERMINATORS[ operator ][ 0 ] === element ) { + // Substitution works here under assumption that because + // the assigned operator will no longer be a terminator, it + // will be pushed to the stack during the condition below. + operator = TERMINATORS[ operator ][ 1 ] || operator; + break; + } + } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { + // Push to stack if either an opener or when pop reveals an + // element of lower precedence. + stack.push( element ); + break; + } + + // For each popped from stack, push to terms. + terms.push( element ); + } + + if ( ! TERMINATORS[ operator ] ) { + stack.push( operator ); + } + + // Slice matched fragment from expression to continue match. + expression = expression.substr( match.index + operator.length ); + } + + // Push remainder of operand, if exists, to terms. + expression = expression.trim(); + if ( expression ) { + terms.push( expression ); + } + + // Pop remaining items from stack into terms. + return terms.concat( stack.reverse() ); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback AddHook + * + * Adds the hook to the appropriate hooks container. + * + * @param {string} hookName Name of hook to add + * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. + * @param {import('.').Callback} callback Function to call when the hook is run + * @param {number} [priority=10] Priority of this hook + */ + +/** + * Returns a function which, when invoked, will add a hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {AddHook} Function that adds a new hook. + */ + +function createAddHook(hooks, storeKey) { + return function addHook(hookName, namespace, callback) { + var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } + + if ('function' !== typeof callback) { + // eslint-disable-next-line no-console + console.error('The hook callback must be a function.'); + return; + } // Validate numeric priority + + + if ('number' !== typeof priority) { + // eslint-disable-next-line no-console + console.error('If specified, the hook priority must be a number.'); + return; + } + + var handler = { + callback: callback, + priority: priority, + namespace: namespace + }; + + if (hooksStore[hookName]) { + // Find the correct insert index of the new hook. + var handlers = hooksStore[hookName].handlers; + /** @type {number} */ + + var i; + + for (i = handlers.length; i > 0; i--) { + if (priority >= handlers[i - 1].priority) { + break; + } + } + + if (i === handlers.length) { + // If append, operate via direct assignment. + handlers[i] = handler; + } else { + // Otherwise, insert before index via splice. + handlers.splice(i, 0, handler); + } // We may also be currently executing this hook. If the callback + // we're adding would come after the current callback, there's no + // problem; otherwise we need to increase the execution index of + // any other runs by 1 to account for the added element. + + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex++; + } + }); + } else { + // This is the first hook of its type. + hooksStore[hookName] = { + handlers: [handler], + runs: 0 + }; + } + + if (hookName !== 'hookAdded') { + hooks.doAction('hookAdded', hookName, namespace, callback, priority); + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); +//# sourceMappingURL=createAddHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Returns a function which, when invoked, will return the name of the + * currently running hook, or `null` if no hook of the given type is currently + * running. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {() => string | null} Function that returns the current hook name or null. + */ +function createCurrentHook(hooks, storeKey) { + return function currentHook() { + var _hooksStore$__current, _hooksStore$__current2; + + var hooksStore = hooks[storeKey]; + 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; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); +//# sourceMappingURL=createCurrentHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + +/** + * @callback DidHook + * + * Returns the number of times an action has been fired. + * + * @param {string} hookName The hook name to check. + * + * @return {number | undefined} The number of times the hook has run. + */ + +/** + * Returns a function which, when invoked, will return the number of times a + * hook has been called. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DidHook} Function that returns a hook's call count. + */ + +function createDidHook(hooks, storeKey) { + return function didHook(hookName) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { + return; + } + + return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); +//# sourceMappingURL=createDidHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback DoingHook + * Returns whether a hook is currently being executed. + * + * @param {string} [hookName] The name of the hook to check for. If + * omitted, will check for any hook being executed. + * + * @return {boolean} Whether the hook is being executed. + */ + +/** + * Returns a function which, when invoked, will return whether a hook is + * currently being executed. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DoingHook} Function that returns whether a hook is currently + * being executed. + */ +function createDoingHook(hooks, storeKey) { + return function doingHook(hookName) { + var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. + + if ('undefined' === typeof hookName) { + return 'undefined' !== typeof hooksStore.__current[0]; + } // Return the __current hook. + + + return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); +//# sourceMappingURL=createDoingHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback HasHook + * + * Returns whether any handlers are attached for the given hookName and optional namespace. + * + * @param {string} hookName The name of the hook to check for. + * @param {string} [namespace] Optional. The unique namespace identifying the callback + * in the form `vendor/plugin/function`. + * + * @return {boolean} Whether there are handlers that are attached to the given hook. + */ + +/** + * Returns a function which, when invoked, will return whether any handlers are + * attached to a particular hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {HasHook} Function that returns whether any handlers are + * attached to a particular hook and optional namespace. + */ +function createHasHook(hooks, storeKey) { + return function hasHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; // Use the namespace if provided. + + if ('undefined' !== typeof namespace) { + return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { + return hook.namespace === namespace; + }); + } + + return hookName in hooksStore; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); +//# sourceMappingURL=createHasHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _Hooks: () => (/* binding */ _Hooks), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); +/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); +/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); +/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); +/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); +/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); +/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Internal class for constructing hooks. Use `createHooks()` function + * + * Note, it is necessary to expose this class to make its type public. + * + * @private + */ + +var _Hooks = function _Hooks() { + (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); + + /** @type {import('.').Store} actions */ + this.actions = Object.create(null); + this.actions.__current = []; + /** @type {import('.').Store} filters */ + + this.filters = Object.create(null); + this.filters.__current = []; + this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); + this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); + this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); + this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); + this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); + this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); + this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); + this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); + this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); + this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); + this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); + this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); + this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); + this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); + this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); + this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); +}; +/** @typedef {_Hooks} Hooks */ + +/** + * Returns an instance of the hooks object. + * + * @return {Hooks} A Hooks instance. + */ + +function createHooks() { + return new _Hooks(); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); +//# sourceMappingURL=createHooks.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback RemoveHook + * Removes the specified callback (or all callbacks) from the hook with a given hookName + * and namespace. + * + * @param {string} hookName The name of the hook to modify. + * @param {string} namespace The unique namespace identifying the callback in the + * form `vendor/plugin/function`. + * + * @return {number | undefined} The number of callbacks removed. + */ + +/** + * Returns a function which, when invoked, will remove a specified hook or all + * hooks by the given name. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, + * without regard to namespace. Used to create + * `removeAll*` functions. + * + * @return {RemoveHook} Function that removes hooks. + */ + +function createRemoveHook(hooks, storeKey) { + var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function removeHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } // Bail if no hooks exist by this name + + + if (!hooksStore[hookName]) { + return 0; + } + + var handlersRemoved = 0; + + if (removeAll) { + handlersRemoved = hooksStore[hookName].handlers.length; + hooksStore[hookName] = { + runs: hooksStore[hookName].runs, + handlers: [] + }; + } else { + // Try to find the specified callback to remove. + var handlers = hooksStore[hookName].handlers; + + var _loop = function _loop(i) { + if (handlers[i].namespace === namespace) { + handlers.splice(i, 1); + handlersRemoved++; // This callback may also be part of a hook that is + // currently executing. If the callback we're removing + // comes after the current callback, there's no problem; + // otherwise we need to decrease the execution index of any + // other runs by 1 to account for the removed element. + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex--; + } + }); + } + }; + + for (var i = handlers.length - 1; i >= 0; i--) { + _loop(i); + } + } + + if (hookName !== 'hookRemoved') { + hooks.doAction('hookRemoved', hookName, namespace); + } + + return handlersRemoved; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); +//# sourceMappingURL=createRemoveHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); + + +/** + * Returns a function which, when invoked, will execute all callbacks + * registered to a hook of the specified type, optionally returning the final + * value of the call chain. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to + * return its first argument. + * + * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. + */ +function createRunHook(hooks, storeKey) { + var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function runHooks(hookName) { + var hooksStore = hooks[storeKey]; + + if (!hooksStore[hookName]) { + hooksStore[hookName] = { + handlers: [], + runs: 0 + }; + } + + hooksStore[hookName].runs++; + var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. + + if (true) { + // Handle any 'all' hooks registered. + if ('hookAdded' !== hookName && hooksStore.all) { + handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); + } + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!handlers || !handlers.length) { + return returnFirstArg ? args[0] : undefined; + } + + var hookInfo = { + name: hookName, + currentIndex: 0 + }; + + hooksStore.__current.push(hookInfo); + + while (hookInfo.currentIndex < handlers.length) { + var handler = handlers[hookInfo.currentIndex]; + var result = handler.callback.apply(null, args); + + if (returnFirstArg) { + args[0] = result; + } + + hookInfo.currentIndex++; + } + + hooksStore.__current.pop(); + + if (returnFirstArg) { + return args[0]; + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); +//# sourceMappingURL=createRunHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ actions: () => (/* binding */ actions), +/* harmony export */ addAction: () => (/* binding */ addAction), +/* harmony export */ addFilter: () => (/* binding */ addFilter), +/* harmony export */ applyFilters: () => (/* binding */ applyFilters), +/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ currentAction: () => (/* binding */ currentAction), +/* harmony export */ currentFilter: () => (/* binding */ currentFilter), +/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), +/* harmony export */ didAction: () => (/* binding */ didAction), +/* harmony export */ didFilter: () => (/* binding */ didFilter), +/* harmony export */ doAction: () => (/* binding */ doAction), +/* harmony export */ doingAction: () => (/* binding */ doingAction), +/* harmony export */ doingFilter: () => (/* binding */ doingFilter), +/* harmony export */ filters: () => (/* binding */ filters), +/* harmony export */ hasAction: () => (/* binding */ hasAction), +/* harmony export */ hasFilter: () => (/* binding */ hasFilter), +/* harmony export */ removeAction: () => (/* binding */ removeAction), +/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), +/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), +/* harmony export */ removeFilter: () => (/* binding */ removeFilter) +/* harmony export */ }); +/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); +/** + * Internal dependencies + */ + +/** @typedef {(...args: any[])=>any} Callback */ + +/** + * @typedef Handler + * @property {Callback} callback The callback + * @property {string} namespace The namespace + * @property {number} priority The namespace + */ + +/** + * @typedef Hook + * @property {Handler[]} handlers Array of handlers + * @property {number} runs Run counter + */ + +/** + * @typedef Current + * @property {string} name Hook name + * @property {number} currentIndex The index + */ + +/** + * @typedef {Record & {__current: Current[]}} Store + */ + +/** + * @typedef {'actions' | 'filters'} StoreKey + */ + +/** + * @typedef {import('./createHooks').Hooks} Hooks + */ + +var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); +var addAction = defaultHooks.addAction, + addFilter = defaultHooks.addFilter, + removeAction = defaultHooks.removeAction, + removeFilter = defaultHooks.removeFilter, + hasAction = defaultHooks.hasAction, + hasFilter = defaultHooks.hasFilter, + removeAllActions = defaultHooks.removeAllActions, + removeAllFilters = defaultHooks.removeAllFilters, + doAction = defaultHooks.doAction, + applyFilters = defaultHooks.applyFilters, + currentAction = defaultHooks.currentAction, + currentFilter = defaultHooks.currentFilter, + doingAction = defaultHooks.doingAction, + doingFilter = defaultHooks.doingFilter, + didAction = defaultHooks.didAction, + didFilter = defaultHooks.didFilter, + actions = defaultHooks.actions, + filters = defaultHooks.filters; + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a hookName string. + * + * @param {string} hookName The hook name to validate. Should be a non empty string containing + * only numbers, letters, dashes, periods and underscores. Also, + * the hook name cannot begin with `__`. + * + * @return {boolean} Whether the hook name is valid. + */ +function validateHookName(hookName) { + if ('string' !== typeof hookName || '' === hookName) { + // eslint-disable-next-line no-console + console.error('The hook name must be a non-empty string.'); + return false; + } + + if (/^__/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name cannot begin with `__`.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); +//# sourceMappingURL=validateHookName.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a namespace string. + * + * @param {string} namespace The namespace to validate - should take the form + * `vendor/plugin/function`. + * + * @return {boolean} Whether the namespace is valid. + */ +function validateNamespace(namespace) { + if ('string' !== typeof namespace || '' === namespace) { + // eslint-disable-next-line no-console + console.error('The namespace must be a non-empty string.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { + // eslint-disable-next-line no-console + console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); +//# sourceMappingURL=validateNamespace.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": +/*!******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createI18n: () => (/* binding */ createI18n) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); + + +function 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; } + +function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } + +/** + * External dependencies + */ + +/** + * @typedef {Record} LocaleData + */ + +/** + * Default locale data to use for Tannin domain when not otherwise provided. + * Assumes an English plural forms expression. + * + * @type {LocaleData} + */ + +var DEFAULT_LOCALE_DATA = { + '': { + /** @param {number} n */ + plural_forms: function plural_forms(n) { + return n === 1 ? 0 : 1; + } + } +}; +/* + * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, + * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. + */ + +var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; +/** + * @typedef {(domain?: string) => LocaleData} GetLocaleData + * + * Returns locale data by domain in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData + * + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData + * + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** @typedef {() => void} SubscribeCallback */ + +/** @typedef {() => void} UnsubscribeCallback */ + +/** + * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe + * + * Subscribes to changes of locale data + */ + +/** + * @typedef {(domain?: string) => string} GetFilterDomain + * Retrieve the domain to use when calling domain-specific filters. + */ + +/** + * @typedef {(text: string, domain?: string) => string} __ + * + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + */ + +/** + * @typedef {(text: string, context: string, domain?: string) => string} _x + * + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n + * + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx + * + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + */ + +/** + * @typedef {() => boolean} IsRtl + * + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + */ + +/** + * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation + * + * Check if there is a translation for a given string in singular form. + */ + +/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ + +/** + * An i18n instance + * + * @typedef I18n + * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. + * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. + * @property {__} __ Retrieve the translation of text. + * @property {_x} _x Retrieve translated string with gettext context. + * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied + * number. + * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * @property {IsRtl} isRTL Check if current locale is RTL. + * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. + */ + +/** + * Create an i18n instance + * + * @param {LocaleData} [initialData] Locale data configuration. + * @param {string} [initialDomain] Domain for which configuration applies. + * @param {Hooks} [hooks] Hooks implementation. + * @return {I18n} I18n instance + */ + +var createI18n = function createI18n(initialData, initialDomain, hooks) { + /** + * The underlying instance of Tannin to which exported functions interface. + * + * @type {Tannin} + */ + var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); + var listeners = new Set(); + + var notifyListeners = function notifyListeners() { + listeners.forEach(function (listener) { + return listener(); + }); + }; + /** + * Subscribe to changes of locale data. + * + * @param {SubscribeCallback} callback Subscription callback. + * @return {UnsubscribeCallback} Unsubscribe callback. + */ + + + var subscribe = function subscribe(callback) { + listeners.add(callback); + return function () { + return listeners.delete(callback); + }; + }; + /** @type {GetLocaleData} */ + + + var getLocaleData = function getLocaleData() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return tannin.data[domain]; + }; + /** + * @param {LocaleData} [data] + * @param {string} [domain] + */ + + + var doSetLocaleData = function doSetLocaleData(data) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits + // a plural forms expression). + + tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); + }; + /** @type {SetLocaleData} */ + + + var setLocaleData = function setLocaleData(data, domain) { + doSetLocaleData(data, domain); + notifyListeners(); + }; + /** @type {ResetLocaleData} */ + + + var resetLocaleData = function resetLocaleData(data, domain) { + // Reset all current Tannin locale data. + tannin.data = {}; // Reset cached plural forms functions cache. + + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + /** + * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not + * otherwise previously assigned. + * + * @param {string|undefined} domain Domain to retrieve the translated text. + * @param {string|undefined} context Context information for the translators. + * @param {string} single Text to translate if non-plural. Used as + * fallback return value on a caught error. + * @param {string} [plural] The text to be used if the number is + * plural. + * @param {number} [number] The number to compare against to use + * either the singular or plural form. + * + * @return {string} The translated string. + */ + + + var dcnpgettext = function dcnpgettext() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + var context = arguments.length > 1 ? arguments[1] : undefined; + var single = arguments.length > 2 ? arguments[2] : undefined; + var plural = arguments.length > 3 ? arguments[3] : undefined; + var number = arguments.length > 4 ? arguments[4] : undefined; + + if (!tannin.data[domain]) { + // use `doSetLocaleData` to set silently, without notifying listeners + doSetLocaleData(undefined, domain); + } + + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + /** @type {GetFilterDomain} */ + + + var getFilterDomain = function getFilterDomain() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return domain; + }; + /** @type {__} */ + + + var __ = function __(text, domain) { + var translation = dcnpgettext(domain, undefined, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext', translation, text, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) + ); + }; + /** @type {_x} */ + + + var _x = function _x(text, context, domain) { + var translation = dcnpgettext(domain, context, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation based on context information. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) + ); + }; + /** @type {_n} */ + + + var _n = function _n(single, plural, number, domain) { + var translation = dcnpgettext(domain, undefined, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) + ); + }; + /** @type {_nx} */ + + + var _nx = function _nx(single, plural, number, context, domain) { + var translation = dcnpgettext(domain, context, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string with gettext context. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) + ); + }; + /** @type {IsRtl} */ + + + var isRTL = function isRTL() { + return 'rtl' === _x('ltr', 'text direction'); + }; + /** @type {HasTranslation} */ + + + var hasTranslation = function hasTranslation(single, context, domain) { + var _tannin$data, _tannin$data2; + + var key = context ? context + "\x04" + single : single; + 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]); + + if (hooks) { + /** + * Filters the presence of a translation in the locale data. + * + * @param {boolean} hasTranslation Whether the translation is present or not.. + * @param {string} single The singular form of the translated text (used as key in locale data) + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation', result, single, context, domain); + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); + } + + return result; + }; + + if (initialData) { + setLocaleData(initialData, initialDomain); + } + + if (hooks) { + /** + * @param {string} hookName + */ + var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + + hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); + hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); + } + + return { + getLocaleData: getLocaleData, + setLocaleData: setLocaleData, + resetLocaleData: resetLocaleData, + subscribe: subscribe, + __: __, + _x: _x, + _n: _n, + _nx: _nx, + isRTL: isRTL, + hasTranslation: hasTranslation + }; +}; +//# sourceMappingURL=create-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* binding */ __), +/* harmony export */ _n: () => (/* binding */ _n), +/* harmony export */ _nx: () => (/* binding */ _nx), +/* harmony export */ _x: () => (/* binding */ _x), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), +/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), +/* harmony export */ isRTL: () => (/* binding */ isRTL), +/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), +/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), +/* harmony export */ subscribe: () => (/* binding */ subscribe) +/* harmony export */ }); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); +/** + * Internal dependencies + */ + +/** + * WordPress dependencies + */ + + +var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); +/** + * Default, singleton instance of `I18n`. + */ + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); +/* + * Comments in this file are duplicated from ./i18n due to + * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 + */ + +/** + * @typedef {import('./create-i18n').LocaleData} LocaleData + * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback + * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback + */ + +/** + * Returns locale data by domain in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {string} [domain] Domain for which to get the data. + * @return {LocaleData} Locale data. + */ + +var getLocaleData = i18n.getLocaleData.bind(i18n); +/** + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var setLocaleData = i18n.setLocaleData.bind(i18n); +/** + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var resetLocaleData = i18n.resetLocaleData.bind(i18n); +/** + * Subscribes to changes of locale data + * + * @param {SubscribeCallback} callback Subscription callback + * @return {UnsubscribeCallback} Unsubscribe callback + */ + +var subscribe = i18n.subscribe.bind(i18n); +/** + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + * + * @param {string} text Text to translate. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated text. + */ + +var __ = i18n.__.bind(i18n); +/** + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + * + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated context string without pipe. + */ + +var _x = i18n._x.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _n = i18n._n.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _nx = i18n._nx.bind(i18n); +/** + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + * + * @return {boolean} Whether locale is RTL. + */ + +var isRTL = i18n.isRTL.bind(i18n); +/** + * Check if there is a translation for a given string (in singular form). + * + * @param {string} single Singular form of the string to look up. + * @param {string} [context] Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * @return {boolean} Whether the translation exists or not. + */ + +var hasTranslation = i18n.hasTranslation.bind(i18n); +//# sourceMappingURL=default-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), +/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), +/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), +/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), +/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), +/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), +/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), +/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), +/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), +/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), +/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), +/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) +/* harmony export */ }); +/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": +/*!**************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ sprintf: () => (/* binding */ sprintf) +/* harmony export */ }); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); +/** + * External dependencies + */ + + +/** + * Log to console, once per message; or more precisely, per referentially equal + * argument set. Because Jed throws errors, we log these to the console instead + * to avoid crashing the application. + * + * @param {...*} args Arguments to pass to `console.error` + */ + +var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console + +/** + * Returns a formatted string. If an error occurs in applying the format, the + * original format string is returned. + * + * @param {string} format The format of the string to generate. + * @param {...*} args Arguments to apply to the format. + * + * @see https://www.npmjs.com/package/sprintf-js + * + * @return {string} The formatted string. + */ + +function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); + } catch (error) { + logErrorOnce('sprintf error: \n\n' + error.toString()); + return format; + } +} +//# sourceMappingURL=sprintf.js.map + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/factory/createPageElements.js": +/*!***************************************************!*\ + !*** ./js/src/core/factory/createPageElements.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* binding */ createPageElements) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page elements manager. + * + * @param {Object} [initialElements={}] An object containing initial DOM elements. + * @throws {Error} Throws an error if the `initialElements` is not an object. + * @return {Object} An object with methods to get and add elements. + */ +function createPageElements() { + var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialElements) !== 'object' || initialElements === null) { + throw new Error('createPageElements: initialElements must be a non-null object'); + } + var elements = initialElements; + + /** + * Retrieve the initialized essential DOM elements. + * + * @return {Object} The initialized elements object. + */ + function getElements() { + return elements; + } + + /** + * Add new elements to the elements object. + * + * @param {Object} newElements An object containing new elements to be added. + * @throws {Error} Throws an error if the `newElements` is not a non-null object. + * @return {void} Updates the elements object by merging the new elements into it. + */ + function addElements(newElements) { + if (_typeof(newElements) !== 'object' || newElements === null) { + throw new Error('addElements: newElements must be a non-null object'); + } + elements = _objectSpread(_objectSpread({}, elements), newElements); + } + return { + getElements: getElements, + addElements: addElements + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageState.js": +/*!************************************************!*\ + !*** ./js/src/core/factory/createPageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageState: () => (/* binding */ createPageState) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page state manager. + * + * @param {Object} [initialState={}] An object containing the initial state. + * @throws {Error} Throws an error if the `initialState` is not a plain object. + * @return {Object} An object with methods to initialize, get, and set the page state. + */ +function createPageState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialState) !== 'object' || initialState === null) { + throw new Error('createPageState: initialState must be a non-null object'); + } + var state = initialState; + + /** + * Returns the current page state. + * + * @return {Object|null} The current state of the page or null if not initialized. + */ + var getState = function getState() { + return state; + }; + + /** + * Returns a specific property from the current page state. + * + * @param {string} propertyName The name of the property to retrieve. + * @return {*} The value of the specified property, or null if it doesn't exist. + */ + var getSingleState = function getSingleState(propertyName) { + var value = Reflect.get(state, propertyName); + + // We convert `undefined` to `null` for a consistent API. + // This makes it easier for users to handle the results since all missing properties return `null`. + return value === undefined ? null : value; + }; + + /** + * Updates the page state with new values. + * + * @param {Object} newState The new values to update the state with. + * @throws {Error} Throws an error if `newState` is not a plain object. + * @return {void} + */ + var setState = function setState(newState) { + if (_typeof(newState) !== 'object' || newState === null) { + throw new Error('setState: newState must be a non-null object'); + } + state = _objectSpread(_objectSpread({}, state), newState); + }; + + /** + * Updates a specific property in the page state with a new value. + * + * @param {string} propertyName The name of the property to update. + * @param {*} value The new value to set for the property. + * @return {void} + */ + var setSingleState = function setSingleState(propertyName, value) { + if (Reflect.has(state, propertyName)) { + Reflect.set(state, propertyName, value); + } + }; + return { + getState: getState, + getSingleState: getSingleState, + setState: setState, + setSingleState: setSingleState + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/index.js": +/*!**************************************!*\ + !*** ./js/src/core/factory/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), +/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) +/* harmony export */ }); +/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); +/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/constants.js": +/*!************************************************!*\ + !*** ./js/src/core/page-skeleton/constants.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* binding */ VIEWS) +/* harmony export */ }); +var PREFIX = 'frm-page-skeleton'; +var SEARCH_RESULT_ITEM = 'frm-card-item'; +var VIEWS = { + ALL_ITEMS: 'all-items' +}; + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/elements.js": +/*!********************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/elements.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* binding */ addElements), +/* harmony export */ getElements: () => (/* binding */ getElements) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var bodyContent = document.getElementById('post-body-content'); +var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); + +// Append empty state elements to body content +var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); +bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); +var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); +var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ + bodyContent: bodyContent, + // Sidebar elements + sidebar: sidebar, + searchInput: sidebar.querySelector('.frm-search-input'), + categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), + allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) + }, emptyStateElements)), + getElements = _createPageElements.getElements, + addElements = _createPageElements.addElements; + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": +/*!*****************************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), +/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _window$frmDom = window.frmDom, + tag = _window$frmDom.tag, + div = _window$frmDom.div, + a = _window$frmDom.a, + img = _window$frmDom.img; + +/** + * Create and return the Empty State HTML element. + * + * @return {HTMLElement} The Empty State element. + */ +function createEmptyStateElement() { + var button = a({ + className: 'button button-primary frm-button-primary' + }); + button.setAttribute('role', 'button'); + return div({ + id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), + className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), + children: [img({ + src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), + alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') + }), div({ + className: 'frmcenter', + children: [tag('h2', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") + }), tag('p', { + className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") + })] + }), button] + }); +} + +/** + * Return the elements related to the Empty State. + * + * @return {Object} Object containing Empty State related DOM elements. + */ +function getEmptyStateElements() { + var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); + return { + emptyState: emptyState, + emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), + emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), + emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') + }; +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/elements/index.js": +/*!*****************************************************!*\ + !*** ./js/src/core/page-skeleton/elements/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/categoryListener.js": +/*!**************************************************************!*\ + !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Manages event handling for sidebar category links. + * + * @return {void} + */ +function addCategoryEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + categoryItems = _getElements.categoryItems; + + // Attach click and keyboard event listeners to each sidebar category + categoryItems.forEach(function (category) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); + category.addEventListener('keydown', onCategoryKeydown); + }); +} + +/** + * Handles the click event on a category item. + * + * @private + * @param {Event} event The click event object. + */ +var onCategoryClick = function onCategoryClick(event) { + var clickedCategory = event.currentTarget; + var newSelectedCategory = clickedCategory.getAttribute('data-category'); + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory, + selectedCategoryEl = _getState.selectedCategoryEl, + notEmptySearchText = _getState.notEmptySearchText; + + // If the selected category hasn't changed, return early + if (selectedCategory === newSelectedCategory) { + return; + } + + /** + * Filter hook to modify the selected category. + * + * @param {string} selectedCategory The selected category + */ + selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); + + // Highlight the newly clicked category and update the application state + selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + selectedCategoryEl = clickedCategory; + selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ + selectedCategory: selectedCategory, + selectedCategoryEl: selectedCategoryEl + }); + + // Reset the search input if it contains text + if (notEmptySearchText) { + (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); + } + + /** + * Trigger custom action to update category content. + * + * @param {string} selectedCategory The selected category. + */ + wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); + + // Smoothly display the updated UI elements + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements2.bodyContent; + new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); +}; + +/** + * Handles the keyboard event on a category item. + * + * @param {KeyboardEvent} event The keyboard event object. + * @return {void} + */ +function onCategoryKeydown(event) { + // Only respond to 'Enter' or 'Space' key presses + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + onCategoryClick(event); + } +} + +/***/ }), + +/***/ "./js/src/core/page-skeleton/events/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/events/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), +/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); +/** + * Internal dependencies + */ + + +/** + * Resets the value of the search input and triggers an input event. + * + * @return {void} + */ +function resetSearchInput() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + searchInput = _getElements.searchInput; + searchInput.value = ''; + searchInput.dispatchEvent(new Event('input', { + bubbles: true + })); +} + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/index.js": +/*!********************************************!*\ + !*** ./js/src/core/page-skeleton/index.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), +/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), +/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), +/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), +/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), +/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); + + + + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/index.js": +/*!***************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/index.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); + + +/***/ }), + +/***/ "./js/src/core/page-skeleton/shared/pageState.js": +/*!*******************************************************!*\ + !*** ./js/src/core/page-skeleton/shared/pageState.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* binding */ getSingleState), +/* harmony export */ getState: () => (/* binding */ getState), +/* harmony export */ setSingleState: () => (/* binding */ setSingleState), +/* harmony export */ setState: () => (/* binding */ setState) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + allItemsCategory = _getElements.allItemsCategory; +var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ + notEmptySearchText: false, + selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, + selectedCategoryEl: allItemsCategory + }), + getState = _createPageState.getState, + getSingleState = _createPageState.getSingleState, + setState = _createPageState.setState, + setSingleState = _createPageState.setSingleState; + + +/***/ }), + +/***/ "./js/src/core/ui/addProgressToCardBoxes.js": +/*!**************************************************!*\ + !*** ./js/src/core/ui/addProgressToCardBoxes.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Internal Dependencies + */ +var span = window.frmDom.span; + +/** + * Adds a progress bar to each card box element to visually indicate its position in the sequence. + * + * @param {Element[]} cardBoxes Collection of card box elements to enhance with progress bars. + * @return {void} + */ +function addProgressToCardBoxes(cardBoxes) { + if (!Array.isArray(cardBoxes) || !cardBoxes.length) { + console.warn('addProgressToCardBoxes: Expected a non-empty array of cardBoxes.'); + return; + } + cardBoxes.forEach(function (element, index) { + // Exclude cards that either don't require a progress bar or already include one + if (!element.classList.contains('frm-has-progress-bar') || element.querySelector('.frm-card-box-progress-bar')) { + return; + } + var progressBar = span(); + var widthPercentage = (index + 1) / cardBoxes.length * 100; + progressBar.style.width = "".concat(widthPercentage, "%"); + var progressBarContainer = span({ + className: 'frm-card-box-progress-bar', + child: progressBar + }); + element.insertAdjacentElement('afterbegin', progressBarContainer); + }); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addProgressToCardBoxes); + +/***/ }), + +/***/ "./js/src/core/ui/counter.js": +/*!***********************************!*\ + !*** ./js/src/core/ui/counter.js ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Updates the text content of an element with a counter value using smooth animation. + * + * @param {HTMLElement|string} element The DOM element or selector to update + * @param {number|string} value The new counter value to set + * @param {Object} options Animation options + * @param {number} options.duration Duration in milliseconds (default: 3000) + * @param {Function} options.easing Easing function (default: easeOutQuart) + * @throws {Error} When element is not found or invalid + * @return {HTMLElement} The updated element for method chaining + */ +var counter = function counter(element, value) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var targetElement = typeof element === 'string' ? document.querySelector(element) : element; + if (!targetElement || !(targetElement instanceof HTMLElement)) { + return null; + } + var targetValue = typeof value === 'number' ? value : parseInt(value, 10); + if (isNaN(targetValue)) { + console.warn('Counter: Invalid value provided, defaulting to 0'); + return setElementValueAndReturn(targetElement, '0'); + } + + // Don't run the animation if the sent value is 0 + if (targetValue === 0) { + return setElementValueAndReturn(targetElement, '0'); + } + var _options$duration = options.duration, + duration = _options$duration === void 0 ? 3000 : _options$duration, + _options$easing = options.easing, + easing = _options$easing === void 0 ? easeOutQuart : _options$easing; + var startValue = parseInt(targetElement.textContent, 10) || 0; + var change = targetValue - startValue; + + // Skip animation if no change needed + if (change === 0) { + return targetElement; + } + + // Cancel any existing animation + if (targetElement._counterAnimation) { + cancelAnimationFrame(targetElement._counterAnimation); + } + + // Start animation + targetElement.classList.add('frm-fadein'); + targetElement._counterAnimation = requestAnimationFrame(function (timestamp) { + return _animateCounter(timestamp, targetElement, startValue, targetValue, duration, change, easing); + }); + return targetElement; +}; + +/** + * Helper function to set element text content and return element + * + * @param {HTMLElement} element Target element + * @param {string|number} value Value to set + * @return {HTMLElement} The element for method chaining + */ +var setElementValueAndReturn = function setElementValueAndReturn(element, value) { + element.textContent = String(value); + return element; +}; + +/** + * Standalone animation function for counter (optimized to prevent redefinition) + * + * @param {number} timestamp Current timestamp from requestAnimationFrame + * @param {HTMLElement} element Target element to animate + * @param {number} startValue Starting counter value + * @param {number} targetValue Target counter value + * @param {number} duration Animation duration in milliseconds + * @param {number} change Total change amount (targetValue - startValue) + * @param {Function} easing Easing function + * @return {void} + */ +var _animateCounter = function animateCounter(timestamp, element, startValue, targetValue, duration, change, easing) { + if (!element._counterStartTime) { + element._counterStartTime = timestamp; + element._counterLastTimestamp = timestamp; + element._counterFrameDropCount = 0; + element._counterLastValue = startValue; + } + var frameDelta = timestamp - element._counterLastTimestamp; + var elapsed = timestamp - element._counterStartTime; + + // Performance monitoring: detect animation stuttering + // If frame gaps exceed 50ms (indicating browser lag/blocking), count as frame drop + if (frameDelta > 50 && element._counterLastTimestamp !== null) { + element._counterFrameDropCount++; + + // Fallback strategy: after 3 frame drops, abandon JS animation for CSS transition + // This prevents choppy animations when browser is under heavy load + if (element._counterFrameDropCount > 3) { + element.style.transition = "opacity ".concat(Math.max(duration - elapsed, 100), "ms ease-out"); + element.textContent = String(targetValue); + delete element._counterAnimation; + return; + } + } + + // Calculate eased progress and current value + var progress = Math.min(elapsed / duration, 1); + var easedProgress = easing(progress); + var currentValue = Math.round(startValue + change * easedProgress); + + // Only update DOM if value actually changed (reduce unnecessary reflows) + if (currentValue !== element._counterLastValue) { + element.textContent = String(currentValue); + element._counterLastValue = currentValue; + } + element._counterLastTimestamp = timestamp; + + // Continue animation or finish + if (progress < 1) { + element._counterAnimation = requestAnimationFrame(function (timestamp) { + return _animateCounter(timestamp, element, startValue, targetValue, duration, change, easing); + }); + return; + } + + // Ensure final value is exact + element.textContent = String(targetValue); + + // Clean up all counter-related properties + ['_counterAnimation', '_counterStartTime', '_counterLastTimestamp', '_counterFrameDropCount', '_counterLastValue'].forEach(function (prop) { + return delete element[prop]; + }); + element.style.removeProperty('transition'); +}; + +/** + * Easing function for smooth animation + * + * @param {number} t Progress from 0 to 1 + * @return {number} Eased value + */ +var easeOutQuart = function easeOutQuart(t) { + return 1 - Math.pow(1 - t, 4); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (counter); + +/***/ }), + +/***/ "./js/src/core/ui/index.js": +/*!*********************************!*\ + !*** ./js/src/core/ui/index.js ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addProgressToCardBoxes: () => (/* reexport safe */ _addProgressToCardBoxes__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ counter: () => (/* reexport safe */ _counter__WEBPACK_IMPORTED_MODULE_1__["default"]) +/* harmony export */ }); +/* harmony import */ var _addProgressToCardBoxes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addProgressToCardBoxes */ "./js/src/core/ui/addProgressToCardBoxes.js"); +/* harmony import */ var _counter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./counter */ "./js/src/core/ui/counter.js"); + + + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/** + * Removes a query parameter and updates history with replaceState. + * + * @param {string} paramName The query parameter to remove. + * @return {void} + */ +var removeParamFromHistory = function removeParamFromHistory(paramName) { + return history.replaceState({}, '', removeQueryParam(paramName)); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./js/src/form-templates/elements/applicationTemplatesElement.js": +/*!***********************************************************************!*\ + !*** ./js/src/form-templates/elements/applicationTemplatesElement.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplatesElement: () => (/* binding */ addApplicationTemplatesElement), +/* harmony export */ createApplicationTemplates: () => (/* binding */ createApplicationTemplates) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + +var _window$frmDom = window.frmDom, + tag = _window$frmDom.tag, + div = _window$frmDom.div, + span = _window$frmDom.span, + a = _window$frmDom.a, + img = _window$frmDom.img; + +// Application templates element +var applicationTemplates; + +// Base URL for the thumbnail images of applications +var thumbnailBaseURL = "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/applications/thumbnails"); + +/** + * Create and return the application templates HTML element. + * + * @param {Object[]} applications Array of application objects. + * @return {void} + */ +function createApplicationTemplates(applications) { + if (!applications || !applications.length) { + return; + } + var templateItems = applications.map(function (template) { + return createTemplateItem(template); + }); + applicationTemplates = div({ + id: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-applications"), + className: core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, + children: [tag('h2', { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Application Templates'), + className: 'frm-text-sm frm-mb-sm' + }), tag('ul', { + className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list frm-list-grid-layout"), + children: templateItems + })] + }); +} + +/** + * Create and return an individual item element for a application template. + * + * @private + * @param {Object} template The application object. + * @return {HTMLElement} Element representing a single application template. + */ +function createTemplateItem(template) { + var name = template.name, + key = template.key, + hasLiteThumbnail = template.hasLiteThumbnail, + isWebp = template.isWebp; + // eslint-disable-next-line no-nested-ternary + var thumbnailURL = hasLiteThumbnail ? isWebp ? "".concat(thumbnailBaseURL, "/").concat(key, ".webp") : "".concat(thumbnailBaseURL, "/").concat(key, ".png") : "".concat(thumbnailBaseURL, "/placeholder.svg"); + return tag('li', { + className: 'frm-card-item', + data: { + href: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl, "&triggerViewApplicationModal=1&template=").concat(key), + 'frm-search-text': name.toLowerCase() + }, + children: [div({ + className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-icon"), + child: img({ + src: thumbnailURL + }) + }), div({ + className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-body"), + children: [span({ + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Ready Made Solution', 'formidable'), + className: 'frm-meta-tag frm-orange-tag frm-text-xs' + }), tag('h3', { + text: name, + className: 'frm-text-sm frm-font-medium frm-m-0' + }), a({ + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('See all applications', 'formidable'), + className: 'frm-text-xs frm-font-semibold', + href: _shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl + })] + })] + }); +} + +/** + * Inject application Templates elements into the DOM and the elements object. + * + * @return {void} + */ +function addApplicationTemplatesElement() { + var elements = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(); + if (elements.applicationTemplates || undefined === applicationTemplates) { + return; + } + elements.bodyContent.appendChild(applicationTemplates); + (0,_elements__WEBPACK_IMPORTED_MODULE_4__.addElements)({ + applicationTemplates: applicationTemplates, + applicationTemplatesTitle: applicationTemplates.querySelector('h2'), + applicationTemplatesList: applicationTemplates.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list")), + applicationTemplateItems: applicationTemplates.querySelectorAll('.frm-card-item') + }); +} + +/***/ }), + +/***/ "./js/src/form-templates/elements/elements.js": +/*!****************************************************!*\ + !*** ./js/src/form-templates/elements/elements.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +var _document$getElementB, _document$getElementB2; +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + bodyContent = _getElements.bodyContent; +var templatesList = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")); +var customTemplatesSection = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-section")); +var favoritesCategory = document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.FAVORITES, "\"]")); +var modal = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal")); +(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ + // Body elements + headerCancelButton: (_document$getElementB = document.getElementById('frm-publishing')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.querySelector('a'), + createFormButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-create-form")), + pageTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title")), + pageTitleText: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-text")), + pageTitleDivider: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-divider")), + upsellBanner: (_document$getElementB2 = document.getElementById('frm-renew-subscription-banner')) !== null && _document$getElementB2 !== void 0 ? _document$getElementB2 : document.getElementById('frm-upgrade-banner'), + extraTemplateCountElements: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-extra-templates-count")), + // Templates elements + templatesList: templatesList, + templateItems: templatesList.querySelectorAll('.frm-card-item'), + availableTemplateItems: templatesList.querySelectorAll(".frm-card-item:not(.".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-locked-item)")), + twinFeaturedTemplateItems: templatesList.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-item")), + featuredTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-list")), + // Custom Templates Section elements + customTemplatesSection: customTemplatesSection, + customTemplateItems: customTemplatesSection.querySelectorAll('.frm-card-item'), + customTemplatesTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-title")), + customTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list")), + // Sidebar elements + favoritesCategory: favoritesCategory, + favoritesCategoryCountEl: favoritesCategory === null || favoritesCategory === void 0 ? void 0 : favoritesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-count")), + availableTemplatesCategory: document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.AVAILABLE_TEMPLATES, "\"]")), + getFreeTemplatesBannerButton: document.querySelector('.frm-get-free-templates-banner .button'), + // Modal elements + modal: modal, + modalItems: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal-item")), + // Create New Template Modal + showCreateTemplateModalButton: document.getElementById('frm-show-create-template-modal'), + createTemplateModal: document.getElementById('frm-create-template-modal'), + createTemplateFormsDropdown: document.getElementById('frm-create-template-modal-forms-select'), + createTemplateName: document.getElementById('frm_create_template_name'), + createTemplateDescription: document.getElementById('frm_create_template_description'), + createTemplateButton: document.getElementById('frm-create-template-button'), + // Renew Account Modal + renewAccountModal: document.getElementById('frm-renew-modal'), + // Leave Email Modal + leaveEmailModal: document.getElementById('frm-leave-email-modal'), + leaveEmailModalInput: document.getElementById('frm_leave_email'), + leaveEmailModalButton: document.getElementById('frm-get-code-button'), + // Upgrade Modal + upgradeModal: document.getElementById('frm-form-upgrade-modal'), + upgradeModalTemplateNames: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-template-name'), + upgradeModalPlansIcons: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-plan-icon'), + upgradeModalLink: document.getElementById('frm-upgrade-modal-link'), + // New Template Form elements + newTemplateForm: document.getElementById('frm-new-template'), + newTemplateNameInput: document.getElementById('frm_template_name'), + newTemplateDescriptionInput: document.getElementById('frm_template_desc'), + newTemplateLinkInput: document.getElementById('frm_link'), + newTemplateActionInput: document.getElementById('frm_action_type'), + // Add children of the bodyContent to the elements object. + bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children +}); + + +/***/ }), + +/***/ "./js/src/form-templates/elements/index.js": +/*!*************************************************!*\ + !*** ./js/src/form-templates/elements/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplatesElement: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplatesElement), +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ createApplicationTemplates: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.createApplicationTemplates), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); +/* harmony import */ var _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplatesElement */ "./js/src/form-templates/elements/applicationTemplatesElement.js"); + + + +/***/ }), + +/***/ "./js/src/form-templates/events/applicationTemplateListener.js": +/*!*********************************************************************!*\ + !*** ./js/src/form-templates/events/applicationTemplateListener.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplateEvents: () => (/* binding */ addApplicationTemplateEvents) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * Internal dependencies + */ + + +/** + * Manages event handling for an application template. + * + * @return {void} + */ +function addApplicationTemplateEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + applicationTemplateItems = _getElements.applicationTemplateItems; + if (undefined === applicationTemplateItems) { + return; + } + + // Attach click event listener + applicationTemplateItems.forEach(function (template) { + template.addEventListener('click', onApplicationTemplateClick); + }); +} + +/** + * Handles the click event on an application template. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onApplicationTemplateClick = function onApplicationTemplateClick(event) { + // Check if the clicked element is an anchor tag + if (event.target.closest('a')) { + return; + } + var applicationTemplate = event.currentTarget; + window.location.href = applicationTemplate.dataset.href; +}; + +/***/ }), + +/***/ "./js/src/form-templates/events/createFormButtonListener.js": +/*!******************************************************************!*\ + !*** ./js/src/form-templates/events/createFormButtonListener.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +/** + * Manages event handling for the "Create a blank form" button. + * + * @return {void} + */ +function addCreateFormButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createFormButton = _getElements.createFormButton; + + // Attach click event listener + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createFormButton, onCreateFormButtonClick); +} + +/** + * Handles the click event on the "Create a blank form" button. + * + * @private + * @return {void} + */ +var onCreateFormButtonClick = function onCreateFormButtonClick() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createFormButton = _getElements2.createFormButton, + newTemplateForm = _getElements2.newTemplateForm, + newTemplateNameInput = _getElements2.newTemplateNameInput, + newTemplateActionInput = _getElements2.newTemplateActionInput; + var installNewForm = window.frmAdminBuild.installNewForm; + newTemplateNameInput.value = ''; + newTemplateActionInput.value = 'frm_install_form'; + installNewForm(newTemplateForm, 'frm_install_form', createFormButton); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateFormButtonEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/createTemplateListeners.js": +/*!*****************************************************************!*\ + !*** ./js/src/form-templates/events/createTemplateListeners.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + + +/** + * Manages event handling for the 'Create New Template' modal. + * + * @return {void} + */ +function addCreateTemplateEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateFormsDropdown = _getElements.createTemplateFormsDropdown, + createTemplateButton = _getElements.createTemplateButton, + showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, + emptyStateButton = _getElements.emptyStateButton; + + // Show the 'Create New Template' modal when either empty state or show modal button is clicked + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(emptyStateButton, onShowCreateTemplateModalButtonClick); + + // Handle changes in the forms selection dropdown for creating a new template + createTemplateFormsDropdown.addEventListener('change', onFormsSelectChange); + + // Create a new template when the create button inside the modal is clicked + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createTemplateButton, onCreateTemplateButtonClick); +} + +/** + * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal. + * + * @private + * @return {void} + */ +var onShowCreateTemplateModalButtonClick = function onShowCreateTemplateModalButtonClick() { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + selectedCategory = _getState.selectedCategory; + if (!(0,_utils__WEBPACK_IMPORTED_MODULE_5__.isCustomCategory)(selectedCategory)) { + return; + } + (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showCreateTemplateModal)(); +}; + +/** + * Handles changes in the forms selection dropdown for creating a new template. + * + * @private + * @return {void} + */ +var onFormsSelectChange = function onFormsSelectChange() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + formsSelect = _getElements2.createTemplateFormsDropdown; + var formId = formsSelect.value; + if (!formId || formId === 'no-forms') { + toggleDisableModalElements(true); + return; + } + toggleDisableModalElements(false); + var selectedOption = formsSelect.options[formsSelect.selectedIndex]; + var formDescription = selectedOption.dataset.description.trim(); + var formName = selectedOption.dataset.name.trim(); + var templateString = " ".concat((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Template', 'formidable')); + if (!formName.endsWith(templateString)) { + formName += templateString; + } + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateName = _getElements3.createTemplateName, + createTemplateDescription = _getElements3.createTemplateDescription; + createTemplateName.value = formName; + createTemplateDescription.value = formDescription; +}; + +/** + * Toggles the disabled state of elements in the 'Create Template' modal. + * + * @private + * @param {boolean} shouldDisable True to disable, false to enable. + * @return {void} + */ +var toggleDisableModalElements = function toggleDisableModalElements(shouldDisable) { + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateName = _getElements4.createTemplateName, + createTemplateDescription = _getElements4.createTemplateDescription, + createTemplateButton = _getElements4.createTemplateButton; + + // Toggle the disabled attribute for input and textarea + [createTemplateName, createTemplateDescription].forEach(function (element) { + element.disabled = shouldDisable; + if (shouldDisable) { + element.value = ''; // Clear the content for input and textarea + } + }); + + // Toggle the disabled class for the button + createTemplateButton.classList.toggle('disabled', shouldDisable); +}; + +/** + * Handles the click event on the 'Create Template' button to create a new template. + * + * @private + * @return {void} + */ +var onCreateTemplateButtonClick = function onCreateTemplateButtonClick() { + var installNewForm = window.frmAdminBuild.installNewForm; + var actionName = 'frm_create_template'; + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + newTemplateForm = _getElements5.newTemplateForm, + newTemplateActionInput = _getElements5.newTemplateActionInput, + newTemplateNameInput = _getElements5.newTemplateNameInput, + newTemplateDescriptionInput = _getElements5.newTemplateDescriptionInput, + newTemplateLinkInput = _getElements5.newTemplateLinkInput, + createTemplateName = _getElements5.createTemplateName, + createTemplateDescription = _getElements5.createTemplateDescription, + createTemplateFormsDropdown = _getElements5.createTemplateFormsDropdown, + createTemplateButton = _getElements5.createTemplateButton; + newTemplateActionInput.value = actionName; + newTemplateNameInput.value = createTemplateName.value.trim(); + newTemplateDescriptionInput.value = createTemplateDescription.value.trim(); + newTemplateLinkInput.value = createTemplateFormsDropdown.value; + + // Install new form template + installNewForm(newTemplateForm, actionName, createTemplateButton); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateTemplateEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/favoriteButtonListener.js": +/*!****************************************************************!*\ + !*** ./js/src/form-templates/events/favoriteButtonListener.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +var FAVORITE_BUTTON_CLASS = ".".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-item-favorite-button"); +var HEART_ICON_SELECTOR = "".concat(FAVORITE_BUTTON_CLASS, " use"); +var FILLED_HEART_ICON = '#frm_heart_solid_icon'; +var LINEAR_HEART_ICON = '#frm_heart_icon'; +var OPERATION = { + ADD: 'add', + REMOVE: 'remove' +}; + +/** + * Manages event handling for favorite buttons. + * + * @return {void} + */ +function addFavoriteButtonEvents() { + var favoriteButtons = document.querySelectorAll(FAVORITE_BUTTON_CLASS); + + // Attach click event listeners to each favorite button + favoriteButtons.forEach(function (favoriteButton) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(favoriteButton, onFavoriteButtonClick); + }); +} + +/** + * Handles the click event on the add to favorite button. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onFavoriteButtonClick = function onFavoriteButtonClick(event) { + var _twinFeaturedTemplate; + var favoriteButton = event.currentTarget; + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + templatesList = _getElements.templatesList, + featuredTemplatesList = _getElements.featuredTemplatesList, + favoritesCategoryCountEl = _getElements.favoritesCategoryCountEl, + customTemplatesTitle = _getElements.customTemplatesTitle; + + /** + * Get necessary template information + */ + var template = favoriteButton.closest('.frm-card-item'); + var templateId = template.dataset.id; + var isFavorited = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); + var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isCustomTemplate)(template); + var isTemplateFeatured = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFeaturedTemplate)(template); + + /** + * Toggle the favorite status in the UI. + * If template is featured, toggle its twin version in the respective list. + */ + var twinFeaturedTemplate = null; + template.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); + if (isTemplateFeatured) { + var templateList = template.closest("#".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-list")) ? featuredTemplatesList : templatesList; + if (templateList) { + twinFeaturedTemplate = templateList.querySelector(".frm-card-item[data-id=\"".concat(templateId, "\"]")); + // Toggle twin template's favorite status + twinFeaturedTemplate.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); + } + } + + /** + * Update favorite counts and icons based on the new state + */ + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getState)(), + selectedCategory = _getState.selectedCategory, + favoritesCount = _getState.favoritesCount; + var currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD; + var heartIcon = template.querySelector(HEART_ICON_SELECTOR); + var twinTemplateHeartIcon = (_twinFeaturedTemplate = twinFeaturedTemplate) === null || _twinFeaturedTemplate === void 0 ? void 0 : _twinFeaturedTemplate.querySelector(HEART_ICON_SELECTOR); + if (OPERATION.ADD === currentOperation) { + // Increment favorite counts + ++favoritesCount.total; + isTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions + // Set heart icon to filled + heartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); + twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); + } else { + // Decrement favorite counts + --favoritesCount.total; + isTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions + // Set heart icon to outline + heartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); + twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); + } + + // Update UI and state to reflect new favorite counts + favoritesCategoryCountEl.textContent = favoritesCount.total; + (0,_shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState)('favoritesCount', favoritesCount); + + /** + * Hide UI elements if 'Favorites' is active and counts are zero. + */ + if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoritesCategory)(selectedCategory)) { + if (0 === favoritesCount.total) { + (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showFavoritesEmptyState)(); + } + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(template); + if (0 === favoritesCount.default) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(templatesList); + } + if (0 === favoritesCount.custom || 0 === favoritesCount.default) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); + } + } + + // Update server-side data for favorite templates + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.addToRequestQueue)(function () { + return updateFavoriteTemplate(templateId, currentOperation, isTemplateCustom); + }); +}; + +/** + * Update server-side data for favorite templates. + * + * @param {string} id The template ID. + * @param {string} operation The operation to perform ('add' or 'remove'). + * @param {boolean} isCustom Flag indicating whether the template is custom. + * @return {Promise} The result of the server-side update. + */ +function updateFavoriteTemplate(id, operation, isCustom) { + var formData = new FormData(); + var doJsonPost = frmDom.ajax.doJsonPost; + formData.append('template_id', id); + formData.append('operation', operation); + formData.append('is_custom_template', isCustom); + return doJsonPost('add_or_remove_favorite_template', formData); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addFavoriteButtonEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/getFreeTemplatesListener.js": +/*!******************************************************************!*\ + !*** ./js/src/form-templates/events/getFreeTemplatesListener.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * External dependencies + */ + +var tag = window.frmDom.tag; + +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Get Templates" button. + * + * @return {void} + */ +function addGetFreeTemplatesEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + leaveEmailModalButton = _getElements.leaveEmailModalButton, + getFreeTemplatesBannerButton = _getElements.getFreeTemplatesBannerButton; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(leaveEmailModalButton, onGetTemplatesButtonClick); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(getFreeTemplatesBannerButton, _ui__WEBPACK_IMPORTED_MODULE_3__.showLeaveEmailModal); +} + +/** + * Handles the click event on the "Get Templates" button. + * + * @private + * @return {void} + */ +var onGetTemplatesButtonClick = /*#__PURE__*/function () { + var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var _getElements2, leaveEmailModalInput, email, _getElements3, leaveEmailModalButton, formData, data, doJsonPost; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), leaveEmailModalInput = _getElements2.leaveEmailModalInput; + email = leaveEmailModalInput.value.trim(); // Check if the email field is empty + if (email) { + _context.next = 5; + break; + } + (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showEmailAddressError)('empty'); + return _context.abrupt("return"); + case 5: + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isValidEmail)(email)) { + _context.next = 8; + break; + } + (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showEmailAddressError)('invalid'); + return _context.abrupt("return"); + case 8: + // Disable the button + _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), leaveEmailModalButton = _getElements3.leaveEmailModalButton; + leaveEmailModalButton.style.setProperty('cursor', 'not-allowed'); + leaveEmailModalButton.classList.add('frm_loading_button'); + formData = new FormData(); + formData.append('email', email); + doJsonPost = frmDom.ajax.doJsonPost; + _context.prev = 14; + _context.next = 17; + return doJsonPost('get_free_templates', formData); + case 17: + data = _context.sent; + _context.next = 25; + break; + case 20: + _context.prev = 20; + _context.t0 = _context["catch"](14); + console.error('An error occurred:', _context.t0); + showFailedToGetTemplates(); + return _context.abrupt("return"); + case 25: + if (data.success) { + _context.next = 28; + break; + } + showFailedToGetTemplates(); + return _context.abrupt("return"); + case 28: + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hasQueryParam)('free-templates')) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('free-templates'); + } + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.setQueryParam)('registered-for-free-templates', '1'); + window.location.reload(); + case 31: + case "end": + return _context.stop(); + } + }, _callee, null, [[14, 20]]); + })); + return function onGetTemplatesButtonClick() { + return _ref.apply(this, arguments); + }; +}(); + +/** + * Shows a message indicating that templates could not be retrieved. + * + * @private + * @return {void} + */ +function showFailedToGetTemplates() { + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + leaveEmailModal = _getElements4.leaveEmailModal; + leaveEmailModal.querySelector('.inside').replaceChildren(tag('p', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Failed to get templates, please try again later.', 'formidable'))); + leaveEmailModal.querySelector('.frm_modal_footer').classList.add('frm_hidden'); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addGetFreeTemplatesEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/index.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/events/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addApplicationTemplateEvents: () => (/* reexport safe */ _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_8__.addApplicationTemplateEvents), +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createFormButtonListener */ "./js/src/form-templates/events/createFormButtonListener.js"); +/* harmony import */ var _favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./favoriteButtonListener */ "./js/src/form-templates/events/favoriteButtonListener.js"); +/* harmony import */ var _useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useTemplateButtonListener */ "./js/src/form-templates/events/useTemplateButtonListener.js"); +/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./searchListener */ "./js/src/form-templates/events/searchListener.js"); +/* harmony import */ var _createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createTemplateListeners */ "./js/src/form-templates/events/createTemplateListeners.js"); +/* harmony import */ var _getFreeTemplatesListener__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getFreeTemplatesListener */ "./js/src/form-templates/events/getFreeTemplatesListener.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./applicationTemplateListener */ "./js/src/form-templates/events/applicationTemplateListener.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + + + + + +/** + * Attaches event listeners for handling user interactions. + * + * @return {void} + */ +function addEventListeners() { + (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); + wp.hooks.addAction('frmPage.onCategoryClick', 'frmFormTemplates', function (selectedCategory) { + // Display templates of the selected category + (0,_ui__WEBPACK_IMPORTED_MODULE_7__.showSelectedCategory)(selectedCategory); + }); + (0,_createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__["default"])(); + (0,_favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); + (0,_searchListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); + (0,_createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__["default"])(); + (0,_getFreeTemplatesListener__WEBPACK_IMPORTED_MODULE_6__["default"])(); +} + + +/***/ }), + +/***/ "./js/src/form-templates/events/searchListener.js": +/*!********************************************************!*\ + !*** ./js/src/form-templates/events/searchListener.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + +var initSearch = window.frmDom.search.init; + +/** + * Adds search-related event listeners by calling the 'initSearch' function. + * + * @see frmDom.search method + * @return {void} + */ +function addSearchEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + searchInput = _getElements.searchInput, + emptyStateButton = _getElements.emptyStateButton; + initSearch(searchInput, 'frm-card-item', { + handleSearchResult: handleSearchResult + }); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(emptyStateButton, onEmptyStateButtonClick); +} + +/** + * Manages UI state based on search results and input value. + * + * @private + * @param {Object} args Contains flags for search status. + * @param {boolean} args.foundSomething True if search yielded results. + * @param {boolean} args.notEmptySearchText True if search input is not empty. + * @param {Event} event The event object (input, search, or change event). + * @return {void} + */ +function handleSearchResult(_ref, event) { + var foundSomething = _ref.foundSomething, + notEmptySearchText = _ref.notEmptySearchText; + // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, + // triggering this method twice on 'x' button click. + if (event && event.type === 'search' && event.target.value === '') { + return; + } + var state = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(); + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + allItemsCategory = _getElements2.allItemsCategory; + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('notEmptySearchText', notEmptySearchText); + + // Revert to 'All Templates' if search and selected category are both empty + if (!state.notEmptySearchText && !state.selectedCategory) { + allItemsCategory.dispatchEvent(new Event('click', { + bubbles: true + })); + return; + } + + // Display search state if a category is selected + if (state.selectedCategory) { + (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showSearchState)(notEmptySearchText); + + // Setting "selectedCategory" to an empty string as a flag for search state + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); + } + } + (0,_ui__WEBPACK_IMPORTED_MODULE_4__.displaySearchElements)(foundSomething, notEmptySearchText); +} + +/** + * Handles the click event on the empty state button. + * + * @private + * @return {void} + */ +var onEmptyStateButtonClick = function onEmptyStateButtonClick() { + var _emptyState$dataset; + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyState = _getElements3.emptyState; + if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH !== ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { + return; + } + + // Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty + // @see handleSearchResult() + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); + (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.resetSearchInput)(); + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + searchInput = _getElements4.searchInput; + searchInput.focus(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); + +/***/ }), + +/***/ "./js/src/form-templates/events/useTemplateButtonListener.js": +/*!*******************************************************************!*\ + !*** ./js/src/form-templates/events/useTemplateButtonListener.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/ */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/** + * Internal dependencies + */ + + + + + +/** + * Manages event handling for use template buttons. + * + * @return {void} + */ +function addUseTemplateButtonEvents() { + var useTemplateButtons = document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-use-template-button")); + + // Attach click event listeners to each use template button + useTemplateButtons.forEach(function (useTemplateButton) { + return useTemplateButton.addEventListener('click', onUseTemplateButtonClick); + }); +} + +/** + * Handles the click event on the use template button. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onUseTemplateButtonClick = function onUseTemplateButtonClick(event) { + var useTemplateButton = event.currentTarget; + var template = useTemplateButton.closest('.frm-card-item'); + var isLocked = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isLockedTemplate)(template); + var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isCustomTemplate)(template); + + // Allow the default link behavior, if the template is custom and not locked + if (!isLocked && isTemplateCustom) { + return; + } + + // Prevent the default link behavior for non-custom or locked templates + event.preventDefault(); + + // Handle locked templates + if (isLocked) { + (0,_ui___WEBPACK_IMPORTED_MODULE_2__.showLockedTemplateModal)(template); + return; + } + + // Prepare for new template installation + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + newTemplateForm = _getElements.newTemplateForm, + newTemplateNameInput = _getElements.newTemplateNameInput, + newTemplateDescriptionInput = _getElements.newTemplateDescriptionInput, + newTemplateLinkInput = _getElements.newTemplateLinkInput, + newTemplateActionInput = _getElements.newTemplateActionInput; + var installNewForm = window.frmAdminBuild.installNewForm; + var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); + var templateDescription = template.querySelector('.frm-form-templates-item-description').textContent.trim(); + var actionName = 'frm_install_template'; + newTemplateNameInput.value = templateName; + newTemplateDescriptionInput.value = templateDescription; + newTemplateActionInput.value = actionName; + newTemplateLinkInput.value = useTemplateButton.href; + + // Install new form template + installNewForm(newTemplateForm, actionName, useTemplateButton); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addUseTemplateButtonEvents); + +/***/ }), + +/***/ "./js/src/form-templates/initializeFormTemplates.js": +/*!**********************************************************!*\ + !*** ./js/src/form-templates/initializeFormTemplates.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/form-templates/ui/index.js"); +/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates */ "./js/src/form-templates/templates/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./events */ "./js/src/form-templates/events/index.js"); +/** + * Internal dependencies + */ + + + + +/** + * Initializes form templates. + * + * @return {void} + */ +function initializeFormTemplates() { + (0,_templates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates)(); + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.initializeModal)(); + (0,_templates__WEBPACK_IMPORTED_MODULE_1__.buildCategorizedTemplates)(); + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); + (0,_events__WEBPACK_IMPORTED_MODULE_2__.addEventListeners)(); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeFormTemplates); + +/***/ }), + +/***/ "./js/src/form-templates/shared/constants.js": +/*!***************************************************!*\ + !*** ./js/src/form-templates/shared/constants.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FEATURED_TEMPLATES_IDS: () => (/* binding */ FEATURED_TEMPLATES_IDS), +/* harmony export */ FREE_TEMPLATES_IDS: () => (/* binding */ FREE_TEMPLATES_IDS), +/* harmony export */ MODAL_SIZES: () => (/* binding */ MODAL_SIZES), +/* harmony export */ PLANS: () => (/* binding */ PLANS), +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ VIEW_SLUGS: () => (/* binding */ VIEW_SLUGS), +/* harmony export */ applicationsUrl: () => (/* binding */ applicationsUrl), +/* harmony export */ canAccessApplicationDashboard: () => (/* binding */ canAccessApplicationDashboard), +/* harmony export */ upgradeLink: () => (/* binding */ upgradeLink) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + canAccessApplicationDashboard = _window$frmGlobal.canAccessApplicationDashboard, + applicationsUrl = _window$frmGlobal.applicationsUrl; + +var _window$frmFormTempla = window.frmFormTemplatesVars, + FEATURED_TEMPLATES_IDS = _window$frmFormTempla.FEATURED_TEMPLATES_IDS, + FREE_TEMPLATES_IDS = _window$frmFormTempla.FREE_TEMPLATES_IDS, + upgradeLink = _window$frmFormTempla.upgradeLink; + +var PREFIX = 'frm-form-templates'; +var VIEW_SLUGS = { + AVAILABLE_TEMPLATES: 'available-templates', + FAVORITES: 'favorites', + CUSTOM: 'custom', + SEARCH: 'search' +}; +var PLANS = { + BASIC: 'basic', + PLUS: 'plus', + BUSINESS: 'business', + ELITE: 'elite', + RENEW: 'renew', + FREE: 'free' +}; +var MODAL_SIZES = { + GENERAL: '440px', + CREATE_TEMPLATE: '550px' +}; + +/***/ }), + +/***/ "./js/src/form-templates/shared/index.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/shared/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FEATURED_TEMPLATES_IDS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.FEATURED_TEMPLATES_IDS), +/* harmony export */ FREE_TEMPLATES_IDS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.FREE_TEMPLATES_IDS), +/* harmony export */ MODAL_SIZES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES), +/* harmony export */ PLANS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PLANS), +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ VIEW_SLUGS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_SLUGS), +/* harmony export */ applicationsUrl: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.applicationsUrl), +/* harmony export */ canAccessApplicationDashboard: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.canAccessApplicationDashboard), +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState), +/* harmony export */ upgradeLink: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.upgradeLink) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/form-templates/shared/constants.js"); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/form-templates/shared/pageState.js"); + + + +/***/ }), + +/***/ "./js/src/form-templates/shared/pageState.js": +/*!***************************************************!*\ + !*** ./js/src/form-templates/shared/pageState.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _window$frmFormTempla = window.frmFormTemplatesVars, + templatesCount = _window$frmFormTempla.templatesCount, + favoritesCount = _window$frmFormTempla.favoritesCount, + customCount = _window$frmFormTempla.customCount; +var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + availableTemplateItems = _getElements.availableTemplateItems; +var availableTemplatesCount = availableTemplateItems.length; +(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState)({ + availableTemplatesCount: availableTemplatesCount, + customCount: Number(customCount), + extraTemplatesCount: templatesCount - availableTemplatesCount, + favoritesCount: favoritesCount +}); + + +/***/ }), + +/***/ "./js/src/form-templates/templates/applicationTemplates.js": +/*!*****************************************************************!*\ + !*** ./js/src/form-templates/templates/applicationTemplates.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ maybeAddApplicationTemplates: () => (/* binding */ maybeAddApplicationTemplates) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ "./js/src/form-templates/events/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * Internal dependencies + */ + + + + +/** + * Adds application templates if the user has dashboard access. + * + * @return {void} + */ +function maybeAddApplicationTemplates() { + // Exit if the user doesn't have permission to see application dashboard + if (!_shared__WEBPACK_IMPORTED_MODULE_2__.canAccessApplicationDashboard) { + return; + } + var doJsonFetch = frmDom.ajax.doJsonFetch; + doJsonFetch('get_applications_data&view=templates').then(setupApplicationTemplates); +} + +/** + * Sets up application templates by creating HTML elements, injecting them into the DOM, + * and adding event handlers. + * + * @private + * @param {Object} data The data object containing information for application templates. + * @return {void} + */ +function setupApplicationTemplates(data) { + // Create application templates + (0,_elements__WEBPACK_IMPORTED_MODULE_0__.createApplicationTemplates)(data.templates); + + // Inject templates into the DOM + (0,_elements__WEBPACK_IMPORTED_MODULE_0__.addApplicationTemplatesElement)(); + + // Set up event handling + (0,_events__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplateEvents)(); +} + +/***/ }), + +/***/ "./js/src/form-templates/templates/categorizeTemplates.js": +/*!****************************************************************!*\ + !*** ./js/src/form-templates/templates/categorizeTemplates.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedTemplates: () => (/* binding */ buildCategorizedTemplates), +/* harmony export */ categorizedTemplates: () => (/* binding */ categorizedTemplates) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * Internal dependencies + */ + +var categorizedTemplates = {}; + +/** + * Builds a categorized list of templates. + * + * @return {void} + */ +function buildCategorizedTemplates() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), + templateItems = _getElements.templateItems; + templateItems.forEach(function (template) { + // Extract and split the categories from data attribute + var categories = template.getAttribute('data-categories').split(','); + categories.forEach(function (category) { + // Initialize the category array if not already done + if (!categorizedTemplates[category]) { + categorizedTemplates[category] = []; + } + + // Add the template to the appropriate category + categorizedTemplates[category].push(template); + }); + }); +} + +/***/ }), + +/***/ "./js/src/form-templates/templates/index.js": +/*!**************************************************!*\ + !*** ./js/src/form-templates/templates/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ buildCategorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedTemplates), +/* harmony export */ categorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.categorizedTemplates), +/* harmony export */ maybeAddApplicationTemplates: () => (/* reexport safe */ _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates) +/* harmony export */ }); +/* harmony import */ var _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeTemplates */ "./js/src/form-templates/templates/categorizeTemplates.js"); +/* harmony import */ var _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplates */ "./js/src/form-templates/templates/applicationTemplates.js"); + + + +/***/ }), + +/***/ "./js/src/form-templates/ui/index.js": +/*!*******************************************!*\ + !*** ./js/src/form-templates/ui/index.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.displaySearchElements), +/* harmony export */ getModalWidget: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.getModalWidget), +/* harmony export */ initializeModal: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.initializeModal), +/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ showAllTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAllTemplates), +/* harmony export */ showAvailableTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAvailableTemplates), +/* harmony export */ showAvailableTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState), +/* harmony export */ showCreateTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showCreateTemplateModal), +/* harmony export */ showCustomTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showCustomTemplates), +/* harmony export */ showCustomTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState), +/* harmony export */ showEmailAddressError: () => (/* reexport safe */ _showError__WEBPACK_IMPORTED_MODULE_8__.showEmailAddressError), +/* harmony export */ showFavoriteTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showFavoriteTemplates), +/* harmony export */ showFavoritesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState), +/* harmony export */ showHeaderCancelButton: () => (/* reexport safe */ _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__.showHeaderCancelButton), +/* harmony export */ showLeaveEmailModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showLeaveEmailModal), +/* harmony export */ showLockedTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showLockedTemplateModal), +/* harmony export */ showRenewAccountModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showRenewAccountModal), +/* harmony export */ showSearchEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showSearchEmptyState), +/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.showSearchState), +/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showSelectedCategory), +/* harmony export */ showUpgradeModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showUpgradeModal), +/* harmony export */ updatePageTitle: () => (/* reexport safe */ _pageTitle__WEBPACK_IMPORTED_MODULE_2__.updatePageTitle) +/* harmony export */ }); +/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/form-templates/ui/setupInitialView.js"); +/* harmony import */ var _initializeModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeModal */ "./js/src/form-templates/ui/initializeModal.js"); +/* harmony import */ var _pageTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pageTitle */ "./js/src/form-templates/ui/pageTitle.js"); +/* harmony import */ var _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showHeaderCancelButton */ "./js/src/form-templates/ui/showHeaderCancelButton.js"); +/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/form-templates/ui/showSelectedCategory.js"); +/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./searchState */ "./js/src/form-templates/ui/searchState.js"); +/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/form-templates/ui/showEmptyState.js"); +/* harmony import */ var _showModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./showModal */ "./js/src/form-templates/ui/showModal.js"); +/* harmony import */ var _showError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./showError */ "./js/src/form-templates/ui/showError.js"); + + + + + + + + + + +/***/ }), + +/***/ "./js/src/form-templates/ui/initializeModal.js": +/*!*****************************************************!*\ + !*** ./js/src/form-templates/ui/initializeModal.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getModalWidget: () => (/* binding */ getModalWidget), +/* harmony export */ initializeModal: () => (/* binding */ initializeModal) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +var modalWidget = null; + +/** + * Initialize the modal widget. + * + * @return {void} + */ +function initializeModal() { + return _initializeModal.apply(this, arguments); +} + +/** + * Retrieve the modal widget. + * + * @return {Object|false} The modal widget or false. + */ +function _initializeModal() { + _initializeModal = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var _window$frmAdminBuild, initModal, offsetModalY, _getElements, leaveEmailModal; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _window$frmAdminBuild = window.frmAdminBuild, initModal = _window$frmAdminBuild.initModal, offsetModalY = _window$frmAdminBuild.offsetModalY; + modalWidget = initModal('#frm-form-templates-modal', _shared__WEBPACK_IMPORTED_MODULE_2__.MODAL_SIZES.GENERAL); + + // Set the vertical offset for the modal + if (modalWidget) { + offsetModalY(modalWidget, '103px'); + } + + // Show the email modal if the 'free-templates' query param is present + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hasQueryParam)('free-templates')) { + _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), leaveEmailModal = _getElements.leaveEmailModal; + if (leaveEmailModal) { + (0,___WEBPACK_IMPORTED_MODULE_3__.showLeaveEmailModal)(); + } + } + + // Customize the confirm modal appearance: adjusting its width and vertical position + wp.hooks.addAction('frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', function (options) { + var confirmModal = options.$info; + confirmModal.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_2__.MODAL_SIZES.CREATE_TEMPLATE); + offsetModalY(confirmModal, '103px'); + }); + case 5: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _initializeModal.apply(this, arguments); +} +function getModalWidget() { + return modalWidget; +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/pageTitle.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/ui/pageTitle.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ updatePageTitle: () => (/* binding */ updatePageTitle) +/* harmony export */ }); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Sets the page title based on a given string or the currently selected category. + * + * @param {string} [title] Optional title to display. + * @return {void} + */ +function updatePageTitle(title) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + pageTitleText = _getElements.pageTitleText; + var newTitle = title || (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState)('selectedCategoryEl').querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-text")).textContent; + pageTitleText.textContent = newTitle; +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/searchState.js": +/*!*************************************************!*\ + !*** ./js/src/form-templates/ui/searchState.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), +/* harmony export */ showSearchState: () => (/* binding */ showSearchState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/form-templates/ui/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Updates the UI to display the search state. + * + * @param {boolean} notEmptySearchText True if search input is not empty. + * @return {void} + */ +function showSearchState(notEmptySearchText) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + bodyContent = _getElements.bodyContent, + bodyContentChildren = _getElements.bodyContentChildren, + pageTitle = _getElements.pageTitle, + templatesList = _getElements.templatesList, + applicationTemplates = _getElements.applicationTemplates; + var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent); + + // Remove highlighting from the currently selected category if the search text is not empty + if (notEmptySearchText) { + (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); + } + + // Hide non-relevant elements in the body content + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); + + // Update the page title and display relevant elements + (0,___WEBPACK_IMPORTED_MODULE_5__.updatePageTitle)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Search Result', 'formidable')); + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([pageTitle, templatesList, applicationTemplates]); + + // Smoothly display the updated UI elements + bodyContentAnimate.fadeIn(); +} + +/** + * Displays search results based on search outcome. + * + * @param {boolean} foundSomething True if search yielded results. + * @return {void} + */ +function displaySearchElements(foundSomething) { + // Show empty state if no templates found + if (!foundSomething) { + (0,___WEBPACK_IMPORTED_MODULE_5__.showSearchEmptyState)(); + return; + } + + // Hide empty state if currently displayed + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + emptyState = _getElements2.emptyState; + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + pageTitle = _getElements3.pageTitle; + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(pageTitle); + } + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + templatesList = _getElements4.templatesList, + applicationTemplates = _getElements4.applicationTemplates, + applicationTemplatesTitle = _getElements4.applicationTemplatesTitle, + applicationTemplatesList = _getElements4.applicationTemplatesList; + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([templatesList, applicationTemplates, applicationTemplatesTitle]); + if (templatesList.offsetHeight === 0) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)([templatesList, applicationTemplatesTitle]); + } + if ((applicationTemplatesList === null || applicationTemplatesList === void 0 ? void 0 : applicationTemplatesList.offsetHeight) === 0) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(applicationTemplates); + } +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/setupInitialView.js": +/*!******************************************************!*\ + !*** ./js/src/form-templates/ui/setupInitialView.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/ui */ "./js/src/core/ui/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +/** + * External dependencies + */ + + + + + +/** + * Internal dependencies + */ + + + + +/** + * Sets up the initial view, performing any required + * DOM manipulations for proper element presentation. + * + * @return {void} + */ +function setupInitialView() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(), + sidebar = _getElements.sidebar, + searchInput = _getElements.searchInput, + bodyContent = _getElements.bodyContent, + twinFeaturedTemplateItems = _getElements.twinFeaturedTemplateItems, + availableTemplatesCategory = _getElements.availableTemplatesCategory, + extraTemplateCountElements = _getElements.extraTemplateCountElements; + var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); + searchInput.value = ''; + + // Hide the twin featured template items + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(twinFeaturedTemplateItems); + setupAvailableTemplatesCategory(availableTemplatesCategory); + + // Update extra templates count + extraTemplateCountElements.forEach(function (element) { + return element.textContent = (0,_shared__WEBPACK_IMPORTED_MODULE_5__.getSingleState)('extraTemplatesCount'); + }); + + // Smoothly display the updated UI elements + bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); + bodyContentAnimate.fadeIn(); + + // Show the "Cancel" button in the header if the 'return_page' query param is present + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hasQueryParam)('return_page')) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showHeaderCancelButton)(); + } +} + +/** + * Sets up the 'Available Templates' category with proper count display + * + * @param {Element} availableTemplatesCategory The Available Templates category element + * @return {void} + */ +function setupAvailableTemplatesCategory(availableTemplatesCategory) { + if (!availableTemplatesCategory) { + return; + } + var availableTemplatesCount = (0,_shared__WEBPACK_IMPORTED_MODULE_5__.getSingleState)('availableTemplatesCount'); + if (!(0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hasQueryParam)('registered-for-free-templates')) { + availableTemplatesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-cat-count")).textContent = availableTemplatesCount; + return; + } + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.removeParamFromHistory)('registered-for-free-templates'); + runAvailableTemplatesEffects(availableTemplatesCategory, availableTemplatesCount); +} + +/** + * Runs effects for the Available Templates category when the + * 'registered-for-free-templates' query parameter is present. + * + * @param {Element} element The Available Templates category element + * @param {number} count The count of available templates + * @return {void} + */ +function runAvailableTemplatesEffects(element, count) { + setTimeout(function () { + element.dispatchEvent(new Event('click', { + bubbles: true + })); + }, 0); + setTimeout(function () { + (0,core_ui__WEBPACK_IMPORTED_MODULE_2__.counter)(element.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-cat-count")), count); + }, 150); + setTimeout(function () { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(), + availableTemplateItems = _getElements2.availableTemplateItems; + availableTemplateItems.forEach(function (item) { + if (_shared__WEBPACK_IMPORTED_MODULE_5__.FREE_TEMPLATES_IDS.includes(Number(item.dataset.id))) { + return; + } + item.classList.add('frm-background-highlight'); + + // Remove class after animation completes to prevent restart + item.addEventListener('animationend', function handleAnimationEnd(event) { + if (event.animationName === 'backgroundHighlight') { + this.classList.remove('frm-background-highlight'); + this.removeEventListener('animationend', handleAnimationEnd); + } + }); + }); + }, 750); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupInitialView); + +/***/ }), + +/***/ "./js/src/form-templates/ui/showEmptyState.js": +/*!****************************************************!*\ + !*** ./js/src/form-templates/ui/showEmptyState.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showAvailableTemplatesEmptyState: () => (/* binding */ showAvailableTemplatesEmptyState), +/* harmony export */ showCustomTemplatesEmptyState: () => (/* binding */ showCustomTemplatesEmptyState), +/* harmony export */ showFavoritesEmptyState: () => (/* binding */ showFavoritesEmptyState), +/* harmony export */ showSearchEmptyState: () => (/* binding */ showSearchEmptyState) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Display the search-empty state. + * + * @return {void} + */ +function showSearchEmptyState() { + var _emptyState$dataset; + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + notEmptySearchText = _getState.notEmptySearchText; + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements.pageTitle, + emptyState = _getElements.emptyState, + emptyStateButton = _getElements.emptyStateButton, + applicationTemplates = _getElements.applicationTemplates; + + // Toggle visibility and remove attributes based on search status + if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH === ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { + if (notEmptySearchText) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); + } else { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(emptyState); + emptyState.removeAttribute('data-view'); + } + return; + } + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH); + + // Update text content + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements2.emptyStateTitle, + emptyStateText = _getElements2.emptyStateText; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No templates found', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any templates that match your criteria.', 'formidable'); + emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Start from Scratch', 'formidable'); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); +} + +/** + * Display the favorites-empty state. + * + * @return {void} + */ +function showFavoritesEmptyState() { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements3.pageTitle, + emptyState = _getElements3.emptyState, + emptyStateButton = _getElements3.emptyStateButton; + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES); + + // Update text content + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements4.emptyStateTitle, + emptyStateText = _getElements4.emptyStateText; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No favorites', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t added any templates to your favorites yet.', 'formidable'); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); +} + +/** + * Display the custom-empty state. + * + * @return {void} + */ +function showCustomTemplatesEmptyState() { + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements5.pageTitle, + emptyState = _getElements5.emptyState, + emptyStateButton = _getElements5.emptyStateButton; + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM); + + // Update text content + var _getElements6 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements6.emptyStateTitle, + emptyStateText = _getElements6.emptyStateText; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You currently have no templates.', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t created any form templates. Begin now to simplify your workflow and save time.', 'formidable'); + emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create Template', 'formidable'); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(pageTitle); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); +} + +/** + * Display the available-templates-empty state. + * + * @return {void} + */ +function showAvailableTemplatesEmptyState() { + var _getElements7 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + pageTitle = _getElements7.pageTitle, + emptyState = _getElements7.emptyState, + emptyStateButton = _getElements7.emptyStateButton; + + // Assign state attributes + emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES); + + // Update text content + var _getElements8 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + emptyStateTitle = _getElements8.emptyStateTitle, + emptyStateText = _getElements8.emptyStateText; + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + extraTemplatesCount = _getState2.extraTemplatesCount; + emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No Templates Available', 'formidable'); + emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)( + // translators: %s is the number of extra templates available + (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable'), extraTemplatesCount); + + // Display the empty state + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/showError.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/ui/showError.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showEmailAddressError: () => (/* binding */ showEmailAddressError) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Displays errors related to the email address field. + * + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @return {void} + */ +var showEmailAddressError = function showEmailAddressError(type) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showFormError)('#frm_leave_email', '#frm_leave_email_error', type); +}; + +/***/ }), + +/***/ "./js/src/form-templates/ui/showHeaderCancelButton.js": +/*!************************************************************!*\ + !*** ./js/src/form-templates/ui/showHeaderCancelButton.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showHeaderCancelButton: () => (/* binding */ showHeaderCancelButton) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +/** + * Display the "Cancel" button in the header. + * + * @return {void} + */ +function showHeaderCancelButton() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + headerCancelButton = _getElements.headerCancelButton; + new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(headerCancelButton).fadeIn(); +} + +/***/ }), + +/***/ "./js/src/form-templates/ui/showModal.js": +/*!***********************************************!*\ + !*** ./js/src/form-templates/ui/showModal.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showCreateTemplateModal: () => (/* binding */ showCreateTemplateModal), +/* harmony export */ showLeaveEmailModal: () => (/* binding */ showLeaveEmailModal), +/* harmony export */ showLockedTemplateModal: () => (/* binding */ showLockedTemplateModal), +/* harmony export */ showRenewAccountModal: () => (/* binding */ showRenewAccountModal), +/* harmony export */ showUpgradeModal: () => (/* binding */ showUpgradeModal) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * WordPress dependencies + */ + + +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Display the locked template modal. + * + * @param {HTMLElement} template The template element. + * @return {void} + */ +function showLockedTemplateModal(template) { + var plan = template.dataset.requiredPlan; + switch (plan) { + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BASIC: + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.PLUS: + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BUSINESS: + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.ELITE: + showUpgradeModal(plan, template); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.RENEW: + showRenewAccountModal(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.FREE: + showLeaveEmailModal(); + break; + } +} + +/** + * Base function to show a modal dialog with a customizable pre-open execution step. + * + * @param {Function} executePreOpen The function to be executed before opening the modal dialog. + * @return {Function} A higher-order function that can be invoked to display the modal dialog. + */ +var showModal = function showModal(executePreOpen) { + return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var dialogWidget, + _getElements, + modalItems, + _len, + params, + _key, + _args = arguments; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); + if (dialogWidget) { + _context.next = 3; + break; + } + return _context.abrupt("return"); + case 3: + _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), modalItems = _getElements.modalItems; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(modalItems); + dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.GENERAL); + for (_len = _args.length, params = new Array(_len), _key = 0; _key < _len; _key++) { + params[_key] = _args[_key]; + } + _context.next = 9; + return executePreOpen === null || executePreOpen === void 0 ? void 0 : executePreOpen.apply(void 0, params); + case 9: + dialogWidget.dialog('open'); + case 10: + case "end": + return _context.stop(); + } + }, _callee); + })); +}; + +// Mapping each plan to the subsequent plans it can upgrade to +var upgradablePlans = { + basic: ['basic', 'plus', 'business', 'elite'], + plus: ['plus', 'business', 'elite'], + business: ['business', 'elite'], + elite: ['elite'] +}; + +/** + * Display the modal dialog to prompt the user to upgrade their account. + * + * @param {string} plan Current plan name + * @param {HTMLElement} template The template element + * @return {void} + */ +var showUpgradeModal = showModal(function (plan, template) { + var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + upgradeModal = _getElements2.upgradeModal, + upgradeModalTemplateNames = _getElements2.upgradeModalTemplateNames, + upgradeModalPlansIcons = _getElements2.upgradeModalPlansIcons, + upgradeModalLink = _getElements2.upgradeModalLink; + + // Update template names + upgradeModalTemplateNames.forEach(function (element) { + return element.textContent = templateName; + }); + + // Update plan icons and their availability + upgradeModalPlansIcons.forEach(function (icon) { + var planType = icon.dataset.plan; + var shouldDisplayCheck = upgradablePlans[plan].includes(planType); + + // Toggle icon class based on plan availability + icon.classList.toggle('frm_green', shouldDisplayCheck); + + // Update SVG icon + var svg = icon.querySelector('svg > use'); + svg.setAttribute('xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon'); + }); + + // Append template slug to the upgrade modal link URL + var templateSlug = template.dataset.slug ? "-".concat(template.dataset.slug) : ''; + upgradeModalLink.href = _shared__WEBPACK_IMPORTED_MODULE_3__.upgradeLink + templateSlug; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(upgradeModal); +}); + +/** + * Display the modal dialog to prompt the user to renew their account. + * + * @return {void} + */ +var showRenewAccountModal = showModal(function () { + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + renewAccountModal = _getElements3.renewAccountModal; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(renewAccountModal); +}); + +/** + * Display the modal dialog to prompt the user to leave an email. + * + * @return {void} + */ +var showLeaveEmailModal = showModal(function () { + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + leaveEmailModal = _getElements4.leaveEmailModal; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(leaveEmailModal); +}); + +/** + * Displays a modal dialog prompting the user to create a new template. + * + * @return {void} + */ +var showCreateTemplateModal = showModal(function () { + var dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); + dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.CREATE_TEMPLATE); + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + createTemplateModal = _getElements5.createTemplateModal; + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(createTemplateModal); +}); + +/***/ }), + +/***/ "./js/src/form-templates/ui/showSelectedCategory.js": +/*!**********************************************************!*\ + !*** ./js/src/form-templates/ui/showSelectedCategory.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ showAllTemplates: () => (/* binding */ showAllTemplates), +/* harmony export */ showAvailableTemplates: () => (/* binding */ showAvailableTemplates), +/* harmony export */ showCustomTemplates: () => (/* binding */ showCustomTemplates), +/* harmony export */ showFavoriteTemplates: () => (/* binding */ showFavoriteTemplates), +/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); +/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../templates */ "./js/src/form-templates/templates/index.js"); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + + +/** + * Show templates based on selected category. + * + * @param {string} selectedCategory The selected category to display templates for. + * @return {void} + */ +function showSelectedCategory(selectedCategory) { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContentChildren = _getElements.bodyContentChildren, + pageTitle = _getElements.pageTitle, + showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, + templatesList = _getElements.templatesList, + templateItems = _getElements.templateItems, + upsellBanner = _getElements.upsellBanner; + if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS !== selectedCategory) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(bodyContentChildren); + } + (0,___WEBPACK_IMPORTED_MODULE_6__.updatePageTitle)(); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(showCreateTemplateModalButton); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(pageTitle); + switch (selectedCategory) { + case core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS: + showAllTemplates(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES: + showAvailableTemplates(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES: + showFavoriteTemplates(); + break; + case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM: + showCustomTemplates(); + break; + default: + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([upsellBanner, templatesList].concat(_toConsumableArray(_templates__WEBPACK_IMPORTED_MODULE_5__.categorizedTemplates[selectedCategory]))); + break; + } +} + +/** + * Shows all templates when 'All Templates' is the selected category. + * + * @return {void} + */ +function showAllTemplates() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContentChildren = _getElements2.bodyContentChildren, + pageTitleDivider = _getElements2.pageTitleDivider, + templateItems = _getElements2.templateItems, + twinFeaturedTemplateItems = _getElements2.twinFeaturedTemplateItems, + customTemplatesSection = _getElements2.customTemplatesSection, + emptyState = _getElements2.emptyState, + applicationTemplates = _getElements2.applicationTemplates; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([].concat(_toConsumableArray(bodyContentChildren), _toConsumableArray(templateItems))); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)([pageTitleDivider].concat(_toConsumableArray(twinFeaturedTemplateItems), [customTemplatesSection, emptyState, applicationTemplates])); +} + +/** + * Shows favorite templates. + * + * @return {void} + */ +function showFavoriteTemplates() { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + favoritesCount = _getState.favoritesCount; + if (0 === favoritesCount.total) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState)(); + return; + } + var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + bodyContent = _getElements3.bodyContent, + templatesList = _getElements3.templatesList, + templateItems = _getElements3.templateItems, + customTemplatesSection = _getElements3.customTemplatesSection, + customTemplatesTitle = _getElements3.customTemplatesTitle, + customTemplatesList = _getElements3.customTemplatesList, + customTemplateItems = _getElements3.customTemplateItems; + + // Clear the view for new content + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); + var elementsToShow = []; + + // Get all favorite items from the DOM and add the elements to show + var favoriteItems = bodyContent.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-favorite-item")); + elementsToShow.push.apply(elementsToShow, _toConsumableArray(favoriteItems)); + + // Add default favorites if available + if (favoritesCount.default > 0) { + elementsToShow.push(templatesList); + } + + // Add custom favorites if available + if (favoritesCount.custom > 0) { + var nonFavCustomTemplates = Array.from(customTemplateItems).filter(function (template) { + return !(0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); + }); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(nonFavCustomTemplates); + elementsToShow.push(customTemplatesSection); + elementsToShow.push(customTemplatesList); + if (0 === favoritesCount.default) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); + } else { + elementsToShow.push(customTemplatesTitle); + } + } + + // Show elements that were selected to be shown + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(elementsToShow); +} + +/** + * Shows custom templates. + * + * @return {void} + */ +function showCustomTemplates() { + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + customCount = _getState2.customCount; + if (0 === customCount) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState)(); + return; + } + var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + showCreateTemplateModalButton = _getElements4.showCreateTemplateModalButton, + pageTitleDivider = _getElements4.pageTitleDivider, + customTemplatesSection = _getElements4.customTemplatesSection, + customTemplatesList = _getElements4.customTemplatesList, + customTemplatesTitle = _getElements4.customTemplatesTitle, + customTemplateItems = _getElements4.customTemplateItems; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList].concat(_toConsumableArray(customTemplateItems))); +} + +/** + * Shows available templates. + * + * @return {void} + */ +function showAvailableTemplates() { + var _getState3 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), + availableTemplatesCount = _getState3.availableTemplatesCount; + if (0 === availableTemplatesCount) { + (0,___WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState)(); + return; + } + var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + templatesList = _getElements5.templatesList, + templateItems = _getElements5.templateItems, + availableTemplateItems = _getElements5.availableTemplateItems, + upsellBanner = _getElements5.upsellBanner; + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([upsellBanner, templatesList].concat(_toConsumableArray(availableTemplateItems))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); + +/***/ }), + +/***/ "./js/src/form-templates/utils/index.js": +/*!**********************************************!*\ + !*** ./js/src/form-templates/utils/index.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isAllTemplatesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isAllTemplatesCategory), +/* harmony export */ isCustomCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomCategory), +/* harmony export */ isCustomTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomTemplate), +/* harmony export */ isFavoriteTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoriteTemplate), +/* harmony export */ isFavoritesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoritesCategory), +/* harmony export */ isFeaturedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFeaturedTemplate), +/* harmony export */ isLockedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isLockedTemplate) +/* harmony export */ }); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validation */ "./js/src/form-templates/utils/validation.js"); + + +/***/ }), + +/***/ "./js/src/form-templates/utils/validation.js": +/*!***************************************************!*\ + !*** ./js/src/form-templates/utils/validation.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isAllTemplatesCategory: () => (/* binding */ isAllTemplatesCategory), +/* harmony export */ isCustomCategory: () => (/* binding */ isCustomCategory), +/* harmony export */ isCustomTemplate: () => (/* binding */ isCustomTemplate), +/* harmony export */ isFavoriteTemplate: () => (/* binding */ isFavoriteTemplate), +/* harmony export */ isFavoritesCategory: () => (/* binding */ isFavoritesCategory), +/* harmony export */ isFeaturedTemplate: () => (/* binding */ isFeaturedTemplate), +/* harmony export */ isLockedTemplate: () => (/* binding */ isLockedTemplate) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + +/** + * Checks if the category is "All Templates". + * + * @param {string} category The category slug. + * @return {boolean} True if the category is "All Templates", otherwise false. + */ +var isAllTemplatesCategory = function isAllTemplatesCategory(category) { + return core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === category; +}; + +/** + * Checks if the category is "Favorites". + * + * @param {string} category The category slug. + * @return {boolean} True if the category is "Favorites", otherwise false. + */ +var isFavoritesCategory = function isFavoritesCategory(category) { + return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.FAVORITES === category; +}; + +/** + * Checks if the category is "Custom". + * + * @param {string} category The category slug. + * @return {boolean} True if the category is "Custom", otherwise false. + */ +var isCustomCategory = function isCustomCategory(category) { + return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.CUSTOM === category; +}; + +/** + * Checks if a template is a favorite. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is a favorite, otherwise false. + */ +var isFavoriteTemplate = function isFavoriteTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item")) : false; +}; + +/** + * Checks if a template is custom. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is custom, otherwise false. + */ +var isCustomTemplate = function isCustomTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-custom-item")) : false; +}; + +/** + * Checks if a template is featured. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is featured, otherwise false. + */ +var isFeaturedTemplate = function isFeaturedTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? _shared__WEBPACK_IMPORTED_MODULE_2__.FEATURED_TEMPLATES_IDS.includes(Number(template.dataset.id)) : false; +}; + +/** + * Checks if a template is locked. + * + * @param {HTMLElement} template The template element. + * @return {boolean} True if the template is locked, otherwise false. + */ +var isLockedTemplate = function isLockedTemplate(template) { + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-locked-item")) : false; +}; + +/***/ }), + +/***/ "./node_modules/memize/index.js": +/*!**************************************!*\ + !*** ./node_modules/memize/index.js ***! + \**************************************/ +/***/ ((module) => { + +/** + * Memize options object. + * + * @typedef MemizeOptions + * + * @property {number} [maxSize] Maximum size of the cache. + */ + +/** + * Internal cache entry. + * + * @typedef MemizeCacheNode + * + * @property {?MemizeCacheNode|undefined} [prev] Previous node. + * @property {?MemizeCacheNode|undefined} [next] Next node. + * @property {Array<*>} args Function arguments for cache + * entry. + * @property {*} val Function result. + */ + +/** + * Properties of the enhanced function for controlling cache. + * + * @typedef MemizeMemoizedFunction + * + * @property {()=>void} clear Clear the cache. + */ + +/** + * Accepts a function to be memoized, and returns a new memoized function, with + * optional options. + * + * @template {Function} F + * + * @param {F} fn Function to memoize. + * @param {MemizeOptions} [options] Options object. + * + * @return {F & MemizeMemoizedFunction} Memoized function. + */ +function memize( fn, options ) { + var size = 0; + + /** @type {?MemizeCacheNode|undefined} */ + var head; + + /** @type {?MemizeCacheNode|undefined} */ + var tail; + + options = options || {}; + + function memoized( /* ...args */ ) { + var node = head, + len = arguments.length, + args, i; + + searchCache: while ( node ) { + // Perform a shallow equality test to confirm that whether the node + // under test is a candidate for the arguments passed. Two arrays + // are shallowly equal if their length matches and each entry is + // strictly equal between the two sets. Avoid abstracting to a + // function which could incur an arguments leaking deoptimization. + + // Check whether node arguments match arguments length + if ( node.args.length !== arguments.length ) { + node = node.next; + continue; + } + + // Check whether node arguments match arguments values + for ( i = 0; i < len; i++ ) { + if ( node.args[ i ] !== arguments[ i ] ) { + node = node.next; + continue searchCache; + } + } + + // At this point we can assume we've found a match + + // Surface matched node to head if not already + if ( node !== head ) { + // As tail, shift to previous. Must only shift if not also + // head, since if both head and tail, there is no previous. + if ( node === tail ) { + tail = node.prev; + } + + // Adjust siblings to point to each other. If node was tail, + // this also handles new tail's empty `next` assignment. + /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; + if ( node.next ) { + node.next.prev = node.prev; + } + + node.next = head; + node.prev = null; + /** @type {MemizeCacheNode} */ ( head ).prev = node; + head = node; + } + + // Return immediately + return node.val; + } + + // No cached value found. Continue to insertion phase: + + // Create a copy of arguments (avoid leaking deoptimization) + args = new Array( len ); + for ( i = 0; i < len; i++ ) { + args[ i ] = arguments[ i ]; + } + + node = { + args: args, + + // Generate the result from original function + val: fn.apply( null, args ), + }; + + // Don't need to check whether node is already head, since it would + // have been returned above already if it was + + // Shift existing head down list + if ( head ) { + head.prev = node; + node.next = head; + } else { + // If no head, follows that there's no tail (at initial or reset) + tail = node; + } + + // Trim tail if we're reached max size and are pending cache insertion + if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { + tail = /** @type {MemizeCacheNode} */ ( tail ).prev; + /** @type {MemizeCacheNode} */ ( tail ).next = null; + } else { + size++; + } + + head = node; + + return node.val; + } + + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + + if ( false ) {} + + // Ignore reason: There's not a clear solution to create an intersection of + // the function with additional properties, where the goal is to retain the + // function signature of the incoming argument and add control properties + // on the return value. + + // @ts-ignore + return memoized; +} + +module.exports = memize; + + +/***/ }), + +/***/ "./node_modules/sprintf-js/src/sprintf.js": +/*!************************************************!*\ + !*** ./node_modules/sprintf-js/src/sprintf.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports.sprintf = sprintf + exports.vsprintf = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line + + +/***/ }), + +/***/ "./node_modules/tannin/index.js": +/*!**************************************!*\ + !*** ./node_modules/tannin/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Tannin) +/* harmony export */ }); +/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); + + +/** + * Tannin constructor options. + * + * @typedef {Object} TanninOptions + * + * @property {string} [contextDelimiter] Joiner in string lookup with context. + * @property {Function} [onMissingKey] Callback to invoke when key missing. + */ + +/** + * Domain metadata. + * + * @typedef {Object} TanninDomainMetadata + * + * @property {string} [domain] Domain name. + * @property {string} [lang] Language code. + * @property {(string|Function)} [plural_forms] Plural forms expression or + * function evaluator. + */ + +/** + * Domain translation pair respectively representing the singular and plural + * translation. + * + * @typedef {[string,string]} TanninTranslation + */ + +/** + * Locale data domain. The key is used as reference for lookup, the value an + * array of two string entries respectively representing the singular and plural + * translation. + * + * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain + */ + +/** + * Jed-formatted locale data. + * + * @see http://messageformat.github.io/Jed/ + * + * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData + */ + +/** + * Default Tannin constructor options. + * + * @type {TanninOptions} + */ +var DEFAULT_OPTIONS = { + contextDelimiter: '\u0004', + onMissingKey: null, +}; + +/** + * Given a specific locale data's config `plural_forms` value, returns the + * expression. + * + * @example + * + * ``` + * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' + * ``` + * + * @param {string} pf Locale data plural forms. + * + * @return {string} Plural forms expression. + */ +function getPluralExpression( pf ) { + var parts, i, part; + + parts = pf.split( ';' ); + + for ( i = 0; i < parts.length; i++ ) { + part = parts[ i ].trim(); + if ( part.indexOf( 'plural=' ) === 0 ) { + return part.substr( 7 ); + } + } +} + +/** + * Tannin constructor. + * + * @class + * + * @param {TanninLocaleData} data Jed-formatted locale data. + * @param {TanninOptions} [options] Tannin options. + */ +function Tannin( data, options ) { + var key; + + /** + * Jed-formatted locale data. + * + * @name Tannin#data + * @type {TanninLocaleData} + */ + this.data = data; + + /** + * Plural forms function cache, keyed by plural forms string. + * + * @name Tannin#pluralForms + * @type {Object} + */ + this.pluralForms = {}; + + /** + * Effective options for instance, including defaults. + * + * @name Tannin#options + * @type {TanninOptions} + */ + this.options = {}; + + for ( key in DEFAULT_OPTIONS ) { + this.options[ key ] = options !== undefined && key in options + ? options[ key ] + : DEFAULT_OPTIONS[ key ]; + } +} + +/** + * Returns the plural form index for the given domain and value. + * + * @param {string} domain Domain on which to calculate plural form. + * @param {number} n Value for which plural form is to be calculated. + * + * @return {number} Plural form index. + */ +Tannin.prototype.getPluralForm = function( domain, n ) { + var getPluralForm = this.pluralForms[ domain ], + config, plural, pf; + + if ( ! getPluralForm ) { + config = this.data[ domain ][ '' ]; + + pf = ( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + if ( typeof pf !== 'function' ) { + plural = getPluralExpression( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); + } + + getPluralForm = this.pluralForms[ domain ] = pf; + } + + return getPluralForm( n ); +}; + +/** + * Translate a string. + * + * @param {string} domain Translation domain. + * @param {string|void} context Context distinguishing terms of the same name. + * @param {string} singular Primary key for translation lookup. + * @param {string=} plural Fallback value used for non-zero plural + * form index. + * @param {number=} n Value to use in calculating plural form. + * + * @return {string} Translated string. + */ +Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { + var index, key, entry; + + if ( n === undefined ) { + // Default to singular. + index = 0; + } else { + // Find index by evaluating plural form for value. + index = this.getPluralForm( domain, n ); + } + + key = singular; + + // If provided, context is prepended to key with delimiter. + if ( context ) { + key = context + this.options.contextDelimiter + singular; + } + + entry = this.data[ domain ][ key ]; + + // Verify not only that entry exists, but that the intended index is within + // range and non-empty. + if ( entry && entry[ index ] ) { + return entry[ index ]; + } + + if ( this.options.onMissingKey ) { + this.options.onMissingKey( singular, domain ); + } + + // If entry not found, fall back to singular vs. plural with zero index + // representing the singular value. + return index === 0 ? singular : plural; +}; + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) +/* harmony export */ }); +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _classCallCheck) +/* harmony export */ }); +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _iterableToArray) +/* harmony export */ }); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) +/* harmony export */ }); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _toConsumableArray) +/* harmony export */ }); +/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); +/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); + + + + +function _toConsumableArray(r) { + return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; + } +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _defineProperty) +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(e, r, t) { + return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPrimitive) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function toPrimitive(t, r) { + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPropertyKey) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function toPropertyKey(t) { + var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); + return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!****************************************!*\ + !*** ./js/src/form-templates/index.js ***! + \****************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared */ "./js/src/form-templates/shared/index.js"); +/* harmony import */ var _initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeFormTemplates */ "./js/src/form-templates/initializeFormTemplates.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { + /** + * Entry point for pre-initialization adjustments to the page state. + * + * @param {Object} state Current state of the page. + */ + wp.hooks.doAction('frmFormTemplates.beforeInitialize', { + getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, + setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState + }); + + // Initialize the form templates + (0,_initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__["default"])(); + + /** + * Entry point for post-initialization custom logic or adjustments to the page state. + * + * @param {Object} state Current state of the page. + */ + wp.hooks.doAction('frmFormTemplates.afterInitialize', { + getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, + setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState + }); + + /** + * Trigger a specific action to interact with the hidden form '#frm-new-template', + * which is used for creating or using a form template. + * + * @param {HTMLElement} $form The jQuery object containing the hidden form element. + */ + wp.hooks.doAction('frm_new_form_modal_form', jQuery('#frm-new-template')); +}); +})(); + +/******/ })() +; +//# sourceMappingURL=form-templates.js.map \ No newline at end of file diff --git a/js/form-templates.js.map b/js/form-templates.js.map index 753b768f68..edd78d9483 100644 --- a/js/form-templates.js.map +++ b/js/form-templates.js.map @@ -1 +1 @@ -{"version":3,"file":"form-templates.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,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;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AAG,KAAK;AAAA;;;;;;;;;;ACrE7F;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEsf,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC9b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;EACAiU,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACCpQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEyb,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAE,CAAC,C","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/dom-ready/build-module/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/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.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/form-templates/index.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 * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = propertyName => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = newState => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( category => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = event => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${ PLUGIN_URL }/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {void}\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div( {\n\t\tid: `${ PREFIX }-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t} ),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${ PREFIX }-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\t// eslint-disable-next-line no-nested-ternary\n\tconst thumbnailURL = hasLiteThumbnail\n\t\t? ( isWebp ? `${ thumbnailBaseURL }/${ key }.webp` : `${ thumbnailBaseURL }/${ key }.png` )\n\t\t: `${ thumbnailBaseURL }/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${ applicationsUrl }&triggerViewApplicationModal=1&template=${ key }`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-icon`,\n\t\t\t\tchild: img( { src: thumbnailURL } )\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan( {\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t} ),\n\t\t\t\t\ta( {\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t} )\n\t\t\t\t]\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements( {\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${ PREFIX }-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${ PREFIX }-list` );\nconst customTemplatesSection = document.getElementById( `${ PREFIX }-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.FAVORITES }\"]`\n);\nconst modal = document.getElementById( `${ PREFIX }-modal` );\n\naddElements( {\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${ PREFIX }-create-form` ),\n\tpageTitle: document.getElementById( `${ PREFIX }-page-title` ),\n\tpageTitleText: document.getElementById( `${ PREFIX }-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${ PREFIX }-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${ PREFIX }-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${ PREFIX }-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${ PREFIX }-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${ PREFIX }-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${ PREFIX }-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${ PREFIX }-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${ PREFIX }-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.AVAILABLE_TEMPLATES }\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${ PREFIX }-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n} );\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t} );\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = event => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[ formsSelect.selectedIndex ];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${ __( 'Template', 'formidable' ) }`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = shouldDisable => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t} );\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${ PREFIX }-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${ FAVORITE_BUTTON_CLASS } use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = event => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${ PREFIX }-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${ PREFIX }-list` )\n\t\t\t? featuredTemplatesList\n\t\t\t: templatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${ templateId }\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${ PREFIX }-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise} The result of the server-side update.\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t} );\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult( { foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true } )\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${ PREFIX }-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = event => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState( {\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n} );\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ] ) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t} );\n\t} );\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', options => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t} );\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${ SKELETON_PREFIX }-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements( [ pageTitle, templatesList, applicationTemplates ] );\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n}\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements( [ templatesList, applicationTemplates, applicationTemplatesTitle ] );\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements( [ templatesList, applicationTemplatesTitle ] );\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${ SKELETON_PREFIX }-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements( [ pageTitle, applicationTemplates ] );\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements( [ pageTitle, applicationTemplates ] );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t// translators: %s is the number of extra templates available\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async ( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[ plan ].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t} );\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${ template.dataset.slug }` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n} );\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n} );\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements( [ templatesList, ...categorizedTemplates[ selectedCategory ] ] );\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements( [ ...bodyContentChildren, ...templateItems ] );\n\thideElements( [ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ] );\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${ PREFIX }-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements( [ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ] );\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements( [ templatesList, ...availableTemplateItems ] );\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-locked-item` ) : false;\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {HTMLElement} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n} );\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","_window$frmDom$util","util","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"form-templates.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,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;;ACzBwE;;AAExE,2CAA2C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,iEAAiE,GAAG,kCAAkC;;AAEvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,qFAAe,6BAA6B,KAAK,6CAA6C,6EAA6E,OAAO,iDAAiD,mFAAmF,OAAO;;AAEtgB;AACA;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;AACnC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;;;AAG5B;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA,sEAAsE,qDAAqD;AAC3H;;AAEA,4DAA4D;AAC5D;AACA,aAAa,eAAe;;;AAG5B;AACA;AACA;AACA;AACA,aAAa,iBAAiB;;;AAG9B;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,aAAa,kBAAkB;AAC/B,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;;;AAG9B;AACA;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,IAAI;;;AAGjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,KAAK;;;AAGlB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;;AAGA;AACA,eAAe,QAAQ;;AAEvB,eAAe,GAAG;AAClB;AACA;AACA,iBAAiB,QAAQ;;AAEzB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA,aAAa,OAAO;;;AAGpB;AACA;AACA;AACA,aAAa,gBAAgB;;;AAG7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,kBAAkB,UAAU;;AAE5B,iBAAiB,GAAG;AACpB;AACA;AACA,kBAAkB,UAAU;;AAE5B,iBAAiB,GAAG;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1cA;AACA;AACA;AAC2C;AAC3C;AACA;AACA;;AAEgD;AAChD,WAAW,wDAAU,uBAAuB,0DAAY;AACxD;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;AACpB;AACA;AACA;AACA;;AAEA;AACA,aAAa,oCAAoC;AACjD,aAAa,2CAA2C;AACxD,aAAa,6CAA6C;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,YAAY;AACxB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;;AAEO;AACP;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,YAAY,qBAAqB;AACjC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;;AAEO;AACP;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;;AAEO;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJoC;AACN;AAC4H;AAC1J;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AAC6B;AACM;AACnC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,WAAW,MAAM;AACjB;;AAEA,mBAAmB,6CAAO,iBAAiB;;AAE3C;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;AAEO;AACP;AACA,2FAA2F,aAAa;AACxG;AACA;;AAEA,WAAW,yDAAiB,OAAO,mDAAS;AAC5C,IAAI;AACJ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACvCO,IAAAA,iBAAA,GAAmCC,MAAM,CAACC,SAAS;EAAtCC,UAAU,GAAAH,iBAAA,CAAfI,GAAG;EAAcC,KAAK,GAAAL,iBAAA,CAALK,KAAK;AAAsB;AACpD,IAAMC,YAAY,GAAG,YAAY;AACjC,IAAMC,cAAc,GAAG,cAAc;AACrC,IAAMC,aAAa,GAAG,aAAa;AACnC,IAAMC,aAAa,GAAG,aAAa;AACnC,IAAMC,aAAa,GAAG,aAAa;AACnC,IAAMC,qBAAqB,GAAG,qBAAqB;AAEnD,IAAMC,KAAK,GAAG;EACpBC,mBAAmB,EAAE;AACtB,CAAC;;;;;;;;;;;;;;;;;;;;;ACVD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAA,EAAyB;EAAA,IAAvBC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvD,IAAKG,OAAA,CAAOJ,eAAe,MAAK,QAAQ,IAAIA,eAAe,KAAK,IAAI,EAAG;IACtE,MAAM,IAAIK,KAAK,CACd,+DACD,CAAC;EACF;EAEA,IAAIC,QAAQ,GAAGN,eAAe;;EAE9B;AACD;AACA;AACA;AACA;EACC,SAASO,WAAWA,CAAA,EAAG;IACtB,OAAOD,QAAQ;EAChB;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACC,SAASE,WAAWA,CAAEC,WAAW,EAAG;IACnC,IAAKL,OAAA,CAAOK,WAAW,MAAK,QAAQ,IAAIA,WAAW,KAAK,IAAI,EAAG;MAC9D,MAAM,IAAIJ,KAAK,CACd,oDACD,CAAC;IACF;IAEAC,QAAQ,GAAAI,aAAA,CAAAA,aAAA,KAAQJ,QAAQ,GAAKG,WAAW,CAAE;EAC3C;EAEA,OAAO;IAAEF,WAAW,EAAXA,WAAW;IAAEC,WAAW,EAAXA;EAAY,CAAC;AACpC;;;;;;;;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,eAAeA,CAAA,EAAsB;EAAA,IAApBC,YAAY,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjD,IAAKG,OAAA,CAAOQ,YAAY,MAAK,QAAQ,IAAIA,YAAY,KAAK,IAAI,EAAG;IAChE,MAAM,IAAIP,KAAK,CACd,yDACD,CAAC;EACF;EAEA,IAAIQ,KAAK,GAAGD,YAAY;;EAExB;AACD;AACA;AACA;AACA;EACC,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAA;IAAA,OAASD,KAAK;EAAA;;EAE5B;AACD;AACA;AACA;AACA;AACA;EACC,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,YAAY,EAAI;IACtC,IAAMC,KAAK,GAAGC,OAAO,CAACC,GAAG,CAAEN,KAAK,EAAEG,YAAa,CAAC;;IAEhD;IACA;IACA,OAAOC,KAAK,KAAKd,SAAS,GAAG,IAAI,GAAGc,KAAK;EAC1C,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACC,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,QAAQ,EAAI;IAC5B,IAAKjB,OAAA,CAAOiB,QAAQ,MAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAG;MACxD,MAAM,IAAIhB,KAAK,CAAE,8CAA+C,CAAC;IAClE;IAEAQ,KAAK,GAAAH,aAAA,CAAAA,aAAA,KAAQG,KAAK,GAAKQ,QAAQ,CAAE;EAClC,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACC,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAKN,YAAY,EAAEC,KAAK,EAAM;IACjD,IAAKC,OAAO,CAACK,GAAG,CAAEV,KAAK,EAAEG,YAAa,CAAC,EAAG;MACzCE,OAAO,CAACM,GAAG,CAAEX,KAAK,EAAEG,YAAY,EAAEC,KAAM,CAAC;IAC1C;EACD,CAAC;EAED,OAAO;IAAEH,QAAQ,EAARA,QAAQ;IAAEC,cAAc,EAAdA,cAAc;IAAEK,QAAQ,EAARA,QAAQ;IAAEE,cAAc,EAAdA;EAAe,CAAC;AAC9D;;;;;;;;;;;;;;;;;;AClEqC;;;;;;;;;;;;;;;;;;ACA9B,IAAMG,MAAM,GAAG,mBAAmB;AAClC,IAAMC,kBAAkB,GAAG,eAAe;AAC1C,IAAMC,KAAK,GAAG;EACpBC,SAAS,EAAE;AACZ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACkD;;AAElD;AACA;AACA;AAC6C;AAIhB;AAE7B,IAAMG,WAAW,GAAGC,QAAQ,CAACC,cAAc,CAAE,mBAAoB,CAAC;AAClE,IAAMC,OAAO,GAAGF,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,8CAAM,aAAY,CAAC;;AAEhE;AACA,IAAMW,UAAU,GAAGP,2EAAuB,CAAC,CAAC;AAC5CE,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEM,WAAW,CAAED,UAAW,CAAC;AACtC,IAAME,kBAAkB,GAAGR,yEAAqB,CAAC,CAAC;AAE3C,IAAAS,mBAAA,GAAqCxC,gEAAkB,CAAAW,aAAA;IAC7DqB,WAAW,EAAXA,WAAW;IAEX;IACAG,OAAO,EAAPA,OAAO;IACPM,WAAW,EAAEN,OAAO,CAACO,aAAa,CAAE,mBAAoB,CAAC;IACzDC,aAAa,EAAER,OAAO,CAACS,gBAAgB,KAAAR,MAAA,CAAOV,8CAAM,SAAQ,CAAC;IAC7DmB,gBAAgB,EAAEV,OAAO,CAACO,aAAa,KAAAN,MAAA,CACjCV,8CAAM,2BAAAU,MAAA,CAAyBR,6CAAK,CAACC,SAAS,QACpD;EAAC,GAGEU,kBAAkB,CACpB,CAAC;EAbY/B,WAAW,GAAAgC,mBAAA,CAAXhC,WAAW;EAAEC,WAAW,GAAA+B,mBAAA,CAAX/B,WAAW;;;;;;;;;;;;;;;;;;;;ACtBvC;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC0D;;AAE1D;AACA;AACA;AACsC;AAEtC,IAAAsC,cAAA,GAA6B5D,MAAM,CAAC6D,MAAM;EAAlCC,GAAG,GAAAF,cAAA,CAAHE,GAAG;EAAEC,GAAG,GAAAH,cAAA,CAAHG,GAAG;EAAEC,CAAC,GAAAJ,cAAA,CAADI,CAAC;EAAEC,GAAG,GAAAL,cAAA,CAAHK,GAAG;;AAExB;AACA;AACA;AACA;AACA;AACO,SAAStB,uBAAuBA,CAAA,EAAG;EACzC,IAAMuB,MAAM,GAAGF,CAAC,CAAE;IACjBG,SAAS,EAAE;EACZ,CAAE,CAAC;EACHD,MAAM,CAACE,YAAY,CAAE,MAAM,EAAE,QAAS,CAAC;EAEvC,OAAOL,GAAG,CAAE;IACXM,EAAE,KAAApB,MAAA,CAAMV,8CAAM,iBAAe;IAC7B4B,SAAS,6CAAAlB,MAAA,CAA8C5C,wDAAY,CAAG;IACtEiE,QAAQ,EAAE,CACTL,GAAG,CAAE;MACJM,GAAG,KAAAtB,MAAA,CAAM/C,sDAAU,0CAAwC;MAC3DsE,GAAG,EAAEb,mDAAE,CAAE,aAAa,EAAE,YAAa;IACtC,CAAE,CAAC,EACHI,GAAG,CAAE;MACJI,SAAS,EAAE,WAAW;MACtBG,QAAQ,EAAE,CACTR,GAAG,CAAE,IAAI,EAAE;QACVK,SAAS,KAAAlB,MAAA,CAAMV,8CAAM;MACtB,CAAE,CAAC,EACHuB,GAAG,CAAE,GAAG,EAAE;QACTK,SAAS,KAAAlB,MAAA,CAAMV,8CAAM;MACtB,CAAE,CAAC;IAEL,CAAE,CAAC,EACH2B,MAAM;EAER,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAStB,qBAAqBA,CAAA,EAAG;EACvC,IAAMM,UAAU,GAAGJ,QAAQ,CAACS,aAAa,KAAAN,MAAA,CAAOV,8CAAM,iBAAgB,CAAC;EAEvE,OAAO;IACNW,UAAU,EAAVA,UAAU;IACVuB,eAAe,EAAEvB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,aAAa,KAAAN,MAAA,CAAOV,8CAAM,WAAU,CAAC;IAClEmC,cAAc,EAAExB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,aAAa,KAAAN,MAAA,CAAOV,8CAAM,UAAS,CAAC;IAChEoC,gBAAgB,EAAEzB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,aAAa,CAAE,SAAU;EACxD,CAAC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AElEA;AACA;AACA;AAC+C;AACgB;;AAE/D;AACA;AACA;AAC0C;AACK;AACV;;AAErC;AACA;AACA;AACA;AACA;AACO,SAASwB,iBAAiBA,CAAA,EAAG;EACnC,IAAAC,YAAA,GAA0B3D,sDAAW,CAAC,CAAC;IAA/BmC,aAAa,GAAAwB,YAAA,CAAbxB,aAAa;;EAErB;EACAA,aAAa,CAACyB,OAAO,CAAE,UAAAC,QAAQ,EAAI;IAClCN,iEAAqB,CAAEM,QAAQ,EAAEC,eAAgB,CAAC;IAClDD,QAAQ,CAACE,gBAAgB,CAAE,SAAS,EAAEC,iBAAkB,CAAC;EAC1D,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMF,eAAe,GAAG,SAAlBA,eAAeA,CAAGG,KAAK,EAAI;EAChC,IAAMC,eAAe,GAAGD,KAAK,CAACE,aAAa;EAC3C,IAAMC,mBAAmB,GAAGF,eAAe,CAACG,YAAY,CAAE,eAAgB,CAAC;EAC3E,IAAAC,SAAA,GACC/D,iDAAQ,CAAC,CAAC;IADLgE,gBAAgB,GAAAD,SAAA,CAAhBC,gBAAgB;IAAEC,kBAAkB,GAAAF,SAAA,CAAlBE,kBAAkB;IAAEC,kBAAkB,GAAAH,SAAA,CAAlBG,kBAAkB;;EAG9D;EACA,IAAKF,gBAAgB,KAAKH,mBAAmB,EAAG;IAC/C;EACD;;EAEA;AACD;AACA;AACA;AACA;EACCG,gBAAgB,GAAGG,EAAE,CAACC,KAAK,CAACC,YAAY,CACvC,0BAA0B,EAC1BR,mBACD,CAAC;;EAED;EACAI,kBAAkB,CAACK,SAAS,CAACC,MAAM,CAAE3F,yDAAc,CAAC;EACpDqF,kBAAkB,GAAGN,eAAe;EACpCM,kBAAkB,CAACK,SAAS,CAACE,GAAG,CAAE5F,yDAAc,CAAC;EACjD0B,iDAAQ,CAAE;IAAE0D,gBAAgB,EAAhBA,gBAAgB;IAAEC,kBAAkB,EAAlBA;EAAmB,CAAE,CAAC;;EAEpD;EACA,IAAKC,kBAAkB,EAAG;IACzBhB,mDAAgB,CAAC,CAAC;EACnB;;EAEA;AACD;AACA;AACA;AACA;EACCiB,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAET,gBAAiB,CAAC;;EAEhE;EACA,IAAAU,aAAA,GAAwBjF,sDAAW,CAAC,CAAC;IAA7BwB,WAAW,GAAAyD,aAAA,CAAXzD,WAAW;EACnB,IAAIgC,kDAAU,CAAEhC,WAAY,CAAC,CAAC0D,MAAM,CAAC,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,SAASlB,iBAAiBA,CAAEC,KAAK,EAAG;EACnC;EACA,IAAKA,KAAK,CAACkB,GAAG,KAAK,OAAO,IAAIlB,KAAK,CAACkB,GAAG,KAAK,GAAG,EAAG;IACjDlB,KAAK,CAACmB,cAAc,CAAC,CAAC;IACtBtB,eAAe,CAAEG,KAAM,CAAC;EACzB;AACD;;;;;;;;;;;;;;;;;;AC1FA;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACO,SAASR,gBAAgBA,CAAA,EAAG;EAClC,IAAAE,YAAA,GAAwB3D,sDAAW,CAAC,CAAC;IAA7BiC,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;EAEnBA,WAAW,CAACvB,KAAK,GAAG,EAAE;EACtBuB,WAAW,CAACoD,aAAa,CAAE,IAAIC,KAAK,CAAE,OAAO,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAE,CAAE,CAAC;AACrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf4B;AACD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEFzB;AACA;AACA;AAC+C;;AAE/C;AACA;AACA;AAC0C;AACL;AAErC,IAAA5B,YAAA,GAA6B3D,sDAAW,CAAC,CAAC;EAAlCqC,gBAAgB,GAAAsB,YAAA,CAAhBtB,gBAAgB;AAEjB,IAAAmD,gBAAA,GACNpF,6DAAe,CAAE;IAChBqE,kBAAkB,EAAE,KAAK;IACzBF,gBAAgB,EAAEnD,6CAAK,CAACC,SAAS;IACjCmD,kBAAkB,EAAEnC;EACrB,CAAE,CAAC;EALW9B,QAAQ,GAAAiF,gBAAA,CAARjF,QAAQ;EAAEC,cAAc,GAAAgF,gBAAA,CAAdhF,cAAc;EAAEK,QAAQ,GAAA2E,gBAAA,CAAR3E,QAAQ;EAAEE,cAAc,GAAAyE,gBAAA,CAAdzE,cAAc;;;;;;;;;;;;;;;;ACbjE;AACA;AACA;AACA,IAAQ0E,IAAI,GAAK9G,MAAM,CAAC6D,MAAM,CAAtBiD,IAAI;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAAEC,SAAS,EAAG;EAC5C,IAAK,CAAEC,KAAK,CAACC,OAAO,CAAEF,SAAU,CAAC,IAAI,CAAEA,SAAS,CAAChG,MAAM,EAAG;IACzDmG,OAAO,CAACC,IAAI,CAAE,kEAAmE,CAAC;IAClF;EACD;EAEAJ,SAAS,CAAC/B,OAAO,CAAE,UAAEoC,OAAO,EAAEC,KAAK,EAAM;IACxC;IACA,IAAK,CAAED,OAAO,CAACnB,SAAS,CAACqB,QAAQ,CAAE,sBAAuB,CAAC,IAAIF,OAAO,CAAC9D,aAAa,CAAE,4BAA6B,CAAC,EAAG;MACtH;IACD;IAEA,IAAMiE,WAAW,GAAGV,IAAI,CAAC,CAAC;IAC1B,IAAMW,eAAe,GAAK,CAAEH,KAAK,GAAG,CAAC,IAAKN,SAAS,CAAChG,MAAM,GAAK,GAAG;IAClEwG,WAAW,CAACE,KAAK,CAACC,KAAK,MAAA1E,MAAA,CAAOwE,eAAe,MAAI;IAEjD,IAAMG,oBAAoB,GAAGd,IAAI,CAAE;MAClC3C,SAAS,EAAE,2BAA2B;MACtC0D,KAAK,EAAEL;IACR,CAAE,CAAC;IACHH,OAAO,CAACS,qBAAqB,CAAE,YAAY,EAAEF,oBAAqB,CAAC;EACpE,CAAE,CAAC;AACJ;AAEA,iEAAeb,sBAAsB;;;;;;;;;;;;;;;ACnCrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMgB,OAAO,GAAG,SAAVA,OAAOA,CAAKV,OAAO,EAAEtF,KAAK,EAAoB;EAAA,IAAlBiG,OAAO,GAAAjH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC7C,IAAMkH,aAAa,GAAG,OAAOZ,OAAO,KAAK,QAAQ,GAC9CvE,QAAQ,CAACS,aAAa,CAAE8D,OAAQ,CAAC,GACjCA,OAAO;EAEV,IAAK,CAAEY,aAAa,IAAI,EAAIA,aAAa,YAAYC,WAAW,CAAE,EAAG;IACpE,OAAO,IAAI;EACZ;EAEA,IAAMC,WAAW,GAAG,OAAOpG,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGqG,QAAQ,CAAErG,KAAK,EAAE,EAAG,CAAC;EAC7E,IAAKsG,KAAK,CAAEF,WAAY,CAAC,EAAG;IAC3BhB,OAAO,CAACC,IAAI,CAAE,kDAAmD,CAAC;IAClE,OAAOkB,wBAAwB,CAAEL,aAAa,EAAE,GAAI,CAAC;EACtD;;EAEA;EACA,IAAKE,WAAW,KAAK,CAAC,EAAG;IACxB,OAAOG,wBAAwB,CAAEL,aAAa,EAAE,GAAI,CAAC;EACtD;EAEA,IAAAM,iBAAA,GAAmDP,OAAO,CAAlDQ,QAAQ;IAARA,QAAQ,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IAAAE,eAAA,GAA4BT,OAAO,CAAjCU,MAAM;IAANA,MAAM,GAAAD,eAAA,cAAGE,YAAY,GAAAF,eAAA;EAE9C,IAAMG,UAAU,GAAGR,QAAQ,CAAEH,aAAa,CAACY,WAAW,EAAE,EAAG,CAAC,IAAI,CAAC;EACjE,IAAMC,MAAM,GAAGX,WAAW,GAAGS,UAAU;;EAEvC;EACA,IAAKE,MAAM,KAAK,CAAC,EAAG;IACnB,OAAOb,aAAa;EACrB;;EAEA;EACA,IAAKA,aAAa,CAACc,iBAAiB,EAAG;IACtCC,oBAAoB,CAAEf,aAAa,CAACc,iBAAkB,CAAC;EACxD;;EAEA;EACAd,aAAa,CAAC/B,SAAS,CAACE,GAAG,CAAE,YAAa,CAAC;EAC3C6B,aAAa,CAACc,iBAAiB,GAAGE,qBAAqB,CAAE,UAAAC,SAAS;IAAA,OACjEC,eAAc,CAAED,SAAS,EAAEjB,aAAa,EAAEW,UAAU,EAAET,WAAW,EAAEK,QAAQ,EAAEM,MAAM,EAAEJ,MAAO,CAAC;EAAA,CAC9F,CAAC;EAED,OAAOT,aAAa;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMK,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAKjB,OAAO,EAAEtF,KAAK,EAAM;EACtDsF,OAAO,CAACwB,WAAW,GAAGO,MAAM,CAAErH,KAAM,CAAC;EACrC,OAAOsF,OAAO;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAM8B,eAAc,GAAG,SAAjBA,cAAcA,CAAKD,SAAS,EAAE7B,OAAO,EAAEuB,UAAU,EAAET,WAAW,EAAEK,QAAQ,EAAEM,MAAM,EAAEJ,MAAM,EAAM;EACnG,IAAK,CAAErB,OAAO,CAACgC,iBAAiB,EAAG;IAClChC,OAAO,CAACgC,iBAAiB,GAAGH,SAAS;IACrC7B,OAAO,CAACiC,qBAAqB,GAAGJ,SAAS;IACzC7B,OAAO,CAACkC,sBAAsB,GAAG,CAAC;IAClClC,OAAO,CAACmC,iBAAiB,GAAGZ,UAAU;EACvC;EAEA,IAAMa,UAAU,GAAGP,SAAS,GAAG7B,OAAO,CAACiC,qBAAqB;EAC5D,IAAMI,OAAO,GAAGR,SAAS,GAAG7B,OAAO,CAACgC,iBAAiB;;EAErD;EACA;EACA,IAAKI,UAAU,GAAG,EAAE,IAAIpC,OAAO,CAACiC,qBAAqB,KAAK,IAAI,EAAG;IAChEjC,OAAO,CAACkC,sBAAsB,EAAE;;IAEhC;IACA;IACA,IAAKlC,OAAO,CAACkC,sBAAsB,GAAG,CAAC,EAAG;MACzClC,OAAO,CAACK,KAAK,CAACiC,UAAU,cAAA1G,MAAA,CAAe2G,IAAI,CAACC,GAAG,CAAErB,QAAQ,GAAGkB,OAAO,EAAE,GAAI,CAAC,gBAAc;MACxFrC,OAAO,CAACwB,WAAW,GAAGO,MAAM,CAAEjB,WAAY,CAAC;MAC3C,OAAOd,OAAO,CAAC0B,iBAAiB;MAChC;IACD;EACD;;EAEA;EACA,IAAMe,QAAQ,GAAGF,IAAI,CAACG,GAAG,CAAEL,OAAO,GAAGlB,QAAQ,EAAE,CAAE,CAAC;EAClD,IAAMwB,aAAa,GAAGtB,MAAM,CAAEoB,QAAS,CAAC;EACxC,IAAMG,YAAY,GAAGL,IAAI,CAACM,KAAK,CAAEtB,UAAU,GAAKE,MAAM,GAAGkB,aAAgB,CAAC;;EAE1E;EACA,IAAKC,YAAY,KAAK5C,OAAO,CAACmC,iBAAiB,EAAG;IACjDnC,OAAO,CAACwB,WAAW,GAAGO,MAAM,CAAEa,YAAa,CAAC;IAC5C5C,OAAO,CAACmC,iBAAiB,GAAGS,YAAY;EACzC;EAEA5C,OAAO,CAACiC,qBAAqB,GAAGJ,SAAS;;EAEzC;EACA,IAAKY,QAAQ,GAAG,CAAC,EAAG;IACnBzC,OAAO,CAAC0B,iBAAiB,GAAGE,qBAAqB,CAAE,UAAAC,SAAS;MAAA,OAC3DC,eAAc,CAAED,SAAS,EAAE7B,OAAO,EAAEuB,UAAU,EAAET,WAAW,EAAEK,QAAQ,EAAEM,MAAM,EAAEJ,MAAO,CAAC;IAAA,CACxF,CAAC;IACD;EACD;;EAEA;EACArB,OAAO,CAACwB,WAAW,GAAGO,MAAM,CAAEjB,WAAY,CAAC;;EAE3C;EACA,CAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,mBAAmB,CAAE,CAClHlD,OAAO,CAAE,UAAAkF,IAAI;IAAA,OAAI,OAAO9C,OAAO,CAAE8C,IAAI,CAAE;EAAA,CAAC,CAAC;EAE3C9C,OAAO,CAACK,KAAK,CAAC0C,cAAc,CAAE,YAAa,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMzB,YAAY,GAAG,SAAfA,YAAYA,CAAG0B,CAAC;EAAA,OAAI,CAAC,GAAGT,IAAI,CAACU,GAAG,CAAE,CAAC,GAAGD,CAAC,EAAE,CAAE,CAAC;AAAA;AAElD,iEAAetC,OAAO;;;;;;;;;;;;;;;;;;AChJuD;;;;;;;;;;;;;;;;;;;;;;ACAtE,IAAMlD,UAAU;EACtB;AACD;AACA;AACA;AACA;AACA;EACC,SAAAA,WAAazD,QAAQ,EAAqB;IAAA,IAAnBoJ,IAAI,GAAAzJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;IAAA0J,eAAA,OAAA5F,UAAA;IACtC,IAAI,CAACzD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACoJ,IAAI,GAAGA,IAAI;IAEhB,IAAI,CAACE,eAAe,CAAC,CAAC;EACvB;;EAEA;AACD;AACA;AACA;AACA;EAJC,OAAAC,YAAA,CAAA9F,UAAA;IAAA2B,GAAA;IAAAzE,KAAA,EAKA,SAAAwE,MAAMA,CAAA,EAAG;MAAA,IAAAqE,KAAA;MACR,IAAI,CAACC,oBAAoB,CAAE,UAAAxD,OAAO,EAAI;QACrCA,OAAO,CAACnB,SAAS,CAACE,GAAG,CAAE,eAAgB,CAAC;QAExCiB,OAAO,CAACjC,gBAAgB,CAAE,cAAc,EAAE,YAAM;UAC/CwF,KAAI,CAACE,YAAY,CAAC,CAAC;UACnBzD,OAAO,CAACnB,SAAS,CAACC,MAAM,CAAE,eAAgB,CAAC;QAC5C,CAAC,EAAE;UAAE4E,IAAI,EAAE;QAAK,CAAE,CAAC;MACpB,CAAE,CAAC;IACJ;;IAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EAPC;IAAAvE,GAAA;IAAAzE,KAAA,EAQA,SAAAiJ,aAAaA,CAAA,EAAiB;MAAA,IAAAC,MAAA;MAAA,IAAfC,KAAK,GAAAnK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAC1BoK,UAAU,CAAE,YAAM;QACjBF,MAAI,CAACJ,oBAAoB,CAAE,UAAExD,OAAO,EAAEC,KAAK,EAAM;UAChDD,OAAO,CAACnB,SAAS,CAACC,MAAM,CAAE,aAAc,CAAC;UACzCkB,OAAO,CAACK,KAAK,CAAC0D,eAAe,GAAK,CAAE9D,KAAK,GAAG,CAAC,IAAK4D,KAAK,GAAK,GAAG;QAChE,CAAE,CAAC;MACJ,CAAC,EAAE,GAAI,CAAC;IACT;EAAC;IAAA1E,GAAA;IAAAzE,KAAA,EAED,SAAA2I,eAAeA,CAAA,EAAG;MAAA,IAAAW,MAAA;MACjB,IAAI,CAACR,oBAAoB,CAAE,UAAAxD,OAAO,EAAI;QACrC,IAAK,SAAS,KAAKgE,MAAI,CAACb,IAAI,EAAG;UAC9BnD,OAAO,CAACK,KAAK,CAAC4D,OAAO,GAAG,KAAK;QAC9B;QACA,IAAK,SAAS,KAAKD,MAAI,CAACb,IAAI,EAAG;UAC9BnD,OAAO,CAACnB,SAAS,CAACE,GAAG,CAAE,4BAA6B,CAAC;QACtD;QACA,IAAK,YAAY,KAAKiF,MAAI,CAACb,IAAI,EAAG;UACjCnD,OAAO,CAACnB,SAAS,CAACE,GAAG,CAAE,oBAAqB,CAAC;QAC9C;QACAiB,OAAO,CAACnB,SAAS,CAACE,GAAG,CAAE,aAAc,CAAC;MACvC,CAAE,CAAC;IACJ;EAAC;IAAAI,GAAA;IAAAzE,KAAA,EAED,SAAA+I,YAAYA,CAAA,EAAG;MACd,IAAI,CAACD,oBAAoB,CAAE,UAAAxD,OAAO;QAAA,OAAIA,OAAO,CAACK,KAAK,CAAC4D,OAAO,GAAG,KAAK;MAAA,CAAC,CAAC;IACtE;EAAC;IAAA9E,GAAA;IAAAzE,KAAA,EAED,SAAA8I,oBAAoBA,CAAEU,QAAQ,EAAG;MAChC,IAAK,IAAI,CAACnK,QAAQ,YAAYoK,OAAO,EAAG;QACvCD,QAAQ,CAAE,IAAI,CAACnK,QAAQ,EAAE,CAAE,CAAC;QAC5B;MACD;MACA,IAAK,CAAC,GAAG,IAAI,CAACA,QAAQ,CAACJ,MAAM,EAAG;QAC/B,IAAI,CAACI,QAAQ,CAAC6D,OAAO,CAAE,UAAEoC,OAAO,EAAEC,KAAK;UAAA,OAAMiE,QAAQ,CAAElE,OAAO,EAAEC,KAAM,CAAC;QAAA,CAAC,CAAC;MAC1E;IACD;EAAC;AAAA;;;;;;;;;;;;;;;AC1EF;AACA,IAAImE,WAAW,GAAGC,OAAO,CAACC,OAAO,CAAC,CAAC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,IAAI;EAAA,OAAIJ,WAAW,GAAGA,WAAW,CAACK,IAAI,CAAED,IAAK,CAAC,CAACE,KAAK,CAAEF,IAAK,CAAC;AAAA;;;;;;;;;;;;;;;;ACT7F;AACA;AACA;AAC+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,CAAKC,OAAO,EAAEC,OAAO,EAAE5B,IAAI,EAAE6B,OAAO,EAAM;EACnE,IAAMC,YAAY,GAAGxJ,QAAQ,CAACS,aAAa,CAAE4I,OAAQ,CAAC;EACtD,IAAMI,YAAY,GAAGzJ,QAAQ,CAACS,aAAa,CAAE6I,OAAQ,CAAC;EAEtD,IAAK,CAAEE,YAAY,IAAI,CAAEC,YAAY,EAAG;IACvCpF,OAAO,CAACC,IAAI,CAAE,uDAAwD,CAAC;IACvE;EACD;;EAEA;EACA,IAAKiF,OAAO,EAAG;IACd,IAAMvF,IAAI,GAAGyF,YAAY,CAAChJ,aAAa,qBAAAN,MAAA,CAAsBuH,IAAI,QAAM,CAAC;IACxE,IAAK1D,IAAI,EAAG;MACXA,IAAI,CAAC+B,WAAW,GAAGwD,OAAO;IAC3B;EACD;;EAEA;EACAE,YAAY,CAACnI,YAAY,CAAE,WAAW,EAAEoG,IAAK,CAAC;EAC9CyB,uCAAI,CAAEM,YAAa,CAAC;;EAEpB;EACAD,YAAY,CAAClH,gBAAgB,CAAE,OAAO,EAAE,YAAM;IAC7C4G,uCAAI,CAAEO,YAAa,CAAC;EACrB,CAAC,EAAE;IAAExB,IAAI,EAAE;EAAK,CAAE,CAAC;AACpB,CAAC;;;;;;;;;;;;;;;;ACvCM,IAAAyB,mBAAA,GAA8CxM,MAAM,CAAC6D,MAAM,CAAC4I,IAAI;EAAxD7H,qBAAqB,GAAA4H,mBAAA,CAArB5H,qBAAqB;EAAE8H,UAAU,GAAAF,mBAAA,CAAVE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AACJ;AACA;AACA;AACF;AACO;;;;;;;;;;;;;;;;;;;;;;;;ACL7B;AACA;AACA;AACA,IAAMvM,GAAG,GAAG,IAAIwM,GAAG,CAAE3M,MAAM,CAAC4M,QAAQ,CAACC,IAAK,CAAC;AAC3C,IAAMC,SAAS,GAAG3M,GAAG,CAAC4M,YAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,SAAS;EAAA,OAAIH,SAAS,CAAC7K,GAAG,CAAEgL,SAAU,CAAC;AAAA;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGD,SAAS,EAAI;EAC5CH,SAAS,CAACK,MAAM,CAAEF,SAAU,CAAC;EAC7B9M,GAAG,CAACiN,MAAM,GAAGN,SAAS,CAACO,QAAQ,CAAC,CAAC;EACjC,OAAOlN,GAAG,CAACkN,QAAQ,CAAC,CAAC;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAKL,SAAS,EAAEM,UAAU,EAAkC;EAAA,IAAhCC,YAAY,GAAAzM,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,WAAW;EAC/E+L,SAAS,CAACxK,GAAG,CAAE2K,SAAS,EAAEM,UAAW,CAAC;EACtCpN,GAAG,CAACiN,MAAM,GAAGN,SAAS,CAACO,QAAQ,CAAC,CAAC;EAEjC,IAAK,CAAE,WAAW,EAAE,cAAc,CAAE,CAACI,QAAQ,CAAED,YAAa,CAAC,EAAG;IAC/D,IAAM7L,KAAK,GAAA+L,eAAA,KAAOT,SAAS,EAAIM,UAAU,CAAE;IAC3CvN,MAAM,CAAC2N,OAAO,CAAEH,YAAY,CAAE,CAAE7L,KAAK,EAAE,EAAE,EAAExB,GAAI,CAAC;EACjD;EAEA,OAAOA,GAAG,CAACkN,QAAQ,CAAC,CAAC;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,IAAMO,aAAa,GAAG,SAAhBA,aAAaA,CAAGX,SAAS;EAAA,OAAIH,SAAS,CAACzK,GAAG,CAAE4K,SAAU,CAAC;AAAA;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMY,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGZ,SAAS;EAAA,OAC9CU,OAAO,CAACG,YAAY,CAAE,CAAC,CAAC,EAAE,EAAE,EAAEZ,gBAAgB,CAAED,SAAU,CAAE,CAAC;AAAA;;;;;;;;;;;;;;;;;AC7D9D;AACA;AACA;AACA;AACA;AACA;AACO,IAAMc,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK;EAAA,OAChC,OAAOA,KAAK,KAAK,QAAQ,GAAG,yJAAyJ,CAACC,IAAI,CAAED,KAAM,CAAC,GAAG,KAAK;AAAA;;AAE5M;AACA;AACA;AACA;AACA;AACA;AACO,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAG7G,OAAO;EAAA,OAAIA,OAAO,YAAYa,WAAW,IAAIf,OAAO,CAACC,IAAI,CAAE,8DAA+D,CAAC,IAAI,KAAK;AAAA;;AAEjK;AACA;AACA;AACA;AACA;AACA;AACO,IAAM+G,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,GAAG;EAAA,OAAIC,MAAM,CAACC,IAAI,CAAEF,GAAI,CAAC,CAACpN,MAAM,KAAK,CAAC,IAAIoN,GAAG,CAACG,WAAW,KAAKF,MAAM;AAAA;;;;;;;;;;;;;;;;;;;;ACvBjG;AACA;AACA;AAC8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACO,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAGpN,QAAQ;EAAA,IAAAqN,WAAA;EAAA,QAAAA,WAAA,GACnCxH,KAAK,CAACyH,IAAI,CAAEtN,QAAS,CAAC,cAAAqN,WAAA,uBAAtBA,WAAA,CAAwBxJ,OAAO,CAAE,UAAAoC,OAAO;IAAA,OAAI4E,IAAI,CAAE5E,OAAQ,CAAC;EAAA,CAAC,CAAC;AAAA;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACO,IAAMsH,YAAY,GAAG,SAAfA,YAAYA,CAAGvN,QAAQ;EAAA,IAAAwN,YAAA;EAAA,QAAAA,YAAA,GACnC3H,KAAK,CAACyH,IAAI,CAAEtN,QAAS,CAAC,cAAAwN,YAAA,uBAAtBA,YAAA,CAAwB3J,OAAO,CAAE,UAAAoC,OAAO;IAAA,OAAI2E,IAAI,CAAE3E,OAAQ,CAAC;EAAA,CAAC,CAAC;AAAA;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACO,IAAM4E,IAAI,GAAG,SAAPA,IAAIA,CAAG5E,OAAO;EAAA,OAAIA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnB,SAAS,CAACC,MAAM,CAAE9F,wDAAa,CAAC;AAAA;;AAExE;AACA;AACA;AACA;AACA;AACA;AACO,IAAM2L,IAAI,GAAG,SAAPA,IAAIA,CAAG3E,OAAO;EAAA,OAAIA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnB,SAAS,CAACE,GAAG,CAAE/F,wDAAa,CAAC;AAAA;;AAErE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMwO,SAAS,GAAG,SAAZA,SAASA,CAAGxH,OAAO,EAAI;EACnC,IAAMyH,MAAM,GAAG9O,MAAM,CAAC+O,gBAAgB,CAAE1H,OAAQ,CAAC;EACjD,OAAOyH,MAAM,CAACE,gBAAgB,CAAE,SAAU,CAAC,KAAK,MAAM;AACvD,CAAC;;;;;;;;;;;;;;;;;;;;;AChDD;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC0D;AACK;;AAE/D;AACA;AACA;AACoD;AACE;AAEtD,IAAApL,cAAA,GAAmC5D,MAAM,CAAC6D,MAAM;EAAxCC,GAAG,GAAAF,cAAA,CAAHE,GAAG;EAAEC,GAAG,GAAAH,cAAA,CAAHG,GAAG;EAAE+C,IAAI,GAAAlD,cAAA,CAAJkD,IAAI;EAAE9C,CAAC,GAAAJ,cAAA,CAADI,CAAC;EAAEC,GAAG,GAAAL,cAAA,CAAHK,GAAG;;AAE9B;AACA,IAAIkL,oBAAoB;;AAExB;AACA,IAAMC,gBAAgB,MAAAnM,MAAA,CAAO/C,sDAAU,oCAAkC;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACO,SAASmP,0BAA0BA,CAAEC,YAAY,EAAG;EAC1D,IAAK,CAAEA,YAAY,IAAI,CAAEA,YAAY,CAACtO,MAAM,EAAG;IAC9C;EACD;EAEA,IAAMuO,aAAa,GAAGD,YAAY,CAACE,GAAG,CAAE,UAAAC,QAAQ;IAAA,OAAIC,kBAAkB,CAAED,QAAS,CAAC;EAAA,CAAC,CAAC;EAEpFN,oBAAoB,GAAGpL,GAAG,CAAE;IAC3BM,EAAE,KAAApB,MAAA,CAAMV,2CAAM,kBAAgB;IAC9B4B,SAAS,EAAE9D,wDAAY;IACvBiE,QAAQ,EAAE,CACTR,GAAG,CAAE,IAAI,EAAE;MACV6L,IAAI,EAAEhM,mDAAE,CAAE,uBAAwB,CAAC;MACnCQ,SAAS,EAAE;IACZ,CAAE,CAAC,EACHL,GAAG,CAAE,IAAI,EAAE;MACVK,SAAS,KAAAlB,MAAA,CAAMV,2CAAM,+BAA6B;MAClD+B,QAAQ,EAAEiL;IACX,CAAE,CAAC;EAEL,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,kBAAkBA,CAAED,QAAQ,EAAG;EACvC,IAAQG,IAAI,GAAoCH,QAAQ,CAAhDG,IAAI;IAAEpJ,GAAG,GAA+BiJ,QAAQ,CAA1CjJ,GAAG;IAAEqJ,gBAAgB,GAAaJ,QAAQ,CAArCI,gBAAgB;IAAEC,MAAM,GAAKL,QAAQ,CAAnBK,MAAM;EAC3C;EACA,IAAMC,YAAY,GAAGF,gBAAgB,GAChCC,MAAM,MAAA7M,MAAA,CAAOmM,gBAAgB,OAAAnM,MAAA,CAAMuD,GAAG,gBAAAvD,MAAA,CAAemM,gBAAgB,OAAAnM,MAAA,CAAMuD,GAAG,SAAO,MAAAvD,MAAA,CACnFmM,gBAAgB,qBAAmB;EAE1C,OAAOtL,GAAG,CAAE,IAAI,EAAE;IACjBK,SAAS,EAAE,eAAe;IAC1B6L,IAAI,EAAE;MACLnD,IAAI,KAAA5J,MAAA,CAAMiM,oDAAe,8CAAAjM,MAAA,CAA6CuD,GAAG,CAAG;MAC5E,iBAAiB,EAAEoJ,IAAI,CAACK,WAAW,CAAC;IACrC,CAAC;IACD3L,QAAQ,EAAE,CACTP,GAAG,CAAE;MACJI,SAAS,KAAAlB,MAAA,CAAMV,2CAAM,eAAa;MAClCsF,KAAK,EAAE5D,GAAG,CAAE;QAAEM,GAAG,EAAEwL;MAAa,CAAE;IACnC,CAAE,CAAC,EACHhM,GAAG,CAAE;MACJI,SAAS,KAAAlB,MAAA,CAAMV,2CAAM,eAAa;MAClC+B,QAAQ,EAAE,CACTwC,IAAI,CAAE;QACL6I,IAAI,EAAEhM,mDAAE,CAAE,qBAAqB,EAAE,YAAa,CAAC;QAC/CQ,SAAS,EAAE;MACZ,CAAE,CAAC,EACHL,GAAG,CAAE,IAAI,EAAE;QACV6L,IAAI,EAAEC,IAAI;QACVzL,SAAS,EAAE;MACZ,CAAE,CAAC,EACHH,CAAC,CAAE;QACF2L,IAAI,EAAEhM,mDAAE,CAAE,sBAAsB,EAAE,YAAa,CAAC;QAChDQ,SAAS,EAAE,+BAA+B;QAC1C0I,IAAI,EAAEqC,oDAAeA;MACtB,CAAE,CAAC;IAEL,CAAE,CAAC;EAEL,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASgB,8BAA8BA,CAAA,EAAG;EAChD,IAAM9O,QAAQ,GAAGC,sDAAW,CAAC,CAAC;EAE9B,IAAKD,QAAQ,CAAC+N,oBAAoB,IAAIlO,SAAS,KAAKkO,oBAAoB,EAAG;IAC1E;EACD;EAEA/N,QAAQ,CAACyB,WAAW,CAACM,WAAW,CAAEgM,oBAAqB,CAAC;EAExD7N,sDAAW,CAAE;IACZ6N,oBAAoB,EAApBA,oBAAoB;IACpBgB,yBAAyB,EAAEhB,oBAAoB,CAAC5L,aAAa,CAAE,IAAK,CAAC;IACrE6M,wBAAwB,EAAEjB,oBAAoB,CAAC5L,aAAa,KAAAN,MAAA,CAAOV,2CAAM,UAAS,CAAC;IACnF8N,wBAAwB,EAAElB,oBAAoB,CAAC1L,gBAAgB,CAAE,gBAAiB;EACnF,CAAE,CAAC;AACJ;;;;;;;;;;;;;;;;;;;ACzHA;AACA;AACA;AACyF;;AAEzF;AACA;AACA;AAC+C;AAE/C,IAAAuB,YAAA,GAAwB3D,+DAAW,CAAC,CAAC;EAA7BwB,WAAW,GAAAmC,YAAA,CAAXnC,WAAW;AACnB,IAAM0N,aAAa,GAAGzN,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,UAAS,CAAC;AACnE,IAAMiO,sBAAsB,GAAG1N,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,yBAAwB,CAAC;AAC3F,IAAMkO,iBAAiB,GAAG3N,QAAQ,CAACS,aAAa,KAAAN,MAAA,CAC1CgM,sDAAe,2BAAAhM,MAAA,CAAyBqN,+CAAU,CAACI,SAAS,QAClE,CAAC;AACD,IAAMC,KAAK,GAAG7N,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,WAAU,CAAC;AAE5DjB,+DAAW,CAAE;EACZ;EACAsP,kBAAkB,GAAAC,qBAAA,GAAE/N,QAAQ,CAACC,cAAc,CAAE,gBAAiB,CAAC,cAAA8N,qBAAA,uBAA3CA,qBAAA,CAA6CtN,aAAa,CAAE,GAAI,CAAC;EACrFuN,gBAAgB,EAAEhO,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,iBAAgB,CAAC;EACtEwO,SAAS,EAAEjO,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,gBAAe,CAAC;EAC9DyO,aAAa,EAAElO,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,qBAAoB,CAAC;EACvE0O,gBAAgB,EAAEnO,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,wBAAuB,CAAC;EAC7E2O,YAAY,GAAAC,sBAAA,GAAErO,QAAQ,CAACC,cAAc,CAAE,+BAAgC,CAAC,cAAAoO,sBAAA,cAAAA,sBAAA,GAAIrO,QAAQ,CAACC,cAAc,CAAE,oBAAqB,CAAC;EAC3HqO,0BAA0B,EAAEtO,QAAQ,CAACW,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,2BAA0B,CAAC;EAE7F;EACAgO,aAAa,EAAbA,aAAa;EACbhB,aAAa,EAAEgB,aAAa,CAAC9M,gBAAgB,CAAE,gBAAiB,CAAC;EACjE4N,sBAAsB,EAAEd,aAAa,CAAC9M,gBAAgB,wBAAAR,MAAA,CAA0BV,2CAAM,kBAAiB,CAAC;EACxG+O,yBAAyB,EAAEf,aAAa,CAAC9M,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,mBAAkB,CAAC;EACzFgP,qBAAqB,EAAEzO,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,mBAAkB,CAAC;EAE7E;EACAiO,sBAAsB,EAAtBA,sBAAsB;EACtBgB,mBAAmB,EAAEhB,sBAAsB,CAAC/M,gBAAgB,CAAE,gBAAiB,CAAC;EAChFgO,oBAAoB,EAAE3O,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,uBAAsB,CAAC;EAChFmP,mBAAmB,EAAE5O,QAAQ,CAACC,cAAc,IAAAE,MAAA,CAAMV,2CAAM,iBAAgB,CAAC;EAEzE;EACAkO,iBAAiB,EAAjBA,iBAAiB;EACjBkB,wBAAwB,EAAElB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAElN,aAAa,KAAAN,MAAA,CACpDgM,sDAAe,eACrB,CAAC;EACD2C,0BAA0B,EAAE9O,QAAQ,CAACS,aAAa,KAAAN,MAAA,CAC5CgM,sDAAe,2BAAAhM,MAAA,CAAyBqN,+CAAU,CAACuB,mBAAmB,QAC5E,CAAC;EACDC,4BAA4B,EAAEhP,QAAQ,CAACS,aAAa,CAAE,wCAAyC,CAAC;EAEhG;EACAoN,KAAK,EAALA,KAAK;EACLoB,UAAU,EAAEpB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAElN,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,gBAAe,CAAC;EAChE;EACAyP,6BAA6B,EAAElP,QAAQ,CAACC,cAAc,CAAE,gCAAiC,CAAC;EAC1FkP,mBAAmB,EAAEnP,QAAQ,CAACC,cAAc,CAAE,2BAA4B,CAAC;EAC3EmP,2BAA2B,EAAEpP,QAAQ,CAACC,cAAc,CAAE,wCAAyC,CAAC;EAChGoP,kBAAkB,EAAErP,QAAQ,CAACC,cAAc,CAAE,0BAA2B,CAAC;EACzEqP,yBAAyB,EAAEtP,QAAQ,CAACC,cAAc,CAAE,iCAAkC,CAAC;EACvFsP,oBAAoB,EAAEvP,QAAQ,CAACC,cAAc,CAAE,4BAA6B,CAAC;EAC7E;EACAuP,iBAAiB,EAAExP,QAAQ,CAACC,cAAc,CAAE,iBAAkB,CAAC;EAC/D;EACAwP,eAAe,EAAEzP,QAAQ,CAACC,cAAc,CAAE,uBAAwB,CAAC;EACnEyP,oBAAoB,EAAE1P,QAAQ,CAACC,cAAc,CAAE,iBAAkB,CAAC;EAClE0P,qBAAqB,EAAE3P,QAAQ,CAACC,cAAc,CAAE,qBAAsB,CAAC;EACvE;EACA2P,YAAY,EAAE5P,QAAQ,CAACC,cAAc,CAAE,wBAAyB,CAAC;EACjE4P,yBAAyB,EAAEhC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAElN,gBAAgB,CAAE,kCAAmC,CAAC;EACxFmP,sBAAsB,EAAEjC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAElN,gBAAgB,CAAE,8BAA+B,CAAC;EACjFoP,gBAAgB,EAAE/P,QAAQ,CAACC,cAAc,CAAE,wBAAyB,CAAC;EAErE;EACA+P,eAAe,EAAEhQ,QAAQ,CAACC,cAAc,CAAE,kBAAmB,CAAC;EAC9DgQ,oBAAoB,EAAEjQ,QAAQ,CAACC,cAAc,CAAE,mBAAoB,CAAC;EACpEiQ,2BAA2B,EAAElQ,QAAQ,CAACC,cAAc,CAAE,mBAAoB,CAAC;EAC3EkQ,oBAAoB,EAAEnQ,QAAQ,CAACC,cAAc,CAAE,UAAW,CAAC;EAC3DmQ,sBAAsB,EAAEpQ,QAAQ,CAACC,cAAc,CAAE,iBAAkB,CAAC;EAEpE;EACAoQ,mBAAmB,EAAEtQ,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEyB;AACnC,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;AClFwB;;;;;;;;;;;;;;;;;ACA3B;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACO,SAAS8O,4BAA4BA,CAAA,EAAG;EAC9C,IAAApO,YAAA,GAAqC3D,sDAAW,CAAC,CAAC;IAA1CgP,wBAAwB,GAAArL,YAAA,CAAxBqL,wBAAwB;EAEhC,IAAKpP,SAAS,KAAKoP,wBAAwB,EAAG;IAC7C;EACD;;EAEA;EACAA,wBAAwB,CAACpL,OAAO,CAAE,UAAAwK,QAAQ,EAAI;IAC7CA,QAAQ,CAACrK,gBAAgB,CAAE,OAAO,EAAEiO,0BAA2B,CAAC;EACjE,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAG/N,KAAK,EAAI;EAC3C;EACA,IAAKA,KAAK,CAACgO,MAAM,CAACC,OAAO,CAAE,GAAI,CAAC,EAAG;IAClC;EACD;EAEA,IAAMC,mBAAmB,GAAGlO,KAAK,CAACE,aAAa;EAC/CxF,MAAM,CAAC4M,QAAQ,CAACC,IAAI,GAAG2G,mBAAmB,CAACC,OAAO,CAAC5G,IAAI;AACxD,CAAC;;;;;;;;;;;;;;;;;;ACtCD;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACmD;;AAEnD;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACA,SAAS6G,yBAAyBA,CAAA,EAAG;EACpC,IAAA1O,YAAA,GAA6B3D,sDAAW,CAAC,CAAC;IAAlCyP,gBAAgB,GAAA9L,YAAA,CAAhB8L,gBAAgB;;EAExB;EACAlM,iEAAqB,CAAEkM,gBAAgB,EAAE6C,uBAAwB,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EACrC,IAAArN,aAAA,GAA4FjF,sDAAW,CAAC,CAAC;IAAjGyP,gBAAgB,GAAAxK,aAAA,CAAhBwK,gBAAgB;IAAEgC,eAAe,GAAAxM,aAAA,CAAfwM,eAAe;IAAEC,oBAAoB,GAAAzM,aAAA,CAApByM,oBAAoB;IAAEG,sBAAsB,GAAA5M,aAAA,CAAtB4M,sBAAsB;EACvF,IAAQU,cAAc,GAAK5T,MAAM,CAAC6T,aAAa,CAAvCD,cAAc;EAEtBb,oBAAoB,CAAChR,KAAK,GAAG,EAAE;EAC/BmR,sBAAsB,CAACnR,KAAK,GAAG,kBAAkB;EACjD6R,cAAc,CAAEd,eAAe,EAAE,kBAAkB,EAAEhC,gBAAiB,CAAC;AACxE,CAAC;AAED,iEAAe4C,yBAAyB;;;;;;;;;;;;;;;;;;;;;AC1CxC;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACmD;;AAEnD;AACA;AACA;AAC0C;AACL;AACW;AACJ;;AAE5C;AACA;AACA;AACA;AACA;AACA,SAASM,uBAAuBA,CAAA,EAAG;EAClC,IAAAhP,YAAA,GAKI3D,sDAAW,CAAC,CAAC;IAJhB6Q,2BAA2B,GAAAlN,YAAA,CAA3BkN,2BAA2B;IAC3BG,oBAAoB,GAAArN,YAAA,CAApBqN,oBAAoB;IACpBL,6BAA6B,GAAAhN,YAAA,CAA7BgN,6BAA6B;IAC7BrN,gBAAgB,GAAAK,YAAA,CAAhBL,gBAAgB;;EAGjB;EACAC,iEAAqB,CAAEoN,6BAA6B,EAAEiC,oCAAqC,CAAC;EAC5FrP,iEAAqB,CAAED,gBAAgB,EAAEsP,oCAAqC,CAAC;;EAE/E;EACA/B,2BAA2B,CAAC9M,gBAAgB,CAAE,QAAQ,EAAE8O,mBAAoB,CAAC;;EAE7E;EACAtP,iEAAqB,CAAEyN,oBAAoB,EAAE8B,2BAA4B,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMF,oCAAoC,GAAG,SAAvCA,oCAAoCA,CAAA,EAAS;EAClD,IAAAtO,SAAA,GAA6B/D,iDAAQ,CAAC,CAAC;IAA/BgE,gBAAgB,GAAAD,SAAA,CAAhBC,gBAAgB;EACxB,IAAK,CAAEmO,wDAAgB,CAAEnO,gBAAiB,CAAC,EAAG;IAC7C;EACD;EAEAkO,4DAAuB,CAAC,CAAC;AAC1B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;EACjC,IAAA5N,aAAA,GAAqDjF,sDAAW,CAAC,CAAC;IAA7B+S,WAAW,GAAA9N,aAAA,CAAxC4L,2BAA2B;EACnC,IAAMmC,MAAM,GAAGD,WAAW,CAACrS,KAAK;EAEhC,IAAK,CAAEsS,MAAM,IAAIA,MAAM,KAAK,UAAU,EAAG;IACxCC,0BAA0B,CAAE,IAAK,CAAC;IAClC;EACD;EAEAA,0BAA0B,CAAE,KAAM,CAAC;EAEnC,IAAMC,cAAc,GAAGH,WAAW,CAACpM,OAAO,CAAEoM,WAAW,CAACI,aAAa,CAAE;EACvE,IAAMC,eAAe,GAAGF,cAAc,CAACd,OAAO,CAACiB,WAAW,CAACC,IAAI,CAAC,CAAC;EAEjE,IAAIC,QAAQ,GAAGL,cAAc,CAACd,OAAO,CAAC7D,IAAI,CAAC+E,IAAI,CAAC,CAAC;EACjD,IAAME,cAAc,OAAA5R,MAAA,CAAQU,mDAAE,CAAE,UAAU,EAAE,YAAa,CAAC,CAAG;EAC7D,IAAK,CAAEiR,QAAQ,CAACE,QAAQ,CAAED,cAAe,CAAC,EAAG;IAC5CD,QAAQ,IAAIC,cAAc;EAC3B;EAEA,IAAAE,aAAA,GAA0D1T,sDAAW,CAAC,CAAC;IAA/D8Q,kBAAkB,GAAA4C,aAAA,CAAlB5C,kBAAkB;IAAEC,yBAAyB,GAAA2C,aAAA,CAAzB3C,yBAAyB;EACrDD,kBAAkB,CAACpQ,KAAK,GAAG6S,QAAQ;EACnCxC,yBAAyB,CAACrQ,KAAK,GAAG0S,eAAe;AAClD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMH,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGU,aAAa,EAAI;EACnD,IAAAC,aAAA,GAAgF5T,sDAAW,CAAC,CAAC;IAArF8Q,kBAAkB,GAAA8C,aAAA,CAAlB9C,kBAAkB;IAAEC,yBAAyB,GAAA6C,aAAA,CAAzB7C,yBAAyB;IAAEC,oBAAoB,GAAA4C,aAAA,CAApB5C,oBAAoB;;EAE3E;EACA,CAAEF,kBAAkB,EAAEC,yBAAyB,CAAE,CAACnN,OAAO,CAAE,UAAAoC,OAAO,EAAI;IACrEA,OAAO,CAAC6N,QAAQ,GAAGF,aAAa;IAChC,IAAKA,aAAa,EAAG;MACpB3N,OAAO,CAACtF,KAAK,GAAG,EAAE,CAAC,CAAC;IACrB;EACD,CAAE,CAAC;;EAEH;EACAsQ,oBAAoB,CAACnM,SAAS,CAACiP,MAAM,CAAE,UAAU,EAAEH,aAAc,CAAC;AACnE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMb,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;EACzC,IAAQP,cAAc,GAAK5T,MAAM,CAAC6T,aAAa,CAAvCD,cAAc;EACtB,IAAMwB,UAAU,GAAG,qBAAqB;EACxC,IAAAC,aAAA,GAUIhU,sDAAW,CAAC,CAAC;IAThByR,eAAe,GAAAuC,aAAA,CAAfvC,eAAe;IACfI,sBAAsB,GAAAmC,aAAA,CAAtBnC,sBAAsB;IACtBH,oBAAoB,GAAAsC,aAAA,CAApBtC,oBAAoB;IACpBC,2BAA2B,GAAAqC,aAAA,CAA3BrC,2BAA2B;IAC3BC,oBAAoB,GAAAoC,aAAA,CAApBpC,oBAAoB;IACpBd,kBAAkB,GAAAkD,aAAA,CAAlBlD,kBAAkB;IAClBC,yBAAyB,GAAAiD,aAAA,CAAzBjD,yBAAyB;IACzBF,2BAA2B,GAAAmD,aAAA,CAA3BnD,2BAA2B;IAC3BG,oBAAoB,GAAAgD,aAAA,CAApBhD,oBAAoB;EAGrBa,sBAAsB,CAACnR,KAAK,GAAGqT,UAAU;EACzCrC,oBAAoB,CAAChR,KAAK,GAAGoQ,kBAAkB,CAACpQ,KAAK,CAAC4S,IAAI,CAAC,CAAC;EAC5D3B,2BAA2B,CAACjR,KAAK,GAAGqQ,yBAAyB,CAACrQ,KAAK,CAAC4S,IAAI,CAAC,CAAC;EAC1E1B,oBAAoB,CAAClR,KAAK,GAAGmQ,2BAA2B,CAACnQ,KAAK;;EAE9D;EACA6R,cAAc,CAAEd,eAAe,EAAEsC,UAAU,EAAE/C,oBAAqB,CAAC;AACpE,CAAC;AAED,iEAAe2B,uBAAuB;;;;;;;;;;;;;;;;;;;;AC5ItC;AACA;AACA;AAC4E;;AAE5E;AACA;AACA;AAC0C;AACmB;AACb;AACyD;AAEzG,IAAM2B,qBAAqB,OAAA1S,MAAA,CAAQV,2CAAM,0BAAwB;AACjE,IAAMqT,mBAAmB,MAAA3S,MAAA,CAAO0S,qBAAqB,SAAO;AAC5D,IAAME,iBAAiB,GAAG,uBAAuB;AACjD,IAAMC,iBAAiB,GAAG,iBAAiB;AAC3C,IAAMC,SAAS,GAAG;EACjBC,GAAG,EAAE,KAAK;EACVC,MAAM,EAAE;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuBA,CAAA,EAAG;EAClC,IAAMC,eAAe,GAAGrT,QAAQ,CAACW,gBAAgB,CAAEkS,qBAAsB,CAAC;;EAE1E;EACAQ,eAAe,CAAClR,OAAO,CAAE,UAAAmR,cAAc;IAAA,OACtCxR,iEAAqB,CAAEwR,cAAc,EAAEC,qBAAsB,CAAC;EAAA,CAC/D,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAG/Q,KAAK,EAAI;EAAA,IAAAgR,qBAAA;EACtC,IAAMF,cAAc,GAAG9Q,KAAK,CAACE,aAAa;EAC1C,IAAAR,YAAA,GAAiG3D,sDAAW,CAAC,CAAC;IAAtGkP,aAAa,GAAAvL,YAAA,CAAbuL,aAAa;IAAEgB,qBAAqB,GAAAvM,YAAA,CAArBuM,qBAAqB;IAAEI,wBAAwB,GAAA3M,YAAA,CAAxB2M,wBAAwB;IAAEF,oBAAoB,GAAAzM,YAAA,CAApByM,oBAAoB;;EAE5F;AACD;AACA;EACC,IAAMhC,QAAQ,GAAG2G,cAAc,CAAC7C,OAAO,CAAE,gBAAiB,CAAC;EAC3D,IAAMgD,UAAU,GAAG9G,QAAQ,CAACgE,OAAO,CAACpP,EAAE;EACtC,IAAMmS,WAAW,GAAGjB,0DAAkB,CAAE9F,QAAS,CAAC;EAClD,IAAMgH,gBAAgB,GAAGjB,wDAAgB,CAAE/F,QAAS,CAAC;EACrD,IAAMiH,kBAAkB,GAAGjB,0DAAkB,CAAEhG,QAAS,CAAC;;EAEzD;AACD;AACA;AACA;EACC,IAAIkH,oBAAoB,GAAG,IAAI;EAE/BlH,QAAQ,CAACvJ,SAAS,CAACiP,MAAM,IAAAlS,MAAA,CAAMV,2CAAM,qBAAmB,CAAEiU,WAAY,CAAC;EACvE,IAAKE,kBAAkB,EAAG;IACzB,IAAME,YAAY,GAAGnH,QAAQ,CAAC8D,OAAO,KAAAtQ,MAAA,CAAOV,2CAAM,UAAS,CAAC,GACzDgP,qBAAqB,GACrBhB,aAAa;IAEhB,IAAKqG,YAAY,EAAG;MACnBD,oBAAoB,GAAGC,YAAY,CAACrT,aAAa,6BAAAN,MAAA,CACpBsT,UAAU,QACvC,CAAC;MACD;MACAI,oBAAoB,CAACzQ,SAAS,CAACiP,MAAM,IAAAlS,MAAA,CAChCV,2CAAM,qBACV,CAAEiU,WACH,CAAC;IACF;EACD;;EAEA;AACD;AACA;EACC,IAAA7Q,SAAA,GAA6C/D,iDAAQ,CAAC,CAAC;IAA/CgE,gBAAgB,GAAAD,SAAA,CAAhBC,gBAAgB;IAAEiR,cAAc,GAAAlR,SAAA,CAAdkR,cAAc;EACxC,IAAMC,gBAAgB,GAAGN,WAAW,GAAGT,SAAS,CAACE,MAAM,GAAGF,SAAS,CAACC,GAAG;EACvE,IAAMe,SAAS,GAAGtH,QAAQ,CAAClM,aAAa,CAAEqS,mBAAoB,CAAC;EAC/D,IAAMoB,qBAAqB,IAAAV,qBAAA,GAC1BK,oBAAoB,cAAAL,qBAAA,uBAApBA,qBAAA,CAAsB/S,aAAa,CAAEqS,mBAAoB,CAAC;EAE3D,IAAKG,SAAS,CAACC,GAAG,KAAKc,gBAAgB,EAAG;IACzC;IACA,EAAED,cAAc,CAACI,KAAK;IACtBR,gBAAgB,GAAG,EAAEI,cAAc,CAACK,MAAM,GAAG,EAAEL,cAAc,CAACtM,OAAO,CAAC,CAAC;IACvE;IACAwM,SAAS,CAAC3S,YAAY,CAAE,YAAY,EAAEyR,iBAAkB,CAAC;IACzDmB,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAE5S,YAAY,CAAE,YAAY,EAAEyR,iBAAkB,CAAC;EACvE,CAAC,MAAM;IACN;IACA,EAAEgB,cAAc,CAACI,KAAK;IACtBR,gBAAgB,GAAG,EAAEI,cAAc,CAACK,MAAM,GAAG,EAAEL,cAAc,CAACtM,OAAO,CAAC,CAAC;IACvE;IACAwM,SAAS,CAAC3S,YAAY,CAAE,YAAY,EAAE0R,iBAAkB,CAAC;IACzDkB,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAE5S,YAAY,CAAE,YAAY,EAAE0R,iBAAkB,CAAC;EACvE;;EAEA;EACAnE,wBAAwB,CAAC9I,WAAW,GAAGgO,cAAc,CAACI,KAAK;EAC3D7U,uDAAc,CAAE,gBAAgB,EAAEyU,cAAe,CAAC;;EAElD;AACD;AACA;EACC,IAAKnB,2DAAmB,CAAE9P,gBAAiB,CAAC,EAAG;IAC9C,IAAK,CAAC,KAAKiR,cAAc,CAACI,KAAK,EAAG;MACjC3B,4DAAuB,CAAC,CAAC;IAC1B;IAEAtJ,gDAAI,CAAEyD,QAAS,CAAC;IAEhB,IAAK,CAAC,KAAKoH,cAAc,CAACtM,OAAO,EAAG;MACnCyB,gDAAI,CAAEuE,aAAc,CAAC;IACtB;IAEA,IAAK,CAAC,KAAKsG,cAAc,CAACK,MAAM,IAAI,CAAC,KAAKL,cAAc,CAACtM,OAAO,EAAG;MAClEyB,gDAAI,CAAEyF,oBAAqB,CAAC;IAC7B;EACD;;EAEA;EACA7F,6DAAiB,CAAE;IAAA,OAAMuL,sBAAsB,CAAEZ,UAAU,EAAEO,gBAAgB,EAAEL,gBAAiB,CAAC;EAAA,CAAC,CAAC;AACpG,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASU,sBAAsBA,CAAE9S,EAAE,EAAE+S,SAAS,EAAEC,QAAQ,EAAG;EAC1D,IAAMC,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;EAC/B,IAAQC,UAAU,GAAK3T,MAAM,CAAC4T,IAAI,CAA1BD,UAAU;EAElBF,QAAQ,CAACI,MAAM,CAAE,aAAa,EAAErT,EAAG,CAAC;EACpCiT,QAAQ,CAACI,MAAM,CAAE,WAAW,EAAEN,SAAU,CAAC;EACzCE,QAAQ,CAACI,MAAM,CAAE,oBAAoB,EAAEL,QAAS,CAAC;EAEjD,OAAOG,UAAU,CAAE,iCAAiC,EAAEF,QAAS,CAAC;AACjE;AAEA,iEAAepB,uBAAuB;;;;;;;;;;;;;;;;;;;;+CCtJtC,qJAAAyB,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAvN,CAAA,EAAAuN,CAAA,OAAAC,CAAA,GAAAxJ,MAAA,CAAAyJ,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAA5J,MAAA,CAAA6J,cAAA,cAAA7N,CAAA,EAAAuN,CAAA,EAAAC,CAAA,IAAAxN,CAAA,CAAAuN,CAAA,IAAAC,CAAA,CAAA9V,KAAA,KAAAoW,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAApU,CAAA,GAAAmU,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,aAAA,uBAAAC,CAAA,GAAAL,CAAA,CAAAM,WAAA,8BAAAC,OAAArO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,WAAAxJ,MAAA,CAAA6J,cAAA,CAAA7N,CAAA,EAAAuN,CAAA,IAAA7V,KAAA,EAAA8V,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAxO,CAAA,CAAAuN,CAAA,WAAAc,MAAA,mBAAArO,CAAA,IAAAqO,MAAA,YAAAA,OAAArO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,WAAAxN,CAAA,CAAAuN,CAAA,IAAAC,CAAA,gBAAAiB,KAAAzO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAI,CAAA,GAAAP,CAAA,IAAAA,CAAA,CAAAE,SAAA,YAAAiB,SAAA,GAAAnB,CAAA,GAAAmB,SAAA,EAAA/U,CAAA,GAAAqK,MAAA,CAAA2K,MAAA,CAAAb,CAAA,CAAAL,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAjU,CAAA,eAAAjC,KAAA,EAAAmX,gBAAA,CAAA7O,CAAA,EAAAwN,CAAA,EAAAS,CAAA,MAAAtU,CAAA,aAAAmV,SAAA9O,CAAA,EAAAuN,CAAA,EAAAC,CAAA,mBAAArN,IAAA,YAAA4O,GAAA,EAAA/O,CAAA,CAAAgP,IAAA,CAAAzB,CAAA,EAAAC,CAAA,cAAAxN,CAAA,aAAAG,IAAA,WAAA4O,GAAA,EAAA/O,CAAA,QAAAuN,CAAA,CAAAkB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAA7V,CAAA,qCAAA8V,CAAA,GAAAzL,MAAA,CAAA0L,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAW,CAAA,EAAAhW,CAAA,MAAA6V,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAAzJ,MAAA,CAAA2K,MAAA,CAAAa,CAAA,YAAAM,sBAAA9P,CAAA,gCAAApF,OAAA,WAAA2S,CAAA,IAAAc,MAAA,CAAArO,CAAA,EAAAuN,CAAA,YAAAvN,CAAA,gBAAA+P,OAAA,CAAAxC,CAAA,EAAAvN,CAAA,sBAAAgQ,cAAAhQ,CAAA,EAAAuN,CAAA,aAAA0C,OAAAzC,CAAA,EAAAI,CAAA,EAAAE,CAAA,EAAAnU,CAAA,QAAAsU,CAAA,GAAAa,QAAA,CAAA9O,CAAA,CAAAwN,CAAA,GAAAxN,CAAA,EAAA4N,CAAA,mBAAAK,CAAA,CAAA9N,IAAA,QAAAgO,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAAzW,KAAA,SAAAuX,CAAA,gBAAApY,OAAA,CAAAoY,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA1B,CAAA,CAAAjM,OAAA,CAAA2N,CAAA,CAAAiB,OAAA,EAAAzO,IAAA,WAAAzB,CAAA,IAAAiQ,MAAA,SAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,gBAAAqG,CAAA,IAAAiQ,MAAA,UAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,QAAA4T,CAAA,CAAAjM,OAAA,CAAA2N,CAAA,EAAAxN,IAAA,WAAAzB,CAAA,IAAAmO,CAAA,CAAAzW,KAAA,GAAAsI,CAAA,EAAA8N,CAAA,CAAAK,CAAA,gBAAAnO,CAAA,WAAAiQ,MAAA,UAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,SAAAA,CAAA,CAAAsU,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAAlW,KAAA,WAAAA,MAAAsI,CAAA,EAAA0N,CAAA,aAAAyC,2BAAA,eAAA5C,CAAA,WAAAA,CAAA,EAAAC,CAAA,IAAAyC,MAAA,CAAAjQ,CAAA,EAAA0N,CAAA,EAAAH,CAAA,EAAAC,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA/L,IAAA,CAAA0O,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAtB,iBAAAtB,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAnB,CAAA,EAAAnU,CAAA,QAAAiU,CAAA,KAAAuB,CAAA,QAAArY,KAAA,sCAAA8W,CAAA,KAAAwB,CAAA,oBAAAtB,CAAA,QAAAnU,CAAA,WAAAjC,KAAA,EAAAsI,CAAA,EAAAoQ,IAAA,eAAA1C,CAAA,CAAA2C,MAAA,GAAAvC,CAAA,EAAAJ,CAAA,CAAAqB,GAAA,GAAApV,CAAA,UAAAsU,CAAA,GAAAP,CAAA,CAAA4C,QAAA,MAAArC,CAAA,QAAAE,CAAA,GAAAoC,mBAAA,CAAAtC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA2C,MAAA,EAAA3C,CAAA,CAAA8C,IAAA,GAAA9C,CAAA,CAAA+C,KAAA,GAAA/C,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA2C,MAAA,QAAAzC,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAgD,iBAAA,CAAAhD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA2C,MAAA,IAAA3C,CAAA,CAAAiD,MAAA,WAAAjD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAvB,CAAA,EAAAC,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAArP,IAAA,QAAAyN,CAAA,GAAAF,CAAA,CAAA0C,IAAA,GAAAhB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA3X,KAAA,EAAA8X,CAAA,CAAAT,GAAA,EAAAqB,IAAA,EAAA1C,CAAA,CAAA0C,IAAA,kBAAAZ,CAAA,CAAArP,IAAA,KAAAyN,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA2C,MAAA,YAAA3C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAAwB,oBAAAhD,CAAA,EAAAC,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAA6C,MAAA,EAAAzC,CAAA,GAAAL,CAAA,CAAAS,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAA5N,CAAA,SAAAwN,CAAA,CAAA8C,QAAA,qBAAA5C,CAAA,IAAAH,CAAA,CAAAS,QAAA,CAAA4C,MAAA,KAAApD,CAAA,CAAA6C,MAAA,aAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,EAAAuQ,mBAAA,CAAAhD,CAAA,EAAAC,CAAA,eAAAA,CAAA,CAAA6C,MAAA,kBAAA3C,CAAA,KAAAF,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,uCAAAnD,CAAA,iBAAA2B,CAAA,MAAAvB,CAAA,GAAAgB,QAAA,CAAAlB,CAAA,EAAAL,CAAA,CAAAS,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAjB,CAAA,CAAA3N,IAAA,SAAAqN,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,GAAAjB,CAAA,CAAAiB,GAAA,EAAAvB,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,MAAA1V,CAAA,GAAAmU,CAAA,CAAAiB,GAAA,SAAApV,CAAA,GAAAA,CAAA,CAAAyW,IAAA,IAAA5C,CAAA,CAAAD,CAAA,CAAAuD,UAAA,IAAAnX,CAAA,CAAAjC,KAAA,EAAA8V,CAAA,CAAAuD,IAAA,GAAAxD,CAAA,CAAAyD,OAAA,eAAAxD,CAAA,CAAA6C,MAAA,KAAA7C,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,GAAAwN,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,IAAA1V,CAAA,IAAA6T,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,sCAAArD,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,cAAA4B,aAAAjR,CAAA,QAAAuN,CAAA,KAAA2D,MAAA,EAAAlR,CAAA,YAAAA,CAAA,KAAAuN,CAAA,CAAA4D,QAAA,GAAAnR,CAAA,WAAAA,CAAA,KAAAuN,CAAA,CAAA6D,UAAA,GAAApR,CAAA,KAAAuN,CAAA,CAAA8D,QAAA,GAAArR,CAAA,WAAAsR,UAAA,CAAAC,IAAA,CAAAhE,CAAA,cAAAiE,cAAAxR,CAAA,QAAAuN,CAAA,GAAAvN,CAAA,CAAAyR,UAAA,QAAAlE,CAAA,CAAApN,IAAA,oBAAAoN,CAAA,CAAAwB,GAAA,EAAA/O,CAAA,CAAAyR,UAAA,GAAAlE,CAAA,aAAAqB,QAAA5O,CAAA,SAAAsR,UAAA,MAAAJ,MAAA,aAAAlR,CAAA,CAAApF,OAAA,CAAAqW,YAAA,cAAAS,KAAA,iBAAA9B,OAAArC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAC,CAAA,GAAAD,CAAA,CAAA5T,CAAA,OAAA6T,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAAzB,CAAA,4BAAAA,CAAA,CAAAwD,IAAA,SAAAxD,CAAA,OAAAvP,KAAA,CAAAuP,CAAA,CAAA5W,MAAA,SAAAiX,CAAA,OAAAE,CAAA,YAAAiD,KAAA,aAAAnD,CAAA,GAAAL,CAAA,CAAA5W,MAAA,OAAA+W,CAAA,CAAAsB,IAAA,CAAAzB,CAAA,EAAAK,CAAA,UAAAmD,IAAA,CAAArZ,KAAA,GAAA6V,CAAA,CAAAK,CAAA,GAAAmD,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAArZ,KAAA,GAAAsI,CAAA,EAAA+Q,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAjD,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,gBAAA+C,SAAA,CAAAha,OAAA,CAAA0W,CAAA,kCAAA+B,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAiC,CAAA,mBAAAnY,KAAA,EAAA6X,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAA7X,KAAA,EAAA4X,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAqC,WAAA,GAAAtD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAZ,CAAA,CAAAqE,mBAAA,aAAA5R,CAAA,QAAAuN,CAAA,wBAAAvN,CAAA,IAAAA,CAAA,CAAAkE,WAAA,WAAAqJ,CAAA,KAAAA,CAAA,KAAA+B,iBAAA,6BAAA/B,CAAA,CAAAoE,WAAA,IAAApE,CAAA,CAAAhI,IAAA,OAAAgI,CAAA,CAAAsE,IAAA,aAAA7R,CAAA,WAAAgE,MAAA,CAAA8N,cAAA,GAAA9N,MAAA,CAAA8N,cAAA,CAAA9R,CAAA,EAAAuP,0BAAA,KAAAvP,CAAA,CAAA+R,SAAA,GAAAxC,0BAAA,EAAAlB,MAAA,CAAArO,CAAA,EAAAmO,CAAA,yBAAAnO,CAAA,CAAAyN,SAAA,GAAAzJ,MAAA,CAAA2K,MAAA,CAAAkB,CAAA,GAAA7P,CAAA,KAAAuN,CAAA,CAAAyE,KAAA,aAAAhS,CAAA,aAAAkQ,OAAA,EAAAlQ,CAAA,OAAA8P,qBAAA,CAAAE,aAAA,CAAAvC,SAAA,GAAAY,MAAA,CAAA2B,aAAA,CAAAvC,SAAA,EAAAQ,CAAA,iCAAAV,CAAA,CAAAyC,aAAA,GAAAA,aAAA,EAAAzC,CAAA,CAAA0E,KAAA,aAAAjS,CAAA,EAAAwN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAzM,OAAA,OAAA1H,CAAA,OAAAqW,aAAA,CAAAvB,IAAA,CAAAzO,CAAA,EAAAwN,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAAE,CAAA,UAAAP,CAAA,CAAAqE,mBAAA,CAAApE,CAAA,IAAA7T,CAAA,GAAAA,CAAA,CAAAoX,IAAA,GAAAtP,IAAA,WAAAzB,CAAA,WAAAA,CAAA,CAAAoQ,IAAA,GAAApQ,CAAA,CAAAtI,KAAA,GAAAiC,CAAA,CAAAoX,IAAA,WAAAjB,qBAAA,CAAAD,CAAA,GAAAxB,MAAA,CAAAwB,CAAA,EAAA1B,CAAA,gBAAAE,MAAA,CAAAwB,CAAA,EAAAlW,CAAA,iCAAA0U,MAAA,CAAAwB,CAAA,6DAAAtC,CAAA,CAAAtJ,IAAA,aAAAjE,CAAA,QAAAuN,CAAA,GAAAvJ,MAAA,CAAAhE,CAAA,GAAAwN,CAAA,gBAAAE,CAAA,IAAAH,CAAA,EAAAC,CAAA,CAAA+D,IAAA,CAAA7D,CAAA,UAAAF,CAAA,CAAA0E,OAAA,aAAAnB,KAAA,WAAAvD,CAAA,CAAA7W,MAAA,SAAAqJ,CAAA,GAAAwN,CAAA,CAAA2E,GAAA,QAAAnS,CAAA,IAAAuN,CAAA,SAAAwD,IAAA,CAAArZ,KAAA,GAAAsI,CAAA,EAAA+Q,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAxD,CAAA,CAAAqC,MAAA,GAAAA,MAAA,EAAAhB,OAAA,CAAAnB,SAAA,KAAAvJ,WAAA,EAAA0K,OAAA,EAAA8C,KAAA,WAAAA,MAAAnE,CAAA,aAAA6E,IAAA,WAAArB,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAAzQ,CAAA,OAAAoQ,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAtB,GAAA,GAAA/O,CAAA,OAAAsR,UAAA,CAAA1W,OAAA,CAAA4W,aAAA,IAAAjE,CAAA,WAAAC,CAAA,kBAAAA,CAAA,CAAA6E,MAAA,OAAA3E,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAxP,KAAA,EAAAwP,CAAA,CAAA8E,KAAA,cAAA9E,CAAA,IAAAxN,CAAA,MAAAuS,IAAA,WAAAA,KAAA,SAAAnC,IAAA,WAAApQ,CAAA,QAAAsR,UAAA,IAAAG,UAAA,kBAAAzR,CAAA,CAAAG,IAAA,QAAAH,CAAA,CAAA+O,GAAA,cAAAyD,IAAA,KAAA9B,iBAAA,WAAAA,kBAAAnD,CAAA,aAAA6C,IAAA,QAAA7C,CAAA,MAAAC,CAAA,kBAAAiF,OAAA/E,CAAA,EAAAE,CAAA,WAAAjU,CAAA,CAAAwG,IAAA,YAAAxG,CAAA,CAAAoV,GAAA,GAAAxB,CAAA,EAAAC,CAAA,CAAAuD,IAAA,GAAArD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,KAAA4N,CAAA,aAAAA,CAAA,QAAA0D,UAAA,CAAA3a,MAAA,MAAAiX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAwD,UAAA,CAAA1D,CAAA,GAAAjU,CAAA,GAAAmU,CAAA,CAAA2D,UAAA,iBAAA3D,CAAA,CAAAoD,MAAA,SAAAuB,MAAA,aAAA3E,CAAA,CAAAoD,MAAA,SAAAkB,IAAA,QAAAnE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,eAAAK,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,qBAAAG,CAAA,IAAAE,CAAA,aAAAiE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,gBAAAiB,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,cAAAnD,CAAA,aAAAmE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,qBAAAhD,CAAA,QAAArX,KAAA,qDAAAsb,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,YAAAT,MAAA,WAAAA,OAAA3Q,CAAA,EAAAuN,CAAA,aAAAC,CAAA,QAAA8D,UAAA,CAAA3a,MAAA,MAAA6W,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA0D,UAAA,CAAA9D,CAAA,OAAAI,CAAA,CAAAsD,MAAA,SAAAkB,IAAA,IAAA1E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAAwE,IAAA,GAAAxE,CAAA,CAAAwD,UAAA,QAAAtD,CAAA,GAAAF,CAAA,aAAAE,CAAA,iBAAA9N,CAAA,mBAAAA,CAAA,KAAA8N,CAAA,CAAAoD,MAAA,IAAA3D,CAAA,IAAAA,CAAA,IAAAO,CAAA,CAAAsD,UAAA,KAAAtD,CAAA,cAAAnU,CAAA,GAAAmU,CAAA,GAAAA,CAAA,CAAA2D,UAAA,cAAA9X,CAAA,CAAAwG,IAAA,GAAAH,CAAA,EAAArG,CAAA,CAAAoV,GAAA,GAAAxB,CAAA,EAAAO,CAAA,SAAAuC,MAAA,gBAAAU,IAAA,GAAAjD,CAAA,CAAAsD,UAAA,EAAA/B,CAAA,SAAAqD,QAAA,CAAA/Y,CAAA,MAAA+Y,QAAA,WAAAA,SAAA1S,CAAA,EAAAuN,CAAA,oBAAAvN,CAAA,CAAAG,IAAA,QAAAH,CAAA,CAAA+O,GAAA,qBAAA/O,CAAA,CAAAG,IAAA,mBAAAH,CAAA,CAAAG,IAAA,QAAA4Q,IAAA,GAAA/Q,CAAA,CAAA+O,GAAA,gBAAA/O,CAAA,CAAAG,IAAA,SAAAqS,IAAA,QAAAzD,GAAA,GAAA/O,CAAA,CAAA+O,GAAA,OAAAsB,MAAA,kBAAAU,IAAA,yBAAA/Q,CAAA,CAAAG,IAAA,IAAAoN,CAAA,UAAAwD,IAAA,GAAAxD,CAAA,GAAA8B,CAAA,KAAAsD,MAAA,WAAAA,OAAA3S,CAAA,aAAAuN,CAAA,QAAA+D,UAAA,CAAA3a,MAAA,MAAA4W,CAAA,SAAAA,CAAA,QAAAC,CAAA,QAAA8D,UAAA,CAAA/D,CAAA,OAAAC,CAAA,CAAA4D,UAAA,KAAApR,CAAA,cAAA0S,QAAA,CAAAlF,CAAA,CAAAiE,UAAA,EAAAjE,CAAA,CAAA6D,QAAA,GAAAG,aAAA,CAAAhE,CAAA,GAAA6B,CAAA,OAAA3N,KAAA,WAAAkR,OAAA5S,CAAA,aAAAuN,CAAA,QAAA+D,UAAA,CAAA3a,MAAA,MAAA4W,CAAA,SAAAA,CAAA,QAAAC,CAAA,QAAA8D,UAAA,CAAA/D,CAAA,OAAAC,CAAA,CAAA0D,MAAA,KAAAlR,CAAA,QAAA0N,CAAA,GAAAF,CAAA,CAAAiE,UAAA,kBAAA/D,CAAA,CAAAvN,IAAA,QAAAyN,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAAyC,aAAA,CAAAhE,CAAA,YAAAI,CAAA,YAAA9W,KAAA,8BAAA+b,aAAA,WAAAA,cAAAtF,CAAA,EAAAC,CAAA,EAAAE,CAAA,gBAAA4C,QAAA,KAAAtC,QAAA,EAAA4B,MAAA,CAAArC,CAAA,GAAAuD,UAAA,EAAAtD,CAAA,EAAAwD,OAAA,EAAAtD,CAAA,oBAAA2C,MAAA,UAAAtB,GAAA,GAAA/O,CAAA,GAAAqP,CAAA,OAAA9B,CAAA;AAAA,SAAAuF,mBAAApF,CAAA,EAAA1N,CAAA,EAAAuN,CAAA,EAAAC,CAAA,EAAAI,CAAA,EAAAjU,CAAA,EAAAsU,CAAA,cAAAH,CAAA,GAAAJ,CAAA,CAAA/T,CAAA,EAAAsU,CAAA,GAAAE,CAAA,GAAAL,CAAA,CAAApW,KAAA,WAAAgW,CAAA,gBAAAH,CAAA,CAAAG,CAAA,KAAAI,CAAA,CAAAsC,IAAA,GAAApQ,CAAA,CAAAmO,CAAA,IAAA9M,OAAA,CAAAC,OAAA,CAAA6M,CAAA,EAAA1M,IAAA,CAAA+L,CAAA,EAAAI,CAAA;AAAA,SAAAmF,kBAAArF,CAAA,6BAAA1N,CAAA,SAAAuN,CAAA,GAAA7W,SAAA,aAAA2K,OAAA,WAAAmM,CAAA,EAAAI,CAAA,QAAAjU,CAAA,GAAA+T,CAAA,CAAAsF,KAAA,CAAAhT,CAAA,EAAAuN,CAAA,YAAA0F,MAAAvF,CAAA,IAAAoF,kBAAA,CAAAnZ,CAAA,EAAA6T,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,UAAAxF,CAAA,cAAAwF,OAAAxF,CAAA,IAAAoF,kBAAA,CAAAnZ,CAAA,EAAA6T,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,WAAAxF,CAAA,KAAAuF,KAAA;AADA;AACA;AACA;AACiH;AAEjH,IAAQxZ,GAAG,GAAK9D,MAAM,CAAC6D,MAAM,CAArBC,GAAG;;AAEX;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC0C;AACyB;;AAEnE;AACA;AACA;AACA;AACA;AACA,SAAS4Z,yBAAyBA,CAAA,EAAG;EACpC,IAAA1Y,YAAA,GAAgE3D,sDAAW,CAAC,CAAC;IAArEoR,qBAAqB,GAAAzN,YAAA,CAArByN,qBAAqB;IAAEX,4BAA4B,GAAA9M,YAAA,CAA5B8M,4BAA4B;EAE3DlN,iEAAqB,CAAE6N,qBAAqB,EAAEkL,yBAA0B,CAAC;EACzE/Y,iEAAqB,CAAEkN,4BAA4B,EAAE2L,oDAAoB,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAME,yBAAyB;EAAA,IAAAC,IAAA,GAAAR,iBAAA,cAAAzF,mBAAA,GAAAuE,IAAA,CAAG,SAAA2B,QAAA;IAAA,IAAAvX,aAAA,EAAAkM,oBAAA,EAAAxE,KAAA,EAAA+G,aAAA,EAAAtC,qBAAA,EAAA6E,QAAA,EAAAtH,IAAA,EAAAwH,UAAA;IAAA,OAAAG,mBAAA,GAAAmB,IAAA,UAAAgF,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAtB,IAAA,GAAAsB,QAAA,CAAA3C,IAAA;QAAA;UAAA9U,aAAA,GACAjF,sDAAW,CAAC,CAAC,EAAtCmR,oBAAoB,GAAAlM,aAAA,CAApBkM,oBAAoB;UACtBxE,KAAK,GAAGwE,oBAAoB,CAACzQ,KAAK,CAAC4S,IAAI,CAAC,CAAC,EAE/C;UAAA,IACO3G,KAAK;YAAA+P,QAAA,CAAA3C,IAAA;YAAA;UAAA;UACXoC,0DAAqB,CAAE,OAAQ,CAAC;UAAC,OAAAO,QAAA,CAAA/C,MAAA;QAAA;UAAA,IAK3BjN,wDAAY,CAAEC,KAAM,CAAC;YAAA+P,QAAA,CAAA3C,IAAA;YAAA;UAAA;UAC3BoC,0DAAqB,CAAE,SAAU,CAAC;UAAC,OAAAO,QAAA,CAAA/C,MAAA;QAAA;UAIpC;UAAAjG,aAAA,GACkC1T,sDAAW,CAAC,CAAC,EAAvCoR,qBAAqB,GAAAsC,aAAA,CAArBtC,qBAAqB;UAC7BA,qBAAqB,CAAC/K,KAAK,CAACsW,WAAW,CAAE,QAAQ,EAAE,aAAc,CAAC;UAClEvL,qBAAqB,CAACvM,SAAS,CAACE,GAAG,CAAE,oBAAqB,CAAC;UAErDkR,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;UAC/BD,QAAQ,CAACI,MAAM,CAAE,OAAO,EAAE1J,KAAM,CAAC;UAGzBwJ,UAAU,GAAK3T,MAAM,CAAC4T,IAAI,CAA1BD,UAAU;UAAAuG,QAAA,CAAAtB,IAAA;UAAAsB,QAAA,CAAA3C,IAAA;UAAA,OAGJ5D,UAAU,CAAE,oBAAoB,EAAEF,QAAS,CAAC;QAAA;UAAzDtH,IAAI,GAAA+N,QAAA,CAAAlD,IAAA;UAAAkD,QAAA,CAAA3C,IAAA;UAAA;QAAA;UAAA2C,QAAA,CAAAtB,IAAA;UAAAsB,QAAA,CAAAE,EAAA,GAAAF,QAAA;UAEJ5W,OAAO,CAAC+W,KAAK,CAAE,oBAAoB,EAAAH,QAAA,CAAAE,EAAQ,CAAC;UAC5CE,wBAAwB,CAAC,CAAC;UAAC,OAAAJ,QAAA,CAAA/C,MAAA;QAAA;UAAA,IAIrBhL,IAAI,CAACoO,OAAO;YAAAL,QAAA,CAAA3C,IAAA;YAAA;UAAA;UAClB+C,wBAAwB,CAAC,CAAC;UAAC,OAAAJ,QAAA,CAAA/C,MAAA;QAAA;UAI5B,IAAKpN,yDAAa,CAAE,gBAAiB,CAAC,EAAG;YACxCV,4DAAgB,CAAE,gBAAiB,CAAC;UACrC;UAEAI,yDAAa,CAAE,+BAA+B,EAAE,GAAI,CAAC;UAErDtN,MAAM,CAAC4M,QAAQ,CAACyR,MAAM,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAN,QAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAiB,OAAA;EAAA,CACzB;EAAA,gBA/CKF,yBAAyBA,CAAA;IAAA,OAAAC,IAAA,CAAAP,KAAA,OAAAtc,SAAA;EAAA;AAAA,GA+C9B;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,SAASod,wBAAwBA,CAAA,EAAG;EACnC,IAAAlJ,aAAA,GAA4B5T,sDAAW,CAAC,CAAC;IAAjCkR,eAAe,GAAA0C,aAAA,CAAf1C,eAAe;EAEvBA,eAAe,CAAChP,aAAa,CAAE,SAAU,CAAC,CAAC+a,eAAe,CACzDxa,GAAG,CAAE,GAAG,EAAEH,mDAAE,CAAE,kDAAkD,EAAE,YAAa,CAAE,CAClF,CAAC;EAED4O,eAAe,CAAChP,aAAa,CAAE,mBAAoB,CAAC,CAAC2C,SAAS,CAACE,GAAG,CAAE,YAAa,CAAC;AACnF;AAEA,iEAAesX,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;ACrGxC;AACA;AACA;AACuD;;AAEvD;AACA;AACA;AACmE;AACJ;AACM;AACtB;AACiB;AACG;AACtB;;AAE7C;AACA;AACA;AACA;AACA;AACO,SAASgB,iBAAiBA,CAAA,EAAG;EACnC3Z,qEAAiB,CAAC,CAAC;EACnBgB,EAAE,CAACC,KAAK,CAAC2Y,SAAS,CAAE,yBAAyB,EAAE,kBAAkB,EAAE,UAAA/Y,gBAAgB,EAAI;IACtF;IACA6Y,yDAAoB,CAAE7Y,gBAAiB,CAAC;EACzC,CAAE,CAAC;EAEH8N,qEAAyB,CAAC,CAAC;EAC3BwC,mEAAuB,CAAC,CAAC;EACzBqI,sEAA0B,CAAC,CAAC;EAC5BC,2DAAe,CAAC,CAAC;EACjBxK,oEAAuB,CAAC,CAAC;EACzB0J,qEAAyB,CAAC,CAAC;AAC5B;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACmD;AACG;;AAEtD;AACA;AACA;AAC0C;AACuB;AACF;AAE/D,IAAcoB,UAAU,GAAK9e,MAAM,CAAC6D,MAAM,CAACuJ,MAAM,CAAzC2R,IAAI;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,SAASP,eAAeA,CAAA,EAAG;EAC1B,IAAAxZ,YAAA,GAA0C3D,sDAAW,CAAC,CAAC;IAA/CiC,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;IAAEqB,gBAAgB,GAAAK,YAAA,CAAhBL,gBAAgB;EAErCma,UAAU,CAAExb,WAAW,EAAE,eAAe,EAAE;IAAE0b,kBAAkB,EAAlBA;EAAmB,CAAE,CAAC;EAClEpa,iEAAqB,CAAED,gBAAgB,EAAEsa,uBAAwB,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,kBAAkBA,CAAApB,IAAA,EAA0CtY,KAAK,EAAG;EAAA,IAA9C4Z,cAAc,GAAAtB,IAAA,CAAdsB,cAAc;IAAEpZ,kBAAkB,GAAA8X,IAAA,CAAlB9X,kBAAkB;EAChE;EACA;EACA,IAAKR,KAAK,IAAIA,KAAK,CAACkF,IAAI,KAAK,QAAQ,IAAIlF,KAAK,CAACgO,MAAM,CAACvR,KAAK,KAAK,EAAE,EAAG;IACpE;EACD;EAEA,IAAMJ,KAAK,GAAGC,iDAAQ,CAAC,CAAC;EACxB,IAAA0E,aAAA,GAA6BjF,sDAAW,CAAC,CAAC;IAAlCqC,gBAAgB,GAAA4C,aAAA,CAAhB5C,gBAAgB;EAExBtB,uDAAc,CAAE,oBAAoB,EAAE0D,kBAAmB,CAAC;;EAE1D;EACA,IAAK,CAAEnE,KAAK,CAACmE,kBAAkB,IAAI,CAAEnE,KAAK,CAACiE,gBAAgB,EAAG;IAC7DlC,gBAAgB,CAACgD,aAAa,CAC7B,IAAIC,KAAK,CAAE,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAK,CAAE,CACvC,CAAC;IAED;EACD;;EAEA;EACA,IAAKjF,KAAK,CAACiE,gBAAgB,EAAG;IAC7BgZ,oDAAe,CAAE9Y,kBAAmB,CAAC;;IAErC;IACA,IAAKA,kBAAkB,EAAG;MACzB1D,uDAAc,CAAE,kBAAkB,EAAE,EAAG,CAAC;IACzC;EACD;EAEAyc,0DAAqB,CAAEK,cAAc,EAAEpZ,kBAAmB,CAAC;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMmZ,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EAAA,IAAAE,mBAAA;EACrC,IAAApK,aAAA,GAAuB1T,sDAAW,CAAC,CAAC;IAA5B6B,UAAU,GAAA6R,aAAA,CAAV7R,UAAU;EAClB,IAAKoN,+CAAU,CAAC8O,MAAM,OAAAD,mBAAA,GAAKjc,UAAU,CAACuQ,OAAO,cAAA0L,mBAAA,uBAAlBA,mBAAA,CAAoBE,IAAI,GAAG;IACrD;EACD;;EAEA;EACA;EACAjd,uDAAc,CAAE,kBAAkB,EAAE,EAAG,CAAC;EACxC0C,oEAAgB,CAAC,CAAC;EAElB,IAAAmQ,aAAA,GAAwB5T,sDAAW,CAAC,CAAC;IAA7BiC,WAAW,GAAA2R,aAAA,CAAX3R,WAAW;EACnBA,WAAW,CAACgc,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,iEAAed,eAAe;;;;;;;;;;;;;;;;;;;AC7F9B;AACA;AACA;AAC0C;AACS;AACF;AACa;;AAE9D;AACA;AACA;AACA;AACA;AACA,SAASD,0BAA0BA,CAAA,EAAG;EACrC,IAAMkB,kBAAkB,GAAG3c,QAAQ,CAACW,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,yBAAwB,CAAC;;EAE1F;EACAkd,kBAAkB,CAACxa,OAAO,CAAE,UAAAya,iBAAiB;IAAA,OAC5CA,iBAAiB,CAACta,gBAAgB,CAAE,OAAO,EAAEua,wBAAyB,CAAC;EAAA,CACxE,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGra,KAAK,EAAI;EACzC,IAAMoa,iBAAiB,GAAGpa,KAAK,CAACE,aAAa;EAE7C,IAAMiK,QAAQ,GAAGiQ,iBAAiB,CAACnM,OAAO,CAAE,gBAAiB,CAAC;EAC9D,IAAMqM,QAAQ,GAAGJ,wDAAgB,CAAE/P,QAAS,CAAC;EAC7C,IAAMgH,gBAAgB,GAAGjB,wDAAgB,CAAE/F,QAAS,CAAC;;EAErD;EACA,IAAK,CAAEmQ,QAAQ,IAAInJ,gBAAgB,EAAG;IACrC;EACD;;EAEA;EACAnR,KAAK,CAACmB,cAAc,CAAC,CAAC;;EAEtB;EACA,IAAKmZ,QAAQ,EAAG;IACfL,6DAAuB,CAAE9P,QAAS,CAAC;IACnC;EACD;;EAEA;EACA,IAAAzK,YAAA,GAA6H3D,sDAAW,CAAC,CAAC;IAAlIyR,eAAe,GAAA9N,YAAA,CAAf8N,eAAe;IAAEC,oBAAoB,GAAA/N,YAAA,CAApB+N,oBAAoB;IAAEC,2BAA2B,GAAAhO,YAAA,CAA3BgO,2BAA2B;IAAEC,oBAAoB,GAAAjO,YAAA,CAApBiO,oBAAoB;IAAEC,sBAAsB,GAAAlO,YAAA,CAAtBkO,sBAAsB;EACxH,IAAQU,cAAc,GAAK5T,MAAM,CAAC6T,aAAa,CAAvCD,cAAc;EACtB,IAAMiM,YAAY,GAAGpQ,QAAQ,CAAClM,aAAa,CAAE,yBAA0B,CAAC,CAACsF,WAAW,CAAC8L,IAAI,CAAC,CAAC;EAC3F,IAAMmL,mBAAmB,GAAGrQ,QAAQ,CAAClM,aAAa,CAAE,sCAAuC,CAAC,CAACsF,WAAW,CAAC8L,IAAI,CAAC,CAAC;EAC/G,IAAMS,UAAU,GAAG,sBAAsB;EAEzCrC,oBAAoB,CAAChR,KAAK,GAAG8d,YAAY;EACzC7M,2BAA2B,CAACjR,KAAK,GAAG+d,mBAAmB;EACvD5M,sBAAsB,CAACnR,KAAK,GAAGqT,UAAU;EACzCnC,oBAAoB,CAAClR,KAAK,GAAG2d,iBAAiB,CAAC7S,IAAI;;EAEnD;EACA+G,cAAc,CAAEd,eAAe,EAAEsC,UAAU,EAAEsK,iBAAkB,CAAC;AACjE,CAAC;AAED,iEAAenB,0BAA0B;;;;;;;;;;;;;;;;;;AClEzC;AACA;AACA;AACyD;AAC6B;AACzC;;AAE7C;AACA;AACA;AACA;AACA;AACA,SAAS4B,uBAAuBA,CAAA,EAAG;EAClCD,wEAA4B,CAAC,CAAC;EAC9BF,oDAAe,CAAC,CAAC;EACjBC,qEAAyB,CAAC,CAAC;EAC3BF,qDAAgB,CAAC,CAAC;EAClBrB,0DAAiB,CAAC,CAAC;AACpB;AAEA,iEAAeyB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;ACpB/B,IAAApgB,iBAAA,GAA2DC,MAAM,CAACC,SAAS;EAAnEmgB,6BAA6B,GAAArgB,iBAAA,CAA7BqgB,6BAA6B;EAAElR,eAAe,GAAAnP,iBAAA,CAAfmP,eAAe;AAAsB;AAC5E,IAAAmR,qBAAA,GAAoErgB,MAAM,CAACsgB,oBAAoB;EAAvFC,sBAAsB,GAAAF,qBAAA,CAAtBE,sBAAsB;EAAEC,kBAAkB,GAAAH,qBAAA,CAAlBG,kBAAkB;EAAEC,WAAW,GAAAJ,qBAAA,CAAXI,WAAW;AAAiC;AAEhG,IAAMle,MAAM,GAAG,oBAAoB;AAEnC,IAAM+N,UAAU,GAAG;EACzBuB,mBAAmB,EAAE,qBAAqB;EAC1CnB,SAAS,EAAE,WAAW;EACtBgQ,MAAM,EAAE,QAAQ;EAChBtB,MAAM,EAAE;AACT,CAAC;AAEM,IAAMuB,KAAK,GAAG;EACpBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACP,CAAC;AAEM,IAAMC,WAAW,GAAG;EAC1BC,OAAO,EAAE,OAAO;EAChBC,eAAe,EAAE;AAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB2B;;;;;;;;;;;;;;;;;;;;;ACA5B;AACA;AACA;AACwF;;AAExF;AACA;AACA;AAC0C;AAE1C,IAAAf,qBAAA,GAAwDrgB,MAAM,CAACsgB,oBAAoB;EAA3Ee,cAAc,GAAAhB,qBAAA,CAAdgB,cAAc;EAAExK,cAAc,GAAAwJ,qBAAA,CAAdxJ,cAAc;EAAEyK,WAAW,GAAAjB,qBAAA,CAAXiB,WAAW;AACnD,IAAAtc,YAAA,GAAmC3D,sDAAW,CAAC,CAAC;EAAxCgQ,sBAAsB,GAAArM,YAAA,CAAtBqM,sBAAsB;AAC9B,IAAMkQ,uBAAuB,GAAGlQ,sBAAsB,CAACrQ,MAAM;AAE7DkB,4DAAQ,CAAE;EACTqf,uBAAuB,EAAvBA,uBAAuB;EACvBD,WAAW,EAAEE,MAAM,CAAEF,WAAY,CAAC;EAClCG,mBAAmB,EAAEJ,cAAc,GAAGE,uBAAuB;EAC7D1K,cAAc,EAAdA;AACD,CAAE,CAAC;;;;;;;;;;;;;;;;;;;ACnBH;AACA;AACA;AACyF;AAChC;AACC;;AAE1D;AACA;AACA;AACA;AACA;AACO,SAASqJ,4BAA4BA,CAAA,EAAG;EAC9C;EACA,IAAK,CAAEE,kEAA6B,EAAG;IACtC;EACD;EAEA,IAAQsB,WAAW,GAAK7d,MAAM,CAAC4T,IAAI,CAA3BiK,WAAW;EAEnBA,WAAW,CAAE,sCAAuC,CAAC,CAAC5V,IAAI,CAAE6V,yBAA0B,CAAC;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,yBAAyBA,CAAE3R,IAAI,EAAG;EAC1C;EACAX,qEAA0B,CAAEW,IAAI,CAAC4R,SAAU,CAAC;;EAE5C;EACA1R,yEAA8B,CAAC,CAAC;;EAEhC;EACAkD,qEAA4B,CAAC,CAAC;AAC/B;;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AAC0C;AAEnC,IAAMyO,oBAAoB,GAAG,CAAC,CAAC;;AAEtC;AACA;AACA;AACA;AACA;AACO,SAAS5B,yBAAyBA,CAAA,EAAG;EAC3C,IAAAjb,YAAA,GAA0B3D,sDAAW,CAAC,CAAC;IAA/BkO,aAAa,GAAAvK,YAAA,CAAbuK,aAAa;EAErBA,aAAa,CAACtK,OAAO,CAAE,UAAAwK,QAAQ,EAAI;IAClC;IACA,IAAMqS,UAAU,GAAGrS,QAAQ,CAAC/J,YAAY,CAAE,iBAAkB,CAAC,CAACqc,KAAK,CAAE,GAAI,CAAC;IAE1ED,UAAU,CAAC7c,OAAO,CAAE,UAAAC,QAAQ,EAAI;MAC/B;MACA,IAAK,CAAE2c,oBAAoB,CAAE3c,QAAQ,CAAE,EAAG;QACzC2c,oBAAoB,CAAE3c,QAAQ,CAAE,GAAG,EAAE;MACtC;;MAEA;MACA2c,oBAAoB,CAAE3c,QAAQ,CAAE,CAAC0W,IAAI,CAAEnM,QAAS,CAAC;IAClD,CAAE,CAAC;EACJ,CAAE,CAAC;AACJ;;;;;;;;;;;;;;;;;;;AC7BsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA2B;AAC/B;AACN;AACa;AACF;AACT;AACG;AACL;;;;;;;;;;;;;;;;;;;;;;+CCN5B,qJAAAkI,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAvN,CAAA,EAAAuN,CAAA,OAAAC,CAAA,GAAAxJ,MAAA,CAAAyJ,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAA5J,MAAA,CAAA6J,cAAA,cAAA7N,CAAA,EAAAuN,CAAA,EAAAC,CAAA,IAAAxN,CAAA,CAAAuN,CAAA,IAAAC,CAAA,CAAA9V,KAAA,KAAAoW,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAApU,CAAA,GAAAmU,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,aAAA,uBAAAC,CAAA,GAAAL,CAAA,CAAAM,WAAA,8BAAAC,OAAArO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,WAAAxJ,MAAA,CAAA6J,cAAA,CAAA7N,CAAA,EAAAuN,CAAA,IAAA7V,KAAA,EAAA8V,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAxO,CAAA,CAAAuN,CAAA,WAAAc,MAAA,mBAAArO,CAAA,IAAAqO,MAAA,YAAAA,OAAArO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,WAAAxN,CAAA,CAAAuN,CAAA,IAAAC,CAAA,gBAAAiB,KAAAzO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAI,CAAA,GAAAP,CAAA,IAAAA,CAAA,CAAAE,SAAA,YAAAiB,SAAA,GAAAnB,CAAA,GAAAmB,SAAA,EAAA/U,CAAA,GAAAqK,MAAA,CAAA2K,MAAA,CAAAb,CAAA,CAAAL,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAjU,CAAA,eAAAjC,KAAA,EAAAmX,gBAAA,CAAA7O,CAAA,EAAAwN,CAAA,EAAAS,CAAA,MAAAtU,CAAA,aAAAmV,SAAA9O,CAAA,EAAAuN,CAAA,EAAAC,CAAA,mBAAArN,IAAA,YAAA4O,GAAA,EAAA/O,CAAA,CAAAgP,IAAA,CAAAzB,CAAA,EAAAC,CAAA,cAAAxN,CAAA,aAAAG,IAAA,WAAA4O,GAAA,EAAA/O,CAAA,QAAAuN,CAAA,CAAAkB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAA7V,CAAA,qCAAA8V,CAAA,GAAAzL,MAAA,CAAA0L,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAW,CAAA,EAAAhW,CAAA,MAAA6V,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAAzJ,MAAA,CAAA2K,MAAA,CAAAa,CAAA,YAAAM,sBAAA9P,CAAA,gCAAApF,OAAA,WAAA2S,CAAA,IAAAc,MAAA,CAAArO,CAAA,EAAAuN,CAAA,YAAAvN,CAAA,gBAAA+P,OAAA,CAAAxC,CAAA,EAAAvN,CAAA,sBAAAgQ,cAAAhQ,CAAA,EAAAuN,CAAA,aAAA0C,OAAAzC,CAAA,EAAAI,CAAA,EAAAE,CAAA,EAAAnU,CAAA,QAAAsU,CAAA,GAAAa,QAAA,CAAA9O,CAAA,CAAAwN,CAAA,GAAAxN,CAAA,EAAA4N,CAAA,mBAAAK,CAAA,CAAA9N,IAAA,QAAAgO,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAAzW,KAAA,SAAAuX,CAAA,gBAAApY,OAAA,CAAAoY,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA1B,CAAA,CAAAjM,OAAA,CAAA2N,CAAA,CAAAiB,OAAA,EAAAzO,IAAA,WAAAzB,CAAA,IAAAiQ,MAAA,SAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,gBAAAqG,CAAA,IAAAiQ,MAAA,UAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,QAAA4T,CAAA,CAAAjM,OAAA,CAAA2N,CAAA,EAAAxN,IAAA,WAAAzB,CAAA,IAAAmO,CAAA,CAAAzW,KAAA,GAAAsI,CAAA,EAAA8N,CAAA,CAAAK,CAAA,gBAAAnO,CAAA,WAAAiQ,MAAA,UAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,SAAAA,CAAA,CAAAsU,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAAlW,KAAA,WAAAA,MAAAsI,CAAA,EAAA0N,CAAA,aAAAyC,2BAAA,eAAA5C,CAAA,WAAAA,CAAA,EAAAC,CAAA,IAAAyC,MAAA,CAAAjQ,CAAA,EAAA0N,CAAA,EAAAH,CAAA,EAAAC,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA/L,IAAA,CAAA0O,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAtB,iBAAAtB,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAnB,CAAA,EAAAnU,CAAA,QAAAiU,CAAA,KAAAuB,CAAA,QAAArY,KAAA,sCAAA8W,CAAA,KAAAwB,CAAA,oBAAAtB,CAAA,QAAAnU,CAAA,WAAAjC,KAAA,EAAAsI,CAAA,EAAAoQ,IAAA,eAAA1C,CAAA,CAAA2C,MAAA,GAAAvC,CAAA,EAAAJ,CAAA,CAAAqB,GAAA,GAAApV,CAAA,UAAAsU,CAAA,GAAAP,CAAA,CAAA4C,QAAA,MAAArC,CAAA,QAAAE,CAAA,GAAAoC,mBAAA,CAAAtC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA2C,MAAA,EAAA3C,CAAA,CAAA8C,IAAA,GAAA9C,CAAA,CAAA+C,KAAA,GAAA/C,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA2C,MAAA,QAAAzC,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAgD,iBAAA,CAAAhD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA2C,MAAA,IAAA3C,CAAA,CAAAiD,MAAA,WAAAjD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAvB,CAAA,EAAAC,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAArP,IAAA,QAAAyN,CAAA,GAAAF,CAAA,CAAA0C,IAAA,GAAAhB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA3X,KAAA,EAAA8X,CAAA,CAAAT,GAAA,EAAAqB,IAAA,EAAA1C,CAAA,CAAA0C,IAAA,kBAAAZ,CAAA,CAAArP,IAAA,KAAAyN,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA2C,MAAA,YAAA3C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAAwB,oBAAAhD,CAAA,EAAAC,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAA6C,MAAA,EAAAzC,CAAA,GAAAL,CAAA,CAAAS,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAA5N,CAAA,SAAAwN,CAAA,CAAA8C,QAAA,qBAAA5C,CAAA,IAAAH,CAAA,CAAAS,QAAA,CAAA4C,MAAA,KAAApD,CAAA,CAAA6C,MAAA,aAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,EAAAuQ,mBAAA,CAAAhD,CAAA,EAAAC,CAAA,eAAAA,CAAA,CAAA6C,MAAA,kBAAA3C,CAAA,KAAAF,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,uCAAAnD,CAAA,iBAAA2B,CAAA,MAAAvB,CAAA,GAAAgB,QAAA,CAAAlB,CAAA,EAAAL,CAAA,CAAAS,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAjB,CAAA,CAAA3N,IAAA,SAAAqN,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,GAAAjB,CAAA,CAAAiB,GAAA,EAAAvB,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,MAAA1V,CAAA,GAAAmU,CAAA,CAAAiB,GAAA,SAAApV,CAAA,GAAAA,CAAA,CAAAyW,IAAA,IAAA5C,CAAA,CAAAD,CAAA,CAAAuD,UAAA,IAAAnX,CAAA,CAAAjC,KAAA,EAAA8V,CAAA,CAAAuD,IAAA,GAAAxD,CAAA,CAAAyD,OAAA,eAAAxD,CAAA,CAAA6C,MAAA,KAAA7C,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,GAAAwN,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,IAAA1V,CAAA,IAAA6T,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,sCAAArD,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,cAAA4B,aAAAjR,CAAA,QAAAuN,CAAA,KAAA2D,MAAA,EAAAlR,CAAA,YAAAA,CAAA,KAAAuN,CAAA,CAAA4D,QAAA,GAAAnR,CAAA,WAAAA,CAAA,KAAAuN,CAAA,CAAA6D,UAAA,GAAApR,CAAA,KAAAuN,CAAA,CAAA8D,QAAA,GAAArR,CAAA,WAAAsR,UAAA,CAAAC,IAAA,CAAAhE,CAAA,cAAAiE,cAAAxR,CAAA,QAAAuN,CAAA,GAAAvN,CAAA,CAAAyR,UAAA,QAAAlE,CAAA,CAAApN,IAAA,oBAAAoN,CAAA,CAAAwB,GAAA,EAAA/O,CAAA,CAAAyR,UAAA,GAAAlE,CAAA,aAAAqB,QAAA5O,CAAA,SAAAsR,UAAA,MAAAJ,MAAA,aAAAlR,CAAA,CAAApF,OAAA,CAAAqW,YAAA,cAAAS,KAAA,iBAAA9B,OAAArC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAC,CAAA,GAAAD,CAAA,CAAA5T,CAAA,OAAA6T,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAAzB,CAAA,4BAAAA,CAAA,CAAAwD,IAAA,SAAAxD,CAAA,OAAAvP,KAAA,CAAAuP,CAAA,CAAA5W,MAAA,SAAAiX,CAAA,OAAAE,CAAA,YAAAiD,KAAA,aAAAnD,CAAA,GAAAL,CAAA,CAAA5W,MAAA,OAAA+W,CAAA,CAAAsB,IAAA,CAAAzB,CAAA,EAAAK,CAAA,UAAAmD,IAAA,CAAArZ,KAAA,GAAA6V,CAAA,CAAAK,CAAA,GAAAmD,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAArZ,KAAA,GAAAsI,CAAA,EAAA+Q,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAjD,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,gBAAA+C,SAAA,CAAAha,OAAA,CAAA0W,CAAA,kCAAA+B,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAiC,CAAA,mBAAAnY,KAAA,EAAA6X,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAA7X,KAAA,EAAA4X,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAqC,WAAA,GAAAtD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAZ,CAAA,CAAAqE,mBAAA,aAAA5R,CAAA,QAAAuN,CAAA,wBAAAvN,CAAA,IAAAA,CAAA,CAAAkE,WAAA,WAAAqJ,CAAA,KAAAA,CAAA,KAAA+B,iBAAA,6BAAA/B,CAAA,CAAAoE,WAAA,IAAApE,CAAA,CAAAhI,IAAA,OAAAgI,CAAA,CAAAsE,IAAA,aAAA7R,CAAA,WAAAgE,MAAA,CAAA8N,cAAA,GAAA9N,MAAA,CAAA8N,cAAA,CAAA9R,CAAA,EAAAuP,0BAAA,KAAAvP,CAAA,CAAA+R,SAAA,GAAAxC,0BAAA,EAAAlB,MAAA,CAAArO,CAAA,EAAAmO,CAAA,yBAAAnO,CAAA,CAAAyN,SAAA,GAAAzJ,MAAA,CAAA2K,MAAA,CAAAkB,CAAA,GAAA7P,CAAA,KAAAuN,CAAA,CAAAyE,KAAA,aAAAhS,CAAA,aAAAkQ,OAAA,EAAAlQ,CAAA,OAAA8P,qBAAA,CAAAE,aAAA,CAAAvC,SAAA,GAAAY,MAAA,CAAA2B,aAAA,CAAAvC,SAAA,EAAAQ,CAAA,iCAAAV,CAAA,CAAAyC,aAAA,GAAAA,aAAA,EAAAzC,CAAA,CAAA0E,KAAA,aAAAjS,CAAA,EAAAwN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAzM,OAAA,OAAA1H,CAAA,OAAAqW,aAAA,CAAAvB,IAAA,CAAAzO,CAAA,EAAAwN,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAAE,CAAA,UAAAP,CAAA,CAAAqE,mBAAA,CAAApE,CAAA,IAAA7T,CAAA,GAAAA,CAAA,CAAAoX,IAAA,GAAAtP,IAAA,WAAAzB,CAAA,WAAAA,CAAA,CAAAoQ,IAAA,GAAApQ,CAAA,CAAAtI,KAAA,GAAAiC,CAAA,CAAAoX,IAAA,WAAAjB,qBAAA,CAAAD,CAAA,GAAAxB,MAAA,CAAAwB,CAAA,EAAA1B,CAAA,gBAAAE,MAAA,CAAAwB,CAAA,EAAAlW,CAAA,iCAAA0U,MAAA,CAAAwB,CAAA,6DAAAtC,CAAA,CAAAtJ,IAAA,aAAAjE,CAAA,QAAAuN,CAAA,GAAAvJ,MAAA,CAAAhE,CAAA,GAAAwN,CAAA,gBAAAE,CAAA,IAAAH,CAAA,EAAAC,CAAA,CAAA+D,IAAA,CAAA7D,CAAA,UAAAF,CAAA,CAAA0E,OAAA,aAAAnB,KAAA,WAAAvD,CAAA,CAAA7W,MAAA,SAAAqJ,CAAA,GAAAwN,CAAA,CAAA2E,GAAA,QAAAnS,CAAA,IAAAuN,CAAA,SAAAwD,IAAA,CAAArZ,KAAA,GAAAsI,CAAA,EAAA+Q,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAxD,CAAA,CAAAqC,MAAA,GAAAA,MAAA,EAAAhB,OAAA,CAAAnB,SAAA,KAAAvJ,WAAA,EAAA0K,OAAA,EAAA8C,KAAA,WAAAA,MAAAnE,CAAA,aAAA6E,IAAA,WAAArB,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAAzQ,CAAA,OAAAoQ,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAtB,GAAA,GAAA/O,CAAA,OAAAsR,UAAA,CAAA1W,OAAA,CAAA4W,aAAA,IAAAjE,CAAA,WAAAC,CAAA,kBAAAA,CAAA,CAAA6E,MAAA,OAAA3E,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAxP,KAAA,EAAAwP,CAAA,CAAA8E,KAAA,cAAA9E,CAAA,IAAAxN,CAAA,MAAAuS,IAAA,WAAAA,KAAA,SAAAnC,IAAA,WAAApQ,CAAA,QAAAsR,UAAA,IAAAG,UAAA,kBAAAzR,CAAA,CAAAG,IAAA,QAAAH,CAAA,CAAA+O,GAAA,cAAAyD,IAAA,KAAA9B,iBAAA,WAAAA,kBAAAnD,CAAA,aAAA6C,IAAA,QAAA7C,CAAA,MAAAC,CAAA,kBAAAiF,OAAA/E,CAAA,EAAAE,CAAA,WAAAjU,CAAA,CAAAwG,IAAA,YAAAxG,CAAA,CAAAoV,GAAA,GAAAxB,CAAA,EAAAC,CAAA,CAAAuD,IAAA,GAAArD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,KAAA4N,CAAA,aAAAA,CAAA,QAAA0D,UAAA,CAAA3a,MAAA,MAAAiX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAwD,UAAA,CAAA1D,CAAA,GAAAjU,CAAA,GAAAmU,CAAA,CAAA2D,UAAA,iBAAA3D,CAAA,CAAAoD,MAAA,SAAAuB,MAAA,aAAA3E,CAAA,CAAAoD,MAAA,SAAAkB,IAAA,QAAAnE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,eAAAK,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,qBAAAG,CAAA,IAAAE,CAAA,aAAAiE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,gBAAAiB,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,cAAAnD,CAAA,aAAAmE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,qBAAAhD,CAAA,QAAArX,KAAA,qDAAAsb,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,YAAAT,MAAA,WAAAA,OAAA3Q,CAAA,EAAAuN,CAAA,aAAAC,CAAA,QAAA8D,UAAA,CAAA3a,MAAA,MAAA6W,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA0D,UAAA,CAAA9D,CAAA,OAAAI,CAAA,CAAAsD,MAAA,SAAAkB,IAAA,IAAA1E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAAwE,IAAA,GAAAxE,CAAA,CAAAwD,UAAA,QAAAtD,CAAA,GAAAF,CAAA,aAAAE,CAAA,iBAAA9N,CAAA,mBAAAA,CAAA,KAAA8N,CAAA,CAAAoD,MAAA,IAAA3D,CAAA,IAAAA,CAAA,IAAAO,CAAA,CAAAsD,UAAA,KAAAtD,CAAA,cAAAnU,CAAA,GAAAmU,CAAA,GAAAA,CAAA,CAAA2D,UAAA,cAAA9X,CAAA,CAAAwG,IAAA,GAAAH,CAAA,EAAArG,CAAA,CAAAoV,GAAA,GAAAxB,CAAA,EAAAO,CAAA,SAAAuC,MAAA,gBAAAU,IAAA,GAAAjD,CAAA,CAAAsD,UAAA,EAAA/B,CAAA,SAAAqD,QAAA,CAAA/Y,CAAA,MAAA+Y,QAAA,WAAAA,SAAA1S,CAAA,EAAAuN,CAAA,oBAAAvN,CAAA,CAAAG,IAAA,QAAAH,CAAA,CAAA+O,GAAA,qBAAA/O,CAAA,CAAAG,IAAA,mBAAAH,CAAA,CAAAG,IAAA,QAAA4Q,IAAA,GAAA/Q,CAAA,CAAA+O,GAAA,gBAAA/O,CAAA,CAAAG,IAAA,SAAAqS,IAAA,QAAAzD,GAAA,GAAA/O,CAAA,CAAA+O,GAAA,OAAAsB,MAAA,kBAAAU,IAAA,yBAAA/Q,CAAA,CAAAG,IAAA,IAAAoN,CAAA,UAAAwD,IAAA,GAAAxD,CAAA,GAAA8B,CAAA,KAAAsD,MAAA,WAAAA,OAAA3S,CAAA,aAAAuN,CAAA,QAAA+D,UAAA,CAAA3a,MAAA,MAAA4W,CAAA,SAAAA,CAAA,QAAAC,CAAA,QAAA8D,UAAA,CAAA/D,CAAA,OAAAC,CAAA,CAAA4D,UAAA,KAAApR,CAAA,cAAA0S,QAAA,CAAAlF,CAAA,CAAAiE,UAAA,EAAAjE,CAAA,CAAA6D,QAAA,GAAAG,aAAA,CAAAhE,CAAA,GAAA6B,CAAA,OAAA3N,KAAA,WAAAkR,OAAA5S,CAAA,aAAAuN,CAAA,QAAA+D,UAAA,CAAA3a,MAAA,MAAA4W,CAAA,SAAAA,CAAA,QAAAC,CAAA,QAAA8D,UAAA,CAAA/D,CAAA,OAAAC,CAAA,CAAA0D,MAAA,KAAAlR,CAAA,QAAA0N,CAAA,GAAAF,CAAA,CAAAiE,UAAA,kBAAA/D,CAAA,CAAAvN,IAAA,QAAAyN,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAAyC,aAAA,CAAAhE,CAAA,YAAAI,CAAA,YAAA9W,KAAA,8BAAA+b,aAAA,WAAAA,cAAAtF,CAAA,EAAAC,CAAA,EAAAE,CAAA,gBAAA4C,QAAA,KAAAtC,QAAA,EAAA4B,MAAA,CAAArC,CAAA,GAAAuD,UAAA,EAAAtD,CAAA,EAAAwD,OAAA,EAAAtD,CAAA,oBAAA2C,MAAA,UAAAtB,GAAA,GAAA/O,CAAA,GAAAqP,CAAA,OAAA9B,CAAA;AAAA,SAAAuF,mBAAApF,CAAA,EAAA1N,CAAA,EAAAuN,CAAA,EAAAC,CAAA,EAAAI,CAAA,EAAAjU,CAAA,EAAAsU,CAAA,cAAAH,CAAA,GAAAJ,CAAA,CAAA/T,CAAA,EAAAsU,CAAA,GAAAE,CAAA,GAAAL,CAAA,CAAApW,KAAA,WAAAgW,CAAA,gBAAAH,CAAA,CAAAG,CAAA,KAAAI,CAAA,CAAAsC,IAAA,GAAApQ,CAAA,CAAAmO,CAAA,IAAA9M,OAAA,CAAAC,OAAA,CAAA6M,CAAA,EAAA1M,IAAA,CAAA+L,CAAA,EAAAI,CAAA;AAAA,SAAAmF,kBAAArF,CAAA,6BAAA1N,CAAA,SAAAuN,CAAA,GAAA7W,SAAA,aAAA2K,OAAA,WAAAmM,CAAA,EAAAI,CAAA,QAAAjU,CAAA,GAAA+T,CAAA,CAAAsF,KAAA,CAAAhT,CAAA,EAAAuN,CAAA,YAAA0F,MAAAvF,CAAA,IAAAoF,kBAAA,CAAAnZ,CAAA,EAAA6T,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,UAAAxF,CAAA,cAAAwF,OAAAxF,CAAA,IAAAoF,kBAAA,CAAAnZ,CAAA,EAAA6T,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,WAAAxF,CAAA,KAAAuF,KAAA;AADA;AACA;AACA;AAC2C;;AAE3C;AACA;AACA;AAC0C;AACF;AACC;AAEzC,IAAI0E,WAAW,GAAG,IAAI;;AAEtB;AACA;AACA;AACA;AACA;AACO,SAAehC,eAAeA,CAAA;EAAA,OAAAiC,gBAAA,CAAA5E,KAAA,OAAAtc,SAAA;AAAA;;AA2BrC;AACA;AACA;AACA;AACA;AAJA,SAAAkhB,iBAAA;EAAAA,gBAAA,GAAA7E,iBAAA,cAAAzF,mBAAA,GAAAuE,IAAA,CA3BO,SAAA2B,QAAA;IAAA,IAAAqE,qBAAA,EAAAC,SAAA,EAAAC,YAAA,EAAApd,YAAA,EAAAuN,eAAA;IAAA,OAAAoF,mBAAA,GAAAmB,IAAA,UAAAgF,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAtB,IAAA,GAAAsB,QAAA,CAAA3C,IAAA;QAAA;UAAA8G,qBAAA,GAC8BliB,MAAM,CAAC6T,aAAa,EAAhDsO,SAAS,GAAAD,qBAAA,CAATC,SAAS,EAAEC,YAAY,GAAAF,qBAAA,CAAZE,YAAY;UAE/BJ,WAAW,GAAGG,SAAS,CAAE,2BAA2B,EAAEjB,gDAAW,CAACC,OAAQ,CAAC;;UAE3E;UACA,IAAKa,WAAW,EAAG;YAClBI,YAAY,CAAEJ,WAAW,EAAE,OAAQ,CAAC;UACrC;;UAEA;UACA,IAAKpU,yDAAa,CAAE,gBAAiB,CAAC,EAAG;YAAA5I,YAAA,GACZ3D,sDAAW,CAAC,CAAC,EAAjCkR,eAAe,GAAAvN,YAAA,CAAfuN,eAAe;YACvB,IAAKA,eAAe,EAAG;cACtBkL,sDAAmB,CAAC,CAAC;YACtB;UACD;;UAEA;UACA1X,EAAE,CAACC,KAAK,CAAC2Y,SAAS,CAAE,iCAAiC,EAAE,kBAAkB,EAAE,UAAA3W,OAAO,EAAI;YACrF,IAAeqa,YAAY,GAAKra,OAAO,CAA/Bsa,KAAK;YAEbD,YAAY,CAACE,MAAM,CAAE,QAAQ,EAAE,OAAO,EAAErB,gDAAW,CAACE,eAAgB,CAAC;YACrEgB,YAAY,CAAEC,YAAY,EAAE,OAAQ,CAAC;UACtC,CAAE,CAAC;QAAC;QAAA;UAAA,OAAAtE,QAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAiB,OAAA;EAAA,CACJ;EAAA,OAAAoE,gBAAA,CAAA5E,KAAA,OAAAtc,SAAA;AAAA;AAOM,SAASyhB,cAAcA,CAAA,EAAG;EAChC,OAAOR,WAAW;AACnB;;;;;;;;;;;;;;;;;;ACrDA;AACA;AACA;AAC+D;;AAE/D;AACA;AACA;AAC0C;AACC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACO,SAASS,eAAeA,CAAEC,KAAK,EAAG;EACxC,IAAA1d,YAAA,GAA0B3D,sDAAW,CAAC,CAAC;IAA/B2P,aAAa,GAAAhM,YAAA,CAAbgM,aAAa;EAErB,IAAM2R,QAAQ,GACbD,KAAK,IACL7gB,uDAAc,CAAE,oBAAqB,CAAC,CAAC0B,aAAa,KAAAN,MAAA,CAAOgM,sDAAe,cAAa,CAAC,CAACpG,WAAW;EAErGmI,aAAa,CAACnI,WAAW,GAAG8Z,QAAQ;AACrC;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AAC+C;AAC4C;;AAE3F;AACA;AACA;AAC0C;AACC;AACe;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACO,SAAS/D,eAAeA,CAAE9Y,kBAAkB,EAAG;EACrD,IAAAd,YAAA,GAA6F3D,sDAAW,CAAC,CAAC;IAAlGwB,WAAW,GAAAmC,YAAA,CAAXnC,WAAW;IAAEsQ,mBAAmB,GAAAnO,YAAA,CAAnBmO,mBAAmB;IAAEpC,SAAS,GAAA/L,YAAA,CAAT+L,SAAS;IAAER,aAAa,GAAAvL,YAAA,CAAbuL,aAAa;IAAEpB,oBAAoB,GAAAnK,YAAA,CAApBmK,oBAAoB;EACxF,IAAM0T,kBAAkB,GAAG,IAAIhe,kDAAU,CAAEhC,WAAY,CAAC;;EAExD;EACA,IAAKiD,kBAAkB,EAAG;IACzBjE,uDAAc,CAAE,oBAAqB,CAAC,CAACqE,SAAS,CAACC,MAAM,CAAE3F,yDAAc,CAAC;EACzE;;EAEA;EACAmO,wDAAY,CAAEwE,mBAAoB,CAAC;;EAEnC;EACAsP,kDAAe,CAAE9e,mDAAE,CAAE,eAAe,EAAE,YAAa,CAAE,CAAC;EACtD6K,wDAAY,CAAE,CAAEuC,SAAS,EAAER,aAAa,EAAEpB,oBAAoB,CAAG,CAAC;;EAElE;EACA0T,kBAAkB,CAACtc,MAAM,CAAC,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASsY,qBAAqBA,CAAEK,cAAc,EAAG;EACvD;EACA,IAAK,CAAEA,cAAc,EAAG;IACvB0D,uDAAoB,CAAC,CAAC;IACtB;EACD;;EAEA;EACA,IAAAtc,aAAA,GAAuBjF,sDAAW,CAAC,CAAC;IAA5B6B,UAAU,GAAAoD,aAAA,CAAVpD,UAAU;EAClB,IAAK2L,qDAAS,CAAE3L,UAAW,CAAC,EAAG;IAC9B,IAAA6R,aAAA,GAAsB1T,sDAAW,CAAC,CAAC;MAA3B0P,SAAS,GAAAgE,aAAA,CAAThE,SAAS;IACjB/E,gDAAI,CAAE9I,UAAW,CAAC;IAClB+I,gDAAI,CAAE8E,SAAU,CAAC;EAClB;EAEA,IAAAkE,aAAA,GAAqG5T,sDAAW,CAAC,CAAC;IAA1GkP,aAAa,GAAA0E,aAAA,CAAb1E,aAAa;IAAEpB,oBAAoB,GAAA8F,aAAA,CAApB9F,oBAAoB;IAAEgB,yBAAyB,GAAA8E,aAAA,CAAzB9E,yBAAyB;IAAEC,wBAAwB,GAAA6E,aAAA,CAAxB7E,wBAAwB;EAEhG5B,wDAAY,CAAE,CAAE+B,aAAa,EAAEpB,oBAAoB,EAAEgB,yBAAyB,CAAG,CAAC;EAElF,IAAKI,aAAa,CAACuS,YAAY,KAAK,CAAC,EAAG;IACvCnU,wDAAY,CAAE,CAAE4B,aAAa,EAAEJ,yBAAyB,CAAG,CAAC;EAC7D;EAEA,IAAK,CAAAC,wBAAwB,aAAxBA,wBAAwB,uBAAxBA,wBAAwB,CAAE0S,YAAY,MAAK,CAAC,EAAG;IACnD9W,gDAAI,CAAEmD,oBAAqB,CAAC;EAC7B;AACD;;;;;;;;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AAC+C;AAC8C;AAC3D;AAC6B;;AAE/D;AACA;AACA;AAC0C;AACqB;AACnB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4Q,gBAAgBA,CAAA,EAAG;EAC3B,IAAA/a,YAAA,GAOI3D,sDAAW,CAAC,CAAC;IANhB2B,OAAO,GAAAgC,YAAA,CAAPhC,OAAO;IACPM,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;IACXT,WAAW,GAAAmC,YAAA,CAAXnC,WAAW;IACXyO,yBAAyB,GAAAtM,YAAA,CAAzBsM,yBAAyB;IACzBM,0BAA0B,GAAA5M,YAAA,CAA1B4M,0BAA0B;IAC1BR,0BAA0B,GAAApM,YAAA,CAA1BoM,0BAA0B;EAG3B,IAAMyR,kBAAkB,GAAG,IAAIhe,kDAAU,CAAEhC,WAAY,CAAC;EAExDS,WAAW,CAACvB,KAAK,GAAG,EAAE;;EAEtB;EACA4M,wDAAY,CAAE2C,yBAA0B,CAAC;EAEzC0R,+BAA+B,CAAEpR,0BAA2B,CAAC;;EAE7D;EACAR,0BAA0B,CAACnM,OAAO,CAAE,UAAAoC,OAAO;IAAA,OAAIA,OAAO,CAACwB,WAAW,GAAGhH,uDAAc,CAAE,qBAAsB,CAAC;EAAA,CAAC,CAAC;;EAE9G;EACAgB,WAAW,CAACqD,SAAS,CAACC,MAAM,CAAE5F,yDAAc,CAAC;EAC7CyC,OAAO,CAACkD,SAAS,CAACC,MAAM,CAAE5F,yDAAc,CAAC;EACzCsiB,kBAAkB,CAACtc,MAAM,CAAC,CAAC;;EAE3B;EACA,IAAKqH,yDAAa,CAAE,aAAc,CAAC,EAAG;IACrCmV,yDAAsB,CAAC,CAAC;EACzB;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CAAEpR,0BAA0B,EAAG;EACtE,IAAK,CAAEA,0BAA0B,EAAG;IACnC;EACD;EAEA,IAAM2P,uBAAuB,GAAG1f,uDAAc,CAAE,yBAA0B,CAAC;EAC3E,IAAK,CAAE+L,yDAAa,CAAE,+BAAgC,CAAC,EAAG;IACzDgE,0BAA0B,CAACrO,aAAa,KAAAN,MAAA,CAAOgM,sDAAe,eAAc,CAAC,CAACpG,WAAW,GAAG0Y,uBAAuB;IACnH;EACD;EAEA1T,kEAAsB,CAAE,+BAAgC,CAAC;EACzDoV,4BAA4B,CAAErR,0BAA0B,EAAE2P,uBAAwB,CAAC;AACpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0B,4BAA4BA,CAAE5b,OAAO,EAAE6b,KAAK,EAAG;EACvD/X,UAAU,CAAE,YAAM;IACjB9D,OAAO,CAACX,aAAa,CAAE,IAAIC,KAAK,CAAE,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAK,CAAE,CAAE,CAAC;EACjE,CAAC,EAAE,CAAE,CAAC;EAENuE,UAAU,CAAE,YAAM;IACjBpD,gDAAO,CAAEV,OAAO,CAAC9D,aAAa,KAAAN,MAAA,CAAOgM,sDAAe,eAAc,CAAC,EAAEiU,KAAM,CAAC;EAC7E,CAAC,EAAE,GAAI,CAAC;EAER/X,UAAU,CAAE,YAAM;IACjB,IAAA7E,aAAA,GAAmCjF,sDAAW,CAAC,CAAC;MAAxCgQ,sBAAsB,GAAA/K,aAAA,CAAtB+K,sBAAsB;IAC9BA,sBAAsB,CAACpM,OAAO,CAAE,UAAAke,IAAI,EAAI;MACvC,IAAK3C,uDAAkB,CAAC/S,QAAQ,CAAE+T,MAAM,CAAE2B,IAAI,CAAC1P,OAAO,CAACpP,EAAG,CAAE,CAAC,EAAG;QAC/D;MACD;MAEA8e,IAAI,CAACjd,SAAS,CAACE,GAAG,CAAE,0BAA2B,CAAC;;MAEhD;MACA+c,IAAI,CAAC/d,gBAAgB,CAAE,cAAc,EAAE,SAASge,kBAAkBA,CAAE9d,KAAK,EAAG;QAC3E,IAAKA,KAAK,CAAC+d,aAAa,KAAK,qBAAqB,EAAG;UACpD,IAAI,CAACnd,SAAS,CAACC,MAAM,CAAE,0BAA2B,CAAC;UACnD,IAAI,CAACmd,mBAAmB,CAAE,cAAc,EAAEF,kBAAmB,CAAC;QAC/D;MACD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,GAAI,CAAC;AACT;AAEA,iEAAerD,gBAAgB;;;;;;;;;;;;;;;;;;;;;;AChH/B;AACA;AACA;AAC8C;;AAE9C;AACA;AACA;AACoE;;AAEpE;AACA;AACA;AAC0C;AACO;;AAEjD;AACA;AACA;AACA;AACA;AACO,SAAS6C,oBAAoBA,CAAA,EAAG;EAAA,IAAAzD,mBAAA;EACtC,IAAAxZ,SAAA,GAA+B/D,iDAAQ,CAAC,CAAC;IAAjCkE,kBAAkB,GAAAH,SAAA,CAAlBG,kBAAkB;EAC1B,IAAAd,YAAA,GAA0E3D,sDAAW,CAAC,CAAC;IAA/E0P,SAAS,GAAA/L,YAAA,CAAT+L,SAAS;IAAE7N,UAAU,GAAA8B,YAAA,CAAV9B,UAAU;IAAEyB,gBAAgB,GAAAK,YAAA,CAAhBL,gBAAgB;IAAEwK,oBAAoB,GAAAnK,YAAA,CAApBmK,oBAAoB;;EAErE;EACA,IAAKmB,+CAAU,CAAC8O,MAAM,OAAAD,mBAAA,GAAKjc,UAAU,CAACuQ,OAAO,cAAA0L,mBAAA,uBAAlBA,mBAAA,CAAoBE,IAAI,GAAG;IACrD,IAAKvZ,kBAAkB,EAAG;MACzBmG,gDAAI,CAAE/I,UAAW,CAAC;MAClByL,wDAAY,CAAE,CAAEoC,SAAS,EAAE5B,oBAAoB,CAAG,CAAC;IACpD,CAAC,MAAM;MACNnD,gDAAI,CAAE9I,UAAW,CAAC;MAClBA,UAAU,CAACsgB,eAAe,CAAE,WAAY,CAAC;IAC1C;IAEA;EACD;;EAEA;EACAtgB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEkM,+CAAU,CAAC8O,MAAO,CAAC;;EAEzD;EACA,IAAA9Y,aAAA,GAA4CjF,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAA6B,aAAA,CAAf7B,eAAe;IAAEC,cAAc,GAAA4B,aAAA,CAAd5B,cAAc;EACvCD,eAAe,CAACoE,WAAW,GAAGlF,mDAAE,CAAE,oBAAoB,EAAE,YAAa,CAAC;EACtEe,cAAc,CAACmE,WAAW,GAAGlF,mDAAE,CAC9B,gEAAgE,EAChE,YACD,CAAC;EACDgB,gBAAgB,CAACkE,WAAW,GAAGlF,mDAAE,CAAE,oBAAoB,EAAE,YAAa,CAAC;;EAEvE;EACAgL,wDAAY,CAAE,CAAEoC,SAAS,EAAE5B,oBAAoB,CAAG,CAAC;EACnDX,wDAAY,CAAE,CAAEtL,UAAU,EAAEyB,gBAAgB,CAAG,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS2Q,uBAAuBA,CAAA,EAAG;EACzC,IAAAP,aAAA,GAAoD1T,sDAAW,CAAC,CAAC;IAAzD0P,SAAS,GAAAgE,aAAA,CAAThE,SAAS;IAAE7N,UAAU,GAAA6R,aAAA,CAAV7R,UAAU;IAAEyB,gBAAgB,GAAAoQ,aAAA,CAAhBpQ,gBAAgB;;EAE/C;EACAzB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEkM,+CAAU,CAACI,SAAU,CAAC;;EAE5D;EACA,IAAAuE,aAAA,GAA4C5T,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAAwQ,aAAA,CAAfxQ,eAAe;IAAEC,cAAc,GAAAuQ,aAAA,CAAdvQ,cAAc;EACvCD,eAAe,CAACoE,WAAW,GAAGlF,mDAAE,CAAE,cAAc,EAAE,YAAa,CAAC;EAChEe,cAAc,CAACmE,WAAW,GAAGlF,mDAAE,CAC9B,yDAAyD,EACzD,YACD,CAAC;;EAED;EACAgL,wDAAY,CAAE,CAAEoC,SAAS,EAAEpM,gBAAgB,CAAG,CAAC;EAC/CsH,gDAAI,CAAE/I,UAAW,CAAC;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASugB,6BAA6BA,CAAA,EAAG;EAC/C,IAAApO,aAAA,GAAoDhU,sDAAW,CAAC,CAAC;IAAzD0P,SAAS,GAAAsE,aAAA,CAATtE,SAAS;IAAE7N,UAAU,GAAAmS,aAAA,CAAVnS,UAAU;IAAEyB,gBAAgB,GAAA0Q,aAAA,CAAhB1Q,gBAAgB;;EAE/C;EACAzB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEkM,+CAAU,CAACoQ,MAAO,CAAC;;EAEzD;EACA,IAAAgD,aAAA,GAA4CriB,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAAif,aAAA,CAAfjf,eAAe;IAAEC,cAAc,GAAAgf,aAAA,CAAdhf,cAAc;EACvCD,eAAe,CAACoE,WAAW,GAAGlF,mDAAE,CAAE,kCAAkC,EAAE,YAAa,CAAC;EACpFe,cAAc,CAACmE,WAAW,GAAGlF,mDAAE,CAC9B,6FAA6F,EAC7F,YACD,CAAC;EACDgB,gBAAgB,CAACkE,WAAW,GAAGlF,mDAAE,CAAE,iBAAiB,EAAE,YAAa,CAAC;;EAEpE;EACAqI,gDAAI,CAAE+E,SAAU,CAAC;EACjBvC,wDAAY,CAAE,CAAEtL,UAAU,EAAEyB,gBAAgB,CAAG,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASgf,gCAAgCA,CAAA,EAAG;EAClD,IAAAC,aAAA,GAAoDviB,sDAAW,CAAC,CAAC;IAAzD0P,SAAS,GAAA6S,aAAA,CAAT7S,SAAS;IAAE7N,UAAU,GAAA0gB,aAAA,CAAV1gB,UAAU;IAAEyB,gBAAgB,GAAAif,aAAA,CAAhBjf,gBAAgB;;EAE/C;EACAzB,UAAU,CAACkB,YAAY,CAAE,WAAW,EAAEkM,+CAAU,CAACuB,mBAAoB,CAAC;;EAEtE;EACA,IAAAgS,aAAA,GAA4CxiB,sDAAW,CAAC,CAAC;IAAjDoD,eAAe,GAAAof,aAAA,CAAfpf,eAAe;IAAEC,cAAc,GAAAmf,aAAA,CAAdnf,cAAc;EACvC,IAAAof,UAAA,GAAgCliB,iDAAQ,CAAC,CAAC;IAAlC6f,mBAAmB,GAAAqC,UAAA,CAAnBrC,mBAAmB;EAC3Bhd,eAAe,CAACoE,WAAW,GAAGlF,mDAAE,CAAE,wBAAwB,EAAE,YAAa,CAAC;EAC1Ee,cAAc,CAACmE,WAAW,GAAG0a,wDAAO;EACnC;EACA5f,mDAAE,CAAE,2DAA2D,EAAE,YAAa,CAAC,EAC/E8d,mBACD,CAAC;;EAED;EACA9S,wDAAY,CAAE,CAAEoC,SAAS,EAAEpM,gBAAgB,CAAG,CAAC;EAC/CsH,gDAAI,CAAE/I,UAAW,CAAC;AACnB;;;;;;;;;;;;;;;;AChIA;AACA;AACA;AAC2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACO,IAAMsa,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGhT,IAAI,EAAI;EAC5C0B,yDAAa,CAAE,kBAAkB,EAAE,wBAAwB,EAAE1B,IAAK,CAAC;AACpE,CAAC;;;;;;;;;;;;;;;;;ACbD;AACA;AACA;AACwC;;AAExC;AACA;AACA;AAC0C;;AAE1C;AACA;AACA;AACA;AACA;AACO,SAASuY,sBAAsBA,CAAA,EAAG;EACxC,IAAA/d,YAAA,GAA+B3D,sDAAW,CAAC,CAAC;IAApCuP,kBAAkB,GAAA5L,YAAA,CAAlB4L,kBAAkB;EAC1B,IAAI/L,kDAAU,CAAE+L,kBAAmB,CAAC,CAACrK,MAAM,CAAC,CAAC;AAC9C;;;;;;;;;;;;;;;;;;;;;;;;;+CCjBA,qJAAAoR,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAvN,CAAA,EAAAuN,CAAA,OAAAC,CAAA,GAAAxJ,MAAA,CAAAyJ,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAA5J,MAAA,CAAA6J,cAAA,cAAA7N,CAAA,EAAAuN,CAAA,EAAAC,CAAA,IAAAxN,CAAA,CAAAuN,CAAA,IAAAC,CAAA,CAAA9V,KAAA,KAAAoW,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAApU,CAAA,GAAAmU,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,aAAA,uBAAAC,CAAA,GAAAL,CAAA,CAAAM,WAAA,8BAAAC,OAAArO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,WAAAxJ,MAAA,CAAA6J,cAAA,CAAA7N,CAAA,EAAAuN,CAAA,IAAA7V,KAAA,EAAA8V,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAxO,CAAA,CAAAuN,CAAA,WAAAc,MAAA,mBAAArO,CAAA,IAAAqO,MAAA,YAAAA,OAAArO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,WAAAxN,CAAA,CAAAuN,CAAA,IAAAC,CAAA,gBAAAiB,KAAAzO,CAAA,EAAAuN,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAI,CAAA,GAAAP,CAAA,IAAAA,CAAA,CAAAE,SAAA,YAAAiB,SAAA,GAAAnB,CAAA,GAAAmB,SAAA,EAAA/U,CAAA,GAAAqK,MAAA,CAAA2K,MAAA,CAAAb,CAAA,CAAAL,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAjU,CAAA,eAAAjC,KAAA,EAAAmX,gBAAA,CAAA7O,CAAA,EAAAwN,CAAA,EAAAS,CAAA,MAAAtU,CAAA,aAAAmV,SAAA9O,CAAA,EAAAuN,CAAA,EAAAC,CAAA,mBAAArN,IAAA,YAAA4O,GAAA,EAAA/O,CAAA,CAAAgP,IAAA,CAAAzB,CAAA,EAAAC,CAAA,cAAAxN,CAAA,aAAAG,IAAA,WAAA4O,GAAA,EAAA/O,CAAA,QAAAuN,CAAA,CAAAkB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAA7V,CAAA,qCAAA8V,CAAA,GAAAzL,MAAA,CAAA0L,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAW,CAAA,EAAAhW,CAAA,MAAA6V,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAAzJ,MAAA,CAAA2K,MAAA,CAAAa,CAAA,YAAAM,sBAAA9P,CAAA,gCAAApF,OAAA,WAAA2S,CAAA,IAAAc,MAAA,CAAArO,CAAA,EAAAuN,CAAA,YAAAvN,CAAA,gBAAA+P,OAAA,CAAAxC,CAAA,EAAAvN,CAAA,sBAAAgQ,cAAAhQ,CAAA,EAAAuN,CAAA,aAAA0C,OAAAzC,CAAA,EAAAI,CAAA,EAAAE,CAAA,EAAAnU,CAAA,QAAAsU,CAAA,GAAAa,QAAA,CAAA9O,CAAA,CAAAwN,CAAA,GAAAxN,CAAA,EAAA4N,CAAA,mBAAAK,CAAA,CAAA9N,IAAA,QAAAgO,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAAzW,KAAA,SAAAuX,CAAA,gBAAApY,OAAA,CAAAoY,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA1B,CAAA,CAAAjM,OAAA,CAAA2N,CAAA,CAAAiB,OAAA,EAAAzO,IAAA,WAAAzB,CAAA,IAAAiQ,MAAA,SAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,gBAAAqG,CAAA,IAAAiQ,MAAA,UAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,QAAA4T,CAAA,CAAAjM,OAAA,CAAA2N,CAAA,EAAAxN,IAAA,WAAAzB,CAAA,IAAAmO,CAAA,CAAAzW,KAAA,GAAAsI,CAAA,EAAA8N,CAAA,CAAAK,CAAA,gBAAAnO,CAAA,WAAAiQ,MAAA,UAAAjQ,CAAA,EAAA8N,CAAA,EAAAnU,CAAA,SAAAA,CAAA,CAAAsU,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAAlW,KAAA,WAAAA,MAAAsI,CAAA,EAAA0N,CAAA,aAAAyC,2BAAA,eAAA5C,CAAA,WAAAA,CAAA,EAAAC,CAAA,IAAAyC,MAAA,CAAAjQ,CAAA,EAAA0N,CAAA,EAAAH,CAAA,EAAAC,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA/L,IAAA,CAAA0O,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAtB,iBAAAtB,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAnB,CAAA,EAAAnU,CAAA,QAAAiU,CAAA,KAAAuB,CAAA,QAAArY,KAAA,sCAAA8W,CAAA,KAAAwB,CAAA,oBAAAtB,CAAA,QAAAnU,CAAA,WAAAjC,KAAA,EAAAsI,CAAA,EAAAoQ,IAAA,eAAA1C,CAAA,CAAA2C,MAAA,GAAAvC,CAAA,EAAAJ,CAAA,CAAAqB,GAAA,GAAApV,CAAA,UAAAsU,CAAA,GAAAP,CAAA,CAAA4C,QAAA,MAAArC,CAAA,QAAAE,CAAA,GAAAoC,mBAAA,CAAAtC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA2C,MAAA,EAAA3C,CAAA,CAAA8C,IAAA,GAAA9C,CAAA,CAAA+C,KAAA,GAAA/C,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA2C,MAAA,QAAAzC,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAgD,iBAAA,CAAAhD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA2C,MAAA,IAAA3C,CAAA,CAAAiD,MAAA,WAAAjD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAvB,CAAA,EAAAC,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAArP,IAAA,QAAAyN,CAAA,GAAAF,CAAA,CAAA0C,IAAA,GAAAhB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA3X,KAAA,EAAA8X,CAAA,CAAAT,GAAA,EAAAqB,IAAA,EAAA1C,CAAA,CAAA0C,IAAA,kBAAAZ,CAAA,CAAArP,IAAA,KAAAyN,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA2C,MAAA,YAAA3C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAAwB,oBAAAhD,CAAA,EAAAC,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAA6C,MAAA,EAAAzC,CAAA,GAAAL,CAAA,CAAAS,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAA5N,CAAA,SAAAwN,CAAA,CAAA8C,QAAA,qBAAA5C,CAAA,IAAAH,CAAA,CAAAS,QAAA,CAAA4C,MAAA,KAAApD,CAAA,CAAA6C,MAAA,aAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,EAAAuQ,mBAAA,CAAAhD,CAAA,EAAAC,CAAA,eAAAA,CAAA,CAAA6C,MAAA,kBAAA3C,CAAA,KAAAF,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,uCAAAnD,CAAA,iBAAA2B,CAAA,MAAAvB,CAAA,GAAAgB,QAAA,CAAAlB,CAAA,EAAAL,CAAA,CAAAS,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAjB,CAAA,CAAA3N,IAAA,SAAAqN,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,GAAAjB,CAAA,CAAAiB,GAAA,EAAAvB,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,MAAA1V,CAAA,GAAAmU,CAAA,CAAAiB,GAAA,SAAApV,CAAA,GAAAA,CAAA,CAAAyW,IAAA,IAAA5C,CAAA,CAAAD,CAAA,CAAAuD,UAAA,IAAAnX,CAAA,CAAAjC,KAAA,EAAA8V,CAAA,CAAAuD,IAAA,GAAAxD,CAAA,CAAAyD,OAAA,eAAAxD,CAAA,CAAA6C,MAAA,KAAA7C,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,GAAAwN,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,IAAA1V,CAAA,IAAA6T,CAAA,CAAA6C,MAAA,YAAA7C,CAAA,CAAAuB,GAAA,OAAA8B,SAAA,sCAAArD,CAAA,CAAA8C,QAAA,SAAAjB,CAAA,cAAA4B,aAAAjR,CAAA,QAAAuN,CAAA,KAAA2D,MAAA,EAAAlR,CAAA,YAAAA,CAAA,KAAAuN,CAAA,CAAA4D,QAAA,GAAAnR,CAAA,WAAAA,CAAA,KAAAuN,CAAA,CAAA6D,UAAA,GAAApR,CAAA,KAAAuN,CAAA,CAAA8D,QAAA,GAAArR,CAAA,WAAAsR,UAAA,CAAAC,IAAA,CAAAhE,CAAA,cAAAiE,cAAAxR,CAAA,QAAAuN,CAAA,GAAAvN,CAAA,CAAAyR,UAAA,QAAAlE,CAAA,CAAApN,IAAA,oBAAAoN,CAAA,CAAAwB,GAAA,EAAA/O,CAAA,CAAAyR,UAAA,GAAAlE,CAAA,aAAAqB,QAAA5O,CAAA,SAAAsR,UAAA,MAAAJ,MAAA,aAAAlR,CAAA,CAAApF,OAAA,CAAAqW,YAAA,cAAAS,KAAA,iBAAA9B,OAAArC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAC,CAAA,GAAAD,CAAA,CAAA5T,CAAA,OAAA6T,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAAzB,CAAA,4BAAAA,CAAA,CAAAwD,IAAA,SAAAxD,CAAA,OAAAvP,KAAA,CAAAuP,CAAA,CAAA5W,MAAA,SAAAiX,CAAA,OAAAE,CAAA,YAAAiD,KAAA,aAAAnD,CAAA,GAAAL,CAAA,CAAA5W,MAAA,OAAA+W,CAAA,CAAAsB,IAAA,CAAAzB,CAAA,EAAAK,CAAA,UAAAmD,IAAA,CAAArZ,KAAA,GAAA6V,CAAA,CAAAK,CAAA,GAAAmD,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAArZ,KAAA,GAAAsI,CAAA,EAAA+Q,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAjD,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,gBAAA+C,SAAA,CAAAha,OAAA,CAAA0W,CAAA,kCAAA+B,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAiC,CAAA,mBAAAnY,KAAA,EAAA6X,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAA7X,KAAA,EAAA4X,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAqC,WAAA,GAAAtD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAZ,CAAA,CAAAqE,mBAAA,aAAA5R,CAAA,QAAAuN,CAAA,wBAAAvN,CAAA,IAAAA,CAAA,CAAAkE,WAAA,WAAAqJ,CAAA,KAAAA,CAAA,KAAA+B,iBAAA,6BAAA/B,CAAA,CAAAoE,WAAA,IAAApE,CAAA,CAAAhI,IAAA,OAAAgI,CAAA,CAAAsE,IAAA,aAAA7R,CAAA,WAAAgE,MAAA,CAAA8N,cAAA,GAAA9N,MAAA,CAAA8N,cAAA,CAAA9R,CAAA,EAAAuP,0BAAA,KAAAvP,CAAA,CAAA+R,SAAA,GAAAxC,0BAAA,EAAAlB,MAAA,CAAArO,CAAA,EAAAmO,CAAA,yBAAAnO,CAAA,CAAAyN,SAAA,GAAAzJ,MAAA,CAAA2K,MAAA,CAAAkB,CAAA,GAAA7P,CAAA,KAAAuN,CAAA,CAAAyE,KAAA,aAAAhS,CAAA,aAAAkQ,OAAA,EAAAlQ,CAAA,OAAA8P,qBAAA,CAAAE,aAAA,CAAAvC,SAAA,GAAAY,MAAA,CAAA2B,aAAA,CAAAvC,SAAA,EAAAQ,CAAA,iCAAAV,CAAA,CAAAyC,aAAA,GAAAA,aAAA,EAAAzC,CAAA,CAAA0E,KAAA,aAAAjS,CAAA,EAAAwN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAzM,OAAA,OAAA1H,CAAA,OAAAqW,aAAA,CAAAvB,IAAA,CAAAzO,CAAA,EAAAwN,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAAE,CAAA,UAAAP,CAAA,CAAAqE,mBAAA,CAAApE,CAAA,IAAA7T,CAAA,GAAAA,CAAA,CAAAoX,IAAA,GAAAtP,IAAA,WAAAzB,CAAA,WAAAA,CAAA,CAAAoQ,IAAA,GAAApQ,CAAA,CAAAtI,KAAA,GAAAiC,CAAA,CAAAoX,IAAA,WAAAjB,qBAAA,CAAAD,CAAA,GAAAxB,MAAA,CAAAwB,CAAA,EAAA1B,CAAA,gBAAAE,MAAA,CAAAwB,CAAA,EAAAlW,CAAA,iCAAA0U,MAAA,CAAAwB,CAAA,6DAAAtC,CAAA,CAAAtJ,IAAA,aAAAjE,CAAA,QAAAuN,CAAA,GAAAvJ,MAAA,CAAAhE,CAAA,GAAAwN,CAAA,gBAAAE,CAAA,IAAAH,CAAA,EAAAC,CAAA,CAAA+D,IAAA,CAAA7D,CAAA,UAAAF,CAAA,CAAA0E,OAAA,aAAAnB,KAAA,WAAAvD,CAAA,CAAA7W,MAAA,SAAAqJ,CAAA,GAAAwN,CAAA,CAAA2E,GAAA,QAAAnS,CAAA,IAAAuN,CAAA,SAAAwD,IAAA,CAAArZ,KAAA,GAAAsI,CAAA,EAAA+Q,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAxD,CAAA,CAAAqC,MAAA,GAAAA,MAAA,EAAAhB,OAAA,CAAAnB,SAAA,KAAAvJ,WAAA,EAAA0K,OAAA,EAAA8C,KAAA,WAAAA,MAAAnE,CAAA,aAAA6E,IAAA,WAAArB,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAAzQ,CAAA,OAAAoQ,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAtB,GAAA,GAAA/O,CAAA,OAAAsR,UAAA,CAAA1W,OAAA,CAAA4W,aAAA,IAAAjE,CAAA,WAAAC,CAAA,kBAAAA,CAAA,CAAA6E,MAAA,OAAA3E,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAxP,KAAA,EAAAwP,CAAA,CAAA8E,KAAA,cAAA9E,CAAA,IAAAxN,CAAA,MAAAuS,IAAA,WAAAA,KAAA,SAAAnC,IAAA,WAAApQ,CAAA,QAAAsR,UAAA,IAAAG,UAAA,kBAAAzR,CAAA,CAAAG,IAAA,QAAAH,CAAA,CAAA+O,GAAA,cAAAyD,IAAA,KAAA9B,iBAAA,WAAAA,kBAAAnD,CAAA,aAAA6C,IAAA,QAAA7C,CAAA,MAAAC,CAAA,kBAAAiF,OAAA/E,CAAA,EAAAE,CAAA,WAAAjU,CAAA,CAAAwG,IAAA,YAAAxG,CAAA,CAAAoV,GAAA,GAAAxB,CAAA,EAAAC,CAAA,CAAAuD,IAAA,GAAArD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAA6C,MAAA,WAAA7C,CAAA,CAAAuB,GAAA,GAAA/O,CAAA,KAAA4N,CAAA,aAAAA,CAAA,QAAA0D,UAAA,CAAA3a,MAAA,MAAAiX,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAwD,UAAA,CAAA1D,CAAA,GAAAjU,CAAA,GAAAmU,CAAA,CAAA2D,UAAA,iBAAA3D,CAAA,CAAAoD,MAAA,SAAAuB,MAAA,aAAA3E,CAAA,CAAAoD,MAAA,SAAAkB,IAAA,QAAAnE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,eAAAK,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAlB,CAAA,qBAAAG,CAAA,IAAAE,CAAA,aAAAiE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,gBAAAiB,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,cAAAnD,CAAA,aAAAmE,IAAA,GAAAtE,CAAA,CAAAqD,QAAA,SAAAsB,MAAA,CAAA3E,CAAA,CAAAqD,QAAA,qBAAAhD,CAAA,QAAArX,KAAA,qDAAAsb,IAAA,GAAAtE,CAAA,CAAAsD,UAAA,SAAAqB,MAAA,CAAA3E,CAAA,CAAAsD,UAAA,YAAAT,MAAA,WAAAA,OAAA3Q,CAAA,EAAAuN,CAAA,aAAAC,CAAA,QAAA8D,UAAA,CAAA3a,MAAA,MAAA6W,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA0D,UAAA,CAAA9D,CAAA,OAAAI,CAAA,CAAAsD,MAAA,SAAAkB,IAAA,IAAA1E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAAwE,IAAA,GAAAxE,CAAA,CAAAwD,UAAA,QAAAtD,CAAA,GAAAF,CAAA,aAAAE,CAAA,iBAAA9N,CAAA,mBAAAA,CAAA,KAAA8N,CAAA,CAAAoD,MAAA,IAAA3D,CAAA,IAAAA,CAAA,IAAAO,CAAA,CAAAsD,UAAA,KAAAtD,CAAA,cAAAnU,CAAA,GAAAmU,CAAA,GAAAA,CAAA,CAAA2D,UAAA,cAAA9X,CAAA,CAAAwG,IAAA,GAAAH,CAAA,EAAArG,CAAA,CAAAoV,GAAA,GAAAxB,CAAA,EAAAO,CAAA,SAAAuC,MAAA,gBAAAU,IAAA,GAAAjD,CAAA,CAAAsD,UAAA,EAAA/B,CAAA,SAAAqD,QAAA,CAAA/Y,CAAA,MAAA+Y,QAAA,WAAAA,SAAA1S,CAAA,EAAAuN,CAAA,oBAAAvN,CAAA,CAAAG,IAAA,QAAAH,CAAA,CAAA+O,GAAA,qBAAA/O,CAAA,CAAAG,IAAA,mBAAAH,CAAA,CAAAG,IAAA,QAAA4Q,IAAA,GAAA/Q,CAAA,CAAA+O,GAAA,gBAAA/O,CAAA,CAAAG,IAAA,SAAAqS,IAAA,QAAAzD,GAAA,GAAA/O,CAAA,CAAA+O,GAAA,OAAAsB,MAAA,kBAAAU,IAAA,yBAAA/Q,CAAA,CAAAG,IAAA,IAAAoN,CAAA,UAAAwD,IAAA,GAAAxD,CAAA,GAAA8B,CAAA,KAAAsD,MAAA,WAAAA,OAAA3S,CAAA,aAAAuN,CAAA,QAAA+D,UAAA,CAAA3a,MAAA,MAAA4W,CAAA,SAAAA,CAAA,QAAAC,CAAA,QAAA8D,UAAA,CAAA/D,CAAA,OAAAC,CAAA,CAAA4D,UAAA,KAAApR,CAAA,cAAA0S,QAAA,CAAAlF,CAAA,CAAAiE,UAAA,EAAAjE,CAAA,CAAA6D,QAAA,GAAAG,aAAA,CAAAhE,CAAA,GAAA6B,CAAA,OAAA3N,KAAA,WAAAkR,OAAA5S,CAAA,aAAAuN,CAAA,QAAA+D,UAAA,CAAA3a,MAAA,MAAA4W,CAAA,SAAAA,CAAA,QAAAC,CAAA,QAAA8D,UAAA,CAAA/D,CAAA,OAAAC,CAAA,CAAA0D,MAAA,KAAAlR,CAAA,QAAA0N,CAAA,GAAAF,CAAA,CAAAiE,UAAA,kBAAA/D,CAAA,CAAAvN,IAAA,QAAAyN,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAAyC,aAAA,CAAAhE,CAAA,YAAAI,CAAA,YAAA9W,KAAA,8BAAA+b,aAAA,WAAAA,cAAAtF,CAAA,EAAAC,CAAA,EAAAE,CAAA,gBAAA4C,QAAA,KAAAtC,QAAA,EAAA4B,MAAA,CAAArC,CAAA,GAAAuD,UAAA,EAAAtD,CAAA,EAAAwD,OAAA,EAAAtD,CAAA,oBAAA2C,MAAA,UAAAtB,GAAA,GAAA/O,CAAA,GAAAqP,CAAA,OAAA9B,CAAA;AAAA,SAAAuF,mBAAApF,CAAA,EAAA1N,CAAA,EAAAuN,CAAA,EAAAC,CAAA,EAAAI,CAAA,EAAAjU,CAAA,EAAAsU,CAAA,cAAAH,CAAA,GAAAJ,CAAA,CAAA/T,CAAA,EAAAsU,CAAA,GAAAE,CAAA,GAAAL,CAAA,CAAApW,KAAA,WAAAgW,CAAA,gBAAAH,CAAA,CAAAG,CAAA,KAAAI,CAAA,CAAAsC,IAAA,GAAApQ,CAAA,CAAAmO,CAAA,IAAA9M,OAAA,CAAAC,OAAA,CAAA6M,CAAA,EAAA1M,IAAA,CAAA+L,CAAA,EAAAI,CAAA;AAAA,SAAAmF,kBAAArF,CAAA,6BAAA1N,CAAA,SAAAuN,CAAA,GAAA7W,SAAA,aAAA2K,OAAA,WAAAmM,CAAA,EAAAI,CAAA,QAAAjU,CAAA,GAAA+T,CAAA,CAAAsF,KAAA,CAAAhT,CAAA,EAAAuN,CAAA,YAAA0F,MAAAvF,CAAA,IAAAoF,kBAAA,CAAAnZ,CAAA,EAAA6T,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,UAAAxF,CAAA,cAAAwF,OAAAxF,CAAA,IAAAoF,kBAAA,CAAAnZ,CAAA,EAAA6T,CAAA,EAAAI,CAAA,EAAAqF,KAAA,EAAAC,MAAA,WAAAxF,CAAA,KAAAuF,KAAA;AADA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACgD;;AAEhD;AACA;AACA;AAC0C;AACkB;AACxB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACO,SAASiC,uBAAuBA,CAAE9P,QAAQ,EAAG;EACnD,IAAMsU,IAAI,GAAGtU,QAAQ,CAACgE,OAAO,CAACuQ,YAAY;EAE1C,QAASD,IAAI;IACZ,KAAKpD,0CAAK,CAACC,KAAK;IAChB,KAAKD,0CAAK,CAACE,IAAI;IACf,KAAKF,0CAAK,CAACG,QAAQ;IACnB,KAAKH,0CAAK,CAACI,KAAK;MACfkD,gBAAgB,CAAEF,IAAI,EAAEtU,QAAS,CAAC;MAClC;IACD,KAAKkR,0CAAK,CAACK,KAAK;MACfkD,qBAAqB,CAAC,CAAC;MACvB;IACD,KAAKvD,0CAAK,CAACM,IAAI;MACdxD,mBAAmB,CAAC,CAAC;MACrB;EACF;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAM0G,SAAS,GAAG,SAAZA,SAASA,CAAGC,cAAc;EAAA,oBAAAhH,iBAAA,cAAAzF,mBAAA,GAAAuE,IAAA,CAAI,SAAA2B,QAAA;IAAA,IAAAwG,YAAA;MAAArf,YAAA;MAAA+M,UAAA;MAAAuS,IAAA;MAAAC,MAAA;MAAAC,IAAA;MAAAC,KAAA,GAAA1jB,SAAA;IAAA,OAAA4W,mBAAA,GAAAmB,IAAA,UAAAgF,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAtB,IAAA,GAAAsB,QAAA,CAAA3C,IAAA;QAAA;UAC7BiJ,YAAY,GAAG7B,iDAAc,CAAC,CAAC;UAAA,IAC9B6B,YAAY;YAAAtG,QAAA,CAAA3C,IAAA;YAAA;UAAA;UAAA,OAAA2C,QAAA,CAAA/C,MAAA;QAAA;UAAAhW,YAAA,GAII3D,sDAAW,CAAC,CAAC,EAA5B0Q,UAAU,GAAA/M,YAAA,CAAV+M,UAAU;UAClBpD,wDAAY,CAAEoD,UAAW,CAAC;UAE1BsS,YAAY,CAAC9B,MAAM,CAAE,QAAQ,EAAE,OAAO,EAAErB,gDAAW,CAACC,OAAQ,CAAC;UAAC,KAAAmD,IAAA,GAAAG,KAAA,CAAAzjB,MAAA,EAThBujB,MAAM,OAAAtd,KAAA,CAAAqd,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;YAAND,MAAM,CAAAC,IAAA,IAAAC,KAAA,CAAAD,IAAA;UAAA;UAAAzG,QAAA,CAAA3C,IAAA;UAAA,OAU9CgJ,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAA/G,KAAA,SAAOkH,MAAO,CAAC;QAAA;UACnCF,YAAY,CAAC9B,MAAM,CAAE,MAAO,CAAC;QAAC;QAAA;UAAA,OAAAxE,QAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAiB,OAAA;EAAA,CAC9B;AAAA;;AAED;AACA,IAAM6G,eAAe,GAAG;EACvBC,KAAK,EAAE,CAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAE;EAC/CC,IAAI,EAAE,CAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAE;EACrCC,QAAQ,EAAE,CAAE,UAAU,EAAE,OAAO,CAAE;EACjCC,KAAK,EAAE,CAAE,OAAO;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMb,gBAAgB,GAAGE,SAAS,CAAE,UAAEJ,IAAI,EAAEtU,QAAQ,EAAM;EAChE,IAAMoQ,YAAY,GAAGpQ,QAAQ,CAAClM,aAAa,CAAE,yBAA0B,CAAC,CAACsF,WAAW,CAAC8L,IAAI,CAAC,CAAC;EAC3F,IAAArO,aAAA,GAA8FjF,sDAAW,CAAC,CAAC;IAAnGqR,YAAY,GAAApM,aAAA,CAAZoM,YAAY;IAAEC,yBAAyB,GAAArM,aAAA,CAAzBqM,yBAAyB;IAAEC,sBAAsB,GAAAtM,aAAA,CAAtBsM,sBAAsB;IAAEC,gBAAgB,GAAAvM,aAAA,CAAhBuM,gBAAgB;;EAEzF;EACAF,yBAAyB,CAAC1N,OAAO,CAAE,UAAAoC,OAAO;IAAA,OAAIA,OAAO,CAACwB,WAAW,GAAGgX,YAAY;EAAA,CAAC,CAAC;;EAElF;EACAjN,sBAAsB,CAAC3N,OAAO,CAAE,UAAA8f,IAAI,EAAI;IACvC,IAAMC,QAAQ,GAAGD,IAAI,CAACtR,OAAO,CAACsQ,IAAI;IAClC,IAAMkB,kBAAkB,GAAGP,eAAe,CAAEX,IAAI,CAAE,CAACtW,QAAQ,CAAEuX,QAAS,CAAC;;IAEvE;IACAD,IAAI,CAAC7e,SAAS,CAACiP,MAAM,CAAE,WAAW,EAAE8P,kBAAmB,CAAC;;IAExD;IACA,IAAMC,GAAG,GAAGH,IAAI,CAACxhB,aAAa,CAAE,WAAY,CAAC;IAC7C2hB,GAAG,CAAC9gB,YAAY,CAAE,YAAY,EAAE6gB,kBAAkB,GAAG,qBAAqB,GAAG,iBAAkB,CAAC;EACjG,CAAE,CAAC;;EAEH;EACA,IAAME,YAAY,GAAG1V,QAAQ,CAACgE,OAAO,CAAC2R,IAAI,OAAAniB,MAAA,CAAQwM,QAAQ,CAACgE,OAAO,CAAC2R,IAAI,IAAM,EAAE;EAC/EvS,gBAAgB,CAAChG,IAAI,GAAG4T,gDAAW,GAAG0E,YAAY;EAElDlZ,gDAAI,CAAEyG,YAAa,CAAC;AACrB,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,IAAMwR,qBAAqB,GAAGC,SAAS,CAAE,YAAM;EACrD,IAAApP,aAAA,GAA8B1T,sDAAW,CAAC,CAAC;IAAnCiR,iBAAiB,GAAAyC,aAAA,CAAjBzC,iBAAiB;EACzBrG,gDAAI,CAAEqG,iBAAkB,CAAC;AAC1B,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,IAAMmL,mBAAmB,GAAG0G,SAAS,CAAE,YAAM;EACnD,IAAAlP,aAAA,GAA4B5T,sDAAW,CAAC,CAAC;IAAjCkR,eAAe,GAAA0C,aAAA,CAAf1C,eAAe;EACvBtG,gDAAI,CAAEsG,eAAgB,CAAC;AACxB,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,IAAMuB,uBAAuB,GAAGqQ,SAAS,CAAE,YAAM;EACvD,IAAME,YAAY,GAAG7B,iDAAc,CAAC,CAAC;EACrC6B,YAAY,CAAC9B,MAAM,CAAE,QAAQ,EAAE,OAAO,EAAErB,gDAAW,CAACE,eAAgB,CAAC;EAErE,IAAA/L,aAAA,GAAgChU,sDAAW,CAAC,CAAC;IAArC4Q,mBAAmB,GAAAoD,aAAA,CAAnBpD,mBAAmB;EAC3BhG,gDAAI,CAAEgG,mBAAoB,CAAC;AAC5B,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvIH;AACA;AACA;AACoE;AACP;;AAE7D;AACA;AACA;AAC0C;AACe;AACX;AACM;AAC2E;;AAE/H;AACA;AACA;AACA;AACA;AACA;AACO,SAASwM,oBAAoBA,CAAE7Y,gBAAgB,EAAG;EACxD,IAAAZ,YAAA,GAAsH3D,sDAAW,CAAC,CAAC;IAA3H8R,mBAAmB,GAAAnO,YAAA,CAAnBmO,mBAAmB;IAAEpC,SAAS,GAAA/L,YAAA,CAAT+L,SAAS;IAAEiB,6BAA6B,GAAAhN,YAAA,CAA7BgN,6BAA6B;IAAEzB,aAAa,GAAAvL,YAAA,CAAbuL,aAAa;IAAEhB,aAAa,GAAAvK,YAAA,CAAbuK,aAAa;IAAE2B,YAAY,GAAAlM,YAAA,CAAZkM,YAAY;EAEjH,IAAKmU,qDAAc,CAAC3iB,SAAS,KAAKkD,gBAAgB,EAAG;IACpD+I,wDAAY,CAAEwE,mBAAoB,CAAC;EACpC;EAEAsP,kDAAe,CAAC,CAAC;EACjBzW,gDAAI,CAAEgG,6BAA8B,CAAC;EACrC/F,gDAAI,CAAE8E,SAAU,CAAC;EAEjB,QAASnL,gBAAgB;IACxB,KAAKyf,qDAAc,CAAC3iB,SAAS;MAC5B4iB,gBAAgB,CAAC,CAAC;MAClB;IACD,KAAKhV,+CAAU,CAACuB,mBAAmB;MAClC0T,sBAAsB,CAAC,CAAC;MACxB;IACD,KAAKjV,+CAAU,CAACI,SAAS;MACxB8U,qBAAqB,CAAC,CAAC;MACvB;IACD,KAAKlV,+CAAU,CAACoQ,MAAM;MACrB+E,mBAAmB,CAAC,CAAC;MACrB;IACD;MACC9W,wDAAY,CAAEY,aAAc,CAAC,CAAC,CAAC;MAC/Bf,wDAAY,EAAI0C,YAAY,EAAEX,aAAa,EAAAtN,MAAA,CAAAyiB,kBAAA,CAAK7D,4DAAoB,CAAEjc,gBAAgB,CAAE,EAAG,CAAC;MAC5F;EACF;AACD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS0f,gBAAgBA,CAAA,EAAG;EAClC,IAAAhf,aAAA,GAQIjF,sDAAW,CAAC,CAAC;IAPhB8R,mBAAmB,GAAA7M,aAAA,CAAnB6M,mBAAmB;IACnBlC,gBAAgB,GAAA3K,aAAA,CAAhB2K,gBAAgB;IAChB1B,aAAa,GAAAjJ,aAAA,CAAbiJ,aAAa;IACb+B,yBAAyB,GAAAhL,aAAA,CAAzBgL,yBAAyB;IACzBd,sBAAsB,GAAAlK,aAAA,CAAtBkK,sBAAsB;IACtBtN,UAAU,GAAAoD,aAAA,CAAVpD,UAAU;IACViM,oBAAoB,GAAA7I,aAAA,CAApB6I,oBAAoB;EAGrBX,wDAAY,IAAAvL,MAAA,CAAAyiB,kBAAA,CAAOvS,mBAAmB,GAAAuS,kBAAA,CAAKnW,aAAa,EAAG,CAAC;EAC5DZ,wDAAY,EAAIsC,gBAAgB,EAAAhO,MAAA,CAAAyiB,kBAAA,CAAKpU,yBAAyB,IAAEd,sBAAsB,EAAEtN,UAAU,EAAEiM,oBAAoB,EAAG,CAAC;AAC7H;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASqW,qBAAqBA,CAAA,EAAG;EACvC,IAAA7f,SAAA,GAA2B/D,iDAAQ,CAAC,CAAC;IAA7BiV,cAAc,GAAAlR,SAAA,CAAdkR,cAAc;EAEtB,IAAK,CAAC,KAAKA,cAAc,CAACI,KAAK,EAAG;IACjC3B,0DAAuB,CAAC,CAAC;IACzB;EACD;EAEA,IAAAP,aAAA,GAQI1T,sDAAW,CAAC,CAAC;IAPhBwB,WAAW,GAAAkS,aAAA,CAAXlS,WAAW;IACX0N,aAAa,GAAAwE,aAAA,CAAbxE,aAAa;IACbhB,aAAa,GAAAwF,aAAA,CAAbxF,aAAa;IACbiB,sBAAsB,GAAAuE,aAAA,CAAtBvE,sBAAsB;IACtBiB,oBAAoB,GAAAsD,aAAA,CAApBtD,oBAAoB;IACpBC,mBAAmB,GAAAqD,aAAA,CAAnBrD,mBAAmB;IACnBF,mBAAmB,GAAAuD,aAAA,CAAnBvD,mBAAmB;;EAGpB;EACA7C,wDAAY,CAAEY,aAAc,CAAC;EAE7B,IAAMoW,cAAc,GAAG,EAAE;;EAEzB;EACA,IAAMC,aAAa,GAAG/iB,WAAW,CAACY,gBAAgB,KAAAR,MAAA,CAAOV,2CAAM,mBAAkB,CAAC;EAClFojB,cAAc,CAAC/J,IAAI,CAAAyB,KAAA,CAAnBsI,cAAc,EAAAD,kBAAA,CAAUE,aAAa,CAAC,CAAC;;EAEvC;EACA,IAAK/O,cAAc,CAACtM,OAAO,GAAG,CAAC,EAAG;IACjCob,cAAc,CAAC/J,IAAI,CAAErL,aAAc,CAAC;EACrC;;EAEA;EACA,IAAKsG,cAAc,CAACK,MAAM,GAAG,CAAC,EAAG;IAChC,IAAM2O,qBAAqB,GAAG5e,KAAK,CAACyH,IAAI,CAAE8C,mBAAoB,CAAC,CAACsU,MAAM,CACrE,UAAArW,QAAQ;MAAA,OAAI,CAAE8F,0DAAkB,CAAE9F,QAAS,CAAC;IAAA,CAC7C,CAAC;IAEDd,wDAAY,CAAEkX,qBAAsB,CAAC;IACrCF,cAAc,CAAC/J,IAAI,CAAEpL,sBAAuB,CAAC;IAC7CmV,cAAc,CAAC/J,IAAI,CAAElK,mBAAoB,CAAC;IAE1C,IAAK,CAAC,KAAKmF,cAAc,CAACtM,OAAO,EAAG;MACnCyB,gDAAI,CAAEyF,oBAAqB,CAAC;IAC7B,CAAC,MAAM;MACNkU,cAAc,CAAC/J,IAAI,CAAEnK,oBAAqB,CAAC;IAC5C;EACD;;EAEA;EACAjD,wDAAY,CAAEmX,cAAe,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASF,mBAAmBA,CAAA,EAAG;EACrC,IAAA3B,UAAA,GAAwBliB,iDAAQ,CAAC,CAAC;IAA1B0f,WAAW,GAAAwC,UAAA,CAAXxC,WAAW;EAEnB,IAAK,CAAC,KAAKA,WAAW,EAAG;IACxBmC,gEAA6B,CAAC,CAAC;IAC/B;EACD;EAEA,IAAAxO,aAAA,GAOI5T,sDAAW,CAAC,CAAC;IANhB2Q,6BAA6B,GAAAiD,aAAA,CAA7BjD,6BAA6B;IAC7Bf,gBAAgB,GAAAgE,aAAA,CAAhBhE,gBAAgB;IAChBT,sBAAsB,GAAAyE,aAAA,CAAtBzE,sBAAsB;IACtBkB,mBAAmB,GAAAuD,aAAA,CAAnBvD,mBAAmB;IACnBD,oBAAoB,GAAAwD,aAAA,CAApBxD,oBAAoB;IACpBD,mBAAmB,GAAAyD,aAAA,CAAnBzD,mBAAmB;EAGpBxF,gDAAI,CAAEyF,oBAAqB,CAAC;EAC5BjD,wDAAY,EAAIwD,6BAA6B,EAAEf,gBAAgB,EAAET,sBAAsB,EAAEkB,mBAAmB,EAAAzO,MAAA,CAAAyiB,kBAAA,CAAKlU,mBAAmB,EAAG,CAAC;AACzI;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS+T,sBAAsBA,CAAA,EAAG;EACxC,IAAAQ,UAAA,GAAoCnkB,iDAAQ,CAAC,CAAC;IAAtC2f,uBAAuB,GAAAwE,UAAA,CAAvBxE,uBAAuB;EAE/B,IAAK,CAAC,KAAKA,uBAAuB,EAAG;IACpCoC,mEAAgC,CAAC,CAAC;IAClC;EACD;EAEA,IAAAtO,aAAA,GAA+EhU,sDAAW,CAAC,CAAC;IAApFkP,aAAa,GAAA8E,aAAA,CAAb9E,aAAa;IAAEhB,aAAa,GAAA8F,aAAA,CAAb9F,aAAa;IAAE8B,sBAAsB,GAAAgE,aAAA,CAAtBhE,sBAAsB;IAAEH,YAAY,GAAAmE,aAAA,CAAZnE,YAAY;EAE1EvC,wDAAY,CAAEY,aAAc,CAAC,CAAC,CAAC;EAC/Bf,wDAAY,EAAI0C,YAAY,EAAEX,aAAa,EAAAtN,MAAA,CAAAyiB,kBAAA,CAAKrU,sBAAsB,EAAG,CAAC;AAC3E;AAEA,iEAAeoN,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE/KnC;AACA;AACA;AAC2C;AACkB;;AAE7D;AACA;AACA;AACuE;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACO,IAAMuH,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAG9gB,QAAQ;EAAA,OAAImgB,qDAAc,CAAC3iB,SAAS,KAAKwC,QAAQ;AAAA;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACO,IAAMwQ,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGxQ,QAAQ;EAAA,OAAIoL,+CAAU,CAACI,SAAS,KAAKxL,QAAQ;AAAA;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACO,IAAM6O,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG7O,QAAQ;EAAA,OAAIoL,+CAAU,CAACoQ,MAAM,KAAKxb,QAAQ;AAAA;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACO,IAAMqQ,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG9F,QAAQ;EAAA,OACzCvB,yDAAa,CAAEuB,QAAS,CAAC,GAAGA,QAAQ,CAACvJ,SAAS,CAACqB,QAAQ,IAAAtE,MAAA,CAAMV,2CAAM,mBAAkB,CAAC,GAAG,KAAK;AAAA;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACO,IAAMiT,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG/F,QAAQ;EAAA,OACvCvB,yDAAa,CAAEuB,QAAS,CAAC,GAAGA,QAAQ,CAACvJ,SAAS,CAACqB,QAAQ,IAAAtE,MAAA,CAAMV,2CAAM,iBAAgB,CAAC,GAAG,KAAK;AAAA;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACO,IAAMkT,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGhG,QAAQ;EAAA,OACzCvB,yDAAa,CAAEuB,QAAS,CAAC,GAAG8Q,2DAAsB,CAAC9S,QAAQ,CAAE+T,MAAM,CAAE/R,QAAQ,CAACgE,OAAO,CAACpP,EAAG,CAAE,CAAC,GAAG,KAAK;AAAA;;AAErG;AACA;AACA;AACA;AACA;AACA;AACO,IAAMmb,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG/P,QAAQ;EAAA,OACvCvB,yDAAa,CAAEuB,QAAS,CAAC,GAAGA,QAAQ,CAACvJ,SAAS,CAACqB,QAAQ,IAAAtE,MAAA,CAAMV,2CAAM,iBAAgB,CAAC,GAAG,KAAK;AAAA;;;;;;;;;;ACrE7F;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;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/dom-ready/build-module/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/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/ui/addProgressToCardBoxes.js","webpack://formidable/./js/src/core/ui/counter.js","webpack://formidable/./js/src/core/ui/index.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/getFreeTemplatesListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showError.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.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/form-templates/index.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 * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = propertyName => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = newState => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( category => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = event => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","/**\n * Internal Dependencies\n */\nconst { span } = window.frmDom;\n\n/**\n * Adds a progress bar to each card box element to visually indicate its position in the sequence.\n *\n * @param {Element[]} cardBoxes Collection of card box elements to enhance with progress bars.\n * @return {void}\n */\nfunction addProgressToCardBoxes( cardBoxes ) {\n\tif ( ! Array.isArray( cardBoxes ) || ! cardBoxes.length ) {\n\t\tconsole.warn( 'addProgressToCardBoxes: Expected a non-empty array of cardBoxes.' );\n\t\treturn;\n\t}\n\n\tcardBoxes.forEach( ( element, index ) => {\n\t\t// Exclude cards that either don't require a progress bar or already include one\n\t\tif ( ! element.classList.contains( 'frm-has-progress-bar' ) || element.querySelector( '.frm-card-box-progress-bar' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst progressBar = span();\n\t\tconst widthPercentage = ( ( index + 1 ) / cardBoxes.length ) * 100;\n\t\tprogressBar.style.width = `${ widthPercentage }%`;\n\n\t\tconst progressBarContainer = span( {\n\t\t\tclassName: 'frm-card-box-progress-bar',\n\t\t\tchild: progressBar\n\t\t} );\n\t\telement.insertAdjacentElement( 'afterbegin', progressBarContainer );\n\t} );\n}\n\nexport default addProgressToCardBoxes;\n","/**\n * Updates the text content of an element with a counter value using smooth animation.\n *\n * @param {HTMLElement|string} element The DOM element or selector to update\n * @param {number|string} value The new counter value to set\n * @param {Object} options Animation options\n * @param {number} options.duration Duration in milliseconds (default: 3000)\n * @param {Function} options.easing Easing function (default: easeOutQuart)\n * @throws {Error} When element is not found or invalid\n * @return {HTMLElement} The updated element for method chaining\n */\nconst counter = ( element, value, options = {} ) => {\n\tconst targetElement = typeof element === 'string'\n\t\t? document.querySelector( element )\n\t\t: element;\n\n\tif ( ! targetElement || ! ( targetElement instanceof HTMLElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst targetValue = typeof value === 'number' ? value : parseInt( value, 10 );\n\tif ( isNaN( targetValue ) ) {\n\t\tconsole.warn( 'Counter: Invalid value provided, defaulting to 0' );\n\t\treturn setElementValueAndReturn( targetElement, '0' );\n\t}\n\n\t// Don't run the animation if the sent value is 0\n\tif ( targetValue === 0 ) {\n\t\treturn setElementValueAndReturn( targetElement, '0' );\n\t}\n\n\tconst { duration = 3000, easing = easeOutQuart } = options;\n\n\tconst startValue = parseInt( targetElement.textContent, 10 ) || 0;\n\tconst change = targetValue - startValue;\n\n\t// Skip animation if no change needed\n\tif ( change === 0 ) {\n\t\treturn targetElement;\n\t}\n\n\t// Cancel any existing animation\n\tif ( targetElement._counterAnimation ) {\n\t\tcancelAnimationFrame( targetElement._counterAnimation );\n\t}\n\n\t// Start animation\n\ttargetElement.classList.add( 'frm-fadein' );\n\ttargetElement._counterAnimation = requestAnimationFrame( timestamp =>\n\t\tanimateCounter( timestamp, targetElement, startValue, targetValue, duration, change, easing )\n\t);\n\n\treturn targetElement;\n};\n\n/**\n * Helper function to set element text content and return element\n *\n * @param {HTMLElement} element Target element\n * @param {string|number} value Value to set\n * @return {HTMLElement} The element for method chaining\n */\nconst setElementValueAndReturn = ( element, value ) => {\n\telement.textContent = String( value );\n\treturn element;\n};\n\n/**\n * Standalone animation function for counter (optimized to prevent redefinition)\n *\n * @param {number} timestamp Current timestamp from requestAnimationFrame\n * @param {HTMLElement} element Target element to animate\n * @param {number} startValue Starting counter value\n * @param {number} targetValue Target counter value\n * @param {number} duration Animation duration in milliseconds\n * @param {number} change Total change amount (targetValue - startValue)\n * @param {Function} easing Easing function\n * @return {void}\n */\nconst animateCounter = ( timestamp, element, startValue, targetValue, duration, change, easing ) => {\n\tif ( ! element._counterStartTime ) {\n\t\telement._counterStartTime = timestamp;\n\t\telement._counterLastTimestamp = timestamp;\n\t\telement._counterFrameDropCount = 0;\n\t\telement._counterLastValue = startValue;\n\t}\n\n\tconst frameDelta = timestamp - element._counterLastTimestamp;\n\tconst elapsed = timestamp - element._counterStartTime;\n\n\t// Performance monitoring: detect animation stuttering\n\t// If frame gaps exceed 50ms (indicating browser lag/blocking), count as frame drop\n\tif ( frameDelta > 50 && element._counterLastTimestamp !== null ) {\n\t\telement._counterFrameDropCount++;\n\n\t\t// Fallback strategy: after 3 frame drops, abandon JS animation for CSS transition\n\t\t// This prevents choppy animations when browser is under heavy load\n\t\tif ( element._counterFrameDropCount > 3 ) {\n\t\t\telement.style.transition = `opacity ${ Math.max( duration - elapsed, 100 ) }ms ease-out`;\n\t\t\telement.textContent = String( targetValue );\n\t\t\tdelete element._counterAnimation;\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Calculate eased progress and current value\n\tconst progress = Math.min( elapsed / duration, 1 );\n\tconst easedProgress = easing( progress );\n\tconst currentValue = Math.round( startValue + ( change * easedProgress ) );\n\n\t// Only update DOM if value actually changed (reduce unnecessary reflows)\n\tif ( currentValue !== element._counterLastValue ) {\n\t\telement.textContent = String( currentValue );\n\t\telement._counterLastValue = currentValue;\n\t}\n\n\telement._counterLastTimestamp = timestamp;\n\n\t// Continue animation or finish\n\tif ( progress < 1 ) {\n\t\telement._counterAnimation = requestAnimationFrame( timestamp =>\n\t\t\tanimateCounter( timestamp, element, startValue, targetValue, duration, change, easing )\n\t\t);\n\t\treturn;\n\t}\n\n\t// Ensure final value is exact\n\telement.textContent = String( targetValue );\n\n\t// Clean up all counter-related properties\n\t[ '_counterAnimation', '_counterStartTime', '_counterLastTimestamp', '_counterFrameDropCount', '_counterLastValue' ]\n\t\t.forEach( prop => delete element[ prop ] );\n\n\telement.style.removeProperty( 'transition' );\n};\n\n/**\n * Easing function for smooth animation\n *\n * @param {number} t Progress from 0 to 1\n * @return {number} Eased value\n */\nconst easeOutQuart = t => 1 - Math.pow( 1 - t, 4 );\n\nexport default counter;\n","export { default as addProgressToCardBoxes } from './addProgressToCardBoxes';\nexport { default as counter } from './counter';\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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/**\n * Removes a query parameter and updates history with replaceState.\n *\n * @param {string} paramName The query parameter to remove.\n * @return {void}\n */\nexport const removeParamFromHistory = paramName =>\n\thistory.replaceState( {}, '', removeQueryParam( 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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${ PLUGIN_URL }/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {void}\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div( {\n\t\tid: `${ PREFIX }-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t} ),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${ PREFIX }-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\t// eslint-disable-next-line no-nested-ternary\n\tconst thumbnailURL = hasLiteThumbnail\n\t\t? ( isWebp ? `${ thumbnailBaseURL }/${ key }.webp` : `${ thumbnailBaseURL }/${ key }.png` )\n\t\t: `${ thumbnailBaseURL }/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${ applicationsUrl }&triggerViewApplicationModal=1&template=${ key }`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-icon`,\n\t\t\t\tchild: img( { src: thumbnailURL } )\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan( {\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t} ),\n\t\t\t\t\ta( {\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t} )\n\t\t\t\t]\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements( {\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${ PREFIX }-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${ PREFIX }-list` );\nconst customTemplatesSection = document.getElementById( `${ PREFIX }-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.FAVORITES }\"]`\n);\nconst modal = document.getElementById( `${ PREFIX }-modal` );\n\naddElements( {\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${ PREFIX }-create-form` ),\n\tpageTitle: document.getElementById( `${ PREFIX }-page-title` ),\n\tpageTitleText: document.getElementById( `${ PREFIX }-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${ PREFIX }-page-title-divider` ),\n\tupsellBanner: document.getElementById( 'frm-renew-subscription-banner' ) ?? document.getElementById( 'frm-upgrade-banner' ),\n\textraTemplateCountElements: document.querySelectorAll( `.${ PREFIX }-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${ PREFIX }-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${ PREFIX }-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${ PREFIX }-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${ PREFIX }-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${ PREFIX }-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.AVAILABLE_TEMPLATES }\"]`\n\t),\n\tgetFreeTemplatesBannerButton: document.querySelector( '.frm-get-free-templates-banner .button' ),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${ PREFIX }-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Leave Email Modal\n\tleaveEmailModal: document.getElementById( 'frm-leave-email-modal' ),\n\tleaveEmailModalInput: document.getElementById( 'frm_leave_email' ),\n\tleaveEmailModalButton: document.getElementById( 'frm-get-code-button' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n} );\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t} );\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = event => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[ formsSelect.selectedIndex ];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${ __( 'Template', 'formidable' ) }`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = shouldDisable => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t} );\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${ PREFIX }-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${ FAVORITE_BUTTON_CLASS } use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = event => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${ PREFIX }-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${ PREFIX }-list` )\n\t\t\t? featuredTemplatesList\n\t\t\t: templatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${ templateId }\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${ PREFIX }-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise} The result of the server-side update.\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, isValidEmail, setQueryParam, hasQueryParam, removeQueryParam } from 'core/utils';\n\nconst { tag } = window.frmDom;\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { showEmailAddressError, showLeaveEmailModal } from '../ui';\n\n/**\n * Manages event handling for the \"Get Templates\" button.\n *\n * @return {void}\n */\nfunction addGetFreeTemplatesEvents() {\n\tconst { leaveEmailModalButton, getFreeTemplatesBannerButton } = getElements();\n\n\tonClickPreventDefault( leaveEmailModalButton, onGetTemplatesButtonClick );\n\tonClickPreventDefault( getFreeTemplatesBannerButton, showLeaveEmailModal );\n}\n\n/**\n * Handles the click event on the \"Get Templates\" button.\n *\n * @private\n * @return {void}\n */\nconst onGetTemplatesButtonClick = async () => {\n\tconst { leaveEmailModalInput } = getElements();\n\tconst email = leaveEmailModalInput.value.trim();\n\n\t// Check if the email field is empty\n\tif ( ! email ) {\n\t\tshowEmailAddressError( 'empty' );\n\t\treturn;\n\t}\n\n\t// Check if the email is valid\n\tif ( ! isValidEmail( email ) ) {\n\t\tshowEmailAddressError( 'invalid' );\n\t\treturn;\n\t}\n\n\t// Disable the button\n\tconst { leaveEmailModalButton } = getElements();\n\tleaveEmailModalButton.style.setProperty( 'cursor', 'not-allowed' );\n\tleaveEmailModalButton.classList.add( 'frm_loading_button' );\n\n\tconst formData = new FormData();\n\tformData.append( 'email', email );\n\n\tlet data;\n\tconst { doJsonPost } = frmDom.ajax;\n\n\ttry {\n\t\tdata = await doJsonPost( 'get_free_templates', formData );\n\t} catch ( error ) {\n\t\tconsole.error( 'An error occurred:', error );\n\t\tshowFailedToGetTemplates();\n\t\treturn;\n\t}\n\n\tif ( ! data.success ) {\n\t\tshowFailedToGetTemplates();\n\t\treturn;\n\t}\n\n\tif ( hasQueryParam( 'free-templates' ) ) {\n\t\tremoveQueryParam( 'free-templates' );\n\t}\n\n\tsetQueryParam( 'registered-for-free-templates', '1' );\n\n\twindow.location.reload();\n};\n\n/**\n * Shows a message indicating that templates could not be retrieved.\n *\n * @private\n * @return {void}\n */\nfunction showFailedToGetTemplates() {\n\tconst { leaveEmailModal } = getElements();\n\n\tleaveEmailModal.querySelector( '.inside' ).replaceChildren(\n\t\ttag( 'p', __( 'Failed to get templates, please try again later.', 'formidable' ) )\n\t);\n\n\tleaveEmailModal.querySelector( '.frm_modal_footer' ).classList.add( 'frm_hidden' );\n}\n\nexport default addGetFreeTemplatesEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport addGetFreeTemplatesEvents from './getFreeTemplatesListener';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t} );\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n\taddGetFreeTemplatesEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult( { foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true } )\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${ PREFIX }-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = event => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_IDS, FREE_TEMPLATES_IDS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState( {\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n} );\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ] ) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t} );\n\t} );\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\nexport * from './showError';\n","/**\n * External dependencies\n */\nimport { hasQueryParam } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES } from '../shared';\nimport { showLeaveEmailModal } from './';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Show the email modal if the 'free-templates' query param is present\n\tif ( hasQueryParam( 'free-templates' ) ) {\n\t\tconst { leaveEmailModal } = getElements();\n\t\tif ( leaveEmailModal ) {\n\t\t\tshowLeaveEmailModal();\n\t\t}\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', options => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t} );\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${ SKELETON_PREFIX }-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements( [ pageTitle, templatesList, applicationTemplates ] );\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n}\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements( [ templatesList, applicationTemplates, applicationTemplatesTitle ] );\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements( [ templatesList, applicationTemplatesTitle ] );\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, removeParamFromHistory } from 'core/utils';\nimport { counter } from 'core/ui';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState, FREE_TEMPLATES_IDS } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory,\n\t\textraTemplateCountElements\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\tsetupAvailableTemplatesCategory( availableTemplatesCategory );\n\n\t// Update extra templates count\n\textraTemplateCountElements.forEach( element => element.textContent = getSingleState( 'extraTemplatesCount' ) );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\n/**\n * Sets up the 'Available Templates' category with proper count display\n *\n * @param {Element} availableTemplatesCategory The Available Templates category element\n * @return {void}\n */\nfunction setupAvailableTemplatesCategory( availableTemplatesCategory ) {\n\tif ( ! availableTemplatesCategory ) {\n\t\treturn;\n\t}\n\n\tconst availableTemplatesCount = getSingleState( 'availableTemplatesCount' );\n\tif ( ! hasQueryParam( 'registered-for-free-templates' ) ) {\n\t\tavailableTemplatesCategory.querySelector( `.${ SKELETON_PREFIX }-cat-count` ).textContent = availableTemplatesCount;\n\t\treturn;\n\t}\n\n\tremoveParamFromHistory( 'registered-for-free-templates' );\n\trunAvailableTemplatesEffects( availableTemplatesCategory, availableTemplatesCount );\n}\n\n/**\n * Runs effects for the Available Templates category when the\n * 'registered-for-free-templates' query parameter is present.\n *\n * @param {Element} element The Available Templates category element\n * @param {number} count The count of available templates\n * @return {void}\n */\nfunction runAvailableTemplatesEffects( element, count ) {\n\tsetTimeout( () => {\n\t\telement.dispatchEvent( new Event( 'click', { bubbles: true } ) );\n\t}, 0 );\n\n\tsetTimeout( () => {\n\t\tcounter( element.querySelector( `.${ SKELETON_PREFIX }-cat-count` ), count );\n\t}, 150 );\n\n\tsetTimeout( () => {\n\t\tconst { availableTemplateItems } = getElements();\n\t\tavailableTemplateItems.forEach( item => {\n\t\t\tif ( FREE_TEMPLATES_IDS.includes( Number( item.dataset.id ) ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem.classList.add( 'frm-background-highlight' );\n\n\t\t\t// Remove class after animation completes to prevent restart\n\t\t\titem.addEventListener( 'animationend', function handleAnimationEnd( event ) {\n\t\t\t\tif ( event.animationName === 'backgroundHighlight' ) {\n\t\t\t\t\tthis.classList.remove( 'frm-background-highlight' );\n\t\t\t\t\tthis.removeEventListener( 'animationend', handleAnimationEnd );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}, 750 );\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements( [ pageTitle, applicationTemplates ] );\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements( [ pageTitle, applicationTemplates ] );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t// translators: %s is the number of extra templates available\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n","/**\n * External dependencies\n */\nimport { showFormError } from 'core/utils';\n\n/**\n * Displays errors related to the email address field.\n *\n * @param {string} type The categorization of the error (e.g., \"invalid\", \"empty\").\n * @return {void}\n */\nexport const showEmailAddressError = type => {\n\tshowFormError( '#frm_leave_email', '#frm_leave_email_error', type );\n};\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t\tcase PLANS.FREE:\n\t\t\tshowLeaveEmailModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async ( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[ plan ].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t} );\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${ template.dataset.slug }` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to leave an email.\n *\n * @return {void}\n */\nexport const showLeaveEmailModal = showModal( () => {\n\tconst { leaveEmailModal } = getElements();\n\tshow( leaveEmailModal );\n} );\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n} );\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems, upsellBanner } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements( [ upsellBanner, templatesList, ...categorizedTemplates[ selectedCategory ] ] );\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements( [ ...bodyContentChildren, ...templateItems ] );\n\thideElements( [ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ] );\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${ PREFIX }-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements( [ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ] );\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems, upsellBanner } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements( [ upsellBanner, templatesList, ...availableTemplateItems ] );\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_IDS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_IDS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-locked-item` ) : false;\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {HTMLElement} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n} );\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","span","addProgressToCardBoxes","cardBoxes","Array","isArray","console","warn","element","index","contains","progressBar","widthPercentage","style","width","progressBarContainer","child","insertAdjacentElement","counter","options","targetElement","HTMLElement","targetValue","parseInt","isNaN","setElementValueAndReturn","_options$duration","duration","_options$easing","easing","easeOutQuart","startValue","textContent","change","_counterAnimation","cancelAnimationFrame","requestAnimationFrame","timestamp","animateCounter","String","_counterStartTime","_counterLastTimestamp","_counterFrameDropCount","_counterLastValue","frameDelta","elapsed","transition","Math","max","progress","min","easedProgress","currentValue","round","prop","removeProperty","t","pow","default","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","_window$frmDom$util","util","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","removeParamFromHistory","replaceState","isValidEmail","email","test","isHTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","_document$getElementB2","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","getFreeTemplatesBannerButton","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","leaveEmailModal","leaveEmailModalInput","leaveEmailModalButton","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","_regeneratorRuntime","e","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","showEmailAddressError","showLeaveEmailModal","addGetFreeTemplatesEvents","onGetTemplatesButtonClick","_ref","_callee","_callee$","_context","setProperty","t0","error","showFailedToGetTemplates","success","reload","replaceChildren","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_IDS","FREE_TEMPLATES_IDS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","modalWidget","_initializeModal","_window$frmAdminBuild","initModal","offsetModalY","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","setupAvailableTemplatesCategory","runAvailableTemplatesEffects","count","item","handleAnimationEnd","animationName","removeEventListener","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","_getState2","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","domReady","jQuery"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable-settings-components.js b/js/formidable-settings-components.js index b7f5c4c3ff..64b95b378a 100644 --- a/js/formidable-settings-components.js +++ b/js/formidable-settings-components.js @@ -1 +1,2764 @@ -(()=>{"use strict";var e=window.frmGlobal,t=(e.url,e.nonce,"frm_hidden"),n="frm_disabled",i=(Promise.resolve(),window.frmDom.util),r=(i.onClickPreventDefault,i.documentOn),a=(new URL(window.location.href).searchParams,function(e){return null==e?void 0:e.classList.remove(t)});function o(e){return o="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},o(e)}function l(e,t){for(var n=0;n=r)){var a=i.querySelector("select").value,o=this.calculateValue(r,n,this.getMaxValue(a,t));i.querySelector('.frm-slider-value input[type="text"]').value=o,i.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=o,i.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(i,n,t,o+a),this.options[t].translateX=n,this.options[t].value=o+a,this.options[t].fullValue=this.updateValue(i,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 i=Math.ceil(this.sliderBulletWidth*(t/e)),r=Math.ceil((t+i)/e*n);return Math.min(r,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-base-font-size")){var i=document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]');null!==i&&(i.value="true")}if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),a=r.value.split(" "),o=e.dataset.type;switch(a[2]||(a[2]="0px"),a[3]||(a[3]="0px"),o){case"vertical":a[0]=t,a[2]=t;break;case"horizontal":a[1]=t,a[3]=t;break;case"top":a[0]=t;break;case"bottom":a[2]=t;break;case"left":a[3]=t;break;case"right":a[1]=t}var l=a.join(" ");return r.value=l,this.getSliderGroupItems(e).forEach((function(e){var i=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=i})),l}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),c=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,c[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)}))||""}}])&&h(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function g(e){return g="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},g(e)}function b(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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,a=n.querySelector("a");a&&"frm_insert_fields_tab"===a.id&&!a.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{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.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&b(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function E(e){return E="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},E(e)}function w(e,t){for(var n=0;n0))return e.style.paddingLeft="",e.style.paddingTop="",void(e.style.height="");var i=t.offsetHeight;if(Math.max(1,Math.ceil(i/36))>1){var r=function(e){if(!e.length)return 0;var t=0;return e.forEach((function(e){t+=e.offsetWidth})),(t+=4*(e.length-1))+4}(function(e){if(!e.length)return[];var t=Array.from(e),n=-1;t.forEach((function(e){var t=e.getBoundingClientRect().bottom;t>n&&(n=t)}));return t.filter((function(e){var t=e.getBoundingClientRect();return Math.abs(t.bottom-n)<=2}))}(n));e.style.height="".concat(i,"px"),e.style.paddingTop="".concat(i-36+4,"px"),e.style.paddingLeft=r?"".concat(r+8,"px"):""}else e.style.height="",e.style.paddingTop="",e.style.paddingLeft="".concat(t.offsetWidth-4,"px")}}function R(e,t,n){e&&n&&t&&(n.innerHTML="",B(e).forEach((function(e){return function(e,t){var n=V({className:A,children:[V({text:e,className:T}),V({className:O,child:W({href:"#frm_close_icon"})})]});t.appendChild(n)}(e,n)})),D(t,n),t.focus())}function M(e,t,n){if(!e||!t||!n)return!1;var i=B(t.value);return i.includes(e)?(N(n),!1):(i.push(e),X(t,i),N(n),!0)}function F(e,t,n){if(e&&t&&n){var i=e.querySelector(".".concat(T)).textContent;X(t,B(t.value).filter((function(e){return e!==i}))),e.remove(),n.focus()}}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(e=e.trim())?e.split(/\s+/).filter(Boolean):[]}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&(e.value=t.join(" "),jQuery(e).trigger("change"))}function N(e){e&&(e.value="",e.focus())}function U(e){var n=(e?document.getElementById("frm-single-settings-".concat(e)):document.body).querySelectorAll(".".concat("frm-token-input-field"));if(n.length){var i=new Set;n.forEach((function(e){i.has(e.id)||(function(e){var n=function(e){var n=e.closest(".".concat("frm-with-right-icon"));if(n.querySelector(".".concat(C)))return null;n.classList.add(x);var i=V({className:C});n.insertBefore(i,n.firstChild);var r=j("input",{className:_,id:"".concat(e.id,"-proxy-input")});return r.type="text",e.parentNode.insertBefore(r,e.nextSibling),e.classList.add(t),n}(e);if(n){var i=n.querySelector(".".concat(_)),r=n.querySelector(".".concat(C));R(e.value,i,r),function(e,t,n){jQuery(e).on("change",(function(){return R(e.value,t,n)})),t.addEventListener("keydown",(function(i){return function(e,t,n,i){var r=e.key,a=n.value.trim();switch(r){case"Backspace":a||(e.preventDefault(),F(i.querySelector(".".concat(A,":last-child")),t,n));break;case" ":case",":case"Enter":e.preventDefault(),M(a,t,n)}D(n,i)}(i,e,t,n)})),t.addEventListener("blur",(function(){return M(t.value.trim(),e,t)})),n.addEventListener("click",(function(n){return function(e,t,n){var i=e.target.closest(".".concat(O));if(i){var r=i.closest(".".concat(A));if(r){var a=r.parentElement;F(r,t,n),D(n,a)}}}(n,e,t)}))}(e,i,r)}}(e),i.add(e.id))}))}}var z,G="frm-toggle-group",H="frm_toggle_block",J="data-group-name";function Q(e){var t=e.target,n=t.closest(".".concat(G));n&&K(t,n)}function K(e,i){var r,a=(null===(r=i.closest(".".concat("frm-single-settings")))||void 0===r?void 0:r.dataset.fid)||i.dataset.fid,o=e.checked,l=e.getAttribute("data-show");l&&document.querySelectorAll(Y(l,a)).forEach((function(e){return e.classList.toggle(t,!o)}));var s=e.getAttribute("data-disable");s&&document.querySelectorAll(Y(s,a)).forEach((function(e){e.classList.toggle(n,o),e.querySelectorAll("input, select, textarea").forEach((function(e){return e.disabled=o})),e.querySelectorAll(".frm-show-inline-modal[tabindex]").forEach((function(e){return e.tabIndex=o?-1:0}))}));var c=e.getAttribute("data-enable");c&&document.querySelectorAll(Y(c,a)).forEach((function(e){return e.classList.toggle(n,!o)}));var u=e.closest(".".concat(H));Array.from(i.querySelectorAll(".".concat(H))).filter((function(e){return e!==u})).forEach((function(e){e.classList.toggle(n,o);var t=e.querySelector(".frm_toggle");t.tabIndex=o?-1:0,t.setAttribute("aria-disabled",o)}))}function Y(e,t){return e.replace(/{id}/g,t)}function Z(e){var t=e.target.closest(".frm-unit-input"),n=t.querySelector(".frm-unit-input-control"),i=t.querySelector("select").value;e.target.matches("select")&&(n.type=""===i?"text":"number");var r=n.value.trim();t.querySelector('input[type="hidden"]').value=""!==r?r+i:""}z=function(){var e,t;new c,new y,new q,null===(t=document.getElementById("frm-form-add-field"))||void 0===t||t.addEventListener("click",(function(e){var t;e.preventDefault(),null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click()})),U(),document.addEventListener("frm_added_field",(function(e){return U(e.frmField.dataset.fid)})),document.addEventListener("frm_ajax_loaded_field",(function(e){return e.frmFields.forEach((function(e){return U(e.id)}))})),wp.hooks.addAction("frmShowedFieldSettings","formidable-token-input",I),(e=document.querySelectorAll(".".concat(G))).length&&e.forEach((function(e){var t=e.querySelector("[".concat(J,"]:checked"));t&&K(t,e)})),r("change",".".concat(G," [").concat(J,"]"),Q),r("change",".frm-unit-input .frm-unit-input-control",Z),r("change",".frm-unit-input select",Z)},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",z):z())})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./js/src/admin/components/dependent-updater-component.js": +/*!****************************************************************!*\ + !*** ./js/src/admin/components/dependent-updater-component.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. + * The names of the elements that will be updated are specified using the "will-change" attribute. + * It is primarily used in components from Style/Quick Settings. + * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. + */ +var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { + /** + * Creates an instance of frmStyleDependentUpdaterComponent. + * + * @param {HTMLElement} component - The component element. + */ + function frmStyleDependentUpdaterComponent(component) { + _classCallCheck(this, frmStyleDependentUpdaterComponent); + this.component = component; + try { + var willChangeData = JSON.parse(this.component.dataset.willChange); + this.data = { + propagateInputs: this.initPropagationList(willChangeData), + changeEvent: new Event('change', { + bubbles: true + }) + }; + } catch (error) { + console.error('Error parsing JSON data from "will-change" attribute.', error); + } + } + + /** + * Initializes the list of inputs to propagate changes to. + * The selection is made by provided input's names list in "will-change" attribute. + * + * @param {string[]} inputNames - The names of the inputs to propagate changes to. + * @return {HTMLElement[]} - The list of inputs to propagate changes to. + */ + return _createClass(frmStyleDependentUpdaterComponent, [{ + key: "initPropagationList", + value: function initPropagationList(inputNames) { + var list = []; + inputNames.forEach(function (name) { + var input = document.querySelector("input[name=\"".concat(name, "\"]")); + if (null !== input) { + list.push(input); + } + }); + return list; + } + + /** + * Updates all dependent elements with the given value. + * + * @param {string} value - The value to update the dependent elements with. + */ + }, { + key: "updateAllDependentElements", + value: function updateAllDependentElements(value) { + this.data.propagateInputs.forEach(function (input) { + input.value = value; + }); + this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/components/class-tabs-navigator.js": +/*!***************************************************!*\ + !*** ./js/src/components/class-tabs-navigator.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmTabsNavigator = /*#__PURE__*/function () { + function frmTabsNavigator(wrapper) { + _classCallCheck(this, frmTabsNavigator); + if ('undefined' === typeof wrapper) { + return; + } + this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); + if (null === this.wrapper) { + return; + } + this.flexboxSlidesGap = '16px'; + this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; + this.resizeObserver = null; + this.init(); + } + return _createClass(frmTabsNavigator, [{ + key: "init", + value: function init() { + var _this = this; + if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { + return; + } + this.initDefaultSlideTrackerWidth(); + this.navs.forEach(function (nav, index) { + nav.addEventListener('click', function (event) { + return _this.onNavClick(event, index); + }); + }); + this.setupScrollbarObserver(); + // Cleanup observers when page unloads to prevent memory leaks + window.addEventListener('beforeunload', this.cleanupObservers); + } + }, { + key: "onNavClick", + value: function onNavClick(event, index) { + var navItem = event.currentTarget; + event.preventDefault(); + this.removeActiveClassnameFromNavs(); + navItem.classList.add('frm-active'); + this.initSlideTrackUnderline(navItem, index); + this.changeSlide(index); + + // Handle special case for frm_insert_fields_tab + var navLink = navItem.querySelector('a'); + if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { + var _window$frmAdminBuild, _window$frmAdminBuild2; + (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); + } + } + }, { + key: "initDefaultSlideTrackerWidth", + value: function initDefaultSlideTrackerWidth() { + if (!this.slideTrackLine.dataset.initialWidth) { + return; + } + this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); + } + }, { + key: "initSlideTrackUnderline", + value: function initSlideTrackUnderline(nav, index) { + this.slideTrackLine.classList.remove('frm-first', 'frm-last'); + var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { + return nav.classList.contains('frm-active'); + }); + this.positionUnderlineIndicator(activeNav); + } + + /** + * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. + * Automatically repositions the underline indicator when layout changes occur. + */ + }, { + key: "setupScrollbarObserver", + value: function setupScrollbarObserver() { + var _this2 = this; + var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); + if (!scrollbarWrapper || !('ResizeObserver' in window)) { + return; + } + this.resizeObserver = new ResizeObserver(function () { + var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); + if (activeNav) { + _this2.positionUnderlineIndicator(activeNav); + } + }); + this.resizeObserver.observe(scrollbarWrapper); + } + + /** + * Cleans up observers to prevent memory leaks. + */ + }, { + key: "cleanupObservers", + value: function cleanupObservers() { + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + } + } + + /** + * Positions the underline indicator based on the active navigation element. + * + * @param {HTMLElement} activeNav The active navigation element to position the underline under + */ + }, { + key: "positionUnderlineIndicator", + value: function positionUnderlineIndicator(activeNav) { + var _this3 = this; + requestAnimationFrame(function () { + var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; + _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); + _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; + }); + } + }, { + key: "changeSlide", + value: function changeSlide(index) { + this.removeActiveClassnameFromSlides(); + var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); + if ('0px' !== translate) { + this.slideTrack.style.transform = "translateX(".concat(translate, ")"); + } else { + this.slideTrack.style.removeProperty('transform'); + } + if (index in this.slides) { + this.slides[index].classList.add('frm-active'); + } + } + }, { + key: "removeActiveClassnameFromSlides", + value: function removeActiveClassnameFromSlides() { + this.slides.forEach(function (slide) { + return slide.classList.remove('frm-active'); + }); + } + }, { + key: "removeActiveClassnameFromNavs", + value: function removeActiveClassnameFromNavs() { + this.navs.forEach(function (nav) { + return nav.classList.remove('frm-active'); + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/** + * Removes a query parameter and updates history with replaceState. + * + * @param {string} paramName The query parameter to remove. + * @return {void} + */ +var removeParamFromHistory = function removeParamFromHistory(paramName) { + return history.replaceState({}, '', removeQueryParam(paramName)); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./js/src/settings-components/components/index.js": +/*!********************************************************!*\ + !*** ./js/src/settings-components/components/index.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmRadioComponent: () => (/* reexport safe */ _radio_component__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ frmSliderComponent: () => (/* reexport safe */ _slider_component__WEBPACK_IMPORTED_MODULE_1__["default"]), +/* harmony export */ frmTabsComponent: () => (/* reexport safe */ _tabs_component__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group__WEBPACK_IMPORTED_MODULE_4__.initToggleGroupComponents), +/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_3__.initTokenInputFields), +/* harmony export */ setupUnitInputHandlers: () => (/* reexport safe */ _unit_input__WEBPACK_IMPORTED_MODULE_5__.setupUnitInputHandlers) +/* harmony export */ }); +/* harmony import */ var _radio_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-component */ "./js/src/settings-components/components/radio-component.js"); +/* harmony import */ var _slider_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slider-component */ "./js/src/settings-components/components/slider-component.js"); +/* harmony import */ var _tabs_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabs-component */ "./js/src/settings-components/components/tabs-component.js"); +/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/index.js"); +/* harmony import */ var _toggle_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toggle-group */ "./js/src/settings-components/components/toggle-group/index.js"); +/* harmony import */ var _unit_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./unit-input */ "./js/src/settings-components/components/unit-input.js"); + + + + + + + +/***/ }), + +/***/ "./js/src/settings-components/components/radio-component.js": +/*!******************************************************************!*\ + !*** ./js/src/settings-components/components/radio-component.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmRadioComponent) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Internal dependencies + */ + + + +/** + * Represents a radio component. + * + * @class + */ +var frmRadioComponent = /*#__PURE__*/function () { + function frmRadioComponent() { + var _this = this; + _classCallCheck(this, frmRadioComponent); + this.radioElements = document.querySelectorAll('.frm-style-component.frm-radio-component'); + this.observers = new Map(); + if (0 < this.radioElements.length) { + this.init(); + } + + /** + * Handles the addition of new fields. + * + * @param {Event} event The frm_added_field event. + * @param {HTMLElement} event.frmField The added field object being destructured from the event. + */ + document.addEventListener('frm_added_field', function (_ref) { + var frmField = _ref.frmField; + return _this.discoverAndInitFieldRadios(frmField.dataset.fid); + }); + + /** + * Handles the addition of new fields via AJAX. + * + * @param {Event} event The frm_ajax_loaded_field event. + * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. + */ + document.addEventListener('frm_ajax_loaded_field', function (_ref2) { + var frmFields = _ref2.frmFields; + return frmFields.forEach(function (field) { + return _this.discoverAndInitFieldRadios(field.id); + }); + }); + + // Cleanup observers when page unloads to prevent memory leaks + window.addEventListener('beforeunload', function () { + return _this.cleanupObservers(); + }); + } + + /** + * Initializes the radio component. + */ + return _createClass(frmRadioComponent, [{ + key: "init", + value: function init() { + this.initRadio(); + this.initTrackerOnAccordionClick(); + } + + /** + * Discovers and initializes radio components for a specific field. + * + * @param {string|number} fieldId The unique identifier of the field whose radio components should be discovered and initialized + * @throws {Error} Throws an error if the field container is not found in the DOM + */ + }, { + key: "discoverAndInitFieldRadios", + value: function discoverAndInitFieldRadios(fieldId) { + var fieldContainer = document.getElementById("frm-single-settings-".concat(fieldId)); + if (!fieldContainer) { + throw new Error("Field container not found for field ID: ".concat(fieldId)); + } + this.radioElements = fieldContainer.querySelectorAll('.frm-style-component.frm-radio-component'); + this.initRadio(); + } + + /** + * Initializes the radio component. + */ + }, { + key: "initRadio", + value: function initRadio() { + var _this2 = this; + this.radioElements.forEach(function (element) { + _this2.initOnRadioChange(element); + _this2.initVisibilityObserver(element); + }); + } + }, { + key: "initTrackerOnAccordionClick", + value: function initTrackerOnAccordionClick() { + var _this3 = this; + var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); + accordionitems.forEach(function (accordionitem) { + accordionitem.addEventListener('click', function (event) { + var wrapper = event.target.closest('.accordion-section'); + var radioButtons = wrapper.querySelectorAll('.frm-style-component.frm-radio-component input[type="radio"]:checked'); + radioButtons.forEach(function (radio) { + setTimeout(function () { + return _this3.onRadioChange(radio); + }, 200); + }); + }); + }); + } + + /** + * Initializes the onRadioChange event for the given wrapper. + * + * @param {HTMLElement} radioElement - The radio element. + */ + }, { + key: "initOnRadioChange", + value: function initOnRadioChange(radioElement) { + var _this4 = this; + radioElement.querySelectorAll('input[type="radio"]').forEach(function (radio) { + if (radio.checked) { + _this4.onRadioChange(radio); + } + radio.addEventListener('change', function (event) { + _this4.onRadioChange(event.target); + }); + }); + } + + /** + * Handles the onRadioChange event for the given wrapper. + * + * @param {HTMLElement} target - The active radio button. + */ + }, { + key: "onRadioChange", + value: function onRadioChange(target) { + var wrapper = target.closest('.frm-style-component.frm-radio-component'); + var activeItem = wrapper.querySelector('input[type="radio"]:checked + label'); + if (null === activeItem) { + return; + } + this.moveTracker(activeItem, wrapper); + this.hideExtraElements(target); + this.maybeShowExtraElements(target); + } + + /** + * Display additional elements related to the selected radio option. + * + * @param {HTMLElement} radio - The radio button element. + */ + }, { + key: "maybeShowExtraElements", + value: function maybeShowExtraElements(radio) { + var elementAttr = radio.getAttribute('data-frm-show-element'); + if (null === elementAttr) { + return; + } + var elements = document.querySelectorAll("div[data-frm-element=\"".concat(elementAttr, "\"]")); + if (0 === elements.length) { + return; + } + elements.forEach(function (element) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(element); + element.classList.add('frm-element-is-visible'); + }); + } + + /** + * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown. + * + * @param {HTMLElement} element The radio component element + * @return {void} + */ + }, { + key: "initVisibilityObserver", + value: function initVisibilityObserver(element) { + var _this5 = this; + if (this.observers.has(element)) { + this.observers.get(element).disconnect(); + } + var observer = new MutationObserver(function () { + // Check if element is now visible + if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.isVisible)(element)) { + var radio = element.querySelector('input[type="radio"]:checked'); + if (radio) { + _this5.onRadioChange(radio); + } + } + }); + this.observers.set(element, observer); + + // Observe for attribute changes on the component and its ancestors + observer.observe(element, { + attributes: true, + attributeFilter: ['class', 'style'] + }); + + // Also observe parent elements up to a reasonable depth + var parent = element.parentElement; + for (var i = 0; i < 7 && parent; i++) { + observer.observe(parent, { + attributes: true, + attributeFilter: ['class', 'style'] + }); + parent = parent.parentElement; + } + } + + /** + * Cleanup all observers to prevent memory leaks. + */ + }, { + key: "cleanupObservers", + value: function cleanupObservers() { + this.observers.forEach(function (observer) { + observer.disconnect(); + }); + this.observers.clear(); + } + + /** + * Hide the possible opepend extra elements. + */ + }, { + key: "hideExtraElements", + value: function hideExtraElements() { + var elements = document.querySelectorAll('.frm-element-is-visible'); + if (0 === elements.length) { + return; + } + elements.forEach(function (element) { + element.classList.remove('frm-element-is-visible'); + element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(element); + }); + } + + /** + * Moves the tracker to the active item. + * + * @param {HTMLElement} activeItem - The active item element. + * @param {HTMLElement} wrapper - The wrapper element. + */ + }, { + key: "moveTracker", + value: function moveTracker(activeItem, wrapper) { + var offset = activeItem.offsetLeft; + var width = activeItem.offsetWidth; + var tracker = wrapper.querySelector('.frm-radio-active-tracker'); + tracker.style.left = 0; + tracker.style.width = "".concat(width, "px"); + tracker.style.transform = "translateX(".concat(offset, "px)"); + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/settings-components/components/slider-component.js": +/*!*******************************************************************!*\ + !*** ./js/src/settings-components/components/slider-component.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmSliderComponent) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../admin/components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Internal dependencies + */ + + + +/** + * Represents a slider component. + * + * @class frmSliderComponent + */ +var frmSliderComponent = /*#__PURE__*/function () { + function frmSliderComponent() { + var _this = this; + _classCallCheck(this, frmSliderComponent); + this.sliderElements = document.querySelectorAll('.frm-slider-component'); + if (0 === this.sliderElements.length) { + return; + } + + // The slider bullet point width in pixels. Used in value calculation on drag event. + this.sliderBulletWidth = 16; + this.sliderMarginRight = 5; + this.eventsChange = []; + var debounce = frmDom.util.debounce; + this.valueChangeDebouncer = debounce(function (index) { + return _this.triggerValueChange(index); + }, 25); + this.initOptions(); + this.init(); + } + + /** + * Initializes the options for the slider component. + */ + return _createClass(frmSliderComponent, [{ + key: "initOptions", + value: function initOptions() { + var _this2 = this; + this.options = []; + this.sliderElements.forEach(function (element, index) { + var parentWrapper = element.classList.contains('frm-has-multiple-values') ? element.closest('.frm-style-component') : element; + _this2.options.push({ + dragging: false, + startX: 0, + translateX: 0, + maxValue: parseInt(element.dataset.maxValue, 10), + element: element, + index: index, + value: 0, + dependentUpdater: parentWrapper.classList.contains('frm-style-dependent-updater-component') ? new _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](parentWrapper) : null + }); + }); + } + + /** + * Initializes the slider component. + */ + }, { + key: "init", + value: function init() { + this.initSlidersPosition(); + this.initDraggable(); + } + + /** + * Initializes the draggable functionality for the slider component. + */ + }, { + key: "initDraggable", + value: function initDraggable() { + var _this3 = this; + this.sliderElements.forEach(function (element, index) { + _this3.eventsChange[index] = new Event('change', { + bubbles: true, + cancelable: true + }); + var draggableBullet = element.querySelector('.frm-slider-bullet'); + var valueInput = element.querySelector('.frm-slider-value input[type="text"]'); + valueInput.addEventListener('change', function (event) { + var unit = element.querySelector('select').value; + if (_this3.getMaxValue(unit, index) < parseInt(event.target.value, 10)) { + return; + } + _this3.initSliderWidth(element); + _this3.options[index].fullValue = _this3.updateValue(element, valueInput.value + unit); + _this3.triggerValueChange(index); + }); + _this3.expandSliderGroup(element); + _this3.updateOnUnitChange(element, valueInput, index); + _this3.changeSliderPositionOnClick(element, valueInput, index); + draggableBullet.addEventListener('mousedown', function (event) { + event.preventDefault(); + event.stopPropagation(); + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.enableDragging(event, index); + }); + draggableBullet.addEventListener('mousemove', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.moveTracker(event, index); + }); + draggableBullet.addEventListener('mouseup', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.disableDragging(index, event); + }); + draggableBullet.addEventListener('mouseleave', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + _this3.disableDragging(index, event); + }); + }); + } + }, { + key: "expandSliderGroup", + value: function expandSliderGroup(element) { + var svgIcon = element.querySelector('.frmsvg'); + if ('undefined' === typeof element.dataset.displaySliders || null === svgIcon) { + return; + } + var sliderGroupItems = this.getSliderGroupItems(element); + svgIcon.addEventListener('click', function () { + sliderGroupItems.forEach(function (item) { + item.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); + }); + }); + } + }, { + key: "updateOnUnitChange", + value: function updateOnUnitChange(element, valueInput, index) { + var _this4 = this; + element.querySelector('select').addEventListener('change', function (event) { + var unit = event.target.value.toLowerCase(); + if ('' === unit) { + element.classList.add('frm-disabled', 'frm-empty'); + return; + } + if ('auto' === unit) { + element.classList.add('frm-disabled'); + _this4.updateValue(element, 'auto'); + _this4.triggerValueChange(index); + return; + } + element.classList.remove('frm-disabled', 'frm-empty'); + _this4.options[index].fullValue = valueInput.value + unit; + _this4.updateValue(element, _this4.options[index].fullValue); + _this4.triggerValueChange(index); + }); + } + }, { + key: "changeSliderPositionOnClick", + value: function changeSliderPositionOnClick(element, valueInput, index) { + var _this5 = this; + var frmSlider = element.querySelector('.frm-slider'); + var customEvent = new Event('change', { + bubbles: true, + cancelable: true + }); + frmSlider.addEventListener('click', function (event) { + if (element.classList.contains('frm-disabled')) { + return; + } + event.preventDefault(); + event.stopPropagation(); + if (!event.target.classList.contains('frm-slider') && !event.target.classList.contains('frm-slider-active-track')) { + return; + } + var sliderWidth = frmSlider.offsetWidth - _this5.sliderBulletWidth; + var sliderRect = frmSlider.getBoundingClientRect(); + var deltaX = event.clientX - sliderRect.left - _this5.sliderBulletWidth; + var unit = element.querySelector('select').value; + var value = _this5.calculateValue(sliderWidth, deltaX, _this5.getMaxValue(unit, index)); + if (value < 0) { + return; + } + _this5.options[index].fullValue = _this5.updateValue(element, value + unit); + _this5.initChildSlidersWidth(element, deltaX, index, value + unit); + valueInput.value = value; + valueInput.dispatchEvent(customEvent); + }); + } + + /** + * Retrieves an array of slider group items based on the provided element. + * + * @param {HTMLElement} element - The element to retrieve slider group items from. + * @return {NodeList} - An array-like object containing the slider group items. + */ + }, { + key: "getSliderGroupItems", + value: function getSliderGroupItems(element) { + if ('undefined' === typeof element.dataset.displaySliders) { + return []; + } + var slidersGroup = element.dataset.displaySliders.split(','); + var query = slidersGroup.map(function (item) { + return ".frm-slider-component[data-type=\"".concat(item, "\"]"); + }).join(', '); + return element.closest('.frm-style-component').querySelectorAll(query); + } + + /** + * Initializes the position of sliders when a accordion section is opened. + */ + }, { + key: "initSlidersPosition", + value: function initSlidersPosition() { + var _this6 = this; + var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); + var quickSettings = document.querySelector('.frm-quick-settings'); + var 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', function (event) { + var imageBackgroundOpacitySlider = event.closest('.accordion-section-content').querySelector('#frm-bg-image-opacity-slider'); + _this6.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(function (item) { + item.addEventListener('click', function (event) { + _this6.initSlidersWidth(event.target.closest('.accordion-section')); + }); + }); + this.initSliderPositionOnFieldShapeChange(); + } + + /** + * Initializes the width of "Corner Radius" slider that is dynamically is displayed on "Field Shape" option change from "Quick Settings". + * + * @return {void} + */ + }, { + key: "initSliderPositionOnFieldShapeChange", + value: function initSliderPositionOnFieldShapeChange() { + var _this7 = this; + var fieldShapeType = document.querySelector('.frm-style-component.frm-field-shape'); + if (null === fieldShapeType) { + return; + } + var radioButtons = fieldShapeType.querySelectorAll('input[type="radio"]'); + radioButtons.forEach(function (radio) { + radio.addEventListener('change', function (event) { + if (event.target.checked && 'rounded-corner' === event.target.value) { + var slider = document.querySelector('div[data-frm-element="field-shape-corner-radius"] .frm-slider-component'); + _this7.initSliderWidth(slider); + } + }); + }); + } + + /** + * Initializes the width of sliders within a given section. + * + * @param {HTMLElement} section - The section containing the sliders. + * @return {void} + */ + }, { + key: "initSlidersWidth", + value: function initSlidersWidth(section) { + var _this8 = this; + var sliders = section.querySelectorAll('.frm-slider-component'); + sliders.forEach(function (slider) { + setTimeout(function () { + _this8.initSliderWidth(slider); + }, 100); + }); + } + + /** + * Initializes the width of a slider. + * + * @param {HTMLElement} slider - The slider element. + * @return {void} + */ + }, { + key: "initSliderWidth", + value: function initSliderWidth(slider) { + if (slider.classList.contains('frm-disabled')) { + return; + } + var index = this.getSliderIndex(slider); + var sliderWidth = slider.querySelector('.frm-slider').offsetWidth - this.sliderBulletWidth; + var value = parseInt(slider.querySelector('.frm-slider-value input[type="text"]').value, 10); + var unit = slider.querySelector('select').value; + var deltaX = '%' === unit ? Math.round(sliderWidth * value / 100) : Math.ceil(value / this.options[index].maxValue * sliderWidth); + slider.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); + this.options[index].translateX = deltaX; + this.options[index].value = value + unit; + } + + /** + * Initializes the width of child sliders. + * + * @param {HTMLElement} slider - The parent slider element. + * @param {number} width - The width to set for the child sliders. + * @param {number} index - The starting index for the child sliders. + * @param {number} value - The value to set for the child sliders. + */ + }, { + key: "initChildSlidersWidth", + value: function initChildSlidersWidth(slider, width, index, value) { + var _this9 = this; + if (!slider.classList.contains('frm-has-independent-fields') && !slider.classList.contains('frm-has-multiple-values')) { + return; + } + var childSliders = slider.classList.contains('frm-has-independent-fields') ? slider.querySelectorAll('.frm-independent-slider-field') : this.getSliderGroupItems(slider); + childSliders.forEach(function (item, childIndex) { + item.querySelector('.frm-slider-active-track').style.width = "".concat(width, "px"); + _this9.options[index + childIndex + 1].translateX = width; + _this9.options[index + childIndex + 1].value = value; + }); + } + + /** + * Returns the index of the specified slider element. + * + * @param {HTMLElement} slider - The slider element. + * @return {number} The index of the slider element. + */ + }, { + key: "getSliderIndex", + value: function getSliderIndex(slider) { + return this.options.filter(function (option) { + return option.element === slider; + })[0].index; + } + + /** + * Handles the movement of the slider tracker. + * + * @param {Event} event - The event object representing the mouse movement. + * @param {number} index - The index of the slider element. + * @return {void} + */ + }, { + key: "moveTracker", + value: function moveTracker(event, index) { + if (!this.options[index].dragging) { + return; + } + var deltaX = event.clientX - this.options[index].startX; + var element = this.sliderElements[index]; + var sliderWidth = element.querySelector('.frm-slider').offsetWidth; + + // Ensure deltaX does not go below 0 + deltaX = Math.max(deltaX, 0); + if (deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth) { + return; + } + var unit = element.querySelector('select').value; + var value = this.calculateValue(sliderWidth, deltaX, this.getMaxValue(unit, index)); + element.querySelector('.frm-slider-value input[type="text"]').value = value; + element.querySelector('.frm-slider-bullet .frm-slider-value-label').innerText = value; + element.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); + this.initChildSlidersWidth(element, deltaX, index, value + unit); + this.options[index].translateX = deltaX; + this.options[index].value = value + unit; + this.options[index].fullValue = this.updateValue(element, this.options[index].value); + this.valueChangeDebouncer(index); + } + + /** + * Get the maximum value based on the unit and index. + * + * @param {string} unit - The unit of measurement. + * @param {number} index - The index of the option. + * @return {number} The maximum value. + */ + }, { + key: "getMaxValue", + value: function getMaxValue(unit, index) { + return '%' === unit ? 100 : this.options[index].maxValue; + } + + /** + * Enables dragging for the slider component. + * + * @param {Event} event - The event object. + * @param {number} index - The index of the option being dragged. + */ + }, { + key: "enableDragging", + value: function enableDragging(event, index) { + event.target.classList.add('frm-dragging'); + this.options[index].dragging = true; + this.options[index].startX = event.clientX - this.options[index].translateX; + } + + /** + * Disables dragging for a specific index. + * + * @param {number} index - The index of the option to disable dragging for. + * @param {Event} event - The event object triggered by the dragging action. + */ + }, { + key: "disableDragging", + value: function disableDragging(index, event) { + if (false === this.options[index].dragging) { + return; + } + event.target.classList.remove('frm-dragging'); + this.options[index].dragging = false; + this.triggerValueChange(index); + } + + /** + * Triggers a value change for the specified index. + * + * @param {number} index - The index of the value to be changed. + */ + }, { + key: "triggerValueChange", + value: function triggerValueChange(index) { + var _this10 = this; + if (null !== this.options[index].dependentUpdater) { + this.options[index].dependentUpdater.updateAllDependentElements(this.options[index].fullValue); + return; + } + var 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"]'); + if (input instanceof NodeList) { + input.forEach(function (item) { + item.dispatchEvent(_this10.eventsChange[index]); + }); + return; + } + input.dispatchEvent(this.eventsChange[index]); + } + + /** + * Calculates the value based on the width, deltaX, and maxValue. + * + * @param {number} width - The width of the slider. + * @param {number} deltaX - The change in x-coordinate. + * @param {number} maxValue - The maximum value. + * @return {number} - The calculated value. + */ + }, { + key: "calculateValue", + value: function calculateValue(width, deltaX, maxValue) { + // Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet. + // 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. + var delta = Math.ceil(this.sliderBulletWidth * (deltaX / width)); + var value = Math.ceil((deltaX + delta) / width * maxValue); + return Math.min(value, maxValue); + } + + /** + * Updates the value of a slider component. + * + * @param {HTMLElement} element - The slider component element. + * @param {string} value - The new value to be set. + * @return {string} - The updated value. + */ + }, { + key: "updateValue", + value: function updateValue(element, value) { + var _this11 = this; + // When the slider component is used for "Base Font Size", we need to update a hidden input field when change happens to indicate that the "Base Font Size" has been adjusted. + // Used to avoid conflicts with other possible font sizes adjustemnts in "Advanced Settings" when moving from "Quick Settings" when "Base Font Size" is not changed. + if (element.classList.contains('frm-base-font-size')) { + var userBaseFontSizeInput = document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]'); + if (null !== userBaseFontSizeInput) { + userBaseFontSizeInput.value = 'true'; + } + } + if (element.classList.contains('frm-has-multiple-values')) { + var input = element.closest('.frm-style-component').querySelector('input[type="hidden"]'); + var inputValue = input.value.split(' '); + var type = element.dataset.type; + if (!inputValue[2]) { + inputValue[2] = '0px'; + } + if (!inputValue[3]) { + inputValue[3] = '0px'; + } + switch (type) { + case 'vertical': + inputValue[0] = value; + inputValue[2] = value; + break; + case 'horizontal': + inputValue[1] = value; + inputValue[3] = value; + break; + case 'top': + inputValue[0] = value; + break; + case 'bottom': + inputValue[2] = value; + break; + case 'left': + inputValue[3] = value; + break; + case 'right': + inputValue[1] = value; + break; + } + var newValue = inputValue.join(' '); + input.value = newValue; + var childSlidersGroup = this.getSliderGroupItems(element); + childSlidersGroup.forEach(function (slider) { + var unitMeasure = _this11.getUnitMeasureFromValue(value); + slider.querySelector('.frm-slider-value input[type="text"]').value = parseInt(value, 10); + slider.querySelector('select').value = unitMeasure; + }); + return newValue; + } + if (element.classList.contains('frm-has-independent-fields')) { + var inputValues = element.querySelectorAll('.frm-slider-value input[type="hidden"]'); + var visibleValues = element.querySelectorAll('.frm-slider-value input[type="text"]'); + inputValues.forEach(function (input, index) { + input.value = value; + visibleValues[index + 1].value = parseInt(value, 10); + }); + return value; + } + element.querySelector('.frm-slider-value input[type="hidden"]').value = value; + return value; + } + + /** + * Returns the unit of measurement used in the given value. + * + * @param {string} value - The value to check for the unit of measurement. + * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found. + */ + }, { + key: "getUnitMeasureFromValue", + value: function getUnitMeasureFromValue(value) { + return ['%', 'px', 'em'].find(function (unit) { + return value.includes(unit); + }) || ''; + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/settings-components/components/tabs-component.js": +/*!*****************************************************************!*\ + !*** ./js/src/settings-components/components/tabs-component.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmTabsComponent) +/* harmony export */ }); +/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + +/** + * Represents a Tabs Component. + * + * @class + */ +var frmTabsComponent = /*#__PURE__*/function () { + function frmTabsComponent() { + _classCallCheck(this, frmTabsComponent); + this.elements = document.querySelectorAll('.frm-style-tabs-wrapper'); + if (0 < this.elements.length) { + this.init(); + } + } + + /** + * Initializes the Tabs Component. + */ + return _createClass(frmTabsComponent, [{ + key: "init", + value: function init() { + this.elements.forEach(function (element) { + new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__.frmTabsNavigator(element); + }); + } + + /** + * Initializes the component on tab click. + * + * @param {Element} wrapper - The wrapper element. + */ + }, { + key: "initOnTabClick", + value: function initOnTabClick(wrapper) { + var _this = this; + this.initActiveBackgroundWidth(wrapper); + wrapper.querySelectorAll('.frm-tab-item').forEach(function (tab) { + tab.addEventListener('click', function (event) { + _this.onTabClick(event.target.closest('.frm-tabs-wrapper')); + }); + }); + } + }]); +}(); + + +/***/ }), + +/***/ "./js/src/settings-components/components/toggle-group/index.js": +/*!*********************************************************************!*\ + !*** ./js/src/settings-components/components/toggle-group/index.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__.initToggleGroupComponents) +/* harmony export */ }); +/* harmony import */ var _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toggle-group.js */ "./js/src/settings-components/components/toggle-group/toggle-group.js"); + + +/***/ }), + +/***/ "./js/src/settings-components/components/toggle-group/toggle-group.js": +/*!****************************************************************************!*\ + !*** ./js/src/settings-components/components/toggle-group/toggle-group.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initToggleGroupComponents: () => (/* binding */ initToggleGroupComponents) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Group Toggle Component + * + * Handles toggling visibility and enabled state of related form elements + */ + +/** + * Internal dependencies + */ + + + +/** + * Class names for group toggle component + * + * @private + */ +var CLASS_NAMES = { + GROUP_TOGGLE: 'frm-toggle-group', + TOGGLE_BLOCK: 'frm_toggle_block' +}; + +/** + * Data attributes for group toggle component + * + * @private + */ +var DATA_ATTRIBUTES = { + GROUP_NAME: 'data-group-name', + SHOW: 'data-show', + DISABLE: 'data-disable', + ENABLE: 'data-enable' +}; + +/** + * Initialize all group toggle components on the page + * + * @return {void} + */ +function initToggleGroupComponents() { + applyInitialState(); + addEventListeners(); +} + +/** + * Apply the initial state for all toggle buttons on the page + * + * @private + * @return {void} + */ +function applyInitialState() { + var toggleGroups = document.querySelectorAll(".".concat(CLASS_NAMES.GROUP_TOGGLE)); + if (!toggleGroups.length) { + return; + } + toggleGroups.forEach(function (toggleGroup) { + var toggleButton = toggleGroup.querySelector("[".concat(DATA_ATTRIBUTES.GROUP_NAME, "]:checked")); + if (!toggleButton) { + return; + } + applyToggleState(toggleButton, toggleGroup); + }); +} + +/** + * Add event listeners to toggle buttons in a group toggle component + * + * @private + * @return {void} + */ +function addEventListeners() { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', ".".concat(CLASS_NAMES.GROUP_TOGGLE, " [").concat(DATA_ATTRIBUTES.GROUP_NAME, "]"), handleToggleClick); +} + +/** + * Handle click events on toggle buttons + * + * @private + * @param {Event} event The click event + * @return {void} + */ +function handleToggleClick(event) { + var toggleButton = event.target; + var toggleGroup = toggleButton.closest(".".concat(CLASS_NAMES.GROUP_TOGGLE)); + if (!toggleGroup) { + return; + } + applyToggleState(toggleButton, toggleGroup); +} + +/** + * Apply toggle state based on toggle button settings + * Shared functionality used by both click handler and initial state + * + * @private + * @param {HTMLElement} toggleButton The toggle button element + * @param {HTMLElement} toggleGroup The toggle group container element + * @return {void} + */ +function applyToggleState(toggleButton, toggleGroup) { + var _toggleGroup$closest; + var fieldId = ((_toggleGroup$closest = toggleGroup.closest(".".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.SINGLE_SETTINGS_CLASS))) === null || _toggleGroup$closest === void 0 ? void 0 : _toggleGroup$closest.dataset.fid) || toggleGroup.dataset.fid; + var isChecked = toggleButton.checked; + + // Handle show/hide elements + var showSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.SHOW); + if (showSelectors) { + document.querySelectorAll(normalizeSelector(showSelectors, fieldId)).forEach(function (element) { + return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, !isChecked); + }); + } + + // Handle disable elements + var disableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.DISABLE); + if (disableSelectors) { + document.querySelectorAll(normalizeSelector(disableSelectors, fieldId)).forEach(function (element) { + element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); + element.querySelectorAll('input, select, textarea').forEach(function (formElement) { + return formElement.disabled = isChecked; + }); + element.querySelectorAll('.frm-show-inline-modal[tabindex]').forEach(function (inlineModal) { + return inlineModal.tabIndex = isChecked ? -1 : 0; + }); + }); + } + + // Handle enable elements + var enableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.ENABLE); + if (enableSelectors) { + document.querySelectorAll(normalizeSelector(enableSelectors, fieldId)).forEach(function (element) { + return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, !isChecked); + }); + } + + // Toggle disabled state for all other toggle blocks within the group + var currentToggleBlock = toggleButton.closest(".".concat(CLASS_NAMES.TOGGLE_BLOCK)); + Array.from(toggleGroup.querySelectorAll(".".concat(CLASS_NAMES.TOGGLE_BLOCK))).filter(function (toggleBlock) { + return toggleBlock !== currentToggleBlock; + }).forEach(function (toggleBlock) { + toggleBlock.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); + + // Disable toggle switch + var toggle = toggleBlock.querySelector('.frm_toggle'); + toggle.tabIndex = isChecked ? -1 : 0; + toggle.setAttribute('aria-disabled', isChecked); + }); +} + +/** + * Normalize a selector by replacing {id} placeholders with the actual field ID + * + * @private + * @param {string} selector The selector string with potential {id} placeholders + * @param {string} fieldId The field ID to replace placeholders with + * @return {string} The normalized selector + */ +function normalizeSelector(selector, fieldId) { + return selector.replace(/{id}/g, fieldId); +} + + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/constants.js": +/*!************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/constants.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CLASS_NAMES: () => (/* binding */ CLASS_NAMES), +/* harmony export */ KEYS: () => (/* binding */ KEYS), +/* harmony export */ PROXY_INPUT_HEIGHT: () => (/* binding */ PROXY_INPUT_HEIGHT), +/* harmony export */ TOKEN_GAP: () => (/* binding */ TOKEN_GAP) +/* harmony export */ }); +/** + * Constants for token input component + * + * Reusable constants for class names and other static values + */ + +var CLASS_NAMES = { + CONTAINER: 'frm-token-container', + TOKENS_WRAPPER: 'frm-tokens', + TOKEN: 'frm-token', + TOKEN_VALUE: 'frm-token-value', + TOKEN_REMOVE: 'frm-token-remove', + TOKEN_INPUT_FIELD: 'frm-token-input-field', + TOKEN_PROXY_INPUT: 'frm-token-proxy-input', + WITH_RIGHT_ICON: 'frm-with-right-icon' +}; +var KEYS = { + SPACE: ' ', + ENTER: 'Enter', + COMMA: ',', + TAB: 'Tab', + BACKSPACE: 'Backspace' +}; +var PROXY_INPUT_HEIGHT = 36; +var TOKEN_GAP = 4; + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/event-handlers.js": +/*!*****************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/event-handlers.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); +/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); +/** + * Event handlers + * + * Functions for handling token input events + */ + +/** + * Internal dependencies + */ + + + + +/** + * Add event listeners to token input components + * + * @param {HTMLElement} field The original hidden input field + * @param {HTMLElement} proxyInput The proxy input field for interaction + * @param {HTMLElement} tokensWrapper The wrapper for token display + * @return {void} + */ +function addEventListeners(field, proxyInput, tokensWrapper) { + // The jQuery change event is required to catch programmatic updates, as "Add Layout Classes" modifies the field value via jQuery + jQuery(field).on('change', function () { + return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); + }); + proxyInput.addEventListener('keydown', function (event) { + return onProxyInputKeydown(event, field, proxyInput, tokensWrapper); + }); + proxyInput.addEventListener('blur', function () { + return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(proxyInput.value.trim(), field, proxyInput); + }); + tokensWrapper.addEventListener('click', function (event) { + return handleTokenRemoval(event, field, proxyInput); + }); +} + +/** + * Handle keydown events on the proxy input field + * + * @private + * + * @param {Event} event Keydown event + * @param {HTMLElement} field The original hidden input field + * @param {HTMLElement} proxyInput The proxy input field for interaction + * @param {HTMLElement} tokensWrapper The wrapper for token display + * @return {void} + */ +function onProxyInputKeydown(event, field, proxyInput, tokensWrapper) { + var key = event.key; + var value = proxyInput.value.trim(); + switch (key) { + // Remove the last token when backspace is pressed and input field is empty (no text being typed) + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.BACKSPACE: + if (!value) { + event.preventDefault(); + var lastToken = tokensWrapper.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN, ":last-child")); + (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(lastToken, field, proxyInput); + } + break; + + // Create a token from current input when delimiter keys are pressed + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.SPACE: + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.COMMA: + case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.ENTER: + event.preventDefault(); + (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(value, field, proxyInput); + break; + } + (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); +} + +/** + * Handle token removal when clicking the remove button + * + * @private + * + * @param {Event} event Click event + * @param {HTMLElement} field The original hidden input field + * @param {HTMLElement} proxyInput The proxy input field for interaction + * @return {void} + */ +function handleTokenRemoval(event, field, proxyInput) { + var removeButton = event.target.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_REMOVE)); + if (!removeButton) { + return; + } + var token = removeButton.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); + if (!token) { + return; + } + var tokensWrapper = token.parentElement; + (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(token, field, proxyInput); + (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/index.js": +/*!********************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/index.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_0__.initTokenInputFields) +/* harmony export */ }); +/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/token-input.js"); + + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/proxy-input-style.js": +/*!********************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/proxy-input-style.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ adjustAllProxyInputStyles: () => (/* binding */ adjustAllProxyInputStyles), +/* harmony export */ adjustProxyInputStyle: () => (/* binding */ adjustProxyInputStyle) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/** + * Proxy input style + * + * Functions for adjusting proxy input styling + */ + + + +/** + * Adjust styling for all proxy inputs on the current settings + * + * @return {void} + */ +function adjustAllProxyInputStyles() { + document.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.CONTAINER)).forEach(function (container) { + return adjustProxyInputStyle(container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_PROXY_INPUT)), container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKENS_WRAPPER))); + }); +} + +/** + * Adjust the styling of the proxy input based on tokens wrapper dimensions + * + * @param {HTMLElement} proxyInput The proxy input field + * @param {HTMLElement} tokensWrapper The wrapper for token display + * @return {void} + */ +function adjustProxyInputStyle(proxyInput, tokensWrapper) { + if (!proxyInput || !tokensWrapper) { + return; + } + var tokens = tokensWrapper.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); + var hasTokens = tokens.length > 0; + + // Reset all styles if no tokens + if (!hasTokens) { + proxyInput.style.paddingLeft = ''; + proxyInput.style.paddingTop = ''; + proxyInput.style.height = ''; + return; + } + var tokensWrapperHeight = tokensWrapper.offsetHeight; + + // Calculate number of rows based on wrapper height + var numRows = Math.max(1, Math.ceil(tokensWrapperHeight / _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT)); + if (numRows > 1) { + // For multiple rows, calculate the width of tokens in the last row + var lastRowWidth = calculateLastRowWidth(getLastRowTokens(tokens)); + proxyInput.style.height = "".concat(tokensWrapperHeight, "px"); + proxyInput.style.paddingTop = "".concat(tokensWrapperHeight - _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); + proxyInput.style.paddingLeft = lastRowWidth ? "".concat(lastRowWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP * 2, "px") : ''; + } else { + // For single row, use the full width of tokens + proxyInput.style.height = ''; + proxyInput.style.paddingTop = ''; + proxyInput.style.paddingLeft = "".concat(tokensWrapper.offsetWidth - _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); + } +} + +/** + * Identify tokens in the last row of a multi-row token layout + * + * @param {NodeList} tokens All token elements + * @return {Array} Array of tokens in the last row + */ +function getLastRowTokens(tokens) { + if (!tokens.length) { + return []; + } + var tokensArray = Array.from(tokens); + var lastRowY = -1; + tokensArray.forEach(function (token) { + var tokenRect = token.getBoundingClientRect(); + var tokenBottom = tokenRect.bottom; + if (tokenBottom > lastRowY) { + lastRowY = tokenBottom; + } + }); + var threshold = _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP / 2; + return tokensArray.filter(function (token) { + var tokenRect = token.getBoundingClientRect(); + return Math.abs(tokenRect.bottom - lastRowY) <= threshold; + }); +} + +/** + * Calculate the total width of tokens in the last row + * + * @param {Array} lastRowTokens Array of token elements in the last row + * @return {number} Total width of tokens in the last row + */ +function calculateLastRowWidth(lastRowTokens) { + if (!lastRowTokens.length) { + return 0; + } + var totalWidth = 0; + lastRowTokens.forEach(function (token) { + totalWidth += token.offsetWidth; + }); + totalWidth += (lastRowTokens.length - 1) * _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; + return totalWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/token-actions.js": +/*!****************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/token-actions.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToken: () => (/* binding */ addToken), +/* harmony export */ clearProxyInput: () => (/* binding */ clearProxyInput), +/* harmony export */ parseTokens: () => (/* binding */ parseTokens), +/* harmony export */ removeToken: () => (/* binding */ removeToken), +/* harmony export */ synchronizeTokensDisplay: () => (/* binding */ synchronizeTokensDisplay), +/* harmony export */ updateFieldValue: () => (/* binding */ updateFieldValue) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); +/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); +/** + * Token actions + * + * Core functions for token operations and management + */ + +/** + * Internal dependencies + */ + + + + +/** + * Synchronize token display with the field value + * + * @param {string} value The field value + * @param {HTMLElement} proxyInput The proxy input field + * @param {HTMLElement} tokensWrapper Wrapper element for tokens + * @return {void} + */ +function synchronizeTokensDisplay(value, proxyInput, tokensWrapper) { + if (!value || !tokensWrapper || !proxyInput) { + return; + } + + // Clear existing tokens display and render new tokens + tokensWrapper.innerHTML = ''; + parseTokens(value).forEach(function (token) { + return (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenElement)(token, tokensWrapper); + }); + (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_1__.adjustProxyInputStyle)(proxyInput, tokensWrapper); + proxyInput.focus(); +} + +/** + * Add a new token to the field + * + * @param {string} tokenValue The token value to add + * @param {HTMLElement} field The original field + * @param {HTMLElement} proxyInput The proxy input + * @return {boolean} Whether a token was added + */ +function addToken(tokenValue, field, proxyInput) { + if (!tokenValue || !field || !proxyInput) { + return false; + } + + // Get current tokens from field value + var tokens = parseTokens(field.value); + + // Skip duplicate tokens + if (tokens.includes(tokenValue)) { + clearProxyInput(proxyInput); + return false; + } + + // Add new token + tokens.push(tokenValue); + updateFieldValue(field, tokens); + clearProxyInput(proxyInput); + return true; +} + +/** + * Remove a specific token from the field + * + * @param {HTMLElement} token The token element to remove + * @param {HTMLElement} field The original field + * @param {HTMLElement} proxyInput The proxy input + * @return {void} + */ +function removeToken(token, field, proxyInput) { + if (!token || !field || !proxyInput) { + return; + } + var value = token.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_VALUE)).textContent; + + // Filter out the token to remove + var tokens = parseTokens(field.value).filter(function (tokenValue) { + return tokenValue !== value; + }); + updateFieldValue(field, tokens); + + // Remove the token element from DOM + token.remove(); + proxyInput.focus(); +} + +/** + * Parse string input into an array of tokens + * + * @param {string} value Space-separated string + * @return {string[]} Array of tokens + */ +function parseTokens() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + value = value.trim(); + if (!value) { + return []; + } + return value.split(/\s+/).filter(Boolean); +} + +/** + * Update field value with tokens and trigger change event + * + * @param {HTMLElement} field The field to update + * @param {string[]} tokens Array of token values + * @return {void} + */ +function updateFieldValue(field) { + var tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + if (!field) { + return; + } + field.value = tokens.join(' '); + jQuery(field).trigger('change'); +} + +/** + * Clear proxy input and maintain focus + * + * @param {HTMLElement} proxyInput The proxy input field + * @return {void} + */ +function clearProxyInput(proxyInput) { + if (!proxyInput) { + return; + } + proxyInput.value = ''; + proxyInput.focus(); +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/token-elements.js": +/*!*****************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/token-elements.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createTokenContainerElement: () => (/* binding */ createTokenContainerElement), +/* harmony export */ createTokenElement: () => (/* binding */ createTokenElement) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/** + * Token elements + * + * Functions for creating token DOM elements + */ + +/** + * Internal dependencies + */ + + +var _window$frmDom = window.frmDom, + span = _window$frmDom.span, + svg = _window$frmDom.svg, + tag = _window$frmDom.tag; + +/** + * Create token container and input elements + * + * @param {HTMLElement} field Input field for tokenization + * @return {HTMLElement|null} The container element or null if already initialized + */ +function createTokenContainerElement(field) { + // Get the main container (.frm-with-right-icon) to work with Formidable's modal system + var container = field.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.WITH_RIGHT_ICON)); + if (container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER))) { + return null; + } + container.classList.add(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.CONTAINER); + var tokensWrapper = span({ + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER + }); + container.insertBefore(tokensWrapper, container.firstChild); + var proxyInput = tag('input', { + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT, + id: "".concat(field.id, "-proxy-input") + }); + proxyInput.type = 'text'; + + // Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system + field.parentNode.insertBefore(proxyInput, field.nextSibling); + field.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); + return container; +} + +/** + * Create a single token element + * + * @param {string} value Token value + * @param {HTMLElement} tokensWrapper Wrapper element for tokens + * @return {void} + */ +function createTokenElement(value, tokensWrapper) { + var tokenElement = span({ + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN, + children: [span({ + text: value, + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_VALUE + }), span({ + className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_REMOVE, + child: svg({ + href: '#frm_close_icon' + }) + })] + }); + tokensWrapper.appendChild(tokenElement); +} + +/***/ }), + +/***/ "./js/src/settings-components/components/token-input/token-input.js": +/*!**************************************************************************!*\ + !*** ./js/src/settings-components/components/token-input/token-input.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initTokenInputFields: () => (/* binding */ initTokenInputFields) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); +/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); +/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); +/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); +/* harmony import */ var _event_handlers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event-handlers */ "./js/src/settings-components/components/token-input/event-handlers.js"); +/** + * Token Input Component + * + * Transforms space-separated values in a text input into selectable tokens + */ + +/** + * Internal dependencies + */ + + + + + + + +/** + * Initialize all token input fields on the page + * + * @return {void} + */ +function initTokenInputFields() { + findAndInitializeTokenFields(); + + /** + * Initialize for newly added fields + * + * @param {Event} event The frm_added_field event. + * @param {HTMLElement} event.frmField The added field object being destructured from the event. + */ + document.addEventListener('frm_added_field', function (_ref) { + var frmField = _ref.frmField; + return findAndInitializeTokenFields(frmField.dataset.fid); + }); + + /** + * Initialize for newly added fields via AJAX + * + * @param {Event} event The frm_ajax_loaded_field event. + * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. + */ + document.addEventListener('frm_ajax_loaded_field', function (_ref2) { + var frmFields = _ref2.frmFields; + return frmFields.forEach(function (field) { + return findAndInitializeTokenFields(field.id); + }); + }); + + // Adjust styling for all token inputs when field settings are shown + wp.hooks.addAction(core_constants__WEBPACK_IMPORTED_MODULE_0__.HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__.adjustAllProxyInputStyles); +} + +/** + * Find all token input fields and initialize them + * + * @private + * @param {string|number} fieldId The ID of the field to initialize + * @return {void} + */ +function findAndInitializeTokenFields(fieldId) { + var container = fieldId ? document.getElementById("frm-single-settings-".concat(fieldId)) : document.body; + var tokenInputFields = container.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_INPUT_FIELD)); + if (!tokenInputFields.length) { + return; + } + + // Track processed fields to prevent duplicate initialization + var processedFields = new Set(); + tokenInputFields.forEach(function (field) { + if (!processedFields.has(field.id)) { + setupTokenInput(field); + processedFields.add(field.id); + } + }); +} + +/** + * Set up a token input field with token container + * + * @private + * + * @param {HTMLElement} field Input field for tokenization + */ +function setupTokenInput(field) { + var container = (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenContainerElement)(field); + if (!container) { + return; + } + var proxyInput = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT)); + var tokensWrapper = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER)); + (0,_token_actions__WEBPACK_IMPORTED_MODULE_3__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); + (0,_event_handlers__WEBPACK_IMPORTED_MODULE_5__.addEventListeners)(field, proxyInput, tokensWrapper); +} + + +/***/ }), + +/***/ "./js/src/settings-components/components/unit-input.js": +/*!*************************************************************!*\ + !*** ./js/src/settings-components/components/unit-input.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupUnitInputHandlers: () => (/* binding */ setupUnitInputHandlers) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Setup unit input handlers + * + * @return {void} + */ +function setupUnitInputHandlers() { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input select', onUnitInputChange); +} + +/** + * Handle the change event for the unit input + * + * @private + * @param {Event} event The event object. + * @return {void} + */ +function onUnitInputChange(event) { + var unitInput = event.target.closest('.frm-unit-input'); + var control = unitInput.querySelector('.frm-unit-input-control'); + var unit = unitInput.querySelector('select').value; + + // Update input type when unit changes + if (event.target.matches('select')) { + control.type = '' === unit ? 'text' : 'number'; + } + + // Update the actual field value + var inputValue = control.value.trim(); + unitInput.querySelector('input[type="hidden"]').value = '' !== inputValue ? inputValue + unit : ''; +} + +/***/ }), + +/***/ "./js/src/settings-components/events/add-fields-button-handler.js": +/*!************************************************************************!*\ + !*** ./js/src/settings-components/events/add-fields-button-handler.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Redirects to "Add Fields" tab when the "Add Fields" button is clicked. + * + * When users view the Field Options tab with no fields, they see an "Add Fields" button. + * Clicking this button should take them to the "Add Fields" tab for field selection. + */ + +/** + * Initializes the Add Fields button click handler. + */ +var initAddFieldsButtonHandler = function initAddFieldsButtonHandler() { + var _document$getElementB; + (_document$getElementB = document.getElementById('frm-form-add-field')) === null || _document$getElementB === void 0 || _document$getElementB.addEventListener('click', function (event) { + var _document$querySelect; + event.preventDefault(); + (_document$querySelect = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect === void 0 || _document$querySelect.click(); + }); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initAddFieldsButtonHandler); + +/***/ }), + +/***/ "./js/src/settings-components/events/index.js": +/*!****************************************************!*\ + !*** ./js/src/settings-components/events/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ initAddFieldsButtonHandler: () => (/* reexport safe */ _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__["default"]) +/* harmony export */ }); +/* harmony import */ var _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-fields-button-handler */ "./js/src/settings-components/events/add-fields-button-handler.js"); + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!*********************************************!*\ + !*** ./js/src/settings-components/index.js ***! + \*********************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events */ "./js/src/settings-components/events/index.js"); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components */ "./js/src/settings-components/components/index.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { + new _components__WEBPACK_IMPORTED_MODULE_1__.frmRadioComponent(); + new _components__WEBPACK_IMPORTED_MODULE_1__.frmSliderComponent(); + new _components__WEBPACK_IMPORTED_MODULE_1__.frmTabsComponent(); + (0,_events__WEBPACK_IMPORTED_MODULE_0__.initAddFieldsButtonHandler)(); + (0,_components__WEBPACK_IMPORTED_MODULE_1__.initTokenInputFields)(); + (0,_components__WEBPACK_IMPORTED_MODULE_1__.initToggleGroupComponents)(); + (0,_components__WEBPACK_IMPORTED_MODULE_1__.setupUnitInputHandlers)(); +}); +/******/ })() +; +//# sourceMappingURL=formidable-settings-components.js.map \ No newline at end of file diff --git a/js/formidable-settings-components.js.map b/js/formidable-settings-components.js.map index 7834a86708..4e847626b3 100644 --- a/js/formidable-settings-components.js.map +++ b/js/formidable-settings-components.js.map @@ -1 +1 @@ -{"version":3,"file":"formidable-settings-components.js","mappings":"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","sources":["webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./js/src/admin/components/dependent-updater-component.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/settings-components/components/index.js","webpack://formidable/./js/src/settings-components/components/radio-component.js","webpack://formidable/./js/src/settings-components/components/slider-component.js","webpack://formidable/./js/src/settings-components/components/tabs-component.js","webpack://formidable/./js/src/settings-components/components/toggle-group/index.js","webpack://formidable/./js/src/settings-components/components/toggle-group/toggle-group.js","webpack://formidable/./js/src/settings-components/components/token-input/constants.js","webpack://formidable/./js/src/settings-components/components/token-input/event-handlers.js","webpack://formidable/./js/src/settings-components/components/token-input/index.js","webpack://formidable/./js/src/settings-components/components/token-input/proxy-input-style.js","webpack://formidable/./js/src/settings-components/components/token-input/token-actions.js","webpack://formidable/./js/src/settings-components/components/token-input/token-elements.js","webpack://formidable/./js/src/settings-components/components/token-input/token-input.js","webpack://formidable/./js/src/settings-components/components/unit-input.js","webpack://formidable/./js/src/settings-components/events/add-fields-button-handler.js","webpack://formidable/./js/src/settings-components/events/index.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/settings-components/index.js"],"sourcesContent":["/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.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\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}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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\tconst position = this.isRTL\n\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t: activeNav.offsetLeft;\n\n\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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 { default as frmRadioComponent } from './radio-component';\nexport { default as frmSliderComponent } from './slider-component';\nexport { default as frmTabsComponent } from './tabs-component';\nexport * from './token-input';\nexport * from './toggle-group';\nexport * from './unit-input';\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { show, hide, isVisible } from 'core/utils';\n\n/**\n * Represents a radio component.\n * @class\n */\nexport default class frmRadioComponent {\n\tconstructor() {\n\t\tthis.radioElements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tthis.observers = new Map();\n\t\tif ( 0 < this.radioElements.length ) {\n\t\t\tthis.init();\n\t\t}\n\n\t\t/**\n\t\t * Handles the addition of new fields.\n\t\t *\n\t\t * @param {Event} event The frm_added_field event.\n\t\t * @param {HTMLElement} event.frmField The added field object being destructured from the event.\n\t\t */\n\t\tdocument.addEventListener( 'frm_added_field', ( { frmField } ) => {\n\t\t\tthis.radioElements = document.getElementById( `frm-single-settings-${ frmField.dataset.fid }` )\n\t\t\t\t.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\n\t\t\tthis.initRadio();\n\t\t} );\n\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinit() {\n\t\tthis.initRadio();\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinitRadio() {\n\t\tthis.radioElements.forEach( element => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t\tthis.initVisibilityObserver( element );\n\t\t} );\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 * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown.\n\t *\n\t * @param {HTMLElement} element The radio component element\n\t * @return {void}\n\t */\n\tinitVisibilityObserver( element ) {\n\t\tif ( this.observers.has( element ) ) {\n\t\t\tthis.observers.get( element ).disconnect();\n\t\t}\n\n\t\tconst observer = new MutationObserver( () => {\n\t\t\t// Check if element is now visible\n\t\t\tif ( isVisible( element ) ) {\n\t\t\t\tconst radio = element.querySelector( 'input[type=\"radio\"]:checked' );\n\t\t\t\tif ( radio ) {\n\t\t\t\t\tthis.onRadioChange( radio );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.observers.set( element, observer );\n\n\t\t// Observe for attribute changes on the component and its ancestors\n\t\tobserver.observe( element, {\n\t\t\tattributes: true,\n\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t} );\n\n\t\t// Also observe parent elements up to a reasonable depth\n\t\tlet parent = element.parentElement;\n\t\tfor ( let i = 0; i < 7 && parent; i++ ) {\n\t\t\tobserver.observe( parent, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t\t} );\n\t\t\tparent = parent.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Cleanup all observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tthis.observers.forEach( observer => {\n\t\t\tobserver.disconnect();\n\t\t} );\n\n\t\tthis.observers.clear();\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( HIDDEN_CLASS );\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}\n","\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport frmDependentUpdaterComponent from '../../admin/components/dependent-updater-component';\n\n/**\n * Represents a slider component.\n * @class frmSliderComponent\n */\nexport default class frmSliderComponent {\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 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 frmDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the slider 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 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.options[ index ].fullValue = this.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( HIDDEN_CLASS );\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 ( '' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled', 'frm-empty' );\n\t\t\t\treturn;\n\t\t\t}\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\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled', 'frm-empty' );\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\tbubbles: true,\n\t\t\tcancelable: 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\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 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\tif ( slider.classList.contains( 'frm-disabled' ) ) {\n\t\t\treturn;\n\t\t}\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 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\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\t// When the slider component is used for \"Base Font Size\", we need to update a hidden input field when change happens to indicate that the \"Base Font Size\" has been adjusted.\n\t\t// Used to avoid conflicts with other possible font sizes adjustemnts in \"Advanced Settings\" when moving from \"Quick Settings\" when \"Base Font Size\" is not changed.\n\t\tif ( element.classList.contains( 'frm-base-font-size' ) ) {\n\t\t\tconst userBaseFontSizeInput = document.querySelector( 'input[name=\"frm_style_setting[post_content][use_base_font_size]\"]' );\n\t\t\tif ( null !== userBaseFontSizeInput ) {\n\t\t\t\tuserBaseFontSizeInput.value = 'true';\n\t\t\t}\n\t\t}\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}\n","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Component.\n * @class\n */\nexport default class frmTabsComponent {\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 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}\n","export * from './toggle-group.js';\n","/**\n * Group Toggle Component\n *\n * Handles toggling visibility and enabled state of related form elements\n */\n\n/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\nimport { HIDDEN_CLASS, DISABLED_CLASS, SINGLE_SETTINGS_CLASS } from 'core/constants';\n\n/**\n * Class names for group toggle component\n *\n * @private\n */\nconst CLASS_NAMES = {\n\tGROUP_TOGGLE: 'frm-toggle-group',\n\tTOGGLE_BLOCK: 'frm_toggle_block',\n};\n\n/**\n * Data attributes for group toggle component\n *\n * @private\n */\nconst DATA_ATTRIBUTES = {\n\tGROUP_NAME: 'data-group-name',\n\tSHOW: 'data-show',\n\tDISABLE: 'data-disable',\n\tENABLE: 'data-enable',\n};\n\n/**\n * Initialize all group toggle components on the page\n *\n * @return {void}\n */\nfunction initToggleGroupComponents() {\n\tapplyInitialState();\n\taddEventListeners();\n}\n\n/**\n * Apply the initial state for all toggle buttons on the page\n *\n * @private\n * @return {void}\n */\nfunction applyInitialState() {\n\tconst toggleGroups = document.querySelectorAll( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroups.length ) {\n\t\treturn;\n\t}\n\n\ttoggleGroups.forEach( toggleGroup => {\n\t\tconst toggleButton = toggleGroup.querySelector( `[${ DATA_ATTRIBUTES.GROUP_NAME }]:checked` );\n\t\tif ( ! toggleButton ) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyToggleState( toggleButton, toggleGroup );\n\t} );\n}\n\n/**\n * Add event listeners to toggle buttons in a group toggle component\n *\n * @private\n * @return {void}\n */\nfunction addEventListeners() {\n\tdocumentOn( 'change', `.${ CLASS_NAMES.GROUP_TOGGLE } [${ DATA_ATTRIBUTES.GROUP_NAME }]`, handleToggleClick );\n}\n\n/**\n * Handle click events on toggle buttons\n *\n * @private\n * @param {Event} event The click event\n * @return {void}\n */\nfunction handleToggleClick( event ) {\n\tconst toggleButton = event.target;\n\tconst toggleGroup = toggleButton.closest( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroup ) {\n\t\treturn;\n\t}\n\n\tapplyToggleState( toggleButton, toggleGroup );\n}\n\n/**\n * Apply toggle state based on toggle button settings\n * Shared functionality used by both click handler and initial state\n *\n * @private\n * @param {HTMLElement} toggleButton The toggle button element\n * @param {HTMLElement} toggleGroup The toggle group container element\n * @return {void}\n */\nfunction applyToggleState( toggleButton, toggleGroup ) {\n\tconst fieldId = toggleGroup.closest( `.${ SINGLE_SETTINGS_CLASS }` )?.dataset.fid ||\n\t\ttoggleGroup.dataset.fid;\n\n\tconst isChecked = toggleButton.checked;\n\n\t// Handle show/hide elements\n\tconst showSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.SHOW );\n\tif ( showSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( showSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( HIDDEN_CLASS, ! isChecked ) );\n\t}\n\n\t// Handle disable elements\n\tconst disableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.DISABLE );\n\tif ( disableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( disableSelectors, fieldId ) )\n\t\t\t.forEach( element => {\n\t\t\t\telement.classList.toggle( DISABLED_CLASS, isChecked );\n\t\t\t\telement.querySelectorAll( 'input, select, textarea' ).forEach(\n\t\t\t\t\tformElement => formElement.disabled = isChecked\n\t\t\t\t);\n\t\t\t} );\n\t}\n\n\t// Handle enable elements\n\tconst enableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.ENABLE );\n\tif ( enableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( enableSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( DISABLED_CLASS, ! isChecked ) );\n\t}\n\n\t// Toggle disabled state for all other toggle blocks within the group\n\tconst currentToggleBlock = toggleButton.closest( `.${ CLASS_NAMES.TOGGLE_BLOCK }` );\n\tArray.from( toggleGroup.querySelectorAll( `.${ CLASS_NAMES.TOGGLE_BLOCK }` ) )\n\t\t.filter( toggleBlock => toggleBlock !== currentToggleBlock )\n\t\t.forEach( toggleBlock => {\n\t\t\ttoggleBlock.classList.toggle( DISABLED_CLASS, isChecked );\n\n\t\t\t// Disable toggle switch\n\t\t\tconst toggle = toggleBlock.querySelector( '.frm_toggle' );\n\t\t\ttoggle.tabIndex = isChecked ? -1 : 0;\n\t\t\ttoggle.setAttribute( 'aria-disabled', isChecked );\n\t\t} );\n}\n\n/**\n * Normalize a selector by replacing {id} placeholders with the actual field ID\n *\n * @private\n * @param {string} selector The selector string with potential {id} placeholders\n * @param {string} fieldId The field ID to replace placeholders with\n * @return {string} The normalized selector\n */\nfunction normalizeSelector( selector, fieldId ) {\n\treturn selector.replace( /{id}/g, fieldId );\n}\n\nexport { initToggleGroupComponents };\n","/**\n * Constants for token input component\n *\n * Reusable constants for class names and other static values\n */\n\nexport const CLASS_NAMES = {\n\tCONTAINER: 'frm-token-container',\n\tTOKENS_WRAPPER: 'frm-tokens',\n\tTOKEN: 'frm-token',\n\tTOKEN_VALUE: 'frm-token-value',\n\tTOKEN_REMOVE: 'frm-token-remove',\n\tTOKEN_INPUT_FIELD: 'frm-token-input-field',\n\tTOKEN_PROXY_INPUT: 'frm-token-proxy-input',\n\tWITH_RIGHT_ICON: 'frm-with-right-icon'\n};\n\nexport const KEYS = {\n\tSPACE: ' ',\n\tENTER: 'Enter',\n\tCOMMA: ',',\n\tTAB: 'Tab',\n\tBACKSPACE: 'Backspace'\n};\n\nexport const PROXY_INPUT_HEIGHT = 36;\nexport const TOKEN_GAP = 4;\n","/**\n * Event handlers\n *\n * Functions for handling token input events\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES, KEYS } from './constants';\nimport { addToken, removeToken, synchronizeTokensDisplay } from './token-actions';\nimport { adjustProxyInputStyle } from './proxy-input-style';\n\n/**\n * Add event listeners to token input components\n *\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function addEventListeners( field, proxyInput, tokensWrapper ) {\n\t// The jQuery change event is required to catch programmatic updates, as \"Add Layout Classes\" modifies the field value via jQuery\n\tjQuery( field ).on( 'change', () => synchronizeTokensDisplay( field.value, proxyInput, tokensWrapper ) );\n\n\tproxyInput.addEventListener( 'keydown', event => onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) );\n\tproxyInput.addEventListener( 'blur', () => addToken( proxyInput.value.trim(), field, proxyInput ) );\n\n\ttokensWrapper.addEventListener( 'click', event => handleTokenRemoval( event, field, proxyInput ) );\n}\n\n/**\n * Handle keydown events on the proxy input field\n *\n * @private\n *\n * @param {Event} event Keydown event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nfunction onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) {\n\tconst { key } = event;\n\tconst value = proxyInput.value.trim();\n\n\tswitch ( key ) {\n\t\t// Remove the last token when backspace is pressed and input field is empty (no text being typed)\n\t\tcase KEYS.BACKSPACE:\n\t\t\tif ( ! value ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst lastToken = tokensWrapper.querySelector( `.${ CLASS_NAMES.TOKEN }:last-child` );\n\t\t\t\tremoveToken( lastToken, field, proxyInput );\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Create a token from current input when delimiter keys are pressed\n\t\tcase KEYS.SPACE:\n\t\tcase KEYS.COMMA:\n\t\tcase KEYS.ENTER:\n\t\t\tevent.preventDefault();\n\t\t\taddToken( value, field, proxyInput );\n\t\t\tbreak;\n\t}\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n\n/**\n * Handle token removal when clicking the remove button\n *\n * @private\n *\n * @param {Event} event Click event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @return {void}\n */\nfunction handleTokenRemoval( event, field, proxyInput ) {\n\tconst removeButton = event.target.closest( `.${ CLASS_NAMES.TOKEN_REMOVE }` );\n\tif ( ! removeButton ) {\n\t\treturn;\n\t}\n\n\tconst token = removeButton.closest( `.${ CLASS_NAMES.TOKEN }` );\n\tif ( ! token ) {\n\t\treturn;\n\t}\n\n\tconst tokensWrapper = token.parentElement;\n\n\tremoveToken( token, field, proxyInput );\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n","export * from './token-input';\n","/**\n * Proxy input style\n *\n * Functions for adjusting proxy input styling\n */\n\nimport { CLASS_NAMES, PROXY_INPUT_HEIGHT, TOKEN_GAP } from './constants';\n\n/**\n * Adjust styling for all proxy inputs on the current settings\n *\n * @return {void}\n */\nexport function adjustAllProxyInputStyles() {\n\tdocument.querySelectorAll( `.${ CLASS_NAMES.CONTAINER }` ).forEach( container =>\n\t\tadjustProxyInputStyle(\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` ),\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` )\n\t\t)\n\t);\n}\n\n/**\n * Adjust the styling of the proxy input based on tokens wrapper dimensions\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function adjustProxyInputStyle( proxyInput, tokensWrapper ) {\n\tif ( ! proxyInput || ! tokensWrapper ) {\n\t\treturn;\n\t}\n\n\tconst tokens = tokensWrapper.querySelectorAll( `.${ CLASS_NAMES.TOKEN }` );\n\tconst hasTokens = tokens.length > 0;\n\n\t// Reset all styles if no tokens\n\tif ( ! hasTokens ) {\n\t\tproxyInput.style.paddingLeft = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.height = '';\n\t\treturn;\n\t}\n\n\tconst tokensWrapperHeight = tokensWrapper.offsetHeight;\n\n\t// Calculate number of rows based on wrapper height\n\tconst numRows = Math.max( 1, Math.ceil( tokensWrapperHeight / PROXY_INPUT_HEIGHT ) );\n\n\tif ( numRows > 1 ) {\n\t\t// For multiple rows, calculate the width of tokens in the last row\n\t\tconst lastRowWidth = calculateLastRowWidth( getLastRowTokens( tokens ) );\n\n\t\tproxyInput.style.height = `${ tokensWrapperHeight }px`;\n\t\tproxyInput.style.paddingTop = `${ tokensWrapperHeight - PROXY_INPUT_HEIGHT + TOKEN_GAP }px`;\n\t\tproxyInput.style.paddingLeft = lastRowWidth ? `${ lastRowWidth + ( TOKEN_GAP * 2 ) }px` : '';\n\t} else {\n\t\t// For single row, use the full width of tokens\n\t\tproxyInput.style.height = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.paddingLeft = `${ tokensWrapper.offsetWidth - TOKEN_GAP }px`;\n\t}\n}\n\n/**\n * Identify tokens in the last row of a multi-row token layout\n *\n * @param {NodeList} tokens All token elements\n * @return {Array} Array of tokens in the last row\n */\nfunction getLastRowTokens( tokens ) {\n\tif ( ! tokens.length ) {\n\t\treturn [];\n\t}\n\n\tconst tokensArray = Array.from( tokens );\n\tlet lastRowY = -1;\n\n\ttokensArray.forEach( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenBottom = tokenRect.bottom;\n\n\t\tif ( tokenBottom > lastRowY ) {\n\t\t\tlastRowY = tokenBottom;\n\t\t}\n\t} );\n\n\tconst threshold = TOKEN_GAP / 2;\n\treturn tokensArray.filter( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\treturn Math.abs( tokenRect.bottom - lastRowY ) <= threshold;\n\t} );\n}\n\n/**\n * Calculate the total width of tokens in the last row\n *\n * @param {Array} lastRowTokens Array of token elements in the last row\n * @return {number} Total width of tokens in the last row\n */\nfunction calculateLastRowWidth( lastRowTokens ) {\n\tif ( ! lastRowTokens.length ) {\n\t\treturn 0;\n\t}\n\n\tlet totalWidth = 0;\n\n\tlastRowTokens.forEach( token => {\n\t\ttotalWidth += token.offsetWidth;\n\t} );\n\n\ttotalWidth += ( lastRowTokens.length - 1 ) * TOKEN_GAP;\n\n\treturn totalWidth + TOKEN_GAP;\n}\n","/**\n * Token actions\n *\n * Core functions for token operations and management\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES } from './constants';\nimport { adjustProxyInputStyle } from './proxy-input-style';\nimport { createTokenElement } from './token-elements';\n\n/**\n * Synchronize token display with the field value\n *\n * @param {string} value The field value\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function synchronizeTokensDisplay( value, proxyInput, tokensWrapper ) {\n\tif ( ! value || ! tokensWrapper || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\t// Clear existing tokens display and render new tokens\n\ttokensWrapper.innerHTML = '';\n\tparseTokens( value ).forEach( token => createTokenElement( token, tokensWrapper ) );\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n\n\tproxyInput.focus();\n}\n\n/**\n * Add a new token to the field\n *\n * @param {string} tokenValue The token value to add\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {boolean} Whether a token was added\n */\nexport function addToken( tokenValue, field, proxyInput ) {\n\tif ( ! tokenValue || ! field || ! proxyInput ) {\n\t\treturn false;\n\t}\n\n\t// Get current tokens from field value\n\tconst tokens = parseTokens( field.value );\n\n\t// Skip duplicate tokens\n\tif ( tokens.includes( tokenValue ) ) {\n\t\tclearProxyInput( proxyInput );\n\t\treturn false;\n\t}\n\n\t// Add new token\n\ttokens.push( tokenValue );\n\tupdateFieldValue( field, tokens );\n\tclearProxyInput( proxyInput );\n\treturn true;\n}\n\n/**\n * Remove a specific token from the field\n *\n * @param {HTMLElement} token The token element to remove\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {void}\n */\nexport function removeToken( token, field, proxyInput ) {\n\tif ( ! token || ! field || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tconst value = token.querySelector( `.${ CLASS_NAMES.TOKEN_VALUE }` ).textContent;\n\n\t// Filter out the token to remove\n\tconst tokens = parseTokens( field.value ).filter( tokenValue => tokenValue !== value );\n\tupdateFieldValue( field, tokens );\n\n\t// Remove the token element from DOM\n\ttoken.remove();\n\n\tproxyInput.focus();\n}\n\n/**\n * Parse string input into an array of tokens\n *\n * @param {string} value Space-separated string\n * @return {string[]} Array of tokens\n */\nexport function parseTokens( value = '' ) {\n\tvalue = value.trim();\n\n\tif ( ! value ) {\n\t\treturn [];\n\t}\n\n\treturn value.split( /\\s+/ ).filter( Boolean );\n}\n\n/**\n * Update field value with tokens and trigger change event\n *\n * @param {HTMLElement} field The field to update\n * @param {string[]} tokens Array of token values\n * @return {void}\n */\nexport function updateFieldValue( field, tokens = [] ) {\n\tif ( ! field ) {\n\t\treturn;\n\t}\n\n\tfield.value = tokens.join( ' ' );\n\tjQuery( field ).trigger( 'change' );\n}\n\n/**\n * Clear proxy input and maintain focus\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @return {void}\n */\nexport function clearProxyInput( proxyInput ) {\n\tif ( ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tproxyInput.value = '';\n\tproxyInput.focus();\n}\n","/**\n * Token elements\n *\n * Functions for creating token DOM elements\n */\n\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\n\nconst { span, svg, tag } = window.frmDom;\n\n/**\n * Create token container and input elements\n *\n * @param {HTMLElement} field Input field for tokenization\n * @return {HTMLElement|null} The container element or null if already initialized\n */\nexport function createTokenContainerElement( field ) {\n\t// Get the main container (.frm-with-right-icon) to work with Formidable's modal system\n\tconst container = field.closest( `.${ CLASS_NAMES.WITH_RIGHT_ICON }` );\n\n\tif ( container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` ) ) {\n\t\treturn null;\n\t}\n\n\tcontainer.classList.add( CLASS_NAMES.CONTAINER );\n\n\tconst tokensWrapper = span( {\n\t\tclassName: CLASS_NAMES.TOKENS_WRAPPER\n\t} );\n\n\tcontainer.insertBefore( tokensWrapper, container.firstChild );\n\n\tconst proxyInput = tag( 'input', {\n\t\tclassName: CLASS_NAMES.TOKEN_PROXY_INPUT,\n\t\tid: `${ field.id }-proxy-input`\n\t} );\n\n\tproxyInput.type = 'text';\n\n\t// Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system\n\tfield.parentNode.insertBefore( proxyInput, field.nextSibling );\n\tfield.classList.add( HIDDEN_CLASS );\n\n\treturn container;\n}\n\n/**\n * Create a single token element\n *\n * @param {string} value Token value\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function createTokenElement( value, tokensWrapper ) {\n\tconst tokenElement = span( {\n\t\tclassName: CLASS_NAMES.TOKEN,\n\t\tchildren: [\n\t\t\tspan( {\n\t\t\t\ttext: value,\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_VALUE\n\t\t\t} ),\n\t\t\tspan( {\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_REMOVE,\n\t\t\t\tchild: svg( { href: '#frm_close_icon' } )\n\t\t\t} )\n\t\t]\n\t} );\n\n\ttokensWrapper.appendChild( tokenElement );\n}\n","/**\n * Token Input Component\n *\n * Transforms space-separated values in a text input into selectable tokens\n */\n\n/**\n * Internal dependencies\n */\nimport { HOOKS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\nimport { createTokenContainerElement } from './token-elements';\nimport { synchronizeTokensDisplay } from './token-actions';\nimport { adjustAllProxyInputStyles } from './proxy-input-style';\nimport { addEventListeners } from './event-handlers';\n\n/**\n * Initialize all token input fields on the page\n *\n * @return {void}\n */\nfunction initTokenInputFields() {\n\t// Initialize for existing fields\n\tfindAndInitializeTokenFields();\n\t// Initialize for newly added fields\n\tdocument.addEventListener( 'frm_added_field', findAndInitializeTokenFields );\n\n\t// Adjust styling for all token inputs when field settings are shown\n\twp.hooks.addAction( HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', adjustAllProxyInputStyles );\n}\n\n/**\n * Find all token input fields and initialize them\n *\n * @private\n *\n * @return {void}\n */\nfunction findAndInitializeTokenFields() {\n\tconst tokenInputFields = document.querySelectorAll( `.${ CLASS_NAMES.TOKEN_INPUT_FIELD }` );\n\tif ( ! tokenInputFields.length ) {\n\t\treturn;\n\t}\n\n\t// Track processed fields to prevent duplicate initialization\n\tconst processedFields = new Set();\n\ttokenInputFields.forEach( field => {\n\t\tif ( ! processedFields.has( field.id ) ) {\n\t\t\tsetupTokenInput( field );\n\t\t\tprocessedFields.add( field.id );\n\t\t}\n\t} );\n}\n\n/**\n * Set up a token input field with token container\n *\n * @private\n *\n * @param {HTMLElement} field Input field for tokenization\n */\nfunction setupTokenInput( field ) {\n\tconst container = createTokenContainerElement( field );\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst proxyInput = container.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` );\n\tconst tokensWrapper = container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` );\n\n\tsynchronizeTokensDisplay( field.value, proxyInput, tokensWrapper );\n\taddEventListeners( field, proxyInput, tokensWrapper );\n}\n\nexport { initTokenInputFields };\n","/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\n\n/**\n * Setup unit input handlers\n *\n * @return {void}\n */\nexport function setupUnitInputHandlers() {\n\tdocumentOn( 'change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange );\n\tdocumentOn( 'change', '.frm-unit-input select', onUnitInputChange );\n}\n\n/**\n * Handle the change event for the unit input\n *\n * @private\n * @param {Event} event The event object.\n * @return {void}\n */\nfunction onUnitInputChange( event ) {\n\tconst unitInput = event.target.closest( '.frm-unit-input' );\n\tconst control = unitInput.querySelector( '.frm-unit-input-control' );\n\tconst unit = unitInput.querySelector( 'select' ).value;\n\n\t// Update input type when unit changes\n\tif ( event.target.matches( 'select' ) ) {\n\t\tcontrol.type = '' === unit ? 'text' : 'number';\n\t}\n\n\t// Update the actual field value\n\tconst inputValue = control.value.trim();\n\tunitInput.querySelector( 'input[type=\"hidden\"]' ).value = '' !== inputValue ? inputValue + unit : '';\n}\n\n","/**\n * Redirects to \"Add Fields\" tab when the \"Add Fields\" button is clicked.\n *\n * When users view the Field Options tab with no fields, they see an \"Add Fields\" button.\n * Clicking this button should take them to the \"Add Fields\" tab for field selection.\n */\n\n/**\n * Initializes the Add Fields button click handler.\n */\nconst initAddFieldsButtonHandler = () => {\n\tdocument.getElementById( 'frm-form-add-field' )?.addEventListener( 'click', event => {\n\t\tevent.preventDefault();\n\t\tdocument.querySelector( '.frm-settings-panel .frm-tabs-navs ul > li:first-child' )?.click();\n\t} );\n};\n\nexport default initAddFieldsButtonHandler;\n","export { default as initAddFieldsButtonHandler } from './add-fields-button-handler';\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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { initAddFieldsButtonHandler } from './events';\nimport {\n\tfrmRadioComponent,\n\tfrmSliderComponent,\n\tfrmTabsComponent,\n\tinitTokenInputFields,\n\tinitToggleGroupComponents,\n\tsetupUnitInputHandlers\n} from './components';\n\ndomReady( () => {\n\tnew frmRadioComponent();\n\tnew frmSliderComponent();\n\tnew frmTabsComponent();\n\tinitAddFieldsButtonHandler();\n\tinitTokenInputFields();\n\tinitToggleGroupComponents();\n\tsetupUnitInputHandlers();\n} );\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","frmTabsNavigator","wrapper","Element","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","init","_this","length","initDefaultSlideTrackerWidth","nav","index","addEventListener","event","onNavClick","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","window","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","remove","activeNav","filter","contains","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","parseInt","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","type","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","transitionDelay","_this3","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","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","frmRadioComponent","frmSliderComponent","frmTabsComponent","radioElements","observers","Map","_ref","frmField","getElementById","fid","initRadio","cleanupObservers","initTrackerOnAccordionClick","initOnRadioChange","initVisibilityObserver","accordionitems","accordionitem","target","radioButtons","radio","onRadioChange","radioElement","_this4","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","_this5","disconnect","observer","MutationObserver","observe","attributes","attributeFilter","parent","i","clear","offset","tracker","left","frmDependentUpdaterComponent","sliderElements","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","valueChangeDebouncer","triggerValueChange","initOptions","options","parentWrapper","dragging","startX","translateX","maxValue","dependentUpdater","initSlidersPosition","initDraggable","cancelable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","fullValue","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","toLowerCase","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","option","max","innerText","_this10","NodeList","delta","min","_this11","userBaseFontSizeInput","inputValue","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","CLASS_NAMES","GROUP_TOGGLE","TOGGLE_BLOCK","DATA_ATTRIBUTES","GROUP_NAME","SHOW","DISABLE","ENABLE","initToggleGroupComponents","applyInitialState","addEventListeners","toggleGroups","toggleGroup","toggleButton","applyToggleState","handleToggleClick","_toggleGroup$closest","fieldId","isChecked","showSelectors","normalizeSelector","disableSelectors","formElement","disabled","enableSelectors","currentToggleBlock","toggleBlock","tabIndex","selector","replace","CONTAINER","TOKENS_WRAPPER","TOKEN","TOKEN_VALUE","TOKEN_REMOVE","TOKEN_INPUT_FIELD","TOKEN_PROXY_INPUT","WITH_RIGHT_ICON","KEYS","SPACE","ENTER","COMMA","TAB","BACKSPACE","PROXY_INPUT_HEIGHT","TOKEN_GAP","addToken","removeToken","synchronizeTokensDisplay","adjustProxyInputStyle","field","proxyInput","tokensWrapper","jQuery","on","onProxyInputKeydown","trim","handleTokenRemoval","lastToken","removeButton","token","adjustAllProxyInputStyles","container","tokens","hasTokens","paddingLeft","paddingTop","height","tokensWrapperHeight","offsetHeight","numRows","lastRowWidth","calculateLastRowWidth","getLastRowTokens","tokensArray","lastRowY","tokenRect","tokenBottom","bottom","threshold","abs","lastRowTokens","totalWidth","createTokenElement","innerHTML","parseTokens","focus","tokenValue","clearProxyInput","updateFieldValue","Boolean","trigger","_window$frmDom","svg","tag","createTokenContainerElement","className","insertBefore","firstChild","parentNode","nextSibling","tokenElement","children","text","child","appendChild","initTokenInputFields","findAndInitializeTokenFields","tokenInputFields","processedFields","Set","setupTokenInput","setupUnitInputHandlers","onUnitInputChange","unitInput","control","matches","initAddFieldsButtonHandler","_document$getElementB","_document$querySelect","click","domReady"],"sourceRoot":""} +{"version":3,"file":"formidable-settings-components.js","mappings":"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","sources":["webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./js/src/admin/components/dependent-updater-component.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/settings-components/components/index.js","webpack://formidable/./js/src/settings-components/components/radio-component.js","webpack://formidable/./js/src/settings-components/components/slider-component.js","webpack://formidable/./js/src/settings-components/components/tabs-component.js","webpack://formidable/./js/src/settings-components/components/toggle-group/index.js","webpack://formidable/./js/src/settings-components/components/toggle-group/toggle-group.js","webpack://formidable/./js/src/settings-components/components/token-input/constants.js","webpack://formidable/./js/src/settings-components/components/token-input/event-handlers.js","webpack://formidable/./js/src/settings-components/components/token-input/index.js","webpack://formidable/./js/src/settings-components/components/token-input/proxy-input-style.js","webpack://formidable/./js/src/settings-components/components/token-input/token-actions.js","webpack://formidable/./js/src/settings-components/components/token-input/token-elements.js","webpack://formidable/./js/src/settings-components/components/token-input/token-input.js","webpack://formidable/./js/src/settings-components/components/unit-input.js","webpack://formidable/./js/src/settings-components/events/add-fields-button-handler.js","webpack://formidable/./js/src/settings-components/events/index.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/settings-components/index.js"],"sourcesContent":["/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.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\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t *\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 *\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 *\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","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', this.cleanupObservers );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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/**\n * Removes a query parameter and updates history with replaceState.\n *\n * @param {string} paramName The query parameter to remove.\n * @return {void}\n */\nexport const removeParamFromHistory = paramName =>\n\thistory.replaceState( {}, '', removeQueryParam( 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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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 { default as frmRadioComponent } from './radio-component';\nexport { default as frmSliderComponent } from './slider-component';\nexport { default as frmTabsComponent } from './tabs-component';\nexport * from './token-input';\nexport * from './toggle-group';\nexport * from './unit-input';\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { show, hide, isVisible } from 'core/utils';\n\n/**\n * Represents a radio component.\n *\n * @class\n */\nexport default class frmRadioComponent {\n\tconstructor() {\n\t\tthis.radioElements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tthis.observers = new Map();\n\t\tif ( 0 < this.radioElements.length ) {\n\t\t\tthis.init();\n\t\t}\n\n\t\t/**\n\t\t * Handles the addition of new fields.\n\t\t *\n\t\t * @param {Event} event The frm_added_field event.\n\t\t * @param {HTMLElement} event.frmField The added field object being destructured from the event.\n\t\t */\n\t\tdocument.addEventListener( 'frm_added_field', ( { frmField } ) =>\n\t\t\tthis.discoverAndInitFieldRadios( frmField.dataset.fid )\n\t\t);\n\n\t\t/**\n\t\t * Handles the addition of new fields via AJAX.\n\t\t *\n\t\t * @param {Event} event The frm_ajax_loaded_field event.\n\t\t * @param {HTMLElement} event.frmFields The added field objects being destructured from the event.\n\t\t */\n\t\tdocument.addEventListener( 'frm_ajax_loaded_field', ( { frmFields } ) =>\n\t\t\tfrmFields.forEach( field => this.discoverAndInitFieldRadios( field.id ) )\n\t\t);\n\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinit() {\n\t\tthis.initRadio();\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\t/**\n\t * Discovers and initializes radio components for a specific field.\n\t *\n\t * @param {string|number} fieldId The unique identifier of the field whose radio components should be discovered and initialized\n\t * @throws {Error} Throws an error if the field container is not found in the DOM\n\t */\n\tdiscoverAndInitFieldRadios( fieldId ) {\n\t\tconst fieldContainer = document.getElementById( `frm-single-settings-${ fieldId }` );\n\n\t\tif ( ! fieldContainer ) {\n\t\t\tthrow new Error( `Field container not found for field ID: ${ fieldId }` );\n\t\t}\n\n\t\tthis.radioElements = fieldContainer.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tthis.initRadio();\n\t}\n\n\t/**\n\t * Initializes the radio component.\n\t */\n\tinitRadio() {\n\t\tthis.radioElements.forEach( element => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t\tthis.initVisibilityObserver( element );\n\t\t} );\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 *\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 *\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 *\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 * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown.\n\t *\n\t * @param {HTMLElement} element The radio component element\n\t * @return {void}\n\t */\n\tinitVisibilityObserver( element ) {\n\t\tif ( this.observers.has( element ) ) {\n\t\t\tthis.observers.get( element ).disconnect();\n\t\t}\n\n\t\tconst observer = new MutationObserver( () => {\n\t\t\t// Check if element is now visible\n\t\t\tif ( isVisible( element ) ) {\n\t\t\t\tconst radio = element.querySelector( 'input[type=\"radio\"]:checked' );\n\t\t\t\tif ( radio ) {\n\t\t\t\t\tthis.onRadioChange( radio );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.observers.set( element, observer );\n\n\t\t// Observe for attribute changes on the component and its ancestors\n\t\tobserver.observe( element, {\n\t\t\tattributes: true,\n\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t} );\n\n\t\t// Also observe parent elements up to a reasonable depth\n\t\tlet parent = element.parentElement;\n\t\tfor ( let i = 0; i < 7 && parent; i++ ) {\n\t\t\tobserver.observe( parent, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [ 'class', 'style' ]\n\t\t\t} );\n\t\t\tparent = parent.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Cleanup all observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tthis.observers.forEach( observer => {\n\t\t\tobserver.disconnect();\n\t\t} );\n\n\t\tthis.observers.clear();\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( HIDDEN_CLASS );\n\t\t\thide( element );\n\t\t} );\n\t}\n\n\t/**\n\t * Moves the tracker to the active item.\n\t *\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}\n","\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport frmDependentUpdaterComponent from '../../admin/components/dependent-updater-component';\n\n/**\n * Represents a slider component.\n *\n * @class frmSliderComponent\n */\nexport default class frmSliderComponent {\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 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 frmDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the slider 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 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.options[ index ].fullValue = this.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( HIDDEN_CLASS );\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 ( '' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled', 'frm-empty' );\n\t\t\t\treturn;\n\t\t\t}\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\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled', 'frm-empty' );\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\tbubbles: true,\n\t\t\tcancelable: 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\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 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\tif ( slider.classList.contains( 'frm-disabled' ) ) {\n\t\t\treturn;\n\t\t}\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 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\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\t// When the slider component is used for \"Base Font Size\", we need to update a hidden input field when change happens to indicate that the \"Base Font Size\" has been adjusted.\n\t\t// Used to avoid conflicts with other possible font sizes adjustemnts in \"Advanced Settings\" when moving from \"Quick Settings\" when \"Base Font Size\" is not changed.\n\t\tif ( element.classList.contains( 'frm-base-font-size' ) ) {\n\t\t\tconst userBaseFontSizeInput = document.querySelector( 'input[name=\"frm_style_setting[post_content][use_base_font_size]\"]' );\n\t\t\tif ( null !== userBaseFontSizeInput ) {\n\t\t\t\tuserBaseFontSizeInput.value = 'true';\n\t\t\t}\n\t\t}\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}\n","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Component.\n *\n * @class\n */\nexport default class frmTabsComponent {\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 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 *\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}\n","export * from './toggle-group.js';\n","/**\n * Group Toggle Component\n *\n * Handles toggling visibility and enabled state of related form elements\n */\n\n/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\nimport { HIDDEN_CLASS, DISABLED_CLASS, SINGLE_SETTINGS_CLASS } from 'core/constants';\n\n/**\n * Class names for group toggle component\n *\n * @private\n */\nconst CLASS_NAMES = {\n\tGROUP_TOGGLE: 'frm-toggle-group',\n\tTOGGLE_BLOCK: 'frm_toggle_block',\n};\n\n/**\n * Data attributes for group toggle component\n *\n * @private\n */\nconst DATA_ATTRIBUTES = {\n\tGROUP_NAME: 'data-group-name',\n\tSHOW: 'data-show',\n\tDISABLE: 'data-disable',\n\tENABLE: 'data-enable',\n};\n\n/**\n * Initialize all group toggle components on the page\n *\n * @return {void}\n */\nfunction initToggleGroupComponents() {\n\tapplyInitialState();\n\taddEventListeners();\n}\n\n/**\n * Apply the initial state for all toggle buttons on the page\n *\n * @private\n * @return {void}\n */\nfunction applyInitialState() {\n\tconst toggleGroups = document.querySelectorAll( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroups.length ) {\n\t\treturn;\n\t}\n\n\ttoggleGroups.forEach( toggleGroup => {\n\t\tconst toggleButton = toggleGroup.querySelector( `[${ DATA_ATTRIBUTES.GROUP_NAME }]:checked` );\n\t\tif ( ! toggleButton ) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyToggleState( toggleButton, toggleGroup );\n\t} );\n}\n\n/**\n * Add event listeners to toggle buttons in a group toggle component\n *\n * @private\n * @return {void}\n */\nfunction addEventListeners() {\n\tdocumentOn( 'change', `.${ CLASS_NAMES.GROUP_TOGGLE } [${ DATA_ATTRIBUTES.GROUP_NAME }]`, handleToggleClick );\n}\n\n/**\n * Handle click events on toggle buttons\n *\n * @private\n * @param {Event} event The click event\n * @return {void}\n */\nfunction handleToggleClick( event ) {\n\tconst toggleButton = event.target;\n\tconst toggleGroup = toggleButton.closest( `.${ CLASS_NAMES.GROUP_TOGGLE }` );\n\n\tif ( ! toggleGroup ) {\n\t\treturn;\n\t}\n\n\tapplyToggleState( toggleButton, toggleGroup );\n}\n\n/**\n * Apply toggle state based on toggle button settings\n * Shared functionality used by both click handler and initial state\n *\n * @private\n * @param {HTMLElement} toggleButton The toggle button element\n * @param {HTMLElement} toggleGroup The toggle group container element\n * @return {void}\n */\nfunction applyToggleState( toggleButton, toggleGroup ) {\n\tconst fieldId = toggleGroup.closest( `.${ SINGLE_SETTINGS_CLASS }` )?.dataset.fid ||\n\t\ttoggleGroup.dataset.fid;\n\n\tconst isChecked = toggleButton.checked;\n\n\t// Handle show/hide elements\n\tconst showSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.SHOW );\n\tif ( showSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( showSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( HIDDEN_CLASS, ! isChecked ) );\n\t}\n\n\t// Handle disable elements\n\tconst disableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.DISABLE );\n\tif ( disableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( disableSelectors, fieldId ) )\n\t\t\t.forEach( element => {\n\t\t\t\telement.classList.toggle( DISABLED_CLASS, isChecked );\n\t\t\t\telement.querySelectorAll( 'input, select, textarea' ).forEach(\n\t\t\t\t\tformElement => formElement.disabled = isChecked\n\t\t\t\t);\n\t\t\t\telement.querySelectorAll( '.frm-show-inline-modal[tabindex]' ).forEach(\n\t\t\t\t\tinlineModal => inlineModal.tabIndex = isChecked ? -1 : 0\n\t\t\t\t);\n\t\t\t} );\n\t}\n\n\t// Handle enable elements\n\tconst enableSelectors = toggleButton.getAttribute( DATA_ATTRIBUTES.ENABLE );\n\tif ( enableSelectors ) {\n\t\tdocument.querySelectorAll( normalizeSelector( enableSelectors, fieldId ) )\n\t\t\t.forEach( element => element.classList.toggle( DISABLED_CLASS, ! isChecked ) );\n\t}\n\n\t// Toggle disabled state for all other toggle blocks within the group\n\tconst currentToggleBlock = toggleButton.closest( `.${ CLASS_NAMES.TOGGLE_BLOCK }` );\n\tArray.from( toggleGroup.querySelectorAll( `.${ CLASS_NAMES.TOGGLE_BLOCK }` ) )\n\t\t.filter( toggleBlock => toggleBlock !== currentToggleBlock )\n\t\t.forEach( toggleBlock => {\n\t\t\ttoggleBlock.classList.toggle( DISABLED_CLASS, isChecked );\n\n\t\t\t// Disable toggle switch\n\t\t\tconst toggle = toggleBlock.querySelector( '.frm_toggle' );\n\t\t\ttoggle.tabIndex = isChecked ? -1 : 0;\n\t\t\ttoggle.setAttribute( 'aria-disabled', isChecked );\n\t\t} );\n}\n\n/**\n * Normalize a selector by replacing {id} placeholders with the actual field ID\n *\n * @private\n * @param {string} selector The selector string with potential {id} placeholders\n * @param {string} fieldId The field ID to replace placeholders with\n * @return {string} The normalized selector\n */\nfunction normalizeSelector( selector, fieldId ) {\n\treturn selector.replace( /{id}/g, fieldId );\n}\n\nexport { initToggleGroupComponents };\n","/**\n * Constants for token input component\n *\n * Reusable constants for class names and other static values\n */\n\nexport const CLASS_NAMES = {\n\tCONTAINER: 'frm-token-container',\n\tTOKENS_WRAPPER: 'frm-tokens',\n\tTOKEN: 'frm-token',\n\tTOKEN_VALUE: 'frm-token-value',\n\tTOKEN_REMOVE: 'frm-token-remove',\n\tTOKEN_INPUT_FIELD: 'frm-token-input-field',\n\tTOKEN_PROXY_INPUT: 'frm-token-proxy-input',\n\tWITH_RIGHT_ICON: 'frm-with-right-icon'\n};\n\nexport const KEYS = {\n\tSPACE: ' ',\n\tENTER: 'Enter',\n\tCOMMA: ',',\n\tTAB: 'Tab',\n\tBACKSPACE: 'Backspace'\n};\n\nexport const PROXY_INPUT_HEIGHT = 36;\nexport const TOKEN_GAP = 4;\n","/**\n * Event handlers\n *\n * Functions for handling token input events\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES, KEYS } from './constants';\nimport { addToken, removeToken, synchronizeTokensDisplay } from './token-actions';\nimport { adjustProxyInputStyle } from './proxy-input-style';\n\n/**\n * Add event listeners to token input components\n *\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function addEventListeners( field, proxyInput, tokensWrapper ) {\n\t// The jQuery change event is required to catch programmatic updates, as \"Add Layout Classes\" modifies the field value via jQuery\n\tjQuery( field ).on( 'change', () => synchronizeTokensDisplay( field.value, proxyInput, tokensWrapper ) );\n\n\tproxyInput.addEventListener( 'keydown', event => onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) );\n\tproxyInput.addEventListener( 'blur', () => addToken( proxyInput.value.trim(), field, proxyInput ) );\n\n\ttokensWrapper.addEventListener( 'click', event => handleTokenRemoval( event, field, proxyInput ) );\n}\n\n/**\n * Handle keydown events on the proxy input field\n *\n * @private\n *\n * @param {Event} event Keydown event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nfunction onProxyInputKeydown( event, field, proxyInput, tokensWrapper ) {\n\tconst { key } = event;\n\tconst value = proxyInput.value.trim();\n\n\tswitch ( key ) {\n\t\t// Remove the last token when backspace is pressed and input field is empty (no text being typed)\n\t\tcase KEYS.BACKSPACE:\n\t\t\tif ( ! value ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst lastToken = tokensWrapper.querySelector( `.${ CLASS_NAMES.TOKEN }:last-child` );\n\t\t\t\tremoveToken( lastToken, field, proxyInput );\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Create a token from current input when delimiter keys are pressed\n\t\tcase KEYS.SPACE:\n\t\tcase KEYS.COMMA:\n\t\tcase KEYS.ENTER:\n\t\t\tevent.preventDefault();\n\t\t\taddToken( value, field, proxyInput );\n\t\t\tbreak;\n\t}\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n\n/**\n * Handle token removal when clicking the remove button\n *\n * @private\n *\n * @param {Event} event Click event\n * @param {HTMLElement} field The original hidden input field\n * @param {HTMLElement} proxyInput The proxy input field for interaction\n * @return {void}\n */\nfunction handleTokenRemoval( event, field, proxyInput ) {\n\tconst removeButton = event.target.closest( `.${ CLASS_NAMES.TOKEN_REMOVE }` );\n\tif ( ! removeButton ) {\n\t\treturn;\n\t}\n\n\tconst token = removeButton.closest( `.${ CLASS_NAMES.TOKEN }` );\n\tif ( ! token ) {\n\t\treturn;\n\t}\n\n\tconst tokensWrapper = token.parentElement;\n\n\tremoveToken( token, field, proxyInput );\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n}\n","export * from './token-input';\n","/**\n * Proxy input style\n *\n * Functions for adjusting proxy input styling\n */\n\nimport { CLASS_NAMES, PROXY_INPUT_HEIGHT, TOKEN_GAP } from './constants';\n\n/**\n * Adjust styling for all proxy inputs on the current settings\n *\n * @return {void}\n */\nexport function adjustAllProxyInputStyles() {\n\tdocument.querySelectorAll( `.${ CLASS_NAMES.CONTAINER }` ).forEach( container =>\n\t\tadjustProxyInputStyle(\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` ),\n\t\t\tcontainer.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` )\n\t\t)\n\t);\n}\n\n/**\n * Adjust the styling of the proxy input based on tokens wrapper dimensions\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper The wrapper for token display\n * @return {void}\n */\nexport function adjustProxyInputStyle( proxyInput, tokensWrapper ) {\n\tif ( ! proxyInput || ! tokensWrapper ) {\n\t\treturn;\n\t}\n\n\tconst tokens = tokensWrapper.querySelectorAll( `.${ CLASS_NAMES.TOKEN }` );\n\tconst hasTokens = tokens.length > 0;\n\n\t// Reset all styles if no tokens\n\tif ( ! hasTokens ) {\n\t\tproxyInput.style.paddingLeft = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.height = '';\n\t\treturn;\n\t}\n\n\tconst tokensWrapperHeight = tokensWrapper.offsetHeight;\n\n\t// Calculate number of rows based on wrapper height\n\tconst numRows = Math.max( 1, Math.ceil( tokensWrapperHeight / PROXY_INPUT_HEIGHT ) );\n\n\tif ( numRows > 1 ) {\n\t\t// For multiple rows, calculate the width of tokens in the last row\n\t\tconst lastRowWidth = calculateLastRowWidth( getLastRowTokens( tokens ) );\n\n\t\tproxyInput.style.height = `${ tokensWrapperHeight }px`;\n\t\tproxyInput.style.paddingTop = `${ tokensWrapperHeight - PROXY_INPUT_HEIGHT + TOKEN_GAP }px`;\n\t\tproxyInput.style.paddingLeft = lastRowWidth ? `${ lastRowWidth + ( TOKEN_GAP * 2 ) }px` : '';\n\t} else {\n\t\t// For single row, use the full width of tokens\n\t\tproxyInput.style.height = '';\n\t\tproxyInput.style.paddingTop = '';\n\t\tproxyInput.style.paddingLeft = `${ tokensWrapper.offsetWidth - TOKEN_GAP }px`;\n\t}\n}\n\n/**\n * Identify tokens in the last row of a multi-row token layout\n *\n * @param {NodeList} tokens All token elements\n * @return {Array} Array of tokens in the last row\n */\nfunction getLastRowTokens( tokens ) {\n\tif ( ! tokens.length ) {\n\t\treturn [];\n\t}\n\n\tconst tokensArray = Array.from( tokens );\n\tlet lastRowY = -1;\n\n\ttokensArray.forEach( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenBottom = tokenRect.bottom;\n\n\t\tif ( tokenBottom > lastRowY ) {\n\t\t\tlastRowY = tokenBottom;\n\t\t}\n\t} );\n\n\tconst threshold = TOKEN_GAP / 2;\n\treturn tokensArray.filter( token => {\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\treturn Math.abs( tokenRect.bottom - lastRowY ) <= threshold;\n\t} );\n}\n\n/**\n * Calculate the total width of tokens in the last row\n *\n * @param {Array} lastRowTokens Array of token elements in the last row\n * @return {number} Total width of tokens in the last row\n */\nfunction calculateLastRowWidth( lastRowTokens ) {\n\tif ( ! lastRowTokens.length ) {\n\t\treturn 0;\n\t}\n\n\tlet totalWidth = 0;\n\n\tlastRowTokens.forEach( token => {\n\t\ttotalWidth += token.offsetWidth;\n\t} );\n\n\ttotalWidth += ( lastRowTokens.length - 1 ) * TOKEN_GAP;\n\n\treturn totalWidth + TOKEN_GAP;\n}\n","/**\n * Token actions\n *\n * Core functions for token operations and management\n */\n\n/**\n * Internal dependencies\n */\nimport { CLASS_NAMES } from './constants';\nimport { adjustProxyInputStyle } from './proxy-input-style';\nimport { createTokenElement } from './token-elements';\n\n/**\n * Synchronize token display with the field value\n *\n * @param {string} value The field value\n * @param {HTMLElement} proxyInput The proxy input field\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function synchronizeTokensDisplay( value, proxyInput, tokensWrapper ) {\n\tif ( ! value || ! tokensWrapper || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\t// Clear existing tokens display and render new tokens\n\ttokensWrapper.innerHTML = '';\n\tparseTokens( value ).forEach( token => createTokenElement( token, tokensWrapper ) );\n\n\tadjustProxyInputStyle( proxyInput, tokensWrapper );\n\n\tproxyInput.focus();\n}\n\n/**\n * Add a new token to the field\n *\n * @param {string} tokenValue The token value to add\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {boolean} Whether a token was added\n */\nexport function addToken( tokenValue, field, proxyInput ) {\n\tif ( ! tokenValue || ! field || ! proxyInput ) {\n\t\treturn false;\n\t}\n\n\t// Get current tokens from field value\n\tconst tokens = parseTokens( field.value );\n\n\t// Skip duplicate tokens\n\tif ( tokens.includes( tokenValue ) ) {\n\t\tclearProxyInput( proxyInput );\n\t\treturn false;\n\t}\n\n\t// Add new token\n\ttokens.push( tokenValue );\n\tupdateFieldValue( field, tokens );\n\tclearProxyInput( proxyInput );\n\treturn true;\n}\n\n/**\n * Remove a specific token from the field\n *\n * @param {HTMLElement} token The token element to remove\n * @param {HTMLElement} field The original field\n * @param {HTMLElement} proxyInput The proxy input\n * @return {void}\n */\nexport function removeToken( token, field, proxyInput ) {\n\tif ( ! token || ! field || ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tconst value = token.querySelector( `.${ CLASS_NAMES.TOKEN_VALUE }` ).textContent;\n\n\t// Filter out the token to remove\n\tconst tokens = parseTokens( field.value ).filter( tokenValue => tokenValue !== value );\n\tupdateFieldValue( field, tokens );\n\n\t// Remove the token element from DOM\n\ttoken.remove();\n\n\tproxyInput.focus();\n}\n\n/**\n * Parse string input into an array of tokens\n *\n * @param {string} value Space-separated string\n * @return {string[]} Array of tokens\n */\nexport function parseTokens( value = '' ) {\n\tvalue = value.trim();\n\n\tif ( ! value ) {\n\t\treturn [];\n\t}\n\n\treturn value.split( /\\s+/ ).filter( Boolean );\n}\n\n/**\n * Update field value with tokens and trigger change event\n *\n * @param {HTMLElement} field The field to update\n * @param {string[]} tokens Array of token values\n * @return {void}\n */\nexport function updateFieldValue( field, tokens = [] ) {\n\tif ( ! field ) {\n\t\treturn;\n\t}\n\n\tfield.value = tokens.join( ' ' );\n\tjQuery( field ).trigger( 'change' );\n}\n\n/**\n * Clear proxy input and maintain focus\n *\n * @param {HTMLElement} proxyInput The proxy input field\n * @return {void}\n */\nexport function clearProxyInput( proxyInput ) {\n\tif ( ! proxyInput ) {\n\t\treturn;\n\t}\n\n\tproxyInput.value = '';\n\tproxyInput.focus();\n}\n","/**\n * Token elements\n *\n * Functions for creating token DOM elements\n */\n\n/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\n\nconst { span, svg, tag } = window.frmDom;\n\n/**\n * Create token container and input elements\n *\n * @param {HTMLElement} field Input field for tokenization\n * @return {HTMLElement|null} The container element or null if already initialized\n */\nexport function createTokenContainerElement( field ) {\n\t// Get the main container (.frm-with-right-icon) to work with Formidable's modal system\n\tconst container = field.closest( `.${ CLASS_NAMES.WITH_RIGHT_ICON }` );\n\n\tif ( container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` ) ) {\n\t\treturn null;\n\t}\n\n\tcontainer.classList.add( CLASS_NAMES.CONTAINER );\n\n\tconst tokensWrapper = span( {\n\t\tclassName: CLASS_NAMES.TOKENS_WRAPPER\n\t} );\n\n\tcontainer.insertBefore( tokensWrapper, container.firstChild );\n\n\tconst proxyInput = tag( 'input', {\n\t\tclassName: CLASS_NAMES.TOKEN_PROXY_INPUT,\n\t\tid: `${ field.id }-proxy-input`\n\t} );\n\n\tproxyInput.type = 'text';\n\n\t// Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system\n\tfield.parentNode.insertBefore( proxyInput, field.nextSibling );\n\tfield.classList.add( HIDDEN_CLASS );\n\n\treturn container;\n}\n\n/**\n * Create a single token element\n *\n * @param {string} value Token value\n * @param {HTMLElement} tokensWrapper Wrapper element for tokens\n * @return {void}\n */\nexport function createTokenElement( value, tokensWrapper ) {\n\tconst tokenElement = span( {\n\t\tclassName: CLASS_NAMES.TOKEN,\n\t\tchildren: [\n\t\t\tspan( {\n\t\t\t\ttext: value,\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_VALUE\n\t\t\t} ),\n\t\t\tspan( {\n\t\t\t\tclassName: CLASS_NAMES.TOKEN_REMOVE,\n\t\t\t\tchild: svg( { href: '#frm_close_icon' } )\n\t\t\t} )\n\t\t]\n\t} );\n\n\ttokensWrapper.appendChild( tokenElement );\n}\n","/**\n * Token Input Component\n *\n * Transforms space-separated values in a text input into selectable tokens\n */\n\n/**\n * Internal dependencies\n */\nimport { HOOKS } from 'core/constants';\nimport { CLASS_NAMES } from './constants';\nimport { createTokenContainerElement } from './token-elements';\nimport { synchronizeTokensDisplay } from './token-actions';\nimport { adjustAllProxyInputStyles } from './proxy-input-style';\nimport { addEventListeners } from './event-handlers';\n\n/**\n * Initialize all token input fields on the page\n *\n * @return {void}\n */\nfunction initTokenInputFields() {\n\tfindAndInitializeTokenFields();\n\n\t/**\n\t * Initialize for newly added fields\n\t *\n\t * @param {Event} event The frm_added_field event.\n\t * @param {HTMLElement} event.frmField The added field object being destructured from the event.\n\t */\n\tdocument.addEventListener( 'frm_added_field', ( { frmField } ) =>\n\t\tfindAndInitializeTokenFields( frmField.dataset.fid )\n\t);\n\n\t/**\n\t * Initialize for newly added fields via AJAX\n\t *\n\t * @param {Event} event The frm_ajax_loaded_field event.\n\t * @param {HTMLElement} event.frmFields The added field objects being destructured from the event.\n\t */\n\tdocument.addEventListener( 'frm_ajax_loaded_field', ( { frmFields } ) =>\n\t\tfrmFields.forEach( field => findAndInitializeTokenFields( field.id ) )\n\t);\n\n\t// Adjust styling for all token inputs when field settings are shown\n\twp.hooks.addAction( HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', adjustAllProxyInputStyles );\n}\n\n/**\n * Find all token input fields and initialize them\n *\n * @private\n * @param {string|number} fieldId The ID of the field to initialize\n * @return {void}\n */\nfunction findAndInitializeTokenFields( fieldId ) {\n\tconst container = fieldId ? document.getElementById( `frm-single-settings-${ fieldId }` ) : document.body;\n\tconst tokenInputFields = container.querySelectorAll( `.${ CLASS_NAMES.TOKEN_INPUT_FIELD }` );\n\tif ( ! tokenInputFields.length ) {\n\t\treturn;\n\t}\n\n\t// Track processed fields to prevent duplicate initialization\n\tconst processedFields = new Set();\n\ttokenInputFields.forEach( field => {\n\t\tif ( ! processedFields.has( field.id ) ) {\n\t\t\tsetupTokenInput( field );\n\t\t\tprocessedFields.add( field.id );\n\t\t}\n\t} );\n}\n\n/**\n * Set up a token input field with token container\n *\n * @private\n *\n * @param {HTMLElement} field Input field for tokenization\n */\nfunction setupTokenInput( field ) {\n\tconst container = createTokenContainerElement( field );\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst proxyInput = container.querySelector( `.${ CLASS_NAMES.TOKEN_PROXY_INPUT }` );\n\tconst tokensWrapper = container.querySelector( `.${ CLASS_NAMES.TOKENS_WRAPPER }` );\n\n\tsynchronizeTokensDisplay( field.value, proxyInput, tokensWrapper );\n\taddEventListeners( field, proxyInput, tokensWrapper );\n}\n\nexport { initTokenInputFields };\n","/**\n * Internal dependencies\n */\nimport { documentOn } from 'core/utils';\n\n/**\n * Setup unit input handlers\n *\n * @return {void}\n */\nexport function setupUnitInputHandlers() {\n\tdocumentOn( 'change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange );\n\tdocumentOn( 'change', '.frm-unit-input select', onUnitInputChange );\n}\n\n/**\n * Handle the change event for the unit input\n *\n * @private\n * @param {Event} event The event object.\n * @return {void}\n */\nfunction onUnitInputChange( event ) {\n\tconst unitInput = event.target.closest( '.frm-unit-input' );\n\tconst control = unitInput.querySelector( '.frm-unit-input-control' );\n\tconst unit = unitInput.querySelector( 'select' ).value;\n\n\t// Update input type when unit changes\n\tif ( event.target.matches( 'select' ) ) {\n\t\tcontrol.type = '' === unit ? 'text' : 'number';\n\t}\n\n\t// Update the actual field value\n\tconst inputValue = control.value.trim();\n\tunitInput.querySelector( 'input[type=\"hidden\"]' ).value = '' !== inputValue ? inputValue + unit : '';\n}\n\n","/**\n * Redirects to \"Add Fields\" tab when the \"Add Fields\" button is clicked.\n *\n * When users view the Field Options tab with no fields, they see an \"Add Fields\" button.\n * Clicking this button should take them to the \"Add Fields\" tab for field selection.\n */\n\n/**\n * Initializes the Add Fields button click handler.\n */\nconst initAddFieldsButtonHandler = () => {\n\tdocument.getElementById( 'frm-form-add-field' )?.addEventListener( 'click', event => {\n\t\tevent.preventDefault();\n\t\tdocument.querySelector( '.frm-settings-panel .frm-tabs-navs ul > li:first-child' )?.click();\n\t} );\n};\n\nexport default initAddFieldsButtonHandler;\n","export { default as initAddFieldsButtonHandler } from './add-fields-button-handler';\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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { initAddFieldsButtonHandler } from './events';\nimport {\n\tfrmRadioComponent,\n\tfrmSliderComponent,\n\tfrmTabsComponent,\n\tinitTokenInputFields,\n\tinitToggleGroupComponents,\n\tsetupUnitInputHandlers\n} from './components';\n\ndomReady( () => {\n\tnew frmRadioComponent();\n\tnew frmSliderComponent();\n\tnew frmTabsComponent();\n\tinitAddFieldsButtonHandler();\n\tinitTokenInputFields();\n\tinitToggleGroupComponents();\n\tsetupUnitInputHandlers();\n} );\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","frmTabsNavigator","wrapper","Element","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","parseInt","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","type","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","delay","setTimeout","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","state","_defineProperty","history","hasQueryParam","has","removeParamFromHistory","replaceState","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","frmRadioComponent","frmSliderComponent","frmTabsComponent","radioElements","observers","Map","_ref","frmField","discoverAndInitFieldRadios","fid","_ref2","frmFields","field","initRadio","initTrackerOnAccordionClick","fieldId","fieldContainer","getElementById","Error","initOnRadioChange","initVisibilityObserver","accordionitems","accordionitem","target","radioButtons","radio","onRadioChange","radioElement","_this4","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","_this5","observer","MutationObserver","attributes","attributeFilter","parent","i","clear","offset","tracker","left","frmDependentUpdaterComponent","sliderElements","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","valueChangeDebouncer","triggerValueChange","initOptions","options","parentWrapper","dragging","startX","translateX","maxValue","dependentUpdater","initSlidersPosition","initDraggable","cancelable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","fullValue","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","toLowerCase","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","option","max","innerText","_this10","NodeList","delta","min","_this11","userBaseFontSizeInput","inputValue","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","CLASS_NAMES","GROUP_TOGGLE","TOGGLE_BLOCK","DATA_ATTRIBUTES","GROUP_NAME","SHOW","DISABLE","ENABLE","initToggleGroupComponents","applyInitialState","addEventListeners","toggleGroups","toggleGroup","toggleButton","applyToggleState","handleToggleClick","_toggleGroup$closest","isChecked","showSelectors","normalizeSelector","disableSelectors","formElement","disabled","inlineModal","tabIndex","enableSelectors","currentToggleBlock","toggleBlock","selector","replace","CONTAINER","TOKENS_WRAPPER","TOKEN","TOKEN_VALUE","TOKEN_REMOVE","TOKEN_INPUT_FIELD","TOKEN_PROXY_INPUT","WITH_RIGHT_ICON","KEYS","SPACE","ENTER","COMMA","TAB","BACKSPACE","PROXY_INPUT_HEIGHT","TOKEN_GAP","addToken","removeToken","synchronizeTokensDisplay","adjustProxyInputStyle","proxyInput","tokensWrapper","jQuery","on","onProxyInputKeydown","trim","handleTokenRemoval","lastToken","removeButton","token","adjustAllProxyInputStyles","container","tokens","hasTokens","paddingLeft","paddingTop","height","tokensWrapperHeight","offsetHeight","numRows","lastRowWidth","calculateLastRowWidth","getLastRowTokens","tokensArray","lastRowY","tokenRect","tokenBottom","bottom","threshold","abs","lastRowTokens","totalWidth","createTokenElement","innerHTML","parseTokens","focus","tokenValue","clearProxyInput","updateFieldValue","Boolean","trigger","_window$frmDom","svg","tag","createTokenContainerElement","className","insertBefore","firstChild","parentNode","nextSibling","tokenElement","children","text","child","appendChild","initTokenInputFields","findAndInitializeTokenFields","tokenInputFields","processedFields","Set","setupTokenInput","setupUnitInputHandlers","onUnitInputChange","unitInput","control","matches","initAddFieldsButtonHandler","_document$getElementB","_document$querySelect","click","domReady"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable_admin.js b/js/formidable_admin.js index 5bd2a231a3..49cb2646c8 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -1 +1,10181 @@ -(()=>{function e(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||t(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&(e="",t=""):0===i.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().length&&(""!==e&&(e+=","),e+="#"+jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().attr("id")+" .frm_toggle_cf_opts"));var o=document.getElementById(i),a=jQuery(o);return a.fadeOut(300,(function(){var r;a.remove(),Di(),""!==t&&jQuery(t).hide(),""!==e&&jQuery(e+" a,"+e).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){li(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()})),void 0!==r&&(r=jQuery(r)).fadeOut(400,(function(){r.remove()})),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",i,o),!1}}function $(e,t){void 0===t&&(t=this),Ze(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var i=n.parentElement.className;if("string"==typeof i&&(i.indexOf("frm_email_icons")>-1||i.indexOf("frm_toggle")>-1))return void e.stopPropagation()}var o=r.children(".widget-inside");if(r.length&&o.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(o.html(''),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){o.html(e),ao(),Kn("#"+r.attr("id")),bo(o),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",o)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&-1!==t.className.indexOf("widget-action")||jQuery(t).closest(".start_divider").length<1||((o=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?o.slideDown("fast"):o.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Je(),!1}function V(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,i,o=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(o).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(i=jQuery(".frm_"+n+"_ajax")).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){i.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(o).show(),$i(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id="+jQuery('.frm_form_settings input[name="id"]').val()+"&t="+r.replace("#","")):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t="+r.replace("#","")))}}function U(e){var t,r;document.querySelectorAll(e).forEach((function(e){J(e),Array.from(e.children).forEach((function(e){return X(e,".frm-move")}));var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&J(t)})),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return x=t.clone().insertAfter(t),t.clone()},stop:function(e,t){x&&x.remove(),rn(t.item.attr("id").replace("frm_delete_field_","").replace("-"+t.item.data("optkey")+"_container","")),Di()}},jQuery(t).sortable(r)}function J(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:Y,tolerance:"pointer"})}function K(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!Qe(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach((function(e){return e.classList.remove("frm-over-droppable")})),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function Y(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var r={helper:Z,revert:"invalid",delay:10,start:ee,stop:te,drag:re,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function Z(e){var t,r=e.delegateTarget;if(Ee(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=B("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var i=r.getAttribute("data-ftype");if((t=(t=document.getElementById("frm-insert-fields").querySelector(".frm_t"+i)).cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t)return t.cloneNode(!0)}return d({className:"frmbutton"})}function ee(e,t){q.dragging=!0;var r,n=h;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),gr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach((function(e){[].slice.call(e.children).forEach((function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()}))})),Me(),Te(),R()}function te(){h.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function re(e,t){!function(e){v.scrollTop((function(t,r){var n=e.clientY,i=h.offsetHeight,o=e.clientY-h.offsetTop,a=o-i/2;return o>i-50&&n>5?r+.1*a:o<70&&n<130?r-Math.abs(.1*a):r}))}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),i=document.getElementById("frm_drag_placeholder");if(Qe(r,n,e)){i||(i=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var o,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY("+(o=t.helper,h.scrollTop-o.initialOffset+"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return i.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,i=jQuery(e.droppable);if($children=i.children().not(".edit_field_type_end_divider"),0===$children.length)i.prepend(n),t=0;else{var o=ie(i,r);if(o===$children.length){var a=jQuery($children.get(o-1));t=a.offset().top+a.outerHeight(),i.append(n);var l=i.children(".edit_field_type_end_divider");l.length&&i.append(l)}else t=jQuery($children.get(o)).offset().top,jQuery($children.get(o)).before(n)}t-=i.offset().top,n.style.top=t+"px"}({droppable:n,y:e.clientY,placeholder:i});i.style.top="",function(e){var t,r=e.x,n=e.placeholder,i=jQuery(e.droppable),o=ae(i);if(o.length){var a=function(e,t){var r,n,i,o,a=ae(e);for(o=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().left)){o=r,t>i+jQuery(n).outerWidth()/2&&(o=r+1);break}return o}(i,r);if(a===o.length){var l=jQuery(o.get(a-1));t=l.offset().left+l.outerWidth(),i.append(n)}else t=jQuery(o.get(a)).offset().left,jQuery(o.get(a)).before(n),t-=0===a?4:8;t-=i.offset().left,n.style.left=t+"px"}}({droppable:n,x:e.clientX,placeholder:i})}else i&&i.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void y();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var i=t.helper.parent(),o=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(ge(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r=e.replace("|","-")+"_"+we(),n=s("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),i=jQuery(n),o=fe(jQuery(t)),a=ue(o),l=me(o);t.parentNode.insertBefore(n,t),t.remove(),le(i);var d=0;"summary"===e&&(d=jQuery(".frmbutton_loadingnow#"+r).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:pe(e,l,a,d),success:function(t){ye(t,i);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:je})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(n.parentElement));var l=o?parseInt(o.closest(".edit_field_type_divider").getAttribute("data-fid")):0,d=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var c=i.length?ae(i):[];!function(e,t){var r;e.length&&(t.length?le(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(i,c),function(e,t){0===t.length&&1===ae(jQuery(e.parentNode)).length||le(jQuery(e))}(r,c),l!==d&&_e(jQuery(r),o),y()}}function ie(e,t){var r,n,i,o,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(o=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().top)){o=r,t>i+jQuery(n).outerHeight()/2&&(o=r+1);break}return o}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach((function(e){e.childNodes.forEach((function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))}))})),xn(),document.querySelectorAll(".edit_field_type_end_divider").forEach((function(e){return e.parentNode.appendChild(e)})),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach((function(e){return!e.children.length&&e.remove()})),Qn();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ae(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach((function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}})),t):t}function le(e,t){var r,n,i,o;void 0===t&&(t="even"),r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),n=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"],"even"===t&&5!==n?r.each(ce(i,Vt(n))):"clear"===t?r.each(ce(i,"")):(o=-1!==["left","right","middle","even"].indexOf(t)?function(e){return Wt(n,t,e)}:function(e){return ar(t[e])},r.each(ce(i,o))),se(e.parent(),r.length)}function se(e,t){var r,n;if(void 0!==e.offset()){if(r=t>=2,null===(n=document.getElementById("frm_field_group_controls"))){if(!r)return;(n=d()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t,r;(t=document.createElement("span")).innerHTML='';var n=B("Set Row Layout","formidable");de(t,n),zt(t,n),(r=document.createElement("span")).innerHTML='',r.classList.add("frm-move");var i=B("Move Field Group","formidable");de(r,i),zt(r,i),e.innerHTML="",e.appendChild(t),e.appendChild(r),e.appendChild(function(){var e=c({className:"dropdown"}),t=f({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[c({child:u({href:"#frm_thick_more_vert_icon"})}),c({className:"screen-reader-text",text:B("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:B("More Options","formidable"),"data-toggle":"dropdown","data-container":"body"}),zt(t,B("More Options","formidable")),e.appendChild(t);var r=d({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.appendChild(r),e}())}(n),D.appendChild(n)}e.append(n),n.style.display=r?"block":"none"}}function de(e,t){e.setAttribute("data-toggle","tooltip"),e.setAttribute("data-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",(function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()}))}function ce(e,t){return function(r){var n,i,o,a,l,s,d;for(n="function"==typeof t?t(r):t,i=e.length,l=!1,o=0;ot.childElementCount-1:s<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(a)return!(t.classList.contains("start_divider")||!xe(t.parentElement)&&(!xe(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));if(t.classList.contains("start_divider")&&(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)&&t.closest(".repeat_section"))return!1;if(!t.classList.contains("start_divider")){if(n=ae(jQuery(t)),i=jQuery(e),!(n.length<6)&&(n.length>6||(o=i.attr("data-fid"),1!==jQuery(n).filter('[data-fid="'+o+'"]').length)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),i=r.contains("frm_thidden"),o=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||i||o||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!o):!(ke(t)||i||n||l)}(e,t):function(e,t){if(Ee(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(ke(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!r&&!n}(e,t)}(e,t)}function xe(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Ee(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function ke(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Le(e){var t=document.getElementById(e),r=jQuery(t),n=[],i=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)},o=t;i(o);for(var a=Se(o);a&&n.length<15;)i(a),o=a,a=Se(a);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:k,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,i;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))jQuery("#frm_field_id_"+n).replaceWith(e[n]),U("#frm_field_id_"+n+".edit_field_type_divider ul.frm_sorting"),X(document.getElementById("frm_field_id_"+n));((i=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(i=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Le(i.attr("id")),ao(),Tr(),Be();var o=new Event("frm_ajax_loaded_field",{bubbles:!1});o.frmFields=r.map((function(e){return JSON.parse(e)})),document.dispatchEvent(o)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Se(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton").attr("id");if(!ge(t)){var r=0;"summary"===t&&(r=j.children('li[data-type="break"]').length>0?1:0);var n=k;return jQuery.ajax({type:"POST",url:ajaxurl,data:pe(t,0,n,r),success:function(e){Ie(e);var r=he(e);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:r,fieldType:t,form_id:n})},error:je}),!1}}function Ie(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=$e(e),r=j[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):j.append(t),Ve(e,!0),t.each((function(){J(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")}))}function Be(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");j.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r',i.appendChild(document.createTextNode(" ")),i.appendChild(o),n.appendChild(i),e.appendChild(n)}))}(t,!0===e),(r=jQuery(t)).offset().left>jQuery(window).width()-r.outerWidth()&&(t.style.left=-r.outerWidth()+"px");var n=t.firstElementChild.querySelector("a");n&&n.focus()}}),0)}function Pe(){He(!0)}function ze(e){var t=e.target.closest(".frm-section-collapsed");t&&("show"===e.type?t.style.zIndex=3:t.style.zIndex=1)}function Re(e){var t={class:"frm_delete",icon:"frm_delete_icon"};return t.label=B(e?"Delete Group":"Delete","formidable"),t}function Ge(e){var t={class:"frm_clone",icon:"frm_clone_icon"};return t.label=B(e?"Duplicate Group":"Duplicate","formidable"),t}function $e(e){var t=d();"string"==typeof e?t.innerHTML=e:t.appendChild(e);var r=jQuery();return Array.from(t.children).forEach((function(e){r=r.add(jQuery("
                      • ").addClass("frm_field_box").html(jQuery("
                          ").addClass("frm_grid_container frm_sorting").append(e)))})),r}function We(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),r=s("li",{className:"frm_field_box",child:t});e.replaceWith(r),t.appendChild(e),J(t),X(r,".frm-move")}function Ve(e,t){var r,n,i=/id="(\S+)"/.exec(e),o=document.getElementById(i[1]),a="#"+i[1]+".edit_field_type_divider ul.frm_sorting.start_divider",l=jQuery(a),s=o.getAttribute("data-type");r=e,(n=d()).innerHTML=r,n.querySelectorAll(".form-field").forEach(Ue);var c,f,u=!1;if(Di(),U(a),"quantity"===s&&function(e){var t=e.getAttribute("data-fid"),r=document.getElementById("field_options[product_field_"+t+"]");null!==r&&(rt(r),ni(document.getElementById("frm-single-settings-"+t)))}(o),"product"!==s&&"quantity"!==s||Be(),l.length)l.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var m=jQuery(o).closest("ul.frm_sorting.start_divider");m.length&&(En(m),u=!0)}if(-1!==e.indexOf("frm-collapse-page")&&Tr(),f="frm-newly-added",(c=o).classList?c.classList.add(f):c.className+=" "+f,setTimeout((function(){o.classList.remove("frm-newly-added")}),1e3),t){var _=o.getBoundingClientRect(),p=document.getElementById("post-body-content");_.top>=0&&_.left>=0&&_.right<=(window.innerWidth||document.documentElement.clientWidth)&&_.bottom<=(window.innerHeight||document.documentElement.clientHeight)||p.scroll({top:p.scrollHeight,left:0,behavior:"smooth"}),!1===u&&En(l)}Ke(),ao(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable");var g=new Event("frm_added_field",{bubbles:!1});g.frmField=o,g.frmSection=a,g.frmType=s,g.frmToggles=u,document.dispatchEvent(g)}function Ue(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=","+e.dataset.fid))}}function Je(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||gr()}function Ye(){var e=this.value,t=function(e){var t,r=[],n=e.split(""),i=n.length,o=["{","[","("],l={"}":"{",")":"(","]":"["},s=[];for(t=0;t0||s.length>0?a.unmatched_parens+"\n\n":""}(e);t+=function(e,t){var r=function(e,t){var r="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(r=a.text_shortcodes+"\n\n"),r}(e,t);return r+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+=a.view_shortcodes+"\n\n"),t}(e)}(e,this),""!==t&&H(e+"\n\n"+t)}function Xe(e,t){for(var r,n,i,o=!1,a=0;a"+l[t].fieldName+"")):(r=r?" checked":"",i.push('"));e.innerHTML=i.join("")}function nt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(n.innerHTML=mn(r),"TEXTAREA"===n.nodeName&&n.classList.contains("wp-editor-area")&&jQuery(n).trigger("change"),n.classList.contains("frm_primary_label")&&"break"===n.nextElementSibling.getAttribute("data-ftype")&&(n.nextElementSibling.querySelector(".frm_button_submit").textContent=r)))}function at(e){var t=parseFloat(e.getAttribute("max")),r=parseFloat(e.getAttribute("min"));return(t-r)/2+r}function lt(){var e,t=this.getAttribute("data-fid"),r="";["field_options_max_","frm_format_"].forEach((function(e){var n=document.getElementById(e+t);n&&(r+=n.value)})),"text"===(e=document.getElementsByName("field_options[type_"+t+"]")[0]).options[e.selectedIndex].value&&dt(""!==r,".frm_invalid_msg"+t)}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,r=jQuery("#field_label_"+e+" .frm_required");if(dt(t,".frm_required_details"+e),t){var n=jQuery('input[name="field_options[required_indicator_'+e+']"]');""===n.val()&&n.val("*"),r.removeClass("frm_hidden")}else r.addClass("frm_hidden")}function dt(e,t){if($msg=jQuery(t),e)$msg.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=$msg.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not("+t+"):visible").length;r.css("display",""),0===n&&$msg.closest(".frm_validation_msg").fadeOut("fast")}}function ct(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details"+e);if(this.checked)t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast"),$unqDetail=jQuery(".frm_unique_details"+e+" input"),""===$unqDetail.val()&&$unqDetail.val(a.default_unique);else{var r=t.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not(.frm_unique_details"+e+"):visible").length;r.css("display",""),0===n&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ft(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),r=jQuery(document.getElementById("frm_field_id_"+e));if(dt(""!==t,".frm_conf_details"+e),""!==t){var n=jQuery(".frm_validation_box .frm_conf_details"+e+" input");""===n.val()&&n.val(a.default_conf),function(e){var t=document.getElementsByName("field_options[type_"+e+"]")[0].value;ut(document.getElementById("field_description_"+e),"field_options[description_"+e+"]",a["enter_"+t]),ut(document.getElementById("conf_field_description_"+e),"field_options[conf_desc_"+e+"]",a["confirm_"+t])}(e),"inline"===t?r.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&r.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-"+e).removeClass("frm_hidden")}else jQuery(".frm-conf-box-"+e).addClass("frm_hidden"),setTimeout((function(){r.removeClass("frm_conf_inline frm_conf_below")}),200)}function ut(e,t,r){e.innerHTML===a.desc&&(e.innerHTML=r,document.getElementsByName(t)[0].value=r)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t=jQuery(this).closest(".frm-single-settings").data("fid"),r=jQuery("#frm_field_"+t+"_opts .frm_option_template").prop("outerHTML"),n=jQuery(this).data("opttype"),i=0,o=function(e){for(var t=0,r=0,n=jQuery("#frm_field_"+e+"_opts li"),i=0;ti||"000"===i)&&(i=r)}return i}(t);if("000"!==o&&(i=o+1),"other"===n){document.getElementById("other_input_"+t).value=1;var a=jQuery(this).data("ftype");"radio"!==a&&"select"!==a||jQuery(this).fadeOut("slow");var l={action:"frm_add_field_option",field_id:t,opt_key:i,opt_type:n,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,l,(function(e){jQuery(document.getElementById("frm_field_"+t+"_opts")).append(e),rn(t)}))}else r=(r=(r=(r=(r=r.replace(new RegExp('optkey="000"',"g"),'optkey="'+i+'"')).replace(new RegExp("-000_","g"),"-"+i+"_")).replace(new RegExp('-000"',"g"),"-"+i+'"')).replace(new RegExp("\\[000\\]","g"),"["+i+"]")).replace("frm_hidden frm_option_template",""),Po(t,r={newOption:r}),this.closest(".frm_single_option").after(r.newOption),rn(t);null===(e=this.closest(".frm_sortable_field_opts"))||void 0===e||null===(e=e.querySelectorAll(".frm_remove_tag.frm_disabled"))||void 0===e||e.forEach((function(e){return e.classList.remove("frm_disabled")})),Di()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var r=jQuery(".frm_multiple_cont_"+e);"select"===t?r.fadeIn("fast"):r.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");To(jQuery(".field_"+e+"_option_key")),jQuery(".field_"+e+"_option").toggleClass("frm_with_key")}function ht(){var e,t,r=jQuery(this).closest(".frm-single-settings"),n=r.data("fid"),i=document.getElementById("frm_field_id_"+n);wt(jQuery(this)),To(jQuery(".field_"+n+"_image_id")),To(jQuery(".frm_toggle_image_options_"+n)),To(jQuery(".frm_image_size_"+n)),To(jQuery(".frm_alignment_"+n)),To(jQuery(".frm-add-other#frm_add_field_"+n)),(e=gn(n))?(bt(n,"inline"),vt(i),t=tn(n),i.classList.add("frm_image_options"),i.classList.add("frm_image_size_"+t),r.find(".frm-bulk-edit-link").hide()):(i.classList.remove("frm_image_options"),vt(i),bt(n,"block"),r.find(".frm-bulk-edit-link").show()),wp.hooks.doAction("frm_image_options_toggled",r[0],e)}function vt(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_"+e).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);Qt(),gn(e)&&(vt(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_"+tn(e)))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_"+t+"_option").trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t=e.target.closest(".frm_image_preview_wrapper");e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",(function(){var e=r.state().get("selection").first().toJSON(),n=t.querySelector("img");n.setAttribute("src",e.url),n.classList.remove("frm_hidden"),n.removeAttribute("srcset"),t.querySelector(".frm_image_preview_frame").style.display="block",t.querySelector(".frm_image_preview_title").textContent=e.filename,t.querySelector(".frm_choose_image_box").style.display="none";var i=jQuery(t);i.siblings('input[name*="[label]"]').data("frmimgurl",e.url),i.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0})),r.open()}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function Lt(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout((function(){e.focus()}),100)}function St(e){var t=e.target,r=t.closest(".frm_warning_style");jQuery(r).fadeOut(400,(function(){return r.remove()}));var n=t.dataset.action,i=new FormData;g(n,i)}function At(e){e.preventDefault()}function It(){var e,t=this.parentNode,r=t.parentNode,n=r.querySelectorAll("li:not(.frm_hidden)");2===n.length&&(null===(e=Array.from(n).find((function(e){return e!==t})).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i,o=this.getAttribute("data-fid");jQuery(t).fadeOut("fast",(function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(t).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(i=document.getElementById("other_input_"+o))&&(i.value=0),jQuery("#other_button_"+o).fadeIn("fast"))})),Di()}function Bt(){var e,t,r,n;(e=jQuery(this)).is(":checked")&&(t=function(){setTimeout((function(){e.prop("checked",!1)}),0)},r=function(){e.off("mouseup",n)},n=function(){t(),r()},e.on("mouseup",n),e.one("mouseout",r))}function Ct(){this.value===a.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function qt(e){return C(B("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=a.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,r=t.parentNode,n=jQuery(this).closest("li.form-field"),i=n.data("fid");if("divider"===n.data("ftype")){var o=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;o.forEach((function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)})),l&&(e=qt(++l))}return r.classList.contains("frm-section-collapsed")||r.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=a.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",i),Te(),F(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e,t;null!==(e=document.querySelector(".frm-field-group-hover-target"))&&(e.classList.add("frm-selected-field-group"),(t=document.createElement("div")).classList.add("frm-delete-field-groups","frm_hidden"),document.body.appendChild(t),t.click())}function Dt(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_"+we(),r=document.createTextNode("");We(r);var n=jQuery(r).closest("li").get(0);n.classList.add("frm_hidden");var i=n.querySelector("ul");i.id=t,jQuery(e.closest("li.frm_field_box")).after(n);var o=ae(jQuery(e)),a=[],l=[],s=o.length,d={},c=0;jQuery(n).on("frm_added_duplicated_field_to_row",(function(e,t){if(d[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++c)){var r=jQuery(i),o=ae(r);l.forEach((function(e){e.remove()}));for(var f=0;f0&&ir(Vt(t)))&&l>=12&&(l=Math.floor(12/t)),s=0;s',""),t);e.prepend(r),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",(function(){mr(document.getElementById("frm-field-group-message"))}))}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var r=e.ctrlKey||e.metaKey,n=e.shiftKey,i=t.classList.contains("frm-selected-field-group"),o=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=_r();if(t){var r=t.closest("ul");if(r&&1===ae(jQuery(r)).length)return r.classList.add("frm-selected-field-group"),jQuery(r)}return jQuery()}(),a=o.length;if(r||n){var l=_r();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),r){if(i)return--a,t.classList.remove("frm-selected-field-group"),void pr(a);++a}else n&&!i&&(++a,function(e,t){var r,n,i=t.closest(".edit_field_type_divider");if(i&&(r=i.closest("ul").closest(".frm_field_box.ui-draggable")),e.parent().index()=2||1===e&&ae(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e,t,r,n,i;if(null!==(e=document.getElementById("frm_field_multiselect_popup")))return e.classList.toggle("frm-unmergable",!hr()),e;(e=d()).id="frm_field_multiselect_popup",hr()||e.classList.add("frm-unmergable"),(t=d()).classList.add("frm-merge-fields-into-row"),t.textContent=B("Merge into row","formidable"),(r=document.createElement("a")).style.marginLeft="5px",r.classList.add("frm_icon_font","frm_arrowdown6_icon"),r.setAttribute("href","#"),t.appendChild(r),e.appendChild(t),(n=d()).classList.add("frm-multiselect-popup-separator"),e.appendChild(n),(i=d()).classList.add("frm-delete-field-groups"),i.appendChild(Rt("frm_trash_svg")),e.appendChild(i),document.getElementById("post-body-content").appendChild(e),jQuery(e).hide().fadeIn()}():yr(),Me()}function gr(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",gr),yr()}function yr(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function hr(){var e,t,r,n,i;if(1===(r=(e=document.querySelectorAll(".frm-selected-field-group")).length))return!1;for(t=0,n=0;n6)return!1}return!0}function vr(e){var t;null===e.originalEvent.target.closest("#frm_field_group_popup")&&(e.originalEvent.target.classList.contains("frm-custom-field-group-layout")||(t=Pt(br(),document.querySelector(".frm-selected-field-group").firstChild),this.appendChild(t)))}function br(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each((function(){e+=ae(jQuery(this)).length})),e}function jr(){var e,t,r,n;n=[],jQuery(".frm-selected-field-group > li.form-field").each((function(){n.push(this.dataset.fid)})),t=function(e){return function(t){t.preventDefault(),function(e){e.forEach((function(e){Qr(e)}))}(e)}}(e=n),null!==(r=document.getElementById("frm_field_multiselect_popup"))&&r.remove(),this.setAttribute("data-frmverify",qt(e.length)),F(this);var i=document.getElementById("frm-confirmed-click");null==i||i.removeAttribute("data-deletefield"),jQuery(i).on("click",t),jQuery("#frm_confirm_modal").one("dialogclose",(function(){jQuery(i).off("click",t)}))}function wr(){Qr(this.getAttribute("data-deletefield"))}function Qr(e){var t=jQuery("#frm_field_id_"+e);xr(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each((function(){xr(this.getAttribute("data-fid"))})),xn()}function xr(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,r=jQuery(document.getElementById("frm_field_id_"+e)),n=jQuery("#frm-single-settings-"+e);n.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach((function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").appendChild(e)}))}(n),n.remove(),r.fadeOut("slow",(function(){var e,t=r.closest(".start_divider"),n=r.data("type"),i=r.siblings("li.form-field");if(i.length||(r.is(".edit_field_type_end_divider")?i.length=r.closest("li.form-field").siblings():e=r.closest("ul.frm_sorting").parent()),r.remove(),"break"===n?Tr():"product"===n&&(Be(),nt()),i.length?le(i.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(j.get(0).childElementCount>1)return!1;var e=j.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var o=document.getElementById("frm_form_editor_container");o.classList.remove("frm-has-fields"),o.classList.add("frm-empty-fields")}else t.length&&En(t);R()})),r.length&&wp.hooks.doAction("frm_after_delete_field",r[0])}})}function Er(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_logic_row_"+e).querySelectorAll(".frm_logic_row");return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_logic_row",form_id:t,field_id:e,nonce:frmGlobal.nonce,meta_name:kr(r,"frm_logic_"+e+"_"),fields:tt()},success:function(t){jQuery(document.getElementById("logic_"+e)).fadeOut("fast",(function(){var r=document.getElementById("frm_logic_row_"+e);r.insertAdjacentHTML("beforeend",t);var n=r.querySelector(".frm_logic_row:last-child .frm-logic-rule-text");n&&(n.textContent=r.dataset.ruleText);var i=r.closest(".frm_logic_rows");i.style.height="auto",jQuery(i).fadeIn("fast")}))}}),!1}function kr(e,t,r){return e.length?parseInt(e[e.length-1].id.replace(t,""),10)+1:void 0!==r?r:0}function Lr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_watch_lookup_block_"+e).children;return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_watch_lookup_row",form_id:t,field_id:e,row_key:kr(r,"frm_watch_lookup_"+e+"_"),nonce:frmGlobal.nonce},success:function(t){var r,n=jQuery(document.getElementById("frm_watch_lookup_block_"+e));n.append(t),n.fadeIn("slow"),null===(r=document.getElementById("frm_watch_lookup_label_".concat(e)))||void 0===r||r.classList.remove("frm-force-hidden")}}),!1}function Sr(e){var t,r,n=jQuery(e).closest(".frm-single-settings").attr("data-fid"),i=jQuery(e).closest("ul").get(0).querySelectorAll(".field_"+n+"_option");for(t in i)if((r=i[t]).id!==e.id&&r.value===e.value&&"true"!==r.getAttribute("data-duplicate"))return!0;return!1}function Ar(){var e,t;null===this.getAttribute("data-value-on-load")&&(this.setAttribute("data-value-on-load",this.value),t=jQuery(this).closest(".frm-single-settings").attr("data-fid"),(e=document.createElement("input")).value=this.value,e.setAttribute("type","hidden"),e.setAttribute("name","optionmap["+t+"]["+this.value+"]"),this.parentNode.appendChild(e),void 0===S[t]&&(S[t]={}),S[t][this.value]=e),"true"===this.getAttribute("data-duplicate")&&(this.removeAttribute("data-duplicate"),Sr(this))?this.setAttribute("data-value-on-focus",this.getAttribute("data-value-on-load")):""===this.value&&a.new_option===this.getAttribute("data-value-on-focus")||this.setAttribute("data-value-on-focus",this.value)}function Ir(e){var t,r=e.closest(".frm_single_option");return e.parentElement.classList.contains("frm_single_option")?{newValue:r.querySelector('.frm_option_key input[type="text"]').value,newLabel:t=e.value}:(t=r.querySelector('input[type="text"]').value,{newValue:e.value,newLabel:t})}function Br(){var e,t,r,n,i,o,a,l,s,d,c,f,u=function(e){var t=function(e){var t,r,n=null!==(t=null===(r=e.closest(".frm-single-settings").querySelector(".frm_toggle_sep_values"))||void 0===r?void 0:r.checked)&&void 0!==t&&t,i=e.closest(".frm_single_option");return n&&e.parentElement.classList.contains("frm_single_option")?{oldValue:i.querySelector('.frm_option_key input[type="text"]').getAttribute("data-value-on-focus"),oldLabel:e.getAttribute("data-value-on-focus")}:{oldValue:e.getAttribute("data-value-on-focus"),oldLabel:i.querySelector('input[type="text"]').getAttribute("data-value-on-focus")}}(e),r=t.oldValue,n=t.oldLabel,i=Ir(e);return{oldValue:r,oldLabel:n,newValue:i.newValue,newLabel:i.newLabel}}(this),m=u.oldValue,_=u.oldLabel,p=u.newValue,g=u.newLabel;if(m!==p||_!==g){var y=this.closest(".frm-single-settings");if(t=y.getAttribute("data-fid"),e=this.getAttribute("data-value-on-load"),Sr(this))return this.setAttribute("data-duplicate","true"),void(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=e));for(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=p),s=[],rows=D.querySelectorAll(".frm_logic_row"),o=rows.length,a=0;a1)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(H(a.repeat_limit_min),this.value="")}function Kr(){var e=this.value;""!==e&&(e<1||e>200)&&(H(a.checkbox_limit),this.value="")}function Yr(e,t){jQuery(e).closest(".frm_field_box").find(".frm_"+t+"_form_row .frm_repeat_label").text(e.value)}function Xr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,r=document.getElementById("frm_show_selected_fields_"+e),n=document.getElementById("frm_show_selected_forms_"+e);jQuery(n).find("select").val(""),"form"===t?(n.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.removeChild(e.firstChild)}(r)):(r.style.display="none",n.style.display="none",wn(t,e))}function Zr(){var e,t;(e=en(this))&&(t=jQuery(this).closest(".frm_single_option"),function(e,t,r){var n,i,o,a,l,s,c=r.data("optkey"),f=pn(e),u=jQuery('label[for="field_'+t+"-"+c+'"]'),m="field_options[options_"+e+"]["+c+"]",_=jQuery('input[name="'+m+'[label]"]');if(u.length<1)return rn(e),void((o=r.find('input[name^="default_value_"]')).is(":checked")&&_.length>0&&jQuery('select[name^="item_meta['+e+']"]').val(_.val()));if(a=u.children("input"),n=_.length<1?(_=jQuery('input[name="'+m+'"]')).val():f?jQuery('input[name="'+m+'[value]"]').val():_.val(),!(_.length<1)){if(i=u[0].childNodes,gn(e))l=function(e,t,r){var n,i,o;return(n=e.find("img"))&&(i=n.attr("src")),o=yn(t),fn(t),_n(r.val(),o,i)}(r,e,_),(s=u.find(".frm_image_option_container")).length>0?s.replaceWith(l):(i[i.length-1].nodeValue="",u.append(l));else{var p=!1;i.forEach((function(t,r){if(!1===p)"INPUT"===t.tagName&&(p=r);else if(r===p+1){var n="";!function(e){var t=document.getElementsByName("field_options[image_options_"+e+"]"),r=Array.from(t).find((function(e){return e.checked&&"buttons"===e.value}));return void 0!==r}(e)?t.nodeValue=" "+_.val():(n=d({className:"frm_label_button_container",text:" "+_.val()}),u[0].replaceChild(n,t))}else u[0].removeChild(t)}))}a.val(n),o=r.find('input[name^="default_value_"]'),a.prop("checked",!!o.is(":checked"))}}(e.fieldId,e.fieldKey,t))}function en(e){var t;return!!(t=jQuery(e).closest(".frm_sortable_field_opts")).length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function tn(e){var t,r=document.getElementById("field_options_image_size_"+e),n="";return null!==r&&""!==(t=r.value)&&(n=t),n}function rn(e){var t,r,n,i,o,a=jQuery('[name^="item_meta['+e+']"]');if(!(a.length<1)){if(a.is("select"))null!==(i=document.getElementById("frm_placeholder_"+e))&&""===i.value?sn(a[0],{sourceID:e}):sn(a[0],{sourceID:e,placeholder:i.value});else{r=cn(e),jQuery("#field_"+e+"_inner_container > .frm_form_fields").html(""),o=en(jQuery("#frm_delete_field_"+e+"-000_container"));var l=jQuery("#field_"+e+"_inner_container > .frm_form_fields"),s=gn(e),d=s?tn(e):"",c=s?"frm_image_option frm_image_"+d+" ":"",f=Fo(e);for(n="hidden"===a.attr("type")?a.data("field-type"):a.attr("type"),t=0;t=0;a--){var u;l=d[a];var m=null===(u=document.getElementById("frm_field_"+e+"_opts").querySelector('.frm_option_key input[type="text"]'))||void 0===u?void 0:u.value;m||(m=l),s=i.querySelector('option[value="'+m+'"]');var _=nn(e,l),p=_.newValue,g=_.newLabel,y=document.querySelectorAll("#frm_field_"+e+"_opts input[data-value-on-focus]"),h=Array.from(y).find((function(e){return e.value===l}));if(h){var v=h.dataset.valueOnFocus;if(v&&i.querySelector('option[value="'+v+'"]'))continue}an(i,s,p,g)}null!==(s=i.querySelector('option[value=""]'))&&i.prepend(s)}}function an(e,t,r,n){null!==t||e.querySelector('option[value="'+r+'"]')||((t=frmDom.tag("option",{text:n})).value=r),e.prepend(t)}function ln(e,t,r,n,i,o){var a,l="",s=-1!==t.key.indexOf("other"),d="field_"+n+"-"+t.key,c="scale"===e?"radio":e;return a='',this.getSingle=function(){return""!==(l=wp.hooks.applyFilters("frm_admin.build_single_option_template",l,{opt:t,type:e,fieldId:r,classes:o,id:d}))?l:'
                          "+(s?a:"")+"
                          "},this.getSingle()}function sn(e,t){if(null!==e){var r=t.sourceID,n=t.placeholder,i=Fo(r),o=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=cn(r),l=void 0!==n,s=0;s0||d[t].name.indexOf("[value]")>0||d[t].name.indexOf("[image]")>0||d[t].name.indexOf("[price]")>0||(i=r=d[t].value,o=d[t].name.replace("field_options[options_"+e+"][","").replace("[label]","").replace("]",""),m&&(n=d[t].name.replace("[label]","[value]"),r=jQuery('input[name="'+n+'"]').val()),u&&(i=_n(i,f,un(d[t]),fn(e))),a={saved:r,label:i=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",i,e,d[t],u),checked:(l=d[t].id,field=jQuery("#"+l),0!==field.length&&(checkbox=field.siblings("input[type=checkbox]"),checkbox.length&&checkbox.prop("checked"))),key:o},c&&(n=d[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'+n+'"]').val()),s.push(a));return s}function fn(e){var t=document.getElementById("frm-single-settings-"+e);return null===t?"radio":t.classList.contains("frm-type-checkbox")?"checkbox":"radio"}function un(e){var t,r=jQuery(e).siblings(".frm_image_preview_wrapper");return r.length&&(t=r.find("img")).length?t.attr("src"):""}function mn(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce((function(e,t){var r=frmDom.cleanNode(t);return"#text"===r.nodeName?e+r.textContent:e+r.outerHTML}),"");return t!==e?mn(t):t}function _n(e,t,r,n){var i,o,l,c=e;return c=mn(c),r?o=m({src:r,alt:c}):(o=d({className:"frm_empty_url"})).innerHTML=a.image_placeholder_icon,i=t?" frm_label_with_image":"",(l=s("span",{className:"frm_text_label_for_image_inner"})).innerHTML=c,s("span",{className:"frm_image_option_container"+i,children:[o,s("span",{className:"frm_text_label_for_image",child:l})]})}function pn(e){return hn("separate_value_"+e)}function gn(e){for(var t=!1,r=document.getElementsByName("field_options[image_options_"+e+"]"),n=0;n=0&&(r.splice(t,1),e.val(r),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function An(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function In(){jQuery(".frm-hide-empty").each((function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()}))}function Bn(e){e.preventDefault(),function(e,t,r){var n=document.getElementById(e.getAttribute("data-open")),i=jQuery(e).closest("p,ul"),o=void 0!==t;if(i.hasClass("frm-open"))i.removeClass("frm-open"),n.classList.add("frm_hidden");else{if(o||(t=Ri(e)),null!==t){if(!o){var a=r.key;"Enter"!==a&&" "!==a&&t.focus()}i.after(n),n.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===n.id.indexOf("frm-calc-box")&&Ze(n,!0)}i.addClass("frm-open"),n.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",n,e)}}(this,void 0,e)}function Cn(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'+this.parentNode.id+'"]').closest(".frm-open").removeClass("frm-open")}function qn(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")}))}function Nn(){var e,t,r,n,i,o,a,l=this.getAttribute("data-frmchange").split(",");for(e=0;e',r)),o.innerHTML=c,e.dataset.upsellImage&&o.appendChild(m({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),a.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,a),s.style.display="none",i.style.display=_,l.style.display="block"===_?"inline-block":_,o.style.display=u,a.style.display="block"===f?"inline-block":f}function Kn(e){void 0===e&&(e=""),function(e){var t,r=jQuery(e+" :not(.frm_has_shortcodes) .frm_not_email_message, "+e+" :not(.frm_has_shortcodes) .frm_not_email_to, "+e+" :not(.frm_has_shortcodes) .frm_not_email_subject");for(t=0;t').before('')}function Yn(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery("."+e+"_action_box").hide(),"redirect"===t?jQuery("."+e+"_action_redirect_box."+e+"_action_box").fadeIn("slow"):"page"===t?jQuery("."+e+"_action_page_box."+e+"_action_box").fadeIn("slow"):jQuery("."+e+"_action_message_box."+e+"_action_box").fadeIn("slow")}function Xn(e){if(m=e.target,p=jQuery(m),g=p.closest(".frm_form_action_settings"),(y=g.find(".widget-inside")).find("p, div, table").length||((_=g.find(".widget-top")).on("frm-action-loaded",(function(){p.trigger("click"),g.removeClass("open"),y.hide()})),_.trigger("click"),0)){var t=e.target.closest(".frm_form_action_settings"),r=t.querySelectorAll(".wp-editor-area");r.length&&r.forEach((function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)}));var n=jQuery(t).clone(),i=n.attr("id").replace("frm_form_action_",""),o=Zn(i);n.find(".frm_action_id, .frm-btn-group").remove(),n.find('input[name$="['+i+'][ID]"]').val(""),n.find(".widget-inside").hide(),n.find("input[type=text], textarea, input[type=number]").prop("defaultValue",(function(){return this.value})),n.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",(function(){return this.checked}));var a=new RegExp("\\["+i+"\\]","g"),l=new RegExp("_"+i+'"',"g"),s=new RegExp("-"+i+'"',"g"),c=new RegExp('"'+i+'"',"g"),f=n.html().replace(a,"["+o+"]").replace(l,"_"+o+'"');f=f.replace(s,"-"+o+'"').replace(c,'"'+o+'"');var u=d({id:"frm_form_action_"+o,className:n.get(0).className});u.setAttribute("data-actionkey",o),u.innerHTML=f,u.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach((function(e){"string"==typeof e.className&&(e.className=e.className.replace(i,o)),e.id=e.id.replace(i,o)})),u.classList.remove("open"),document.getElementById("frm_notification_settings").appendChild(u),r.length&&(r.forEach((function(e){frmDom.wysiwyg.init(e)})),u.querySelectorAll(".wp-editor-area").forEach((function(e){frmDom.wysiwyg.init(e)}))),u.classList.contains("frm_single_on_submit_settings")&&u.querySelector("input.frm-page-search")&&bo(u),ao(),wp.hooks.doAction("frm_after_duplicate_action",u)}var m,_,p,g,y}function Zn(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_"+t)&&(t=Zn(++t)),t}function ei(){var e,t=jQuery(this).data("actiontype");if(!si(t)){var r=(e=kr(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_"+e)&&(e+=100),A>=e&&(e=A+1),A=e,e),n=k,i=document.createElement("div");i.classList.add("frm_single_"+t+"_settings");var o=document.getElementById("frm_notification_settings");o.appendChild(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:r,form_id:n,nonce:frmGlobal.nonce},success:function(e){Di(),i.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach((function(e){return e.classList.remove("open")}));var n=d();n.innerHTML=e;var a=n.querySelector(".widget-top");Array.from(n.children).forEach((function(e){return o.appendChild(e)})),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_"+r);l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),li(t),Kn("#frm_form_action_"+r),ao(),bo(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function ti(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",Ao(t,"input")}function ri(e){e.on("Change",(function(){!function(e){var t,r;(t=document.querySelector(".frm-single-settings:not(.frm_hidden)"))&&null!==(r=t.querySelector(".wp-editor-wrap"))&&r.classList.contains("tmce-active")&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)}))}function ni(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===ni.prototype.endMarker&&(ni.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var r=null!==e?e.parentElement.classList:"";null!==e&&(r.contains("frm_field_box")||r.contains("divider_section_only"))&&t.fragment.appendChild(e)},this.moveFields=function(){w.insertBefore(t.fragment,ni.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function ii(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_"+e+" .frm_"+t+"_row").fadeIn("slow"),jQuery(this).fadeOut("slow")}function oi(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),r=".frm_"+t+"_row",n=".frm_"+t+"_button";jQuery(e).find(n).fadeIn("slow"),jQuery(e).find(r).fadeOut("slow",(function(){jQuery(e).find(r+" input").val("")}))}function ai(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function li(e){var t,r,n=document.querySelectorAll(".frm_"+e+"_action");si(e)?(t=n,r=di(e)>0,t.forEach((function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),r&&e.classList.add("frm_already_used")}))):n.forEach((function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))}))}function si(e){var t=function(e){return jQuery(".frm_single_"+e+"_settings").length}(e)>=di(e),r={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,r)}function di(e){return parseInt(jQuery(".frm_"+e+"_action").data("limit"),10)}function ci(){var e=a.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" "+a.edit_action_text),H(e)}function fi(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),r=document.getElementById("form_id").value,n=document.getElementById("frm_logic_row_"+e),i=kr(n.querySelectorAll(".frm_logic_row"),"frm_logic_"+e+"_"),o=d({id:"frm_logic_"+e+"_"+i,className:"frm_logic_row frm_hidden"});return n.appendChild(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:r,meta_name:i,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_"+e)).fadeOut("slow",(function(){o.insertAdjacentHTML("beforebegin",t),o.remove(),jQuery(n).parent(".frm_logic_rows").fadeIn("slow")}))}}),!1}function ui(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,r=jQuery(t).val();if(""===r||"checkbox"===r)return!1;e.each((function(){if(jQuery(this).val()===r&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),H(a.field_already_used),!1}))}function mi(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function _i(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function pi(){var e,t,r=document.getElementById("frm_posttax_rows").childNodes,n=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),a=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:a,nonce:frmGlobal.nonce},success:function(n){for(i=0;i');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),i=jQuery(document.getElementById(r+"_show_exclude")).is(":checked")?1:0,o=jQuery('select[name$="[post_category]['+r+'][field_id]"]').val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:o,show_exclude:i,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_"+r)).replaceWith(e)}})}}function ji(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function wi(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery("."+r).hide():(jQuery("."+r).show(),jQuery(".hide_"+r+"_"+t).hide())}function Qi(){zn()||($n(this),Fn(document.querySelector(".frm_form_settings")))}function xi(e){return e.preventDefault(),Ei(jQuery(this),this.getAttribute("data-code")),!1}function Ei(e,t){var r=!1,i=e;if("object"===n(e)){if(e.hasClass("frm_noallow"))return;void 0===(i=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(i=e.closest("div").attr("class"))&&(i=i.split(" ")[1])}if(void 0===i){var o=document.activeElement;"search"===o.type?null===(i=o.id.replace("-search-input","")).match(/\d/gi)&&(i=(o=jQuery(".frm-single-settings:visible ."+i)).attr("id")):i=o.id}i&&(r=jQuery("#wp-"+i+"-wrap.wp-editor-wrap").length>0);var a=jQuery(document.getElementById(i));if(void 0===e.attr("data-shortcode")&&(!a.length||void 0===a.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="["+t+"]")}if(r&&(wpActiveEditor=i),!a.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:i,success:function(e){if(r){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else ki(a,e)}})}else t=function(e,t,r){return"object"===n(t)&&t instanceof jQuery&&0===r[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,a),r?send_to_editor(t):ki(a,t);return!1}function ki(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{obj=e[0];var r=obj.selectionEnd;t=function(e,t,r,n){var i=e.data("sep");if(void 0===i)return t;var o=e.val();if(!o.trim().length)return t;var a=new RegExp(i+"\\s*$"),l=new RegExp("^\\s*"+i);return o.substr(0,r).trim().length&&!1===a.test(o.substr(0,r))&&(t=i+t),o.substr(n,o.length).trim().length&&!1===l.test(o.substr(n,o.length))&&(t+=i),t}(e,t,obj.selectionStart,r),obj.value=obj.value.substr(0,obj.selectionStart)+t+obj.value.substr(obj.selectionEnd,obj.value.length);var n=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Li(t)){var r=e.value.split(" ").filter(Li);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter((function(e){return(e=e.trim()).length&&!t.includes(e)}));return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(obj,t),obj.focus(),obj.setSelectionRange(n,n)}Hn(e)}function Li(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Si(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),Ao(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),Ao(e,"change"))}function Ai(){var e,t,r=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",n=document.getElementById("frm-is-condition").value,i=document.getElementById("frm-text-condition").value,o=document.getElementById("frm-insert-condition");t="if "+(e=(r=document.getElementById(r)).options[r.selectedIndex].value)+" "+n+'="'+i+'"]',o.setAttribute("data-code",t+a.conditional_text+"[/if "+e),o.innerHTML="["+t+"[/if "+e+"]"}function Ii(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($i(),"use"===(t=Gi(e)).tagName?-1===(t=t.firstElementChild).getAttributeNS("http://www.w3.org/1999/xlink","href").indexOf("frm_close_icon")&&Ti(t,"nofocus"):t.classList.contains("frm_close_icon")||Ti(t,"nofocus"))}function Bi(e){e.preventDefault(),e.stopPropagation(),Ti(this)}function Ci(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||qi()}}(e.target)}function qi(e){var t;void 0===e&&(e=B("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:B("Save and Reload?","formidable"),content:(t=d(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:B("Save and Reload","formidable"),buttonType:"primary"});_(e,(function(){Hi()}));var t=frmDom.modal.footerButton({text:B("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Ni(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find((function(e){return"#frm_close_icon"===e.getAttribute("href")}));if(void 0===n)return;t=n.parentElement}else t=e;var i=t.getBoundingClientRect(),o=document.getElementById("frm_adv_info"),a=o.parentElement.getBoundingClientRect();o.style.top=i.top-a.top+32+"px",o.style.left=i.left-a.left-280+"px"}function Ti(e,r){var n=Ri(e),i=document.getElementById("frm_adv_info"),o=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&null===(o=e.getAttributeNS("http://www.w3.org/1999/xlink","href"))&&(o=e.getAttribute("href")),-1!==o.indexOf("frm_close_icon"))$i(i);else{if(Ni(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),i.setAttribute("data-fills",n.id),i.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=o.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==r&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach((function(r){!function(e,r){var n,i;n=a.contextualShortcodes[r+"Selector"],i=a.contextualShortcodes[r];var o,l=e.matches(n),s=function(e){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=t(e))){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw o}}}}(i);try{for(s.s();!(o=s.n()).done;){var d,c=o.value,f=null===(d=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'+c+'"]'))||void 0===d?void 0:d.closest("li");null==f||f.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,r)}))}(n)}}function Oi(e){return 0===a.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return a.contextualShortcodes.address.includes(r)||a.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),i=a.contextualShortcodes;return i.address.includes(t)?n.matches(i.addressSelector):n.matches(i.bodySelector)}(e)}function Di(){E||(E=1,window.addEventListener("beforeunload",Pi))}function Mi(){E=0}function Fi(){E=0}function Hi(){var e=document.getElementById("frm_submit_side_top");e.classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()}function Pi(e){E&&(e.preventDefault(),e.returnValue="")}function zi(e,t){var r={my:"top",at:"top+"+t,of:window};e.dialog("option","position",r)}function Ri(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;null!==r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Ri(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Gi(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Gi(r);return r}function $i(e){var t,r,n,i;if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){for(e.style.display="none",n=document.querySelectorAll(".frm-show-box.frm_close_icon"),t=0;t"+r.data.name+": "+r.data.msg+"

                          ":'

                          Imported '+r.data.name+"

                          ",e.find(".status").prepend(n),e.find(".status").show(),N.importQueue=jQuery.grep(N.importQueue,(function(e){return e!=t})),N.imported++,0===N.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(N.imported),e.find(".process-completed").show()):(e.find(".form-current").text(N.imported+1),Yi(e)))}))}function Xi(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function Zi(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function eo(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function to(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ro(e){var t,r,n=e.target.value;io(n),no.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function no(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each((function(){this.checked=!1,r.indexOf(this.value)>=0?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0})),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var i=t.data("count"),o=jQuery('input[name="frm_export_forms[]"]');"single"===i?(o.prop("multiple",!1),o.prop("checked",!1)):(o.prop("multiple",!0),o.prop("disabled",!1)),e.trigger("change")}function io(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach((function(e){e.classList.remove("frm_hidden")})):t.forEach((function(e){e.classList.add("frm_hidden")})),ko.call(document.querySelector(".frm-auto-search")))}}function oo(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ao(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function lo(e){e.preventDefault(),fo(this,"frm_multiple_addons")}function so(e){e.preventDefault(),fo(this,"frm_activate_addon")}function co(e){e.preventDefault(),fo(this,"frm_install_addon")}function fo(e,t){var r,n,i,o;jQuery(".frm-addon-error").remove(),n=(r=jQuery(e)).attr("rel"),i=r.parent(),o=i.parent().find(".addon-status-label"),r.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:t,nonce:frmGlobal.nonce,plugin:n},success:function(e){var n,a,l;"string"!=typeof(e=null!==(n=null===(a=e)||void 0===a?void 0:a.data)&&void 0!==n?n:e)&&"string"==typeof e.message&&(void 0!==e.saveAndReload&&(l=e.saveAndReload),e=e.message);var s=po(e);s?go(s,i,r):(mo(e,r,o,i,l,t),wp.hooks.doAction("frm_update_addon_state",e))},error:function(){r.removeClass("frm_loading_button")}})}function uo(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:a.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,i,o=po(e=null!==(n=null===(i=e)||void 0===i?void 0:i.data)&&void 0!==n?n:e);o?go(o,r,t):mo(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}function mo(e,t,r,n,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",l=document.querySelectorAll(".frm-addon-status");l.forEach((function(t){t.textContent=e,t.style.display="block"})),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach((function(e){e.style.display="none"})),jQuery("#frm_upgrade_modal h2").hide(),jQuery("#frm_upgrade_modal .frm_lock_icon").addClass("frm_lock_open_icon"),jQuery("#frm_upgrade_modal .frm_lock_icon use").attr("xlink:href","#frm_lock_open_icon");var s={frm_activate_addon:{class:"frm-addon-active",message:a.active},frm_deactivate_addon:{class:"frm-addon-installed",message:a.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:a.not_installed}};s.frm_install_addon=s.frm_activate_addon;var c=r[0];c&&(c.textContent=s[o].message);var f=n[0].parentElement;f.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),f.classList.add(s[o].class),t[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(i)&&l.forEach((function(e){var t=null!==e.closest("#frm_upgrade_modal");e.appendChild(function(e,t){var r=[_o(e)];return t&&r.push(function(){var e=document.createElement("a");return e.setAttribute("href","#"),e.classList.add("button","button-secondary","frm-button-secondary","dismiss"),e.textContent=B("Close","formidable"),e}()),d({className:"frm-save-and-reload-options",children:r})}(i,t))}))}function _o(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=B("Save and Reload","formidable"),t.addEventListener("click",(function(){var t,r;"form_builder"===e?Hi():"settings"===e&&null!==(t=document.getElementById("form_settings_page"))&&null!==(r=t.querySelector("form.frm_form_settings"))&&(E=0,r.submit())})),t}function po(e){return"string"!=typeof e&&(void 0===e.success||!e.success)&&(e.form&&jQuery(e.form).is("#message")?{message:jQuery(e.form).find("p").html()}:e)}function go(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",uo)):(t.append('

                          '+e.message+"

                          "),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function yo(){vo()}function ho(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",(function(){n.addClass("frm_hidden")}))}(0,0,e)}function vo(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function bo(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function jo(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),Qo(t,r,this)}function wo(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),Qo(this,t,r)}function Qo(e,t,r){var n=function(e){var t,r,n={},i=e.elements;for(r=0;r=0||Lo(l,n)?(s&&Oi(o[e])&&o[e].classList.remove("frm_hidden"),o[e].classList.add("frm-search-result")):(o[e].classList.add("frm_hidden"),o[e].classList.remove("frm-search-result"))}(t=document.querySelector("#frm-insert-fields"))&&t.querySelectorAll(":scope > .frm-with-line").forEach((function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every((function(e){return e.classList.contains("frm_hidden")}));e.classList.toggle("frm_hidden",n)}})),jQuery(this).trigger("frmAfterSearch")}function Lo(e,t){return"s"!==t&&"s"!==e[e.length-1]&&(e+"s").indexOf(t)>=0}function So(e){e.stopPropagation()}function Ao(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Io(e,t){var r,n=new XMLHttpRequest,i="string"==typeof e?e:Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(i),n}function Bo(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Co(e){jQuery(e).css("visibility","hidden")}function qo(e){jQuery(e).css("visibility","visible")}function No(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="550px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function To(e,t){if("#"===t){var r=document.getElementById(e),n=r.style.display;r.style.display="none"===n?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Oo(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Do(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Mo(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def"))}function Fo(e){var t=document.getElementById("frm_field_id_"+e);return null!==t&&"product"===t.getAttribute("data-type")}function Ho(){var t=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},r=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},n=[1,2,3,4,5,6,7,8,9,10,11,12].map((function(e){return"frm"+e})),i=["first","middle","last"];document.addEventListener("change",(function(o){o.target.matches(".frm_name_layout_dropdown")&&function(o){var a,l=o.target.value.split("_"),s=o.target.dataset.fieldId,d=document.querySelector("#field_"+s+"_inner_container .frm_combo_inputs_container"),c=(a=l.length,"frm"+parseInt(12/a));i.forEach((function(t){var i,o=d.querySelector('[data-sub-field-name="'+t+'"]');o&&(o.classList.add("frm_hidden"),(i=o.classList).remove.apply(i,e(n)),r(s,t,o))})),l.forEach((function(e){var r=t(s,e);r&&(r.classList.remove("frm_hidden"),r.classList.add(c),d.append(r))})),i.forEach((function(e){var t=document.querySelector(".frm_sub_field_options-"+e+'[data-field-id="'+s+'"]');t&&(t.classList.add("frm_hidden"),r(s,e+"_options",t))})),l.forEach((function(e){var r=t(s,e+"_options");r&&r.classList.remove("frm_hidden")}))}(o)}),!1)}function Po(e,t){var r,n,i,o=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach((function(e,t){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(i=n.getAttributeNS("http://www.w3.org/1999/xlink","href")||n.getAttribute("href"))&&(o=!0),"#frm_save_icon"===i&&(a=!0))})),o||r.prepend(b.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(b.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function zo(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\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(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var i=c({className:"frm-wait frm_spinner"});i.style.visibility="visible",i.style.float="none",i.style.width="unset",n.parentElement.insertBefore(i,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:t.serialize()+"&action=frm_forms_preview"}).done((function(e){if(-1!==jQuery(e).find(".frm_message").text().trim().indexOf("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(c(B("Thank you for signing up!","formidable")))}else ho("invalid")}))}}else ho("invalid");else ho("empty")}function Ro(e){if(D||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||e.target.parentElement&&e.target.parentElement.classList.contains("frm-show-box"))){var t=document.getElementById("frm_adv_info");t&&(t.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===t.style.display||$i(t))}}return{init:function(){var t,r,n,i,o,a,l;!function(){jQuery(document).on("click","#frm-add-my-email-address",(function(e){e.preventDefault(),zo()}));var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",(function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}}))}}(),r=document.querySelector(".frm-admin-footer-links"),n=null!==(t=document.querySelector(".frm_page_container"))&&void 0!==t?t:document.getElementById("wpbody-content"),r&&n&&(n.appendChild(r),r.classList.remove("frm_hidden")),N={},jQuery(".wp-admin").on("click",(function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")})),jQuery("#frm_bs_dropdown:not(.open) a").on("click",Lt),void 0===k&&(k=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach((function(e){_(e,St)})),frmAdminBuild.inboxBannerInit(),j.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=d({className:"frm_warning_style",text:B("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),i=function(){n.reduce((function(e,t){return t.checked?e+1:e}),0)>=10?(t.classList.remove("frm_hidden"),n.forEach((function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)}))):t.classList.add("frm_hidden")};i(),n.forEach((function(e){e.addEventListener("change",(function(e){e.target.checked?i():(t.classList.add("frm_hidden"),n.forEach((function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1})))}))}))}}}(),bo(),jQuery("[data-frmprint]").on("click",(function(){return window.print(),!1}))),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",wi),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach((function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)}))}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",(function(t){return e(t.target)}))}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),o=document.getElementById("frm_confirm_modal"),a=!1,l=!1,jQuery(o).on("click","[data-deletefield]",wr),jQuery(o).on("click","[data-removeid]",G),jQuery(o).on("click","[data-trashtemplate]",Eo),i.on("click",".frm_remove_tag, .frm_remove_form_action",G),i.on("click","a[data-frmverify]",M),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",z),i.on("change","input[data-frmhide], input[data-frmshow]",z),i.on("click",".widget-top,a.widget-action",$),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",(function(){jQuery(this).off("mouseenter.frm"),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(this).tooltip("show")})),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(document).on("click","#doaction, #doaction2",(function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-"+t),n=document.getElementById("confirm-bulk-delete-"+t);if(null!==r&&null!==n){if(a=this,!l&&"bulk_delete"===r.value)return e.preventDefault(),F(n),!1}else a=!1})),jQuery(document).on("click","#frm-confirmed-click",(function(e){if(!1!==a&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),l=!0,a.click(),!1):void 0})),function(){var e=No("#frm_upgrade_modal");function t(t){var r,n,i;if((r=t.target).classList){var o=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var a=r.options[r.selectedIndex];a&&a.dataset.upgrade&&(r=a)}if(!r.dataset.upgrade){var l=r.closest("[data-upgrade]");if(!l){if(!(l=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=l}if(o)wp.hooks.doAction("frm_show_expired_modal",r);else{var s=r.dataset.upgrade;if(s&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),c=d.querySelector(".frm_lock_icon");c&&(c.style.display="block",c.classList.remove("frm_lock_open_icon"),c.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",u=document.getElementById(f);u&&u.remove(),r.dataset.image&&(c&&(c.style.display="none"),c.parentNode.insertBefore(m({id:f,src:frmGlobal.url+"/images/"+r.dataset.image}),c));var _=d.querySelector(".license-level");_&&(_.textContent=Vn(r)),Jn(r,"modal",s),d.querySelector(".frm_are_not_installed").style.display=r.dataset.image?"none":"inline-block",d.querySelector(".frm_feature_label").textContent=s,d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");n=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1"+r.getAttribute("data-medium")),null===(i=r.getAttribute("data-content"))&&(i=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1"+i),p.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}(),frmDom.util.documentOn("click","[data-modal-title]",Wn);var s=jQuery(document.getElementById("frm_shortcodediv"));s.length>0&&(jQuery("a.edit-frm_shortcode").on("click",(function(){return s.is(":hidden")&&(s.slideDown("fast"),this.style.display="none"),!1})),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",(function(){return s.slideUp("fast"),s.siblings("a.edit-frm_shortcode").show(),!1}))),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",(function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Un(this),V(this),!1})),V(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",(function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Fn(document.getElementById("posts-filter")),!1})),jQuery(".frm_select_box").on("click focus",(function(){this.select()})),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",ko),jQuery(document).on("focusin click",".frm-auto-search",So);var c=jQuery(".frm-auto-search");""!==c.val()&&c.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",co),jQuery(document).on("click",".frm-activate-addon",so),jQuery(document).on("click",".frm-solution-multiple",lo),jQuery("button, input[type=submit]").on("click",Oo),document.addEventListener("click",(function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout((function(){return n.click()}),0)}}}})),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",(function(e,t){var r,n,i=t.element;if("form"!==t.type)return e;var o=i.closest("tr");if(o)r=parseInt(o.querySelector(".column-id").textContent),n=o.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]})),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach((function(t,r){t.addEventListener("click",(function(){var t,r,n;r=(null===(t=this.querySelector("li"))||void 0===t?void 0:t.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(r,"-]"))).length<2||e(n).slice(1).forEach((function(e,t){e.classList.contains("frm_other_option")||Po(r,e)}))}))}));var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,(function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),g("small_screen_proceed",new FormData)}));var u=document.getElementById("frm_sale_banner"),p=null==u?void 0:u.querySelector(".dismiss");u&&(_(u,(function(e){e.target.closest(".dismiss")||(window.location.href=u.getAttribute("data-url"))})),p&&_(p,(function(){u.remove();var e=new FormData;g("sale_banner_dismiss",e)})))},buildInit:function(){var e,t,r;jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Ro),y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),h=document.getElementById("post-body-content"),v=jQuery(h),jQuery(".frm_field_loading").length&&Le(jQuery(".frm_field_loading").first().attr("id")),U("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",Mn),jQuery(".frm_submit_no_ajax").on("click",Pn),Rn(),jQuery("a.edit-form-status").on("click",kn),jQuery(".cancel-form-status").on("click",Ln),jQuery(".save-form-status").on("click",(function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1})),jQuery(".frm_form_builder form").first().on("submit",(function(){jQuery(".inplace_field").trigger("blur")})),ao(),Tr(),e=jQuery(w),t=document.getElementById("frm_form_editor_container"),e.on("click",".frm_add_logic_row",Er),e.on("click",".frm_add_watch_lookup_row",Lr),e.on("change",".frm_get_values_form",qr),e.on("change",".frm_logic_field_opts",bn),e.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Sn),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),j.on("click",".frm_clone_field",Ce),e.on("blur",'input[id^="frm_calc"]',Ye),e.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),e.on("change click","[data-changeme]",ot),e.on("click","input.frm_req_field",st),e.on("click",".frm_mark_unique",ct),e.on("change",".frm_repeat_format",Ur),e.on("change",".frm_repeat_limit",Jr),e.on("change",".frm_js_checkbox_limit",Kr),e.on("input",'input[name^="field_options[add_label_"]',(function(){Yr(this,"add")})),e.on("input",'input[name^="field_options[remove_label_"]',(function(){Yr(this,"remove")})),e.on("change",'select[name^="field_options[data_type_"]',Nr),jQuery(t).on("click",".frm-collapse-page",Or),jQuery(t).on("click",".frm-collapse-section",Fr),e.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Hr),e.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",(function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Hr.call(this,e))})),jQuery(t).on("show.bs.dropdown hide.bs.dropdown",ze),e.on("click",".frm_toggle_sep_values",yt),e.on("click",".frm_toggle_image_options",ht),e.on("click",".frm_remove_image_option",Et),e.on("click",".frm_choose_image_box",xt),e.on("change",".frm_hide_image_text",Qt),e.on("change",".frm_field_options_image_size",jt),e.on("click",".frm_multiselect_opt",kt),j.on("mousedown","input, textarea, select",At),j.on("click","input[type=radio], input[type=checkbox]",At),j.on("click",".frm_delete_field",Nt),j.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Dt),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Mt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Xt),jQuery(document).on("click",".frm-custom-field-group-layout",er),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rr),jQuery(document).on("click",".frm-break-field-group",lr),j.on("click","#frm_field_group_popup .frm_grid_container input",sr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",dr),jQuery(document).on("click",".frm-save-custom-field-group-layout",fr),j.on("click","ul.frm_sorting",ur),jQuery(document).on("click",".frm-merge-fields-into-row",vr),jQuery(document).on("click",".frm-delete-field-groups",jr),j.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',(function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Oe)})),j.on("mousemove","ul.frm_sorting",De),j.on("show.bs.dropdown",".frm-field-action-icons",He),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),e.on("click",".frm_single_option a[data-removeid]",It),e.on("mousedown",".frm_single_option input[type=radio]",Bt),e.on("focusin",".frm_single_option input[type=text]",Ct),e.on("click",".frm_add_opt",_t),e.on("change",".frm_single_option input",Zr),e.on("change",".frm_image_id",Zr),e.on("change",".frm_toggle_mult_sel",pt),j.on("click",".frm_primary_label",zr),j.on("click",".frm_description",Rr),j.on("click","li.ui-state-default:not(.frm_noallow)",$r),j.on("dblclick","li.ui-state-default",Vr),e.on("change",".frm_tax_form_select",Xr),e.on("change","select.conf_field",ft),e.on("change",".frm_get_field_selection",jn),e.on("click",".frm-show-inline-modal",Bn),e.on("keydown",".frm-show-inline-modal",(function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Bn.call(this,e))})),e.on("click",".frm-inline-modal .dismiss",Cn),jQuery(document).on("change","[data-frmchange]",Nn),document.addEventListener("click",qn),e.on("change",".frm_include_extras_field",et),e.on("change",'select[name^="field_options[form_select_"]',Do),jQuery(document).on("submit","#frm_js_build_form",Mi),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Di),nt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Mo),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Ar),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),frmDom.util.documentOn("click",".frm-show-field-settings",$r),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Wr),e.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',(function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var i=r.slice(n+1).find((function(e){return null!==e.offsetParent}));if(i){i.focus();var o=i.value.length;i.setSelectionRange(o,o)}}}(e.currentTarget)})),!1!==(r=No("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(w).on("click","a.frm-bulk-edit-link",(function(e){e.preventDefault();var t,n,i,o,a,l="",s=jQuery(this).closest("[data-fid]").data("fid"),d=pn(s),c=Fo(s);if(o=document.getElementById("frm_field_"+s+"_opts")){for(a=o.getElementsByTagName("li"),document.getElementById("bulk-field-id").value=s,t=0;t=a.length-1&&(document.getElementById("frm_bulk_options").value=l);return r.dialog("open"),!1}})),jQuery("#frm-update-bulk-opts").on("click",(function(){var e=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(e,document.getElementById("frm_bulk_options").value,r),Di())}))),In(),document.addEventListener("frm_added_field",In),Be(),Ho(),xn(),frmDom.util.documentOn("change",".frm_show_password_setting_input",(function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_"+t);r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)})),document.addEventListener("scroll",Ni,!0),document.addEventListener("change",Ci),document.querySelector(".frm_form_builder").addEventListener("mousedown",(function(e){e.shiftKey&&e.preventDefault()})),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",(function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Pr)}),9999)},settingsInit:function(){var e,t,r,n,i=jQuery(document.getElementById("frm_notification_settings"));i.on("click",".frm_email_buttons",ii),i.on("click",".frm_remove_field",oi),i.on("change",".frm_to_row, .frm_from_row",ai),i.on("change",".frm_tax_selector",bi),i.on("change","select.frm_single_post_field",ui),i.on("change","select.frm_toggle_post_content",mi),i.on("change","select.frm_dyncontent_opt",_i),i.on("change",".frm_post_type",pi),i.on("click",".frm_add_postmeta_row",hi),i.on("click",".frm_add_posttax_row",yi),i.on("click",".frm_toggle_cf_opts",ji),i.on("click",".frm_duplicate_form_action",Xn),jQuery(".frm_actions_list").on("click",".frm_active_action",ei),jQuery("#frm-show-groups, #frm-hide-groups").on("click",ti),ao(),jQuery("ul.frm_actions_list li").each((function(){li(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")})),jQuery(".frm_submit_settings_btn").on("click",Qi),Rn(),(e=jQuery(".frm_form_settings")).on("click",".frm_add_form_logic",fi),e.on("click",".frm_already_used",ci),document.addEventListener("click",(function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))})),e.on("mouseup","*:not(.frm-show-box)",Ro),jQuery(document.getElementById("no_save")).on("change",(function(){this.checked&&!0!==confirm(a.no_save_warning)&&jQuery(this).attr("checked",!1)})),jQuery('select[name="options[edit_action]"]').on("change",Yn),t=document.getElementById("logged_in"),jQuery(t).on("change",(function(){this.checked?qo(".hide_logged_in"):Co(".hide_logged_in")})),r=jQuery(document.getElementById("frm_cookie_expiration")),jQuery(document.getElementById("frm_single_entry_type")).on("change",(function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")}));var o=document.getElementById("single_entry");jQuery(o).on("change",(function(){this.checked?qo(".hide_single_entry"):Co(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")})),jQuery(".hide_save_draft").hide();var l=jQuery(document.getElementById("save_draft"));l.on("change",(function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")})),Hn(l),n=document.getElementById("editable"),jQuery(n).on("change",(function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Hn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))})),jQuery(document).on("change","#protect_files",(function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")})),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Sn),jQuery(document).on("submit",".frm_form_settings",Fi),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Di),bo(),jQuery(document).on("frm-action-loaded",Vi),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',(function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden")})),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-"+e.target.value+"]").forEach((function(e){e.classList.remove("frm_hidden")})),t.setAttribute("data-on-submit-type",e.target.value)}}))},panelInit:function(){var e,t,r,n;jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",xi),jQuery(document).on("change",".frm_insert_val",(function(){Ei(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")})),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Si),jQuery(document).on("keyup change",".frm-build-logic",Ai),Kn(),jQuery(document).on("frmElementAdded",(function(e,t){Kn(t)})),jQuery(document).on("mousedown",".frm-show-box",Bi),t=document.getElementById("form_settings_page"),r=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab"),(null!==t||r||D)&&jQuery(document).on("focusin","form input, form textarea",(function(e){var i,o,a,l;if(e.stopPropagation(),Ii(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(e.target).closest("#frm_adv_info").length)return;if(null!==t||D)i=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(i.show(),i.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0!==(l=this.id)&&-1===l.indexOf("-search-input")&&(jQuery("#frm-adv-info-tab").attr("data-fills",l.trim()),this.classList.contains("field_custom_html")&&(l="field_custom_html"),a=["after_html","before_html","submit_html","field_custom_html"],jQuery.inArray(l,a)>=0&&(jQuery(".frm_code_list li:not(.show_"+l+")").addClass("frm_hidden"),jQuery(".frm_code_list li.show_"+l).removeClass("frm_hidden")))):((o=jQuery(".frm-category-tabs li"))[0]&&(o[0].style.display=""),n.click(),i.hide(),i.siblings().show());else if(r){var s=new CustomEvent("frm_legacy_views_handle_field_focus");s.frmData={idAttrValue:this.id},document.dispatchEvent(s)}}})),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",(function(e){e.preventDefault()})),(e=jQuery("#frm_adv_info")).on("click",".subsubsub a.frmids",(function(e){Wi("frmids",e)})),e.on("click",".subsubsub a.frmkeys",(function(e){Wi("frmkeys",e)}))},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",(function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),i=t.cloneNode(!0),o=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault(),data={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce};var a="frm_inbox_slide_in"===t.id;a&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",(function(){return t.remove()}),{once:!0})),Io(data,(function(){if(!a)return"#"!==n?(window.location=n,!0):void Bo(t,(function(){var e;null!==o&&(i.classList.remove("frm-fade"),null===(e=i.querySelector(".frm-inbox-message-heading"))||void 0===e||e.removeChild(i.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss")),o.append(i)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),yo()),t.parentNode.removeChild(t)}))}))}})),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&yo()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",wo)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){var e;jQuery(document).on("click","[data-frmuninstall]",Ui),ao(),null!==(e=document.getElementById("licenses_settings"))&&jQuery(e).on("click",".edd_frm_save_license",Ji),jQuery(document).on("click","#frm-new-template button",jo),jQuery("#frm-dismissable-cta .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()}));var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",xo),document.querySelector(".frm_captchas").addEventListener("change",(function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)})),frmDom.util.documentOn("submit",".frm_settings_form",(function(){return E=0}));var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",(function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)}));var n=document.getElementById("payments_settings"),i=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');i&&i.forEach((function(e){e.addEventListener("change",(function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),i.forEach((function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}}))}}))}))},exportInit:function(){jQuery(".frm_form_importer").on("submit",Ki),jQuery(document.getElementById("frm_export_xml")).on("submit",Xi),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",Zi),jQuery('input[name="frm_import_file"]').on("change",eo),document.querySelector('select[name="format"]').addEventListener("change",ro),jQuery('input[name="frm_export_forms[]"]').on("click",oo),ao(),jQuery(".frm-feature-banner .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()})),io(to()),document.querySelector("#frm-export-select-all").addEventListener("change",(function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach((function(t){return t.checked=e.target.checked}))}))},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",(function(r){r.target===t&&Io({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},(function(){jQuery(e).fadeOut(400,(function(){e.remove()}))}))}))}},updateOpts:function(e,t,r){var n=pn(e),i=Fo(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:i,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_"+e+"_opts").innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),rn(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_"+e+"_"+t+" .frm_remove_tag").trigger("click")},downloadXML:function(e,t,r){var n=ajaxurl+"?action=frm_"+e+"_xml&ids="+t;null!==r&&(n=n+"&is_template="+r),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(r){var n=k,i=0;"summary"===e&&(i=j.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(pe(e,0,n,i),{field_options:t}),success:function(t){r(t),setTimeout((function(){Qn(),Ve(t,!0);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})}),10)},error:je})}))},confirmLinkClick:F,handleInsertFieldByDraggingResponse:ye,handleAddFieldClickResponse:Ie,syncLayoutClasses:le,moveFieldSettings:ni}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready((function(){var e;frmAdminBuild.init(),frmDom.bootstrap.setupBootstrapDropdowns((function(e){var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("
                            ","")).replaceAll("
                          • ",'
                          • ",""),t.outerHTML=r)})),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-toggle","dropdown")})),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'+t+'"]').prop("checked",!!e)},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_"+r).children(".frm_checkbox").children("label").children('input[name^="'+t+'"]').prop("checked",!!e)},window.frmGetFieldValues=function(e,t,r,n,i,o){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field="+t+"&field_id="+e+"&name="+i+"&t="+n+"&form_action="+jQuery('input[name="frm_action"]').val()+"&nonce="+frmGlobal.nonce,success:function(e){document.getElementById("frm_show_selected_values_"+t+"_"+r).innerHTML=e,"function"==typeof o&&o()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce="+frmGlobal.nonce+"&frm_skip_cookie=1"+t,success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,i=n/r*100;jQuery(".frm_admin_progress_bar").css("width",i+"%").attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout((function(){location.href="?page=formidable-entries&frm_action=list&form="+e+"&import-message=1"}),2e3))}})}})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/*!*******************************!*\ + !*** ./js/src/admin/admin.js ***! + \*******************************/ +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/* exported frm_add_logic_row, frm_remove_tag, frm_show_div, frmCheckAll, frmCheckAllLevel */ +/* eslint-disable jsdoc/require-param, prefer-const, no-redeclare, @wordpress/no-unused-vars-before-return, jsdoc/check-types, jsdoc/check-tag-names, @wordpress/i18n-translator-comments, @wordpress/valid-sprintf, jsdoc/require-returns-description, jsdoc/require-param-type, no-unused-expressions, compat/compat */ + +window.FrmFormsConnect = window.FrmFormsConnect || function (document, window, $) { + /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl */ + + var el = { + messageBox: null, + reset: null, + setElements: function setElements() { + el.messageBox = document.querySelector('.frm_pro_license_msg'); + el.reset = document.getElementById('frm_reconnect_link'); + } + }; + + /** + * Public functions and properties. + * + * @since 4.03 + * + * @type {Object} + */ + var app = { + /** + * Register connect button event. + * + * @since 4.03 + */ + init: function init() { + el.setElements(); + $(document.getElementById('frm_deauthorize_link')).on('click', app.deauthorize); + $('.frm_authorize_link').on('click', app.authorize); + // Handles FF dashboard Authorize & Reauthorize events. + // Attach click event to parent as #frm_deauthorize_link & #frm_reconnect_link dynamically recreated by bootstrap.setupBootstrapDropdowns in dom.js + $('.frm-dashboard-license-options').on('click', '#frm_deauthorize_link', app.deauthorize); + $('.frm-dashboard-license-options').on('click', '#frm_reconnect_link', app.reauthorize); + if (el.reset !== null) { + $(el.reset).on('click', app.reauthorize); + } + }, + /* Manual license authorization */ + authorize: function authorize() { + /*jshint validthis:true */ + var button = this; + var pluginSlug = this.getAttribute('data-plugin'); + var input = document.getElementById('edd_' + pluginSlug + '_license_key'); + var license = input.value; + var wpmu = document.getElementById('proplug-wpmu'); + this.classList.add('frm_loading_button'); + if (wpmu === null) { + wpmu = 0; + } else if (wpmu.checked) { + wpmu = 1; + } else { + wpmu = 0; + } + $.ajax({ + type: 'POST', + url: ajaxurl, + dataType: 'json', + data: { + action: 'frm_addon_activate', + license: license, + plugin: pluginSlug, + wpmu: wpmu, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + app.afterAuthorize(msg, input); + button.classList.remove('frm_loading_button'); + } + }); + }, + afterAuthorize: function afterAuthorize(msg, input) { + if (msg.success === true) { + input.value = '•••••••••••••••••••'; + } + wp.hooks.doAction('frm_after_authorize', msg); + app.showMessage(msg); + }, + showProgress: function showProgress(msg) { + if (el.messageBox === null) { + // In case the message box was added after page load. + el.setElements(); + } + var messageBox = el.messageBox; + if (messageBox === null) { + return; + } + if (msg.success === true) { + messageBox.classList.remove('frm_error_style'); + messageBox.classList.add('frm_message', 'frm_updated_message'); + } else { + messageBox.classList.add('frm_error_style'); + messageBox.classList.remove('frm_message', 'frm_updated_message'); + } + messageBox.classList.remove('frm_hidden'); + messageBox.innerHTML = msg.message; + }, + showMessage: function showMessage(msg) { + if (el.messageBox === null) { + // In case the message box was added after page load. + el.setElements(); + } + var messageBox = el.messageBox; + if (msg.success === true) { + app.showAuthorized(true); + app.showInlineSuccess(); + + /** + * Triggers the after license is authorized action for a confirmation/success modal. + * + * @param {Object} msg An object containing message data received from Authorize request. + */ + wp.hooks.doAction('frmAdmin.afterLicenseAuthorizeSuccess', { + msg: msg + }); + } + app.showProgress(msg); + if (msg.message !== '') { + setTimeout(function () { + messageBox.innerHTML = ''; + messageBox.classList.add('frm_hidden'); + messageBox.classList.remove('frm_error_style', 'frm_message', 'frm_updated_message'); + }, 10000); + var refreshPage = document.querySelector('.frm-admin-page-dashboard'); + if (refreshPage) { + setTimeout(function () { + window.location.reload(); + }, 1000); + } + } + }, + showAuthorized: function showAuthorized(show) { + var from = show ? 'unauthorized' : 'authorized'; + var to = show ? 'authorized' : 'unauthorized'; + var container = document.querySelectorAll('.frm_' + from + '_box'); + if (container.length) { + // Replace all authorized boxes with unauthorized boxes. + container.forEach(function (box) { + box.className = box.className.replace('frm_' + from + '_box', 'frm_' + to + '_box'); + }); + } + }, + /** + * Use the data-success element to replace the element content. + */ + showInlineSuccess: function showInlineSuccess() { + var successElement = document.querySelectorAll('.frm-confirm-msg [data-success]'); + if (successElement.length) { + successElement.forEach(function (element) { + element.innerHTML = frmAdminBuild.purifyHtml(element.getAttribute('data-success')); + }); + } + }, + /* Clear the site license cache */ + reauthorize: function reauthorize() { + /*jshint validthis:true */ + this.innerHTML = ''; + $.ajax({ + type: 'POST', + url: ajaxurl, + dataType: 'json', + data: { + action: 'frm_reset_cache', + plugin: 'formidable_pro', + nonce: frmGlobal.nonce + }, + success: function success(msg) { + el.reset.textContent = msg.message; + if (el.reset.getAttribute('data-refresh') === '1') { + window.location.reload(); + } + } + }); + return false; + }, + deauthorize: function deauthorize() { + /*jshint validthis:true */ + if (!confirm(frmGlobal.deauthorize)) { + return false; + } + var pluginSlug = this.getAttribute('data-plugin'), + input = document.getElementById('edd_' + pluginSlug + '_license_key'), + license = input.value, + link = this; + this.innerHTML = ''; + $.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_addon_deactivate', + license: license, + plugin: pluginSlug, + nonce: frmGlobal.nonce + }, + success: function success() { + app.showAuthorized(false); + input.value = ''; + link.replaceWith('Disconnected'); + + /** + * Triggers the after license is deauthorized sruccess action. + */ + wp.hooks.doAction('frmAdmin.afterLicenseDeauthorizeSuccess', {}); + } + }); + return false; + } + }; + + // Provide access to public functions/properties. + return app; +}(document, window, jQuery); +window.frmAdminBuildJS = function () { + //'use strict'; + + /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */ + + var frmAdminJs = frm_admin_js; // eslint-disable-line camelcase + var _frmDom = frmDom, + tag = _frmDom.tag, + div = _frmDom.div, + span = _frmDom.span, + a = _frmDom.a, + svg = _frmDom.svg, + img = _frmDom.img; + var onClickPreventDefault = frmDom.util.onClickPreventDefault; + var _frmDom$ajax = frmDom.ajax, + doJsonFetch = _frmDom$ajax.doJsonFetch, + doJsonPost = _frmDom$ajax.doJsonPost; + frmAdminJs.contextualShortcodes = getContextualShortcodes(); + var icons = { + save: svg({ + href: '#frm_save_icon' + }), + drag: svg({ + href: '#frm_drag_icon', + classList: ['frm_drag_icon', 'frm-drag'] + }) + }; + var $newFields = jQuery(document.getElementById('frm-show-fields')), + builderForm = document.getElementById('new_fields'), + thisForm = document.getElementById('form_id'), + copyHelper = false, + fieldsUpdated = 0, + thisFormId = 0, + autoId = 0, + optionMap = {}, + lastNewActionIdReturned = 0; + var _wp$i18n = wp.i18n, + __ = _wp$i18n.__, + sprintf = _wp$i18n.sprintf; + var debouncedSyncAfterDragAndDrop, postBodyContent, $postBodyContent; + var dragState = { + dragging: false + }; + if (thisForm !== null) { + thisFormId = thisForm.value; + } + var currentURL = new URL(window.location.href); + var urlParams = currentURL.searchParams; + var builderPage = document.getElementById('frm_builder_page'); + + // Global settings + var s; + function showElement(element) { + if (!element[0]) { + return; + } + element[0].style.display = ''; + } + function empty($obj) { + if ($obj !== null) { + while ($obj.firstChild) { + $obj.removeChild($obj.firstChild); + } + } + } + function addClass($obj, className) { + if ($obj.classList) { + $obj.classList.add(className); + } else { + $obj.className += ' ' + className; + } + } + function confirmClick(e) { + /*jshint validthis:true */ + e.stopPropagation(); + e.preventDefault(); + confirmLinkClick(this); + } + function confirmLinkClick(link) { + var message = link.getAttribute('data-frmverify'), + loadedFrom = link.getAttribute('data-loaded-from'); + if (message === null || link.id === 'frm-confirmed-click') { + return true; + } + if ('entries-list' === loadedFrom) { + return wp.hooks.applyFilters('frm_on_multiple_entries_delete', { + link: link, + initModal: initModal + }); + } + return confirmModal(link); + } + function confirmModal(link) { + var verify, + $confirmMessage, + i, + dataAtts, + btnClass, + $info = initModal('#frm_confirm_modal', '400px'), + continueButton = document.getElementById('frm-confirmed-click'); + if ($info === false) { + return false; + } + verify = link.getAttribute('data-frmverify'); + btnClass = verify ? link.getAttribute('data-frmverify-btn') : ''; + $confirmMessage = jQuery('.frm-confirm-msg'); + $confirmMessage.empty(); + if (verify) { + $confirmMessage.append(document.createTextNode(verify)); + if (btnClass) { + continueButton.classList.add(btnClass); + } + } + removeAtts = continueButton.dataset; + for (i in dataAtts) { + continueButton.removeAttribute('data-' + i); + } + dataAtts = link.dataset; + for (i in dataAtts) { + if (i !== 'frmverify') { + continueButton.setAttribute('data-' + i, dataAtts[i]); + } + } + + /** + * Triggers the pre-open action for a confirmation modal. This action passes + * relevant modal information and associated link to any listening hooks. + * + * @param {Object} options An object containing modal elements and data. + * @param {HTMLElement} options.$info The HTML element containing modal information. + * @param {string} options.link The link associated with the modal action. + */ + wp.hooks.doAction('frmAdmin.beforeOpenConfirmModal', { + $info: $info, + link: link + }); + $info.dialog('open'); + continueButton.setAttribute('href', link.getAttribute('href') || link.getAttribute('data-href')); + return false; + } + function infoModal(msg) { + var $info = initModal('#frm_info_modal', '400px'); + if ($info === false) { + return false; + } + jQuery('.frm-info-msg').html(msg); + $info.dialog('open'); + return false; + } + function toggleItem(e) { + /*jshint validthis:true */ + var toggle = this.getAttribute('data-frmtoggle'); + var text = this.getAttribute('data-toggletext'); + var $items = jQuery(toggle); + e.preventDefault(); + $items.toggle(); + if (text !== null && text !== '') { + this.setAttribute('data-toggletext', this.innerHTML); + this.textContent = text; + } + return false; + } + + /** + * Toggle a class on target elements when an anchor is clicked, or when a radio or checkbox has been selected. + * + * @param {Event} e Event with either the change or click type. + * @return {false} + */ + function hideShowItem(e) { + /*jshint validthis:true */ + var hide = this.getAttribute('data-frmhide'); + var show = this.getAttribute('data-frmshow'); + var uncheckList = this.getAttribute('data-frmuncheck'); + var uncheckListArray = uncheckList ? uncheckList.split(',') : []; + + // Flip unchecked checkboxes so an off value undoes the on value. + if (isUncheckedCheckbox(this)) { + if (hide !== null) { + show = hide; + hide = null; + } else if (show !== null) { + hide = show; + show = null; + } + } + e.preventDefault(); + var toggleClass = this.getAttribute('data-toggleclass') || 'frm_hidden'; + if (hide !== null) { + jQuery(hide).addClass(toggleClass); + } + if (show !== null) { + jQuery(show).removeClass(toggleClass); + } + var current = this.parentNode.querySelectorAll('a.current'); + if (current !== null) { + for (var _i = 0; _i < current.length; _i++) { + current[_i].classList.remove('current'); + } + this.classList.add('current'); + } + if (uncheckListArray.length) { + uncheckListArray.forEach(function (uncheckItem) { + var uncheckItemElement = document.querySelector(uncheckItem); + if (uncheckItemElement) { + uncheckItemElement.checked = false; + } + }); + } + return false; + } + function isUncheckedCheckbox(element) { + return 'INPUT' === element.nodeName && 'checkbox' === element.type && !element.checked; + } + function loadTooltips() { + var wrapClass = jQuery('.wrap, .frm_wrap'), + confirmModal = document.getElementById('frm_confirm_modal'), + doAction = false, + confirmedBulkDelete = false; + jQuery(confirmModal).on('click', '[data-deletefield]', deleteFieldConfirmed); + jQuery(confirmModal).on('click', '[data-removeid]', removeThisTag); + jQuery(confirmModal).on('click', '[data-trashtemplate]', trashTemplate); + wrapClass.on('click', '.frm_remove_tag, .frm_remove_form_action', removeThisTag); + wrapClass.on('click', 'a[data-frmverify]', confirmClick); + wrapClass.on('click', 'a[data-frmtoggle]', toggleItem); + wrapClass.on('click', 'a[data-frmhide], a[data-frmshow]', hideShowItem); + wrapClass.on('change', 'input[data-frmhide], input[data-frmshow]', hideShowItem); + wrapClass.on('click', '.widget-top,a.widget-action', clickWidget); + wrapClass.on('mouseenter.frm', '.frm_bstooltip, .frm_help', function () { + jQuery(this).off('mouseenter.frm'); + jQuery('.frm_bstooltip, .frm_help').tooltip(); + jQuery(this).tooltip('show'); + }); + jQuery('.frm_bstooltip, .frm_help').tooltip(); + jQuery(document).on('click', '#doaction, #doaction2', function (event) { + var isTop = this.id === 'doaction', + suffix = isTop ? 'top' : 'bottom', + bulkActionSelector = document.getElementById('bulk-action-selector-' + suffix), + confirmBulkDelete = document.getElementById('confirm-bulk-delete-' + suffix); + if (bulkActionSelector !== null && confirmBulkDelete !== null) { + doAction = this; + if (!confirmedBulkDelete && bulkActionSelector.value === 'bulk_delete') { + event.preventDefault(); + confirmLinkClick(confirmBulkDelete); + return false; + } + } else { + doAction = false; + } + }); + jQuery(document).on('click', '#frm-confirmed-click', function (event) { + if (doAction === false || event.target.classList.contains('frm-btn-inactive')) { + return; + } + if (this.getAttribute('href') === 'confirm-bulk-delete') { + event.preventDefault(); + confirmedBulkDelete = true; + doAction.click(); + return false; + } + }); + } + function deleteTooltips() { + document.querySelectorAll('.tooltip').forEach(function (tooltip) { + tooltip.remove(); + }); + } + function removeThisTag() { + /*jshint validthis:true */ + var show, hide, removeMore; + if (parseInt(this.getAttribute('data-skip-frm-js')) || confirmLinkClick(this) === false) { + return; + } + var deleteButton = jQuery(this); + var id = deleteButton.attr('data-removeid'); + show = deleteButton.attr('data-showlast'); + if (typeof show === 'undefined') { + show = ''; + } + hide = deleteButton.attr('data-hidelast'); + if (typeof hide === 'undefined') { + hide = ''; + } + removeMore = deleteButton.attr('data-removemore'); + if (show !== '') { + if (deleteButton.closest('.frm_add_remove').find('.frm_remove_tag:visible').length > 1) { + show = ''; + hide = ''; + } + } else if (id.indexOf('frm_postmeta_') === 0) { + if (jQuery('#frm_postmeta_rows .frm_postmeta_row').length < 2) { + show = '.frm_add_postmeta_row.button'; + } + if (jQuery('.frm_toggle_cf_opts').length && jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().length) { + if (show !== '') { + show += ','; + } + show += '#' + jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().attr('id') + ' .frm_toggle_cf_opts'; + } + } + var fadeEle = document.getElementById(id); + var $fadeEle = jQuery(fadeEle); + $fadeEle.fadeOut(300, function () { + var _document$querySelect; + $fadeEle.remove(); + fieldUpdated(); + if (hide !== '') { + jQuery(hide).hide(); + } + if (show !== '') { + jQuery(show + ' a,' + show).removeClass('frm_hidden').fadeIn('slow'); + } + if (this.closest('.frm_form_action_settings')) { + var type = this.closest('.frm_form_action_settings').querySelector('.frm_action_name').value; + afterActionRemoved(type); + } + (_document$querySelect = document.querySelector('.tooltip')) === null || _document$querySelect === void 0 || _document$querySelect.remove(); + }); + if (typeof removeMore !== 'undefined') { + removeMore = jQuery(removeMore); + removeMore.fadeOut(400, function () { + removeMore.remove(); + }); + } + if (show !== '') { + jQuery(this).closest('.frm_logic_rows').fadeOut('slow'); + } + + /** + * Fires after a tag element has been removed in the admin interface. + * + * @param {string} id The ID of the removed element + * @param {HTMLElement} fadeEle The removed element that was faded out + */ + wp.hooks.doAction('frm_admin_tag_removed', id, fadeEle); + return false; + } + function afterActionRemoved(type) { + checkActiveAction(type); + var hookName = 'frm_after_action_removed'; + var hookArgs = { + type: type + }; + wp.hooks.doAction(hookName, hookArgs); + } + function clickWidget(event, b) { + /*jshint validthis:true */ + if (typeof b === 'undefined') { + b = this; + } + popCalcFields(b, false); + var cont = jQuery(b).closest('.frm_form_action_settings'); + var target = event.target; + if (cont.length && typeof target !== 'undefined') { + var className = target.parentElement.className; + if ('string' === typeof className) { + if (className.indexOf('frm_email_icons') > -1 || className.indexOf('frm_toggle') > -1) { + // clicking on delete icon shouldn't open it + event.stopPropagation(); + return; + } + } + } + var inside = cont.children('.widget-inside'); + if (cont.length && inside.find('p, div, table').length < 1) { + var actionId = cont.find('input[name$="[ID]"]').val(); + var actionType = cont.find('input[name$="[post_excerpt]"]').val(); + if (actionType) { + inside.html(''); + cont.find('.spinner').fadeIn('slow'); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_form_action_fill', + action_id: actionId, + action_type: actionType, + nonce: frmGlobal.nonce + }, + success: function success(html) { + inside.html(html); + initiateMultiselect(); + showInputIcon('#' + cont.attr('id')); + initAutocomplete(inside); + jQuery(b).trigger('frm-action-loaded'); + + /** + * Fires after filling form action content when opening. + * + * @since 5.5.4 + * + * @param {Object} insideElement JQuery object of form action inside element. + */ + wp.hooks.doAction('frm_filled_form_action', inside); + } + }); + } + } + jQuery(b).closest('.frm_field_box').siblings().find('.widget-inside').slideUp('fast'); + if (typeof b.className !== 'undefined' && b.className.indexOf('widget-action') !== -1 || jQuery(b).closest('.start_divider').length < 1) { + return; + } + inside = jQuery(b).closest('div.widget').children('.widget-inside'); + if (inside.is(':hidden')) { + inside.slideDown('fast'); + } else { + inside.slideUp('fast'); + } + } + function clickNewTab() { + /*jshint validthis:true */ + var t = this.getAttribute('href'); + if (typeof t === 'undefined') { + return false; + } + var c = t.replace('#', '.'); + var $link = jQuery(this); + $link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); + $link.closest('div').children('.tabs-panel').not(t).not(c).hide(); + var tabContent = document.getElementById(t.replace('#', '')); + if (tabContent) { + tabContent.style.display = 'block'; + } + + // clearSettingsBox would hide field settings when opening the fields modal and we want to skip it there. + if (this.id === 'frm_insert_fields_tab' && !this.closest('#frm_adv_info')) { + clearSettingsBox(); + } + return false; + } + function clickTab(link, auto) { + link = jQuery(link); + var t = link.attr('href'); + if (typeof t === 'undefined') { + return; + } + var c = t.replace('#', '.'); + link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); + if (link.closest('div').find('.tabs-panel').length) { + link.closest('div').children('.tabs-panel').not(t).not(c).hide(); + } else if (document.getElementById('form_global_settings') !== null) { + /* global settings */ + var ajax = link.data('frmajax'); + link.closest('.frm_wrap').find('.tabs-panel, .hide_with_tabs').hide(); + if (typeof ajax !== 'undefined' && ajax == '1') { + loadSettingsTab(t); + } + } else { + /* form settings page */ + jQuery('#frm-categorydiv .tabs-panel, .hide_with_tabs').hide(); + } + jQuery(t).show(); + jQuery(c).show(); + hideShortcodes(); + if (auto !== 'auto') { + // Hide success message on tab change. + jQuery('.frm_updated_message').hide(); + jQuery('.frm_warning_style').hide(); + } + if (jQuery(link).closest('#frm_adv_info').length) { + return; + } + if (jQuery('.frm_form_settings').length) { + jQuery('.frm_form_settings').attr('action', '?page=formidable&frm_action=settings&id=' + jQuery('.frm_form_settings input[name="id"]').val() + '&t=' + t.replace('#', '')); + } else { + jQuery('.frm_settings_form').attr('action', '?page=formidable-settings&t=' + t.replace('#', '')); + } + } + function setupSortable(sortableSelector) { + document.querySelectorAll(sortableSelector).forEach(function (list) { + makeDroppable(list); + Array.from(list.children).forEach(function (child) { + return makeDraggable(child, '.frm-move'); + }); + var $sectionTitle = jQuery(list).children('[data-type="divider"]').children('.divider_section_only'); + if ($sectionTitle.length) { + makeDroppable($sectionTitle); + } + }); + setupFieldOptionSorting(jQuery('#frm_builder_page')); + } + function makeDroppable(list) { + jQuery(list).droppable({ + accept: '.frmbutton, li.frm_field_box', + deactivate: handleFieldDrop, + over: onDragOverDroppable, + out: onDraggableLeavesDroppable, + tolerance: 'pointer' + }); + } + function onDragOverDroppable(event, ui) { + var droppable = getDroppableForOnDragOver(event.target); + var draggable = ui.draggable[0]; + if (!allowDrop(draggable, droppable, event)) { + droppable.classList.remove('frm-over-droppable'); + jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); + return; + } + document.querySelectorAll('.frm-over-droppable').forEach(function (droppable) { + return droppable.classList.remove('frm-over-droppable'); + }); + droppable.classList.add('frm-over-droppable'); + jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); + } + + /** + * Maybe change the droppable. + * Section titles are made droppable, but are not a list, so we need to change the droppable to the section's list instead. + * + * @param {Element} droppable + * @return {Element} + */ + function getDroppableForOnDragOver(droppable) { + if (droppable.classList.contains('divider_section_only')) { + droppable = jQuery(droppable).nextAll('.start_divider.frm_sorting').get(0); + } + return droppable; + } + function onDraggableLeavesDroppable(event) { + var droppable = event.target; + droppable.classList.remove('frm-over-droppable'); + } + function makeDraggable(draggable, handle) { + var settings = { + helper: getDraggableHelper, + revert: 'invalid', + delay: 10, + start: handleDragStart, + stop: handleDragStop, + drag: handleDrag, + cursor: 'grabbing', + refreshPositions: true, + cursorAt: { + top: 0, + left: 90 // The width of draggable button is 180. 90 should center the draggable on the cursor. + } + }; + if ('string' === typeof handle) { + settings.handle = handle; + } + jQuery(draggable).draggable(settings); + } + function getDraggableHelper(event) { + var draggable = event.delegateTarget; + if (isFieldGroup(draggable)) { + var newTextFieldClone = document.getElementById('frm-insert-fields').querySelector('.frm_ttext').cloneNode(true); + newTextFieldClone.querySelector('use').setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_field_group_layout_icon'); + newTextFieldClone.querySelector('span').textContent = __('Field Group', 'formidable'); + newTextFieldClone.classList.add('frm_field_box'); + newTextFieldClone.classList.add('ui-sortable-helper'); + return newTextFieldClone; + } + var copyTarget; + var isNewField = draggable.classList.contains('frmbutton'); + if (isNewField) { + copyTarget = draggable.cloneNode(true); + copyTarget.classList.add('ui-sortable-helper'); + draggable.classList.add('frm-new-field'); + return copyTarget; + } + if (draggable.hasAttribute('data-ftype')) { + var fieldType = draggable.getAttribute('data-ftype'); + copyTarget = document.getElementById('frm-insert-fields').querySelector('.frm_t' + fieldType); + copyTarget = copyTarget.cloneNode(true); + copyTarget.classList.add('form-field'); + copyTarget.classList.add('ui-sortable-helper'); + if (copyTarget) { + return copyTarget.cloneNode(true); + } + } + return div({ + className: 'frmbutton' + }); + } + function handleDragStart(event, ui) { + dragState.dragging = true; + var container = postBodyContent; + container.classList.add('frm-dragging-field'); + document.body.classList.add('frm-dragging'); + ui.helper.addClass('frm-sortable-helper'); + ui.helper.initialOffset = container.scrollTop; + event.target.classList.add('frm-drag-fade'); + unselectFieldGroups(); + deleteEmptyDividerWrappers(); + maybeRemoveGroupHoverTarget(); + closeOpenFieldDropdowns(); + deleteTooltips(); + } + function handleDragStop() { + var container = postBodyContent; + container.classList.remove('frm-dragging-field'); + document.body.classList.remove('frm-dragging'); + var fade = document.querySelector('.frm-drag-fade'); + if (fade) { + fade.classList.remove('frm-drag-fade'); + } + } + function handleDrag(event, ui) { + maybeScrollBuilder(event); + var draggable = event.target; + var droppable = getDroppableTarget(); + var placeholder = document.getElementById('frm_drag_placeholder'); + if (!allowDrop(draggable, droppable, event)) { + if (placeholder) { + placeholder.remove(); + } + return; + } + if (!placeholder) { + placeholder = tag('li', { + id: 'frm_drag_placeholder', + className: 'sortable-placeholder' + }); + } + var frmSortableHelper = ui.helper.get(0); + if (frmSortableHelper.classList.contains('form-field') || frmSortableHelper.classList.contains('frm_field_box')) { + // Sync the y position of the draggable so it still follows the cursor after scrolling up and down the field list. + frmSortableHelper.style.transform = 'translateY(' + getDragOffset(ui.helper) + 'px)'; + } + if ('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')) { + placeholder.style.left = 0; + handleDragOverYAxis({ + droppable: droppable, + y: event.clientY, + placeholder: placeholder + }); + return; + } + placeholder.style.top = ''; + handleDragOverFieldGroup({ + droppable: droppable, + x: event.clientX, + placeholder: placeholder + }); + } + function maybeScrollBuilder(event) { + $postBodyContent.scrollTop(function (_, v) { + var moved = event.clientY; + var h = postBodyContent.offsetHeight; + var relativePos = event.clientY - postBodyContent.offsetTop; + var y = relativePos - h / 2; + if (relativePos > h - 50 && moved > 5) { + // Scrolling down. + return v + y * 0.1; + } + if (relativePos < 70 && moved < 130) { + // Scrolling up. + return v - Math.abs(y * 0.1); + } + return v; + }); + } + function getDragOffset($helper) { + return postBodyContent.scrollTop - $helper.initialOffset; + } + function getDroppableTarget() { + var droppable = document.getElementById('frm-show-fields'); + while (droppable.querySelector('.frm-over-droppable')) { + droppable = droppable.querySelector('.frm-over-droppable'); + } + if ('frm-show-fields' === droppable.id && !droppable.classList.contains('frm-over-droppable')) { + droppable = false; + } + return droppable; + } + function handleFieldDrop(_, ui) { + if (!dragState.dragging) { + // dragState.dragging is set to true on drag start. + // The deactivate event gets called for every droppable. This check to make sure it happens once. + return; + } + dragState.dragging = false; + var draggable = ui.draggable[0]; + var placeholder = document.getElementById('frm_drag_placeholder'); + if (!placeholder) { + ui.helper.remove(); + debouncedSyncAfterDragAndDrop(); + return; + } + maybeOpenCollapsedPage(placeholder); + var $previousFieldContainer = ui.helper.parent(); + var previousSection = ui.helper.get(0).closest('ul.start_divider'); + var newSection = placeholder.closest('ul.start_divider'); + if (draggable.classList.contains('frm-new-field')) { + insertNewFieldByDragging(draggable.id); + } else { + moveFieldThatAlreadyExists(draggable, placeholder); + maybeMakeFieldGroupDraggableAfterDragging(placeholder.parentElement); + } + var previousSectionId = previousSection ? parseInt(previousSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; + var newSectionId = newSection ? parseInt(newSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; + placeholder.remove(); + ui.helper.remove(); + var $previousContainerFields = $previousFieldContainer.length ? getFieldsInRow($previousFieldContainer) : []; + maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields); + maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields); + if (previousSectionId !== newSectionId) { + updateFieldAfterMovingBetweenSections(jQuery(draggable), previousSection); + } + debouncedSyncAfterDragAndDrop(); + } + + /** + * When a field is moved into a field group, make sure the field group is draggable. + * + * @since 6.24 + * + * @param {HTMLElement} placeholderParent + * @return {void} + */ + function maybeMakeFieldGroupDraggableAfterDragging(placeholderParent) { + var isDroppingIntoFieldGroup = placeholderParent.nodeName === 'UL' && !placeholderParent.classList.contains('start_divider') && 'frm-show-fields' !== placeholderParent.id; + if (!isDroppingIntoFieldGroup) { + return; + } + var fieldGroupLi = placeholderParent.closest('li'); + if (fieldGroupLi && !fieldGroupLi.classList.contains('ui-draggable')) { + makeDraggable(fieldGroupLi, '.frm-move'); + } + } + + /** + * If a page if collapsed, expand it before dragging since only the page break will move. + * + * @param {Element} placeholder + * @return {void} + */ + function maybeOpenCollapsedPage(placeholder) { + if (!placeholder.previousElementSibling || !placeholder.previousElementSibling.classList.contains('frm-is-collapsed')) { + return; + } + var $pageBreakField = jQuery(placeholder).prevUntil('[data-type="break"]'); + if (!$pageBreakField.length) { + return; + } + var collapseButton = $pageBreakField.find('.frm-collapse-page').get(0); + if (collapseButton) { + collapseButton.click(); + } + } + function maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields) { + if (!$previousFieldContainer.length) { + return; + } + if ($previousContainerFields.length) { + syncLayoutClasses($previousContainerFields.first()); + } else { + maybeDeleteAnEmptyFieldGroup($previousFieldContainer.get(0)); + } + } + function maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields) { + if (0 !== $previousContainerFields.length || 1 !== getFieldsInRow(jQuery(draggable.parentNode)).length) { + syncLayoutClasses(jQuery(draggable)); + } + } + + /** + * Remove an empty field group, but don't remove an empty section. + * + * @param {Element} previousFieldContainer + * @return {void} + */ + function maybeDeleteAnEmptyFieldGroup(previousFieldContainer) { + var closestFieldBox = previousFieldContainer.closest('li.frm_field_box'); + if (closestFieldBox && !closestFieldBox.classList.contains('edit_field_type_divider')) { + closestFieldBox.remove(); + } + } + function handleDragOverYAxis(_ref) { + var droppable = _ref.droppable, + y = _ref.y, + placeholder = _ref.placeholder; + var $list = jQuery(droppable); + var top; + $children = $list.children().not('.edit_field_type_end_divider'); + if (0 === $children.length) { + $list.prepend(placeholder); + top = 0; + } else { + var insertAtIndex = determineIndexBasedOffOfMousePositionInList($list, y); + if (insertAtIndex === $children.length) { + var $lastChild = jQuery($children.get(insertAtIndex - 1)); + top = $lastChild.offset().top + $lastChild.outerHeight(); + $list.append(placeholder); + + // Make sure nothing gets inserted after the end divider. + var $endDivider = $list.children('.edit_field_type_end_divider'); + if ($endDivider.length) { + $list.append($endDivider); + } + } else { + top = jQuery($children.get(insertAtIndex)).offset().top; + jQuery($children.get(insertAtIndex)).before(placeholder); + } + } + top -= $list.offset().top; + placeholder.style.top = top + 'px'; + } + function determineIndexBasedOffOfMousePositionInList($list, y) { + var $items = $list.children().not('.edit_field_type_end_divider'); + var length = $items.length; + var index, item, itemTop, returnIndex; + if (!document.querySelector('.frm-has-fields .frm_no_fields')) { + // Always return 0 when there are no fields. + return 0; + } + returnIndex = 0; + for (index = length - 1; index >= 0; --index) { + item = $items.get(index); + itemTop = jQuery(item).offset().top; + if (y > itemTop) { + returnIndex = index; + if (y > itemTop + jQuery(item).outerHeight() / 2) { + returnIndex = index + 1; + } + break; + } + } + return returnIndex; + } + function handleDragOverFieldGroup(_ref2) { + var droppable = _ref2.droppable, + x = _ref2.x, + placeholder = _ref2.placeholder; + var $row = jQuery(droppable); + var $children = getFieldsInRow($row); + if (!$children.length) { + return; + } + var left; + var insertAtIndex = determineIndexBasedOffOfMousePositionInRow($row, x); + if (insertAtIndex === $children.length) { + var $lastChild = jQuery($children.get(insertAtIndex - 1)); + left = $lastChild.offset().left + $lastChild.outerWidth(); + $row.append(placeholder); + } else { + left = jQuery($children.get(insertAtIndex)).offset().left; + jQuery($children.get(insertAtIndex)).before(placeholder); + var amountToOffsetLeftBy = 0 === insertAtIndex ? 4 : 8; // Offset by 8 in between rows, but only 4 for the first item in a group. + left -= amountToOffsetLeftBy; // Offset the placeholder slightly so it appears between two fields. + } + left -= $row.offset().left; + placeholder.style.left = left + 'px'; + } + function syncAfterDragAndDrop() { + fixUnwrappedListItems(); + toggleSectionHolder(); + maybeFixEndDividers(); + maybeDeleteEmptyFieldGroups(); + updateFieldOrder(); + var event = new Event('frm_sync_after_drag_and_drop', { + bubbles: false + }); + document.dispatchEvent(event); + } + function maybeFixEndDividers() { + document.querySelectorAll('.edit_field_type_end_divider').forEach(function (endDivider) { + return endDivider.parentNode.appendChild(endDivider); + }); + } + function maybeDeleteEmptyFieldGroups() { + document.querySelectorAll('li.form_field_box:not(.form-field)').forEach(function (fieldGroup) { + return !fieldGroup.children.length && fieldGroup.remove(); + }); + } + function fixUnwrappedListItems() { + var lists = document.querySelectorAll('ul#frm-show-fields, ul.start_divider'); + lists.forEach(function (list) { + list.childNodes.forEach(function (child) { + if ('undefined' === typeof child.classList) { + return; + } + if (child.classList.contains('edit_field_type_end_divider')) { + // Never wrap end divider in place. + return; + } + if ('undefined' !== typeof child.classList && child.classList.contains('form-field')) { + wrapFieldLiInPlace(child); + } + }); + }); + } + function deleteEmptyDividerWrappers() { + var dividers = document.querySelectorAll('ul.start_divider'); + if (!dividers.length) { + return; + } + dividers.forEach(function (divider) { + var children = [].slice.call(divider.children); + children.forEach(function (child) { + if (0 === child.children.length) { + child.remove(); + } else if (1 === child.children.length && 'ul' === child.firstElementChild.nodeName.toLowerCase() && 0 === child.firstElementChild.children.length) { + child.remove(); + } + }); + }); + } + function getFieldsInRow($row) { + var $fields = jQuery(); + var row = $row.get(0); + if (!row.children) { + return $fields; + } + Array.from(row.children).forEach(function (child) { + if ('none' === child.style.display) { + return; + } + var classes = child.classList; + if (!classes.contains('form-field') || classes.contains('edit_field_type_end_divider') || classes.contains('frm-sortable-helper')) { + return; + } + $fields = $fields.add(child); + }); + return $fields; + } + function determineIndexBasedOffOfMousePositionInRow($row, x) { + var $inputs = getFieldsInRow($row), + length = $inputs.length, + index, + input, + inputLeft, + returnIndex; + returnIndex = 0; + for (index = length - 1; index >= 0; --index) { + input = $inputs.get(index); + inputLeft = jQuery(input).offset().left; + if (x > inputLeft) { + returnIndex = index; + if (x > inputLeft + jQuery(input).outerWidth() / 2) { + returnIndex = index + 1; + } + break; + } + } + return returnIndex; + } + function syncLayoutClasses($item, type) { + var $fields, size, layoutClasses, classToAddFunction; + if ('undefined' === typeof type) { + type = 'even'; + } + $fields = $item.parent().children('li.form-field, li.frmbutton_loadingnow').not('.edit_field_type_end_divider'); + size = $fields.length; + layoutClasses = getLayoutClasses(); + if ('even' === type && 5 !== size) { + $fields.each(getSyncLayoutClass(layoutClasses, getEvenClassForSize(size))); + } else if ('clear' === type) { + $fields.each(getSyncLayoutClass(layoutClasses, '')); + } else { + if (-1 !== ['left', 'right', 'middle', 'even'].indexOf(type)) { + classToAddFunction = function classToAddFunction(index) { + return getClassForBlock(size, type, index); + }; + } else { + classToAddFunction = function classToAddFunction(index) { + var size = type[index]; + return getLayoutClassForSize(size); + }; + } + $fields.each(getSyncLayoutClass(layoutClasses, classToAddFunction)); + } + updateFieldGroupControls($item.parent(), $fields.length); + } + function updateFieldGroupControls($row, count) { + var rowOffset, shouldShowControls, controls; + rowOffset = $row.offset(); + if ('undefined' === typeof rowOffset) { + return; + } + shouldShowControls = count >= 2; + controls = document.getElementById('frm_field_group_controls'); + if (null === controls) { + if (!shouldShowControls) { + // exit early. if we do not need controls and they do not exist, do nothing. + return; + } + controls = div(); + controls.id = 'frm_field_group_controls'; + controls.setAttribute('role', 'group'); + controls.setAttribute('tabindex', 0); + setFieldControlsHtml(controls); + builderPage.appendChild(controls); + } + $row.append(controls); + controls.style.display = shouldShowControls ? 'block' : 'none'; + } + function setFieldControlsHtml(controls) { + var layoutOption, moveOption; + layoutOption = document.createElement('span'); + layoutOption.innerHTML = ''; + var layoutOptionLabel = __('Set Row Layout', 'formidable'); + addTooltip(layoutOption, layoutOptionLabel); + makeTabbable(layoutOption, layoutOptionLabel); + moveOption = document.createElement('span'); + moveOption.innerHTML = ''; + moveOption.classList.add('frm-move'); + var moveOptionLabel = __('Move Field Group', 'formidable'); + addTooltip(moveOption, moveOptionLabel); + makeTabbable(moveOption, moveOptionLabel); + controls.innerHTML = ''; + controls.appendChild(layoutOption); + controls.appendChild(moveOption); + controls.appendChild(getFieldControlsDropdown()); + } + function addTooltip(element, title) { + element.setAttribute('data-toggle', 'tooltip'); + element.setAttribute('data-container', 'body'); + element.setAttribute('title', title); + element.addEventListener('mouseover', function () { + if (null === element.getAttribute('data-original-title')) { + jQuery(element).tooltip(); + } + }); + } + function getFieldControlsDropdown() { + var dropdown = span({ + className: 'dropdown' + }); + var trigger = a({ + className: 'frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle', + children: [span({ + child: svg({ + href: '#frm_thick_more_vert_icon' + }) + }), span({ + className: 'screen-reader-text', + text: __('Toggle More Options Dropdown', 'formidable') + })] + }); + frmDom.setAttributes(trigger, { + title: __('More Options', 'formidable'), + 'data-toggle': 'dropdown', + 'data-container': 'body' + }); + makeTabbable(trigger, __('More Options', 'formidable')); + dropdown.appendChild(trigger); + var ul = div({ + className: 'frm-dropdown-menu dropdown-menu dropdown-menu-right' + }); + ul.setAttribute('role', 'menu'); + dropdown.appendChild(ul); + return dropdown; + } + function getSyncLayoutClass(layoutClasses, classToAdd) { + return function (itemIndex) { + var currentClassToAdd, length, layoutClassIndex, currentClass, activeLayoutClass, fieldId, layoutClassesInput; + currentClassToAdd = 'function' === typeof classToAdd ? classToAdd(itemIndex) : classToAdd; + length = layoutClasses.length; + activeLayoutClass = false; + for (layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex) { + currentClass = layoutClasses[layoutClassIndex]; + if (this.classList.contains(currentClass)) { + activeLayoutClass = currentClass; + break; + } + } + fieldId = this.dataset.fid; + if ('undefined' === typeof fieldId) { + // we are syncing the drag/drop placeholder before the actual field has loaded. + // this will get called again afterward and the input will exist then. + this.classList.add(currentClassToAdd); + return; + } + moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); + layoutClassesInput = document.getElementById('frm_classes_' + fieldId); + if (null === layoutClassesInput) { + // not every field type has a layout class input. + return; + } + if (false === activeLayoutClass) { + if ('' !== currentClassToAdd) { + layoutClassesInput.value = layoutClassesInput.value.concat(' ' + currentClassToAdd); + } + } else { + this.classList.remove(activeLayoutClass); + layoutClassesInput.value = layoutClassesInput.value.replace(activeLayoutClass, currentClassToAdd); + } + if (this.classList.contains('frm_first')) { + this.classList.remove('frm_first'); + layoutClassesInput.value = layoutClassesInput.value.replace('frm_first', '').trim(); + } + if (0 === itemIndex) { + this.classList.add('frm_first'); + layoutClassesInput.value = layoutClassesInput.value.concat(' frm_first'); + } + jQuery(layoutClassesInput).trigger('change'); + }; + } + function getLayoutClasses() { + return ['frm_full', 'frm_half', 'frm_third', 'frm_fourth', 'frm_sixth', 'frm_two_thirds', 'frm_three_fourths', 'frm1', 'frm2', 'frm3', 'frm4', 'frm5', 'frm6', 'frm7', 'frm8', 'frm9', 'frm10', 'frm11', 'frm12']; + } + function setupFieldOptionSorting(sort) { + var opts = { + items: '.frm_sortable_field_opts li', + axis: 'y', + opacity: 0.65, + forcePlaceholderSize: false, + handle: '.frm-drag', + helper: function helper(e, li) { + copyHelper = li.clone().insertAfter(li); + return li.clone(); + }, + stop: function stop(e, ui) { + copyHelper && copyHelper.remove(); + var fieldId = ui.item.attr('id').replace('frm_delete_field_', '').replace('-' + ui.item.data('optkey') + '_container', ''); + resetDisplayedOpts(fieldId); + fieldUpdated(); + } + }; + jQuery(sort).sortable(opts); + } + + // Get the section where a field is dropped + function getSectionForFieldPlacement(currentItem) { + var section = ''; + if (typeof currentItem !== 'undefined' && !currentItem.hasClass('edit_field_type_divider')) { + section = currentItem.closest('.edit_field_type_divider'); + } + return section; + } + + // Get the form ID where a field is dropped + function getFormIdForFieldPlacement(section) { + var formId = ''; + if (typeof section[0] !== 'undefined') { + var sDivide = section.children('.start_divider'); + sDivide.children('.edit_field_type_end_divider').appendTo(sDivide); + if (typeof section.attr('data-formid') !== 'undefined') { + var fieldId = section.attr('data-fid'); + formId = jQuery('input[name="field_options[form_select_' + fieldId + ']"]').val(); + } + } + if (typeof formId === 'undefined' || formId === '') { + formId = thisFormId; + } + return formId; + } + + // Get the section ID where a field is dropped + function getSectionIdForFieldPlacement(section) { + var sectionId = 0; + if (typeof section[0] !== 'undefined') { + sectionId = section.attr('id').replace('frm_field_id_', ''); + } + return sectionId; + } + + /** + * Update a field after it is dragged and dropped into, out of, or between sections + * + * @param {Object} currentItem + * @param {Object} previousSection + * @return {void} + */ + function updateFieldAfterMovingBetweenSections(currentItem, previousSection) { + if (!currentItem.hasClass('form-field')) { + // currentItem is a field group. Call for children recursively. + getFieldsInRow(jQuery(currentItem.get(0).firstChild)).each(function () { + updateFieldAfterMovingBetweenSections(jQuery(this), previousSection); + }); + return; + } + var fieldId = currentItem.attr('id').replace('frm_field_id_', ''); + var section = getSectionForFieldPlacement(currentItem); + var formId = getFormIdForFieldPlacement(section); + var sectionId = getSectionIdForFieldPlacement(section); + var previousFormId = previousSection ? getFormIdForFieldPlacement(jQuery(previousSection.parentNode)) : 0; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_update_field_after_move', + form_id: formId, + field: fieldId, + section_id: sectionId, + previous_form_id: previousFormId, + nonce: frmGlobal.nonce + }, + success: function success() { + toggleSectionHolder(); + updateInSectionValue(fieldId, sectionId); + } + }); + } + + // Update the in_section field value + function updateInSectionValue(fieldId, sectionId) { + document.getElementById('frm_in_section_' + fieldId).value = sectionId; + } + + /** + * Get the arguments for inserting a new field. + * + * @since 6.23 + * + * @param {string} fieldType + * @param {string} sectionId + * @param {string} formId + * @param {Number} hasBreak + * + * @return {Object} + */ + function getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak) { + return { + action: 'frm_insert_field', + form_id: formId, + field_type: fieldType, + section_id: sectionId, + nonce: frmGlobal.nonce, + has_break: hasBreak, + last_row_field_ids: getFieldIdsInSubmitRow() + }; + } + + /** + * Returns true if it's a range field type and slider type is not selected. + * + * @since 6.23 + * + * @param {string} fieldType + * @return {boolean} + */ + function shouldStopInsertingField(fieldType) { + return wp.hooks.applyFilters('frm_should_stop_inserting_field', false, fieldType); + } + + /** + * Add a new field by dragging and dropping it from the Fields sidebar + * + * @param {string} fieldType + */ + function insertNewFieldByDragging(fieldType) { + if (shouldStopInsertingField(fieldType)) { + wp.hooks.doAction('frm_stopped_inserting_by_dragging', fieldType); + return; + } + var placeholder = document.getElementById('frm_drag_placeholder'); + var loadingID = fieldType.replace('|', '-') + '_' + getAutoId(); + var loading = tag('li', { + id: loadingID, + className: 'frm-wait frmbutton_loadingnow' + }); + var $placeholder = jQuery(loading); + var currentItem = jQuery(placeholder); + var section = getSectionForFieldPlacement(currentItem); + var formId = getFormIdForFieldPlacement(section); + var sectionId = getSectionIdForFieldPlacement(section); + placeholder.parentNode.insertBefore(loading, placeholder); + placeholder.remove(); + syncLayoutClasses($placeholder); + var hasBreak = 0; + if ('summary' === fieldType) { + // see if we need to insert a page break before this newly-added summary field. Check for at least 1 page break + hasBreak = jQuery('.frmbutton_loadingnow#' + loadingID).prevAll('li[data-type="break"]').length ? 1 : 0; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak), + success: function success(msg) { + handleInsertFieldByDraggingResponse(msg, $placeholder); + var fieldId = checkMsgForFieldId(msg); + if (fieldId) { + /** + * Fires after a field is added. + * + * @since 6.23 + * + * @param {Object} fieldData The field data. + * @param {string} fieldData.field The field HTML. + * @param {string} fieldData.field_type The field type. + * @param {string} fieldData.form_id The form ID. + */ + wp.hooks.doAction('frm_after_field_added_in_form_builder', { + field: msg, + fieldId: fieldId, + fieldType: fieldType, + form_id: formId + }); + } + }, + error: handleInsertFieldError + }); + } + + /** + * @param {string} msg + * @param {Object} $placeholder jQuery object. + */ + function handleInsertFieldByDraggingResponse(msg, $placeholder) { + var replaceWith; + document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); + var $siblings = $placeholder.siblings('li.form-field').not('.edit_field_type_end_divider'); + if (!$siblings.length) { + // if dragging into a new row, we need to wrap the li first. + replaceWith = wrapFieldLi(msg); + } else { + replaceWith = msgAsjQueryObject(msg); + if (!$placeholder.get(0).parentNode.parentNode.classList.contains('ui-draggable')) { + // If a field group wasn't draggable because it only had a single field, make it draggable. + makeDraggable($placeholder.get(0).parentNode.parentNode, '.frm-move'); + } + } + $placeholder.replaceWith(replaceWith); + updateFieldOrder(); + afterAddField(msg, false); + if ($siblings.length) { + syncLayoutClasses($siblings.first()); + } + toggleSectionHolder(); + if (!$siblings.length) { + makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); + makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); + } else { + makeDraggable(replaceWith.get(0), '.frm-move'); + } + } + + /** + * Get the field ID from the response message. + * + * @since 6.23 + * + * @param {string} msg + * @return {Number} + */ + function checkMsgForFieldId(msg) { + var result = msg.match(/data-fid="(\d+)"/); + return result ? parseInt(result[1]) : 0; + } + function getFieldIdsInSubmitRow() { + var submitField = document.querySelector('.edit_field_type_submit'); + if (!submitField) { + return []; + } + var lastRowFields = submitField.parentNode.children; + var ids = []; + for (var _i2 = 0; _i2 < lastRowFields.length; _i2++) { + ids.push(lastRowFields[_i2].dataset.fid); + } + return ids; + } + function moveFieldThatAlreadyExists(draggable, placeholder) { + placeholder.parentNode.insertBefore(draggable, placeholder); + } + function msgAsjQueryObject(msg) { + var element = div(); + element.innerHTML = msg; + return jQuery(element.firstChild); + } + function handleInsertFieldError(jqXHR, _, errorThrown) { + maybeShowInsertFieldError(errorThrown, jqXHR); + } + function maybeShowInsertFieldError(errorThrown, jqXHR) { + if (!jqXHRAborted(jqXHR)) { + infoModal(errorThrown + '. Please try again.'); + } + } + function jqXHRAborted(jqXHR) { + return jqXHR.status === 0 || jqXHR.readyState === 0; + } + + /** + * Get a unique id that automatically increments with every function call. + * Can be used for any UI that requires a unique id. + * Not to be used in data. + * + * @return {number} + */ + function getAutoId() { + return ++autoId; + } + + /** + * Determine if a draggable element can be droppable into a droppable element. + * + * Don't allow page break, embed form, or section inside section field + * Don't allow page breaks inside of field groups. + * Don't allow field groups with sections inside of sections. + * Don't allow field groups in field groups. + * Don't allow hidden fields inside of field groups but allow them in sections. + * Don't allow any fields below the submit button field. + * Don't allow submit button field above any fields. + * Don't allow GDPR fields in repeaters. + * + * @param {HTMLElement} draggable + * @param {HTMLElement} droppable + * @param {Event} event + * @return {Boolean} + */ + function allowDrop(draggable, droppable, event) { + if (false === droppable) { + // Don't show drop placeholder if dragging somewhere off of the droppable area. + return false; + } + if (droppable.closest('.frm-sortable-helper')) { + // Do not allow drop into draggable. + return false; + } + var isSubmitBtn = draggable.classList.contains('edit_field_type_submit'); + var containSubmitBtn = !draggable.classList.contains('form_field') && !!draggable.querySelector('.edit_field_type_submit'); + if ('frm-show-fields' === droppable.id) { + var draggableIndex = determineIndexBasedOffOfMousePositionInList(jQuery(droppable), event.clientY); + if (isSubmitBtn || containSubmitBtn) { + // Do not allow dropping submit button to above position. + var lastRowIndex = droppable.childElementCount - 1; + return draggableIndex > lastRowIndex; + } + + // Do not allow dropping other fields to below submit button. + var submitButtonIndex = jQuery(droppable.querySelector('.edit_field_type_submit').closest('#frm-show-fields > li')).index(); + return draggableIndex <= submitButtonIndex; + } + if (isSubmitBtn) { + if (droppable.classList.contains('start_divider')) { + // Don't allow dropping submit button into a repeater. + return false; + } + if (isLastRow(droppable.parentElement)) { + // Allow dropping submit button into the last row. + return true; + } + if (!isLastRow(droppable.parentElement.nextElementSibling)) { + // Don't a dropping submit button into the row that isn't the second one from bottom. + return false; + } + + // Allow dropping submit button into the second row from bottom if there is only submit button in the last row. + return !draggable.parentElement.querySelector('li.frm_field_box:not(.edit_field_type_submit)'); + } + if (droppable.classList.contains('start_divider') && (draggable.classList.contains('edit_field_type_gdpr') || draggable.id === 'gdpr') && droppable.closest('.repeat_section')) { + // Don't allow GDPR fields in repeaters. + return false; + } + if (!droppable.classList.contains('start_divider')) { + var $fieldsInRow = getFieldsInRow(jQuery(droppable)); + if (!groupCanFitAnotherField($fieldsInRow, jQuery(draggable))) { + // Field group is full and cannot accept another field. + return false; + } + if (draggable.id === 'divider' && droppable.closest('.start_divider')) { + return false; + } + } + var isNewField = draggable.classList.contains('frm-new-field'); + if (isNewField) { + return allowNewFieldDrop(draggable, droppable); + } + return allowMoveField(draggable, droppable); + } + + /** + * Checks if given element is the last row in form builder. + * + * @param {HTMLElement} element Element. + * @return {Boolean} + */ + function isLastRow(element) { + return element && element.matches('#frm-show-fields > li:last-child'); + } + + // Don't allow a new page break or hidden field in a field group. + // Don't allow a new field into a field group that includes a page break or hidden field. + // Don't allow a new section inside of a section. + // Don't allow an embedded form in a section. + function allowNewFieldDrop(draggable, droppable) { + var classes = draggable.classList; + var newPageBreakField = classes.contains('frm_tbreak'); + var newHiddenField = classes.contains('frm_thidden'); + var newSectionField = classes.contains('frm_tdivider'); + var newEmbedField = classes.contains('frm_tform'); + var newUserIdField = classes.contains('frm_tuser_id'); + var newFieldWillBeAddedToAGroup = !('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')); + if (newFieldWillBeAddedToAGroup) { + if (groupIncludesBreakOrHiddenOrUserId(droppable)) { + // Never allow any field beside a page break or a hidden field. + return false; + } + return !newHiddenField && !newPageBreakField && !newUserIdField; + } + var fieldTypeIsAlwaysAllowed = !newPageBreakField && !newHiddenField && !newSectionField && !newEmbedField; + if (fieldTypeIsAlwaysAllowed) { + return true; + } + var newFieldWillBeAddedToASection = droppable.classList.contains('start_divider') || null !== droppable.closest('.start_divider'); + if (newFieldWillBeAddedToASection) { + // Don't allow a section or an embedded form in a section. + return !newEmbedField && !newSectionField; + } + return true; + } + function allowMoveField(draggable, droppable) { + if (isFieldGroup(draggable)) { + return allowMoveFieldGroup(draggable, droppable); + } + var isPageBreak = draggable.classList.contains('edit_field_type_break'); + if (isPageBreak) { + // Page breaks are only allowed in the main list of fields, not in sections or in field groups. + return false; + } + if (droppable.classList.contains('start_divider')) { + return allowMoveFieldToSection(draggable); + } + var isHiddenField = draggable.classList.contains('edit_field_type_hidden'); + var isUserIdField = draggable.classList.contains('edit_field_type_user_id'); + if (isHiddenField || isUserIdField) { + // Hidden fields and user id fields should not be added to field groups since they're not shown + // and don't make sense with the grid distribution. + return false; + } + return allowMoveFieldToGroup(draggable, droppable); + } + function isFieldGroup(draggable) { + return draggable.classList.contains('frm_field_box') && !draggable.classList.contains('form-field'); + } + function allowMoveFieldGroup(fieldGroup, droppable) { + if (droppable.classList.contains('start_divider') && null === fieldGroup.querySelector('.start_divider')) { + // Allow a field group with no section inside of a section. + return true; + } + return false; + } + function allowMoveFieldToSection(draggable) { + var draggableIncludeEmbedForm = draggable.classList.contains('edit_field_type_form') || draggable.querySelector('.edit_field_type_form'); + if (draggableIncludeEmbedForm) { + // Do not allow an embedded form inside of a section. + return false; + } + var draggableIncludesSection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); + if (draggableIncludesSection) { + // Do not allow a section inside of a section. + return false; + } + return true; + } + function allowMoveFieldToGroup(draggable, group) { + if (groupIncludesBreakOrHiddenOrUserId(group)) { + // Never allow any field beside a page break or a hidden field. + return false; + } + var isFieldGroup = jQuery(draggable).children('ul.frm_sorting').not('.start_divider').length > 0; + if (isFieldGroup) { + // Do not allow a field group directly inside of a field group unless it's in a section. + return false; + } + var draggableIncludesASection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); + var draggableIsEmbedField = draggable.classList.contains('edit_field_type_form'); + var groupIsInASection = null !== group.closest('.start_divider'); + if (groupIsInASection && (draggableIncludesASection || draggableIsEmbedField)) { + // Do not allow a section or an embed field inside of a section. + return false; + } + return true; + } + function groupIncludesBreakOrHiddenOrUserId(group) { + return null !== group.querySelector('.edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id'); + } + function groupCanFitAnotherField(fieldsInRow, $field) { + var fieldId; + if (fieldsInRow.length < 6) { + return true; + } + if (fieldsInRow.length > 6) { + return false; + } + fieldId = $field.attr('data-fid'); + // allow 6 if we're not changing field groups. + return 1 === jQuery(fieldsInRow).filter('[data-fid="' + fieldId + '"]').length; + } + function loadFields(fieldId) { + var thisField = document.getElementById(fieldId); + var $thisField = jQuery(thisField); + var field = []; + var addHtmlToField = function addHtmlToField(element) { + var frmHiddenFdata = element.querySelector('.frm_hidden_fdata'); + element.classList.add('frm_load_now'); + if (frmHiddenFdata !== null) { + field.push(frmHiddenFdata.innerHTML); + } + }; + var nextElement = thisField; + addHtmlToField(nextElement); + var nextField = getNextField(nextElement); + while (nextField && field.length < 15) { + addHtmlToField(nextField); + nextElement = nextField; + nextField = getNextField(nextField); + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_load_field', + field: field, + form_id: thisFormId, + nonce: frmGlobal.nonce + }, + success: function success(html) { + return handleAjaxLoadFieldSuccess(html, $thisField, field); + } + }); + } + function getNextField(field) { + var _field$parentNode; + if (field.nextElementSibling) { + return field.nextElementSibling; + } + return (_field$parentNode = field.parentNode) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.closest('.frm_field_box')) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.nextElementSibling) === null || _field$parentNode === void 0 ? void 0 : _field$parentNode.querySelector('.form-field'); + } + function handleAjaxLoadFieldSuccess(html, $thisField, field) { + var key, $nextSet; + html = html.replace(/^\s+|\s+$/g, ''); + if (html.indexOf('{') !== 0) { + jQuery('.frm_load_now').removeClass('.frm_load_now').html('Error'); + return; + } + html = JSON.parse(html); + for (key in html) { + jQuery('#frm_field_id_' + key).replaceWith(html[key]); + setupSortable('#frm_field_id_' + key + '.edit_field_type_divider ul.frm_sorting'); + makeDraggable(document.getElementById('frm_field_id_' + key)); + } + $nextSet = $thisField.nextAll('.frm_field_loading:not(.frm_load_now)'); + if ($nextSet.length) { + loadFields($nextSet.attr('id')); + } else { + // go up a level + $nextSet = jQuery(document.getElementById('frm-show-fields')).find('.frm_field_loading:not(.frm_load_now)'); + if ($nextSet.length) { + loadFields($nextSet.attr('id')); + } + } + initiateMultiselect(); + renumberPageBreaks(); + maybeHideQuantityProductFieldOption(); + var loadedEvent = new Event('frm_ajax_loaded_field', { + bubbles: false + }); + loadedEvent.frmFields = field.map(function (f) { + return JSON.parse(f); + }); + document.dispatchEvent(loadedEvent); + } + function addFieldClick() { + /*jshint validthis:true */ + var $thisObj = jQuery(this); + // there is no real way to disable a (with a valid href attribute) in HTML - https://css-tricks.com/how-to-disable-links/ + if ($thisObj.hasClass('disabled')) { + return false; + } + var $button = $thisObj.closest('.frmbutton'); + var fieldType = $button.attr('id'); + if (shouldStopInsertingField(fieldType)) { + return; + } + var hasBreak = 0; + if ('summary' === fieldType) { + hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; + } + var formId = thisFormId; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), + success: function success(msg) { + handleAddFieldClickResponse(msg); + var fieldId = checkMsgForFieldId(msg); + if (fieldId) { + /** + * Fires after a field is added. + * + * @since 6.23 + * + * @param {Object} fieldData The field data. + * @param {string} fieldData.field The field HTML. + * @param {string} fieldData.field_type The field type. + * @param {string} fieldData.form_id The form ID. + */ + wp.hooks.doAction('frm_after_field_added_in_form_builder', { + field: msg, + fieldId: fieldId, + fieldType: fieldType, + form_id: formId + }); + } + }, + error: handleInsertFieldError + }); + return false; + } + function handleAddFieldClickResponse(msg) { + document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); + var replaceWith = wrapFieldLi(msg); + var submitField = $newFields[0].querySelector('.edit_field_type_submit'); + if (!submitField) { + $newFields.append(replaceWith); + } else { + jQuery(submitField.closest('.frm_field_box:not(.form-field)')).before(replaceWith); + } + afterAddField(msg, true); + replaceWith.each(function () { + makeDroppable(this.querySelector('ul.frm_sorting')); + makeDraggable(this.querySelector('.form-field'), '.frm-move'); + }); + } + function insertFormField(fieldType) { + var fieldOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return new Promise(function (resolve) { + var formId = thisFormId; + var hasBreak = 0; + if ('summary' === fieldType) { + hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: Object.assign(getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), { + field_options: fieldOptions + }), + success: function success(msg) { + resolve(msg); + setTimeout(function () { + updateFieldOrder(); + afterAddField(msg, true); + var fieldId = checkMsgForFieldId(msg); + if (fieldId) { + /** + * Fires after a field is added. + * + * @since 6.23 + * + * @param {Object} fieldData The field data. + * @param {string} fieldData.field The field HTML. + * @param {string} fieldData.field_type The field type. + * @param {string} fieldData.form_id The form ID. + */ + wp.hooks.doAction('frm_after_field_added_in_form_builder', { + field: msg, + fieldId: fieldId, + fieldType: fieldType, + form_id: formId + }); + } + }, 10); + }, + error: handleInsertFieldError + }); + }); + } + function maybeHideQuantityProductFieldOption() { + var hide = true, + opts = document.querySelectorAll('.frmjs_prod_field_opt_cont'); + if ($newFields.find('li.edit_field_type_product').length > 1) { + hide = false; + } + for (var _i3 = 0; _i3 < opts.length; _i3++) { + if (hide) { + opts[_i3].classList.add('frm_hidden'); + } else { + opts[_i3].classList.remove('frm_hidden'); + } + } + } + + /** + * Returns true if a field can be duplicated. + * + * @since 6.19 + * + * @param {HTMLElement} field + * @param {number} maxFieldsInGroup + * + * @return {Boolean} + */ + function canDuplicateField(field, maxFieldsInGroup) { + if (field.classList.contains('frm-page-collapsed')) { + return false; + } + var fieldGroup = field.closest('li.frm_field_box:not(.form-field)'); + if (!fieldGroup) { + return true; + } + var fieldsInGroup = getFieldsInRow(jQuery(fieldGroup.querySelector('ul'))).length; + return fieldsInGroup < maxFieldsInGroup; + } + function duplicateField() { + var $field, fieldId, children, newRowId, fieldOrder; + var maxFieldsInGroup = 6; + $field = jQuery(this).closest('li.form-field'); + newRowId = this.getAttribute('frm-target-row-id'); + if (!(newRowId && newRowId.startsWith('frm_field_group_')) && !canDuplicateField($field.get(0), maxFieldsInGroup)) { + /* translators: %1$d: Maximum number of fields allowed in a field group. */ + infoModal(sprintf(__('You can only have a maximum of %1$d fields in a field group. Delete or move out a field from the group and try again.', 'formidable'), maxFieldsInGroup)); + return; + } + closeOpenFieldDropdowns(); + fieldId = $field.data('fid'); + children = fieldsInSection(fieldId); + if (null !== newRowId) { + fieldOrder = this.getAttribute('frm-field-order'); + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_duplicate_field', + field_id: fieldId, + form_id: thisFormId, + children: children, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + var _$field$0$querySelect; + var newRow; + var replaceWith; + if (null !== newRowId) { + newRow = document.getElementById(newRowId); + if (null !== newRow) { + replaceWith = msgAsjQueryObject(msg); + jQuery(newRow).append(replaceWith); + makeDraggable(replaceWith.get(0), '.frm-move'); + if (null !== fieldOrder) { + newRow.lastElementChild.setAttribute('frm-field-order', fieldOrder); + } + jQuery(newRow).trigger('frm_added_duplicated_field_to_row', { + duplicatedFieldHtml: msg, + originalFieldId: fieldId + }); + afterAddField(msg, false); + setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); + return; + } + } + if ($field.siblings('li.form-field').length) { + replaceWith = msgAsjQueryObject(msg); + $field.after(replaceWith); + syncLayoutClasses($field); + makeDraggable(replaceWith.get(0), '.frm-move'); + } else { + replaceWith = wrapFieldLi(msg); + $field.parent().parent().after(replaceWith); + makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); + makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); + } + updateFieldOrder(); + afterAddField(msg, false); + maybeDuplicateUnsavedSettings(fieldId, msg); + toggleOneSectionHolder(replaceWith.find('.start_divider')); + (_$field$0$querySelect = $field[0].querySelector('.frm-dropdown-menu.dropdown-menu-right')) === null || _$field$0$querySelect === void 0 || _$field$0$querySelect.classList.remove('show'); + setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); + } + }); + return false; + } + + /** + * Sets the layout classes for a duplicated field in a field group from the layout classes of the original field. + * + * @param {HTMLElement} field The original field. + * @param {HTMLElement} newField The duplicated field. + * + * @return {void} + */ + function setLayoutClassesForDuplicatedFieldInGroup(field, newField) { + var _document$getElementB; + var hoverTarget = field.closest('.frm-field-group-hover-target'); + if (!hoverTarget || !isFieldGroup(hoverTarget.parentElement)) { + return; + } + var fieldId = field.dataset.fid; + var fieldClasses = (_document$getElementB = document.getElementById('frm_classes_' + fieldId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.value; + if (!fieldClasses) { + return; + } + fieldClasses = fieldClasses.replace('frm_first', ''); + if (!newField.className.includes(fieldClasses)) { + newField.className += ' ' + fieldClasses; + var classesInput = document.getElementById('frm_classes_' + newField.dataset.fid); + if (classesInput) { + classesInput.value = fieldClasses; + } + } + } + function maybeDuplicateUnsavedSettings(originalFieldId, newFieldHtml) { + var originalSettings, newFieldId, copySettings, fieldOptionKeys, originalDefault, copyDefault; + originalSettings = document.getElementById('frm-single-settings-' + originalFieldId); + if (null === originalSettings) { + return; + } + newFieldId = jQuery(newFieldHtml).attr('data-fid'); + if ('undefined' === typeof newFieldId) { + return; + } + copySettings = document.getElementById('frm-single-settings-' + newFieldId); + if (null === copySettings) { + return; + } + fieldOptionKeys = ['name', 'required', 'unique', 'read_only', 'placeholder', 'description', 'size', 'max', 'format', 'prepend', 'append', 'separate_value']; + originalSettings.querySelectorAll('input[name^="field_options["], textarea[name^="field_options["]').forEach(function (originalSetting) { + var key, tagType, copySetting; + key = getKeyFromSettingInput(originalSetting); + if ('options' === key) { + copyOption(originalSetting, copySettings, originalFieldId, newFieldId); + return; + } + if (-1 === fieldOptionKeys.indexOf(key)) { + return; + } + tagType = originalSetting.matches('input') ? 'input' : 'textarea'; + copySetting = copySettings.querySelector(tagType + '[name="field_options[' + key + '_' + newFieldId + ']"]'); + if (null === copySetting) { + return; + } + if ('checkbox' === originalSetting.type) { + if (originalSetting.checked !== copySetting.checked) { + jQuery(copySetting).trigger('click'); + } + } else if ('text' === originalSetting.type || 'textarea' === tagType) { + if (originalSetting.value !== copySetting.value) { + copySetting.value = originalSetting.value; + jQuery(copySetting).trigger('change'); + } + } + }); + originalDefault = originalSettings.querySelector('input[name="default_value_' + originalFieldId + '"]'); + if (null !== originalDefault) { + copyDefault = copySettings.querySelector('input[name="default_value_' + newFieldId + '"]'); + if (null !== copyDefault && originalDefault.value !== copyDefault.value) { + copyDefault.value = originalDefault.value; + jQuery(copyDefault).trigger('change'); + } + } + } + function copyOption(originalSetting, copySettings, originalFieldId, newFieldId) { + var remainingKeyDetails, copyKey, copySetting; + remainingKeyDetails = originalSetting.name.substr(23 + ('' + originalFieldId).length); + copyKey = 'field_options[options_' + newFieldId + ']' + remainingKeyDetails; + copySetting = copySettings.querySelector('input[name="' + copyKey + '"]'); + if (null !== copySetting && copySetting.value !== originalSetting.value) { + copySetting.value = originalSetting.value; + jQuery(copySetting).trigger('change'); + } + } + function getKeyFromSettingInput(input) { + var nameWithoutPrefix, nameSplit; + nameWithoutPrefix = input.name.substr(14); + nameSplit = nameWithoutPrefix.split('_'); + nameSplit.pop(); + return nameSplit.join('_'); + } + function closeOpenFieldDropdowns() { + var openSettings = document.querySelector('.frm-field-settings-open'); + if (null !== openSettings) { + openSettings.classList.remove('frm-field-settings-open'); + jQuery(document).off('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); + jQuery('.frm-field-action-icons .dropdown.open').removeClass('open'); + } + } + function handleClickOutsideOfFieldSettings(event) { + if (!jQuery(event.originalEvent.target).closest('.frm-field-action-icons').length) { + closeOpenFieldDropdowns(); + } + } + function checkForMultiselectKeysOnMouseMove(event) { + var keyIsDown = !!(event.ctrlKey || event.metaKey || event.shiftKey); + jQuery(builderPage).toggleClass('frm-multiselect-key-is-down', keyIsDown); + checkForActiveHoverTarget(event); + } + function checkForActiveHoverTarget(event) { + var container, elementFromPoint, list, previousHoverTarget; + container = postBodyContent; + if (container.classList.contains('frm-dragging-field')) { + return; + } + if (null !== document.querySelector('.frm-field-group-hover-target .frm-field-settings-open')) { + // do not set a hover target if a dropdown is open for the current hover target. + return; + } + elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); + if (null !== elementFromPoint && !elementFromPoint.classList.contains('edit_field_type_divider')) { + list = elementFromPoint.closest('ul.frm_sorting'); + if (null !== list && !list.classList.contains('start_divider') && 'frm-show-fields' !== list.id) { + previousHoverTarget = maybeRemoveGroupHoverTarget(); + if (false !== previousHoverTarget && !jQuery(previousHoverTarget).is(list)) { + destroyFieldGroupPopup(); + } + updateFieldGroupControls(jQuery(list), getFieldsInRow(jQuery(list)).length); + list.classList.add('frm-field-group-hover-target'); + jQuery('#wpbody-content').on('mousemove', maybeRemoveHoverTargetOnMouseMove); + } + } + } + function maybeRemoveGroupHoverTarget() { + var controls, previousHoverTarget; + controls = document.getElementById('frm_field_group_controls'); + if (null !== controls) { + controls.style.display = 'none'; + } + previousHoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === previousHoverTarget) { + return false; + } + jQuery('#wpbody-content').off('mousemove', maybeRemoveHoverTargetOnMouseMove); + previousHoverTarget.classList.remove('frm-field-group-hover-target'); + return previousHoverTarget; + } + function maybeRemoveHoverTargetOnMouseMove(event) { + var elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); + if (null !== elementFromPoint && null !== elementFromPoint.closest('#frm-show-fields')) { + return; + } + maybeRemoveGroupHoverTarget(); + } + function onFieldActionDropdownShow(isFieldGroup) { + unselectFieldGroups(); + // maybe offset the dropdown if it goes off of the right of the screen. + setTimeout(function () { + var ul, $ul; + ul = document.querySelector('.dropdown.show .frm-dropdown-menu'); + if (null === ul) { + return; + } + if (null === ul.getAttribute('aria-label')) { + ul.setAttribute('aria-label', __('More Options', 'formidable')); + } + if (0 === ul.children.length) { + fillFieldActionDropdown(ul, true === isFieldGroup); + } + $ul = jQuery(ul); + if ($ul.offset().left > jQuery(window).width() - $ul.outerWidth()) { + ul.style.left = -$ul.outerWidth() + 'px'; + } + var firstAnchor = ul.firstElementChild.querySelector('a'); + if (firstAnchor) { + firstAnchor.focus(); + } + }, 0); + } + function onFieldGroupActionDropdownShow() { + onFieldActionDropdownShow(true); + } + function changeSectionStyle(e) { + var collapsedSection = e.target.closest('.frm-section-collapsed'); + if (!collapsedSection) { + return; + } + if (e.type === 'show') { + collapsedSection.style.zIndex = 3; + } else { + collapsedSection.style.zIndex = 1; + } + } + function fillFieldActionDropdown(ul, isFieldGroup) { + var classSuffix, options; + classSuffix = isFieldGroup ? '_field_group' : '_field'; + options = [getDeleteActionOption(isFieldGroup), getDuplicateActionOption(isFieldGroup)]; + if (!isFieldGroup) { + options.push({ + class: 'frm_select', + icon: 'frm_settings_icon', + label: __('Field Settings', 'formidable') + }); + } + options.forEach(function (option) { + var li, anchor, span; + li = document.createElement('div'); + li.classList.add('frm_more_options_li', 'dropdown-item'); + anchor = document.createElement('a'); + anchor.classList.add(option.class + classSuffix); + anchor.setAttribute('href', '#'); + makeTabbable(anchor); + span = document.createElement('span'); + span.textContent = option.label; + anchor.innerHTML = ''; + anchor.appendChild(document.createTextNode(' ')); + anchor.appendChild(span); + li.appendChild(anchor); + ul.appendChild(li); + }); + } + function getDeleteActionOption(isFieldGroup) { + var option = { + class: 'frm_delete', + icon: 'frm_delete_icon' + }; + option.label = isFieldGroup ? __('Delete Group', 'formidable') : __('Delete', 'formidable'); + return option; + } + function getDuplicateActionOption(isFieldGroup) { + var option = { + class: 'frm_clone', + icon: 'frm_clone_icon' + }; + option.label = isFieldGroup ? __('Duplicate Group', 'formidable') : __('Duplicate', 'formidable'); + return option; + } + function wrapFieldLi(field) { + var wrapper = div(); + if ('string' === typeof field) { + wrapper.innerHTML = field; + } else { + wrapper.appendChild(field); + } + var result = jQuery(); + Array.from(wrapper.children).forEach(function (li) { + result = result.add(jQuery('
                          • ').addClass('frm_field_box').html(jQuery('
                              ').addClass('frm_grid_container frm_sorting').append(li))); + }); + return result; + } + function wrapFieldLiInPlace(li) { + var ul = tag('ul', { + className: 'frm_grid_container frm_sorting' + }); + var wrapper = tag('li', { + className: 'frm_field_box', + child: ul + }); + li.replaceWith(wrapper); + ul.appendChild(li); + makeDroppable(ul); + makeDraggable(wrapper, '.frm-move'); + } + function afterAddField(msg, addFocus) { + var regex = /id="(\S+)"/; + var match = regex.exec(msg); + var field = document.getElementById(match[1]); + var section = '#' + match[1] + '.edit_field_type_divider ul.frm_sorting.start_divider'; + var $thisSection = jQuery(section); + var type = field.getAttribute('data-type'); + checkHtmlForNewFields(msg); + var toggled = false; + fieldUpdated(); + setupSortable(section); + if ('quantity' === type) { + // try to automatically attach a product field + maybeSetProductField(field); + } + if ('product' === type || 'quantity' === type) { + // quantity too needs to be a part of the if stmt especially cos of the very + // 1st quantity field (or even if it's just one quantity field in the form). + maybeHideQuantityProductFieldOption(); + } + if ($thisSection.length) { + $thisSection.parent('.frm_field_box').children('.frm_no_section_fields').addClass('frm_block'); + } else { + var $parentSection = jQuery(field).closest('ul.frm_sorting.start_divider'); + if ($parentSection.length) { + toggleOneSectionHolder($parentSection); + toggled = true; + } + } + if (msg.indexOf('frm-collapse-page') !== -1) { + renumberPageBreaks(); + } + addClass(field, 'frm-newly-added'); + setTimeout(function () { + field.classList.remove('frm-newly-added'); + }, 1000); + if (addFocus) { + var bounding = field.getBoundingClientRect(), + container = document.getElementById('post-body-content'), + inView = bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight); + if (!inView) { + container.scroll({ + top: container.scrollHeight, + left: 0, + behavior: 'smooth' + }); + } + if (toggled === false) { + toggleOneSectionHolder($thisSection); + } + } + deselectFields(); + initiateMultiselect(); + document.getElementById('frm-show-fields').classList.remove('frm-over-droppable'); + var addedEvent = new Event('frm_added_field', { + bubbles: false + }); + addedEvent.frmField = field; + addedEvent.frmSection = section; + addedEvent.frmType = type; + addedEvent.frmToggles = toggled; + document.dispatchEvent(addedEvent); + } + + /** + * Since multiple new fields may get added when a new field is inserted, check the HTML. + * + * @param {string} html + * @return {void} + */ + function checkHtmlForNewFields(html) { + var element = div(); + element.innerHTML = html; + element.querySelectorAll('.form-field').forEach(addFieldIdToDraftFieldsInput); + } + + /** + * @param {HTMLElement} field + * @return {void} + */ + function addFieldIdToDraftFieldsInput(field) { + if (!field.dataset.fid) { + return; + } + var draftInput = document.getElementById('draft_fields'); + if (!draftInput) { + return; + } + if ('' === draftInput.value) { + draftInput.value = field.dataset.fid; + } else { + var split = draftInput.value.split(','); + if (!split.includes(field.dataset.fid)) { + draftInput.value += ',' + field.dataset.fid; + } + } + } + function clearSettingsBox(preventFieldGroups) { + jQuery('#new_fields .frm-single-settings').addClass('frm_hidden'); + jQuery('#frm-options-panel > .frm-single-settings').removeClass('frm_hidden'); + deselectFields(preventFieldGroups); + } + function deselectFields(preventFieldGroups) { + jQuery('li.ui-state-default.selected').removeClass('selected'); + jQuery('.frm-show-field-settings.selected').removeClass('selected'); + if (!preventFieldGroups) { + unselectFieldGroups(); + } + } + function scrollToField(field) { + var newPos = field.getBoundingClientRect().top, + container = document.getElementById('post-body-content'); + if (typeof animate === 'undefined') { + jQuery(container).scrollTop(newPos); + } else { + // TODO: smooth scroll + jQuery(container).animate({ + scrollTop: newPos + }, 500); + } + } + function checkCalculationCreatedByUser() { + var calculation = this.value; + var warningMessage = checkMatchingParens(calculation); + warningMessage += checkShortcodes(calculation, this); + if (warningMessage !== '') { + infoModal(calculation + '\n\n' + warningMessage); + } + } + + /** + * Checks a string for parens, brackets, and curly braces and returns a message if any unmatched are found. + * + * @param formula + * @return {string} + */ + function checkMatchingParens(formula) { + var stack = [], + formulaArray = formula.split(''), + length = formulaArray.length, + opening = ['{', '[', '('], + closing = { + '}': '{', + ')': '(', + ']': '[' + }, + unmatchedClosing = [], + msg = '', + i, + top; + for (i = 0; i < length; i++) { + if (opening.includes(formulaArray[i])) { + stack.push(formulaArray[i]); + continue; + } + if (closing.hasOwnProperty(formulaArray[i])) { + top = stack.pop(); + if (top !== closing[formulaArray[i]]) { + unmatchedClosing.push(formulaArray[i]); + } + } + } + if (stack.length > 0 || unmatchedClosing.length > 0) { + msg = frmAdminJs.unmatched_parens + '\n\n'; + return msg; + } + return ''; + } + + /** + * Checks a calculation for shortcodes that shouldn't be in it and returns a message if found. + * + * @param calculation + * @param inputElement + * @return {string} + */ + function checkShortcodes(calculation, inputElement) { + var msg = checkNonNumericShortcodes(calculation, inputElement); + msg += checkNonFormShortcodes(calculation); + return msg; + } + + /** + * Checks if a numeric calculation has shortcodes that output non-numeric strings and returns a message if found. + * + * @param calculation + * + * @param inputElement + * @return {string} + */ + function checkNonNumericShortcodes(calculation, inputElement) { + var msg = ''; + if (isTextCalculation(inputElement)) { + return msg; + } + var nonNumericShortcodes = getNonNumericShortcodes(); + if (nonNumericShortcodes.test(calculation)) { + msg = frmAdminJs.text_shortcodes + '\n\n'; + } + return msg; + } + + /** + * Determines if the calculation input is from a text calculation. + * + * @param inputElement + */ + function isTextCalculation(inputElement) { + return jQuery(inputElement).siblings('label[for^="calc_type"]').children('input').prop('checked'); + } + + /** + * Returns a regular expression of shortcodes that can't be used in numeric calculations. + * + * @return {RegExp} + */ + function getNonNumericShortcodes() { + return /\[(date|time|email|ip)\]/; + } + + /** + * Checks if a string has any shortcodes that do not belong in forms and returns a message if any are found. + * + * @param formula + * @return {string} + */ + function checkNonFormShortcodes(formula) { + var nonFormShortcodes = getNonFormShortcodes(), + msg = ''; + if (nonFormShortcodes.test(formula)) { + msg += frmAdminJs.view_shortcodes + '\n\n'; + } + return msg; + } + + /** + * Returns a regular expression of shortcodes that can't be used in forms but can be used in Views, Email + * Notifications, and other Formidable areas. + * + * @return {RegExp} + */ + function getNonFormShortcodes() { + return /\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g; + } + function isCalcBoxType(box, listClass) { + var list = jQuery(box).find('.frm_code_list'); + return 1 === list.length && list.hasClass(listClass); + } + function extractExcludedOptions(exclude) { + var opts = []; + if (!Array.isArray(exclude)) { + return opts; + } + for (var _i4 = 0; _i4 < exclude.length; _i4++) { + if (exclude[_i4].startsWith('[')) { + opts.push(exclude[_i4]); + // remove it + exclude.splice(_i4, 1); + // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value + _i4--; + } + } + return opts; + } + function hasExcludedOption(field, excludedOpts) { + var hasOption = false; + for (var _i5 = 0; _i5 < excludedOpts.length; _i5++) { + var inputs = document.getElementsByName(getFieldOptionInputName(excludedOpts[_i5], field.fieldId)); + // 2nd condition checks that there's at least one non-empty value + if (inputs.length && jQuery(inputs[0]).val()) { + hasOption = true; + break; + } + } + return hasOption; + } + function getFieldOptionInputName(opt, fieldId) { + var at = opt.indexOf(']'); + return 'field_options' + opt.substring(0, at) + '_' + fieldId + opt.substring(at); + } + function popCalcFields(v, force) { + var box, + exclude, + fields, + i, + list, + p = jQuery(v).closest('.frm-single-settings'), + calc = p.find('.frm-calc-field'); + if (!force && (!calc.length || calc.val() === '' || calc.is(':hidden'))) { + return; + } + var isSummary = isCalcBoxType(v, 'frm_js_summary_list'); + var fieldId = p.find('input[name="frm_fields_submitted[]"]').val(); + if (force) { + box = v; + } else { + box = document.getElementById('frm-calc-box-' + fieldId); + } + exclude = getExcludeArray(box, isSummary); + var excludedOpts = extractExcludedOptions(exclude); + fields = getFieldList(); + list = document.getElementById('frm-calc-list-' + fieldId); + list.innerHTML = ''; + for (i = 0; i < fields.length; i++) { + if (exclude && exclude.includes(fields[i].fieldType) || excludedOpts.length && hasExcludedOption(fields[i], excludedOpts)) { + continue; + } + var _a = document.createElement('a'); + _a.setAttribute('href', '#'); + _a.setAttribute('data-code', fields[i].fieldId); + _a.classList.add('frm_insert_code'); + _a.appendChild(span(fields[i].fieldName)); + _a.appendChild(span({ + className: 'frm-text-sm frm-text-grey-500', + text: '[' + fields[i].fieldId + ']' + })); + var li = document.createElement('li'); + li.classList.add('frm-field-list-' + fieldId); + li.classList.add('frm-field-list-' + fields[i].fieldType); + li.appendChild(_a); + list.appendChild(li); + } + } + function getExcludeArray(calcBox, isSummary) { + var codeList = calcBox.querySelector('.frm_code_list'); + var exclude = JSON.parse(codeList.getAttribute('data-exclude')); + if (isSummary) { + // includedExtras are those that are normally excluded from the summary but the form owner can choose to include, + // when they have been chosen to be included, then they can now be manually excluded in the calc box. + var includedExtras = getIncludedExtras(); + if (includedExtras.length) { + for (var _i6 = 0; _i6 < exclude.length; _i6++) { + if (includedExtras.includes(exclude[_i6])) { + // remove it + exclude.splice(_i6, 1); + // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value + _i6--; + } + } + } + } + return exclude; + } + function getIncludedExtras() { + var checked = []; + var checkboxes = document.getElementsByClassName('frm_include_extras_field'); + for (var _i7 = 0; _i7 < checkboxes.length; _i7++) { + if (checkboxes[_i7].checked) { + checked.push(checkboxes[_i7].value); + } + } + return checked; + } + function rePopCalcFieldsForSummary() { + popCalcFields(jQuery('.frm-inline-modal.postbox:has(.frm_js_summary_list)')[0], true); + } + function getFieldList(fieldType) { + var i, + fields = [], + allFields = document.querySelectorAll('li.frm_field_box'), + checkType = 'undefined' !== typeof fieldType; + for (i = 0; i < allFields.length; i++) { + // data-ftype is better (than data-type) cos of fields loaded by AJAX - which might not be ready yet + if (checkType && allFields[i].getAttribute('data-ftype') !== fieldType) { + continue; + } + var fieldId = allFields[i].getAttribute('data-fid'); + if (typeof fieldId !== 'undefined' && fieldId) { + fields.push({ + fieldId: fieldId, + fieldName: getPossibleValue('frm_name_' + fieldId), + fieldType: getPossibleValue('field_options_type_' + fieldId), + fieldKey: getPossibleValue('field_options_field_key_' + fieldId) + }); + } + } + return wp.hooks.applyFilters('frm_admin_get_field_list', fields, fieldType, allFields); + } + function popProductFields(field) { + var i, + checked, + id, + options = [], + current = getCurrentProductFields(field), + fName = field.getAttribute('data-frmfname'), + products = getFieldList('product'), + quantities = getFieldList('quantity'), + isSelect = field.tagName === 'SELECT', + // for reverse compatibility. + // whether we have just 1 product and 1 quantity field & should therefore attach the latter to the former + auto = 1 === quantities.length && 1 === products.length; + if (isSelect) { + // This fallback can be removed after 4.05. + current = field.getAttribute('data-frmcurrent'); + } + for (i = 0; i < products.length; i++) { + // let's be double sure it's string, else indexOf will fail + id = products[i].fieldId.toString(); + checked = auto || -1 !== current.indexOf(id); + if (isSelect) { + // This fallback can be removed after 4.05. + checked = checked ? ' selected' : ''; + options.push(''); + } else { + checked = checked ? ' checked' : ''; + options.push(''); + } + } + field.innerHTML = options.join(''); + } + function getCurrentProductFields(prodFieldOpt) { + var products = prodFieldOpt.querySelectorAll('[type="checkbox"]:checked'), + idsArray = []; + for (var _i8 = 0; _i8 < products.length; _i8++) { + idsArray.push(products[_i8].value); + } + return idsArray; + } + function popAllProductFields() { + var opts = document.querySelectorAll('.frmjs_prod_field_opt'); + for (var _i9 = 0; _i9 < opts.length; _i9++) { + popProductFields(opts[_i9]); + } + } + function maybeSetProductField(field) { + var fieldId = field.getAttribute('data-fid'), + productFieldOpt = document.getElementById('field_options[product_field_' + fieldId + ']'); + if (null === productFieldOpt) { + return; + } + popProductFields(productFieldOpt); + // in order to move its settings to that LHS panel where + // the update form resides, else it'll lose this setting + moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); + } + + /** + * If the element doesn't exist, use a blank value. + */ + function getPossibleValue(id) { + var field = document.getElementById(id); + if (field !== null) { + return field.value; + } + return ''; + } + function liveChanges() { + /*jshint validthis:true */ + var option, + newValue = this.value, + changes = document.getElementById(this.getAttribute('data-changeme')), + att = this.getAttribute('data-changeatt'); + if (changes === null) { + return; + } + if (att !== null) { + if (changes.tagName === 'SELECT' && att === 'placeholder') { + option = changes.options[0]; + if (option.value === '') { + option.innerHTML = newValue; + } else { + // Create a placeholder option if there are no blank values. + addBlankSelectOption(changes, newValue); + } + } else if (att === 'class') { + changeFieldClass(changes, this); + } else if (isSliderField(changes)) { + updateSliderFieldPreview(changes, att, newValue); + } else { + changes.setAttribute(att, newValue); + } + } else if (changes.id.indexOf('setup-message') === 0) { + if (newValue !== '') { + changes.innerHTML = ''; + } + } else { + changes.innerHTML = purifyHtml(newValue); + if ('TEXTAREA' === changes.nodeName && changes.classList.contains('wp-editor-area')) { + // Trigger change events on wysiwyg textareas so we can also sync default values in the visual tab. + jQuery(changes).trigger('change'); + } + if (changes.classList.contains('frm_primary_label') && 'break' === changes.nextElementSibling.getAttribute('data-ftype')) { + changes.nextElementSibling.querySelector('.frm_button_submit').textContent = newValue; + } + } + } + function updateSliderFieldPreview(field, att, newValue) { + if (frmGlobal.proIncludesSliderJs) { + var hookName = 'frm_update_slider_field_preview'; + var hookArgs = { + field: field, + att: att, + newValue: newValue + }; + wp.hooks.doAction(hookName, hookArgs); + return; + } + + // This functionality has been moved to pro since v5.4.3. This code should be removed eventually. + if ('value' === att) { + if ('' === newValue) { + newValue = getSliderMidpoint(field); + } + field.value = newValue; + } else { + field.setAttribute(att, newValue); + } + if (-1 === ['value', 'min', 'max'].indexOf(att)) { + return; + } + if (('max' === att || 'min' === att) && '' === getSliderDefaultValueInput(field.id)) { + field.value = getSliderMidpoint(field); + } + field.parentNode.querySelector('.frm_range_value').textContent = field.value; + } + function getSliderDefaultValueInput(previewInputId) { + return document.querySelector('input[data-changeme="' + previewInputId + '"][data-changeatt="value"]').value; + } + function getSliderMidpoint(sliderInput) { + var max = parseFloat(sliderInput.getAttribute('max')); + var min = parseFloat(sliderInput.getAttribute('min')); + return (max - min) / 2 + min; + } + function isSliderField(previewInput) { + return 'range' === previewInput.type && previewInput.parentNode.classList.contains('frm_range_container'); + } + function toggleInvalidMsg() { + /*jshint validthis:true */ + var typeDropdown, + fieldType, + fieldId = this.getAttribute('data-fid'), + value = ''; + ['field_options_max_', 'frm_format_'].forEach(function (id) { + var input = document.getElementById(id + fieldId); + if (!input) { + return; + } + value += input.value; + }); + typeDropdown = document.getElementsByName('field_options[type_' + fieldId + ']')[0]; + fieldType = typeDropdown.options[typeDropdown.selectedIndex].value; + if (fieldType === 'text') { + toggleValidationBox('' !== value, '.frm_invalid_msg' + fieldId); + } + } + function markRequired() { + /*jshint validthis:true */ + var thisid = this.id.replace('frm_', ''), + fieldId = thisid.replace('req_field_', ''), + checked = this.checked, + label = jQuery('#field_label_' + fieldId + ' .frm_required'); + toggleValidationBox(checked, '.frm_required_details' + fieldId); + if (checked) { + var $reqBox = jQuery('input[name="field_options[required_indicator_' + fieldId + ']"]'); + if ($reqBox.val() === '') { + $reqBox.val('*'); + } + label.removeClass('frm_hidden'); + } else { + label.addClass('frm_hidden'); + } + } + function toggleValidationBox(hasValue, messageClass) { + $msg = jQuery(messageClass); + if (hasValue) { + $msg.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); + } else { + // Fade out validation options + var $validationBox = $msg.fadeOut('fast').closest('.frm_validation_box'); + var v = $validationBox.css('display', 'block').children(':not(' + messageClass + '):visible').length; + $validationBox.css('display', ''); + if (v === 0) { + $msg.closest('.frm_validation_msg').fadeOut('fast'); + } + } + } + function markUnique() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + var $thisField = jQuery('.frm_unique_details' + fieldId); + if (this.checked) { + $thisField.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); + $unqDetail = jQuery('.frm_unique_details' + fieldId + ' input'); + if ($unqDetail.val() === '') { + $unqDetail.val(frmAdminJs.default_unique); + } + } else { + var $validationBox = $thisField.fadeOut('fast').closest('.frm_validation_box'); + var v = $validationBox.css('display', 'block').children(':not(.frm_unique_details' + fieldId + '):visible').length; + $validationBox.css('display', ''); + if (v === 0) { + $thisField.closest('.frm_validation_msg').fadeOut('fast'); + } + } + } + + //Fade confirmation field and validation option in or out + function addConf() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + var val = jQuery(this).val(); + var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)); + toggleValidationBox(val !== '', '.frm_conf_details' + fieldId); + if (val !== '') { + //Add default validation message if empty + var valMsg = jQuery('.frm_validation_box .frm_conf_details' + fieldId + ' input'); + if (valMsg.val() === '') { + valMsg.val(frmAdminJs.default_conf); + } + setConfirmationFieldDescriptions(fieldId); + + //Add or remove class for confirmation field styling + if (val === 'inline') { + $thisField.removeClass('frm_conf_below').addClass('frm_conf_inline'); + } else if (val === 'below') { + $thisField.removeClass('frm_conf_inline').addClass('frm_conf_below'); + } + jQuery('.frm-conf-box-' + fieldId).removeClass('frm_hidden'); + } else { + jQuery('.frm-conf-box-' + fieldId).addClass('frm_hidden'); + setTimeout(function () { + $thisField.removeClass('frm_conf_inline frm_conf_below'); + }, 200); + } + } + function setConfirmationFieldDescriptions(fieldId) { + var fieldType = document.getElementsByName('field_options[type_' + fieldId + ']')[0].value; + var fieldDescription = document.getElementById('field_description_' + fieldId); + var hiddenDescName = 'field_options[description_' + fieldId + ']'; + var newValue = frmAdminJs['enter_' + fieldType]; + maybeSetNewDescription(fieldDescription, hiddenDescName, newValue); + var confFieldDescription = document.getElementById('conf_field_description_' + fieldId); + var hiddenConfName = 'field_options[conf_desc_' + fieldId + ']'; + var newConfValue = frmAdminJs['confirm_' + fieldType]; + maybeSetNewDescription(confFieldDescription, hiddenConfName, newConfValue); + } + function maybeSetNewDescription(descriptionDiv, hiddenName, newValue) { + if (descriptionDiv.innerHTML === frmAdminJs.desc) { + // Set the visible description value and the hidden description value + descriptionDiv.innerHTML = newValue; + document.getElementsByName(hiddenName)[0].value = newValue; + } + } + function initBulkOptionsOverlay() { + /*jshint validthis:true */ + var $info = initModal('#frm-bulk-modal', '700px'); + if ($info === false) { + return; + } + jQuery('.frm-insert-preset').on('click', insertBulkPreset); + jQuery(builderForm).on('click', 'a.frm-bulk-edit-link', function (event) { + event.preventDefault(); + var i, + key, + label, + content = '', + optList, + opts, + fieldId = jQuery(this).closest('[data-fid]').data('fid'), + separate = usingSeparateValues(fieldId), + product = isProductField(fieldId); + optList = document.getElementById('frm_field_' + fieldId + '_opts'); + if (!optList) { + return; + } + opts = optList.getElementsByTagName('li'); + document.getElementById('bulk-field-id').value = fieldId; + for (i = 0; i < opts.length; i++) { + key = opts[i].getAttribute('data-optkey'); + if (key !== '000') { + label = document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][label]')[0]; + if (typeof label !== 'undefined') { + content += label.value; + if (separate) { + content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][value]')[0].value; + } + if (product) { + content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][price]')[0].value; + } + content += '\r\n'; + } + } + if (i >= opts.length - 1) { + document.getElementById('frm_bulk_options').value = content; + } + } + $info.dialog('open'); + return false; + }); + jQuery('#frm-update-bulk-opts').on('click', function () { + var fieldId = document.getElementById('bulk-field-id').value; + var optionType = document.getElementById('bulk-option-type').value; + if (optionType) { + // Use custom handler for custom option type. + return; + } + this.classList.add('frm_loading_button'); + frmAdminBuild.updateOpts(fieldId, document.getElementById('frm_bulk_options').value, $info); + fieldUpdated(); + }); + } + function insertBulkPreset(event) { + /*jshint validthis:true */ + var opts = JSON.parse(this.getAttribute('data-opts')); + event.preventDefault(); + document.getElementById('frm_bulk_options').value = opts.join('\n'); + return false; + } + + //Add new option or "Other" option to radio/checkbox/dropdown + function addFieldOption() { + var _this$closest; + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'), + newOption = jQuery('#frm_field_' + fieldId + '_opts .frm_option_template').prop('outerHTML'), + optType = jQuery(this).data('opttype'), + optKey = 0, + oldKey = '000', + lastKey = getHighestOptKey(fieldId); + if (lastKey !== oldKey) { + optKey = lastKey + 1; + } + + //Update hidden field + if (optType === 'other') { + document.getElementById('other_input_' + fieldId).value = 1; + + //Hide "Add Other" option now if this is radio field + var ftype = jQuery(this).data('ftype'); + if (ftype === 'radio' || ftype === 'select') { + jQuery(this).fadeOut('slow'); + } + var _data = { + action: 'frm_add_field_option', + field_id: fieldId, + opt_key: optKey, + opt_type: optType, + nonce: frmGlobal.nonce + }; + jQuery.post(ajaxurl, _data, function (msg) { + jQuery(document.getElementById('frm_field_' + fieldId + '_opts')).append(msg); + resetDisplayedOpts(fieldId); + }); + } else { + newOption = newOption.replace(new RegExp('optkey="' + oldKey + '"', 'g'), 'optkey="' + optKey + '"'); + newOption = newOption.replace(new RegExp('-' + oldKey + '_', 'g'), '-' + optKey + '_'); + newOption = newOption.replace(new RegExp('-' + oldKey + '"', 'g'), '-' + optKey + '"'); + newOption = newOption.replace(new RegExp('\\[' + oldKey + '\\]', 'g'), '[' + optKey + ']'); + newOption = newOption.replace('frm_hidden frm_option_template', ''); + newOption = { + newOption: newOption + }; + addSaveAndDragIconsToOption(fieldId, newOption); + this.closest('.frm_single_option').after(newOption.newOption); + resetDisplayedOpts(fieldId); + } + + // Make sure all remove buttons are enabled + (_this$closest = this.closest('.frm_sortable_field_opts')) === null || _this$closest === void 0 || (_this$closest = _this$closest.querySelectorAll('.frm_remove_tag.frm_disabled')) === null || _this$closest === void 0 || _this$closest.forEach(function (button) { + return button.classList.remove('frm_disabled'); + }); + fieldUpdated(); + } + function getHighestOptKey(fieldId) { + var i = 0, + optKey = 0, + opts = jQuery('#frm_field_' + fieldId + '_opts li'), + lastKey = 0; + for (i; i < opts.length; i++) { + optKey = opts[i].getAttribute('data-optkey'); + if (opts.length === 1) { + return optKey; + } + if (optKey !== '000') { + optKey = optKey.replace('other_', ''); + optKey = parseInt(optKey, 10); + } + if (!isNaN(lastKey) && (optKey > lastKey || lastKey === '000')) { + lastKey = optKey; + } + } + return lastKey; + } + function toggleMultSel() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + toggleMultiSelect(fieldId, this.value); + } + function toggleMultiSelect(fieldId, value) { + var setting = jQuery('.frm_multiple_cont_' + fieldId); + if (value === 'select') { + setting.fadeIn('fast'); + } else { + setting.fadeOut('fast'); + } + } + function toggleSepValues() { + /*jshint validthis:true */ + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + toggle(jQuery('.field_' + fieldId + '_option_key')); + jQuery('.field_' + fieldId + '_option').toggleClass('frm_with_key'); + } + function toggleImageOptions() { + /*jshint validthis:true */ + var hasImageOptions, + imageSize, + $field = jQuery(this).closest('.frm-single-settings'), + fieldId = $field.data('fid'), + displayField = document.getElementById('frm_field_id_' + fieldId); + refreshOptionDisplayNow(jQuery(this)); + toggle(jQuery('.field_' + fieldId + '_image_id')); + toggle(jQuery('.frm_toggle_image_options_' + fieldId)); + toggle(jQuery('.frm_image_size_' + fieldId)); + toggle(jQuery('.frm_alignment_' + fieldId)); + toggle(jQuery('.frm-add-other#frm_add_field_' + fieldId)); + hasImageOptions = imagesAsOptions(fieldId); + if (hasImageOptions) { + setAlignment(fieldId, 'inline'); + removeImageSizeClasses(displayField); + imageSize = getImageOptionSize(fieldId); + displayField.classList.add('frm_image_options'); + displayField.classList.add('frm_image_size_' + imageSize); + $field.find('.frm-bulk-edit-link').hide(); + } else { + displayField.classList.remove('frm_image_options'); + removeImageSizeClasses(displayField); + setAlignment(fieldId, 'block'); + $field.find('.frm-bulk-edit-link').show(); + } + + /** + * Fires when image options are toggled for a field. + * + * @param {HTMLElement} field The field element. + * @param {boolean} hasImageOptions Whether the field has image options enabled. + */ + wp.hooks.doAction('frm_image_options_toggled', $field[0], hasImageOptions); + } + function removeImageSizeClasses(field) { + field.classList.remove('frm_image_size_', 'frm_image_size_small', 'frm_image_size_medium', 'frm_image_size_large', 'frm_image_size_xlarge'); + } + function setAlignment(fieldId, alignment) { + jQuery('#field_options_align_' + fieldId).val(alignment).trigger('change'); + } + function setImageSize() { + var $field = jQuery(this).closest('.frm-single-settings'), + fieldId = $field.data('fid'), + displayField = document.getElementById('frm_field_id_' + fieldId); + refreshOptionDisplay(); + if (imagesAsOptions(fieldId)) { + removeImageSizeClasses(displayField); + displayField.classList.add('frm_image_options'); + displayField.classList.add('frm_image_size_' + getImageOptionSize(fieldId)); + } + } + function refreshOptionDisplayNow(object) { + var $field = object.closest('.frm-single-settings'), + fieldID = $field.data('fid'); + jQuery('.field_' + fieldID + '_option').trigger('change'); + } + function refreshOptionDisplay() { + /*jshint validthis:true */ + refreshOptionDisplayNow(jQuery(this)); + } + function addImageToOption(event) { + var imagePreview = event.target.closest('.frm_image_preview_wrapper'); + event.preventDefault(); + wp.media.model.settings.post.id = 0; + var fileFrame = wp.media.frames.file_frame = wp.media({ + multiple: false, + library: { + type: ['image'] + } + }); + fileFrame.on('select', function () { + var attachment = fileFrame.state().get('selection').first().toJSON(); + var img = imagePreview.querySelector('img'); + img.setAttribute('src', attachment.url); + img.classList.remove('frm_hidden'); + img.removeAttribute('srcset'); // Prevent the old image from sticking around. + + imagePreview.querySelector('.frm_image_preview_frame').style.display = 'block'; + imagePreview.querySelector('.frm_image_preview_title').textContent = attachment.filename; + imagePreview.querySelector('.frm_choose_image_box').style.display = 'none'; + var $imagePreview = jQuery(imagePreview); + $imagePreview.siblings('input[name*="[label]"]').data('frmimgurl', attachment.url); + $imagePreview.find('input.frm_image_id').val(attachment.id).trigger('change'); + wp.media.model.settings.post.id = 0; + }); + fileFrame.open(); + } + function removeImageFromOption(event) { + var $this = jQuery(this), + previewWrapper = $this.closest('.frm_image_preview_wrapper'); + event.preventDefault(); + event.stopPropagation(); + previewWrapper.find('img').attr('src', ''); + previewWrapper.find('.frm_image_preview_frame').hide(); + previewWrapper.find('.frm_choose_image_box').show(); + previewWrapper.find('input.frm_image_id').val(0).trigger('change'); + } + function toggleMultiselect() { + /*jshint validthis:true */ + var dropdown = jQuery(this).closest('li').find('.frm_form_fields select'); + if (this.checked) { + dropdown.attr('multiple', 'multiple'); + } else { + dropdown.removeAttr('multiple'); + } + } + + /** + * Allow typing on form switcher click without an extra click to search. + */ + function focusSearchBox() { + var searchBox = document.getElementById('dropform-search-input'); + if (searchBox !== null) { + setTimeout(function () { + searchBox.focus(); + }, 100); + } + } + + /** + * Dismiss a warning message and send an AJAX request to update the dismissal state. + * + * @since 6.3 + * + * @param {Event} event The event object associated with the click on the dismiss icon. + */ + function dismissWarningMessage(event) { + var target = event.target; + var warningEl = target.closest('.frm_warning_style'); + jQuery(warningEl).fadeOut(400, function () { + return warningEl.remove(); + }); + var action = target.dataset.action; + var formData = new FormData(); + doJsonPost(action, formData); + } + + /** + * If a field is clicked in the builder, prevent inputs from changing. + */ + function stopFieldFocus(e) { + e.preventDefault(); + } + + /** + * Delete a field option. + */ + function deleteFieldOption() { + var parentLi = this.parentNode; + var parentUl = parentLi.parentNode; + + // If only 2 visible options, add disabled class to the other delete button + var visibleOptions = parentUl.querySelectorAll('li:not(.frm_hidden)'); + if (visibleOptions.length === 2) { + var _Array$from$find$quer; + (_Array$from$find$quer = Array.from(visibleOptions).find(function (li) { + return li !== parentLi; + }).querySelector('.frm_remove_tag')) === null || _Array$from$find$quer === void 0 || _Array$from$find$quer.classList.add('frm_disabled'); + } + + /*jshint validthis:true */ + var otherInput, + fieldId = this.getAttribute('data-fid'); + jQuery(parentLi).fadeOut('fast', function () { + wp.hooks.doAction('frm_before_delete_field_option', this); + jQuery(parentLi).remove(); + var hasOther = jQuery(parentUl).find('.frm_other_option'); + if (hasOther.length < 1) { + otherInput = document.getElementById('other_input_' + fieldId); + if (otherInput !== null) { + otherInput.value = 0; + } + jQuery('#other_button_' + fieldId).fadeIn('fast'); + } + }); + fieldUpdated(); + } + + /** + * If a radio button is set as default, allow a click to + * deselect it. + */ + function maybeUncheckRadio() { + var $self, uncheck, unbind, up; + + /*jshint validthis:true */ + $self = jQuery(this); + if ($self.is(':checked')) { + uncheck = function uncheck() { + setTimeout(function () { + $self.prop('checked', false); + }, 0); + }; + unbind = function unbind() { + $self.off('mouseup', up); + }; + up = function up() { + uncheck(); + unbind(); + }; + $self.on('mouseup', up); + $self.one('mouseout', unbind); + } + } + + /** + * If the field option has the default text, clear it out on click. + */ + function maybeClearOptText() { + /*jshint validthis:true */ + if (this.value === frmAdminJs.new_option) { + this.setAttribute('data-value-on-focus', this.value); + this.value = ''; + } + } + function confirmFieldsDeleteMessage(numberOfFields) { + /* translators: %1$s: Number of fields that are selected to be deleted. */ + return sprintf(__('Are you sure you want to delete these %1$s selected field(s)?', 'formidable'), numberOfFields); + } + function clickDeleteField() { + /*jshint validthis:true */ + var confirmMsg = frmAdminJs.conf_delete, + maybeDivider = this.parentNode.parentNode.parentNode.parentNode.parentNode, + li = maybeDivider.parentNode, + field = jQuery(this).closest('li.form-field'), + fieldId = field.data('fid'); + if (field.data('ftype') === 'divider') { + var fieldBoxes = document.querySelectorAll('.frm-field-group-hover-target .start_divider .frm_field_box'); + var fieldIdsToDelete = 0; + fieldBoxes.forEach(function (fieldBox) { + var fieldsInsideFieldBox = fieldBox.querySelectorAll('li.form-field'); + if (fieldsInsideFieldBox) { + fieldIdsToDelete += fieldsInsideFieldBox.length; + } + }); + if (fieldIdsToDelete) { + confirmMsg = confirmFieldsDeleteMessage(++fieldIdsToDelete); + } + } + if (li.classList.contains('frm-section-collapsed') || li.classList.contains('frm-page-collapsed')) { + return false; + } + + // If deleting a section, use a special message. + if (maybeDivider.className === 'divider_section_only') { + confirmMsg = frmAdminJs.conf_delete_sec; + } + this.setAttribute('data-frmverify', confirmMsg); + this.setAttribute('data-frmverify-btn', 'frm-button-red'); + this.setAttribute('data-deletefield', fieldId); + closeOpenFieldDropdowns(); + confirmLinkClick(this); + return false; + } + function clickSelectField() { + this.closest('li.form-field').click(); + } + function clickDeleteFieldGroup() { + var hoverTarget, decoy; + hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === hoverTarget) { + return; + } + hoverTarget.classList.add('frm-selected-field-group'); + decoy = document.createElement('div'); + decoy.classList.add('frm-delete-field-groups', 'frm_hidden'); + document.body.appendChild(decoy); + decoy.click(); + } + function duplicateFieldGroup() { + var hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === hoverTarget) { + return; + } + var newRowId = 'frm_field_group_' + getAutoId(); + var placeholderUlChild = document.createTextNode(''); + wrapFieldLiInPlace(placeholderUlChild); + var newRow = jQuery(placeholderUlChild).closest('li').get(0); + newRow.classList.add('frm_hidden'); + var newRowUl = newRow.querySelector('ul'); + newRowUl.id = newRowId; + jQuery(hoverTarget.closest('li.frm_field_box')).after(newRow); + var $fields = getFieldsInRow(jQuery(hoverTarget)); + var syncDetails = []; + var injectedCloneOptions = []; + var expectedLength = $fields.length; + var originalFieldIdByDuplicatedFieldId = {}; + var duplicatedCount = 0; + jQuery(newRow).on('frm_added_duplicated_field_to_row', function (_, args) { + originalFieldIdByDuplicatedFieldId[jQuery(args.duplicatedFieldHtml).attr('data-fid')] = args.originalFieldId; + if (expectedLength > ++duplicatedCount) { + return; + } + var $newRowUl = jQuery(newRowUl); + var $duplicatedFields = getFieldsInRow($newRowUl); + injectedCloneOptions.forEach(function (cloneOption) { + cloneOption.remove(); + }); + for (var index = 0; index < expectedLength; ++index) { + $newRowUl.append($newRowUl.children('li.form-field[frm-field-order="' + index + '"]')); + } + syncLayoutClasses($duplicatedFields.first(), syncDetails); + newRow.classList.remove('frm_hidden'); + updateFieldOrder(); + getFieldsInRow($newRowUl).each(function () { + maybeDuplicateUnsavedSettings(originalFieldIdByDuplicatedFieldId[this.getAttribute('data-fid')], jQuery(this).prop('outerHTML')); + }); + }); + $fields.each(function (index) { + var cloneOption; + cloneOption = document.createElement('li'); + cloneOption.classList.add('frm_clone_field'); + cloneOption.setAttribute('frm-target-row-id', newRowId); + cloneOption.setAttribute('frm-field-order', index); + this.appendChild(cloneOption); + cloneOption.click(); + injectedCloneOptions.push(cloneOption); + syncDetails.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); + }); + } + function clickFieldGroupLayout() { + var hoverTarget, sizeOfFieldGroup, popupWrapper; + hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (null === hoverTarget) { + return; + } + deselectFields(); + sizeOfFieldGroup = getSizeOfFieldGroupFromChildElement(hoverTarget.querySelector('li.form-field')); + hoverTarget.classList.add('frm-has-open-field-group-popup'); + jQuery(document).on('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); + popupWrapper = div(); + popupWrapper.style.position = 'relative'; + popupWrapper.appendChild(getFieldGroupPopup(sizeOfFieldGroup, this)); + this.parentNode.appendChild(popupWrapper); + var firstLayoutOption = popupWrapper.querySelector('.frm-row-layout-option'); + if (firstLayoutOption) { + firstLayoutOption.focus(); + } + } + function destroyFieldGroupPopupOnOutsideClick(event) { + if (event.target.classList.contains('frm-custom-field-group-layout') || event.target.classList.contains('frm-cancel-custom-field-group-layout')) { + return; + } + if (!jQuery(event.target).closest('#frm_field_group_controls').length && !jQuery(event.target).closest('#frm_field_group_popup').length) { + destroyFieldGroupPopup(); + } + } + function getSizeOfFieldGroupFromChildElement(element) { + var $ul = jQuery(element).closest('ul'); + if ($ul.length) { + return getFieldsInRow($ul).length; + } + return getSelectedFieldCount(); + } + function getFieldGroupPopup(sizeOfFieldGroup, childElement) { + var popup, wrapper, rowLayoutOptions, ul; + popup = document.getElementById('frm_field_group_popup'); + if (null === popup) { + popup = div(); + } else { + popup.innerHTML = ''; + } + popup.id = 'frm_field_group_popup'; + wrapper = div(); + wrapper.style.padding = '0 24px 12px'; + wrapper.appendChild(getRowLayoutTitle()); + rowLayoutOptions = getRowLayoutOptions(sizeOfFieldGroup); + ul = childElement.closest('ul.frm_sorting'); + if (null !== ul) { + maybeMarkRowLayoutAsActive(ul, rowLayoutOptions); + } + wrapper.appendChild(rowLayoutOptions); + popup.appendChild(wrapper); + popup.appendChild(separator()); + popup.appendChild(getCustomLayoutOption()); + popup.appendChild(getBreakIntoDifferentRowsOption()); + return popup; + } + function maybeMarkRowLayoutAsActive(activeRow, options) { + var length, index, currentRow; + length = options.children.length; + for (index = 0; index < length; ++index) { + currentRow = options.children[index]; + if (rowLayoutsMatch(currentRow, activeRow)) { + currentRow.classList.add('frm-active-row-layout'); + return; + } + } + } + function separator() { + return document.createElement('hr'); + } + function getCustomLayoutOption() { + var option = div(); + option.textContent = __('Custom layout', 'formidable'); + jQuery(option).prepend(getIconClone('frm_gear_svg')); + option.classList.add('frm-custom-field-group-layout'); + makeTabbable(option); + return option; + } + function makeTabbable(element, ariaLabel) { + element.setAttribute('tabindex', 0); + element.setAttribute('role', 'button'); + if ('undefined' !== typeof ariaLabel) { + element.setAttribute('aria-label', ariaLabel); + } + } + function getIconClone(iconId) { + var clone = document.getElementById(iconId).cloneNode(true); + clone.id = ''; + return clone; + } + function getBreakIntoDifferentRowsOption() { + var option = div(); + option.textContent = __('Break into rows', 'formidable'); + jQuery(option).prepend(getIconClone('frm_break_field_group_svg')); + option.classList.add('frm-break-field-group'); + makeTabbable(option); + return option; + } + function getRowLayoutTitle() { + var rowLayoutTitle = div(); + rowLayoutTitle.classList.add('frm-row-layout-title'); + rowLayoutTitle.textContent = __('Row Layout', 'formidable'); + return rowLayoutTitle; + } + function getRowLayoutOptions(size) { + var wrapper, padding; + wrapper = getEmptyGridContainer(); + if (5 !== size) { + wrapper.appendChild(getRowLayoutOption(size, 'even')); + } + if (size % 2 === 1) { + // only include the middle option for odd numbers because even doesn't make a lot of sense. + wrapper.appendChild(getRowLayoutOption(size, 'middle')); + } + if (size < 6) { + wrapper.appendChild(getRowLayoutOption(size, 'left')); + wrapper.appendChild(getRowLayoutOption(size, 'right')); + } else { + padding = div(); + padding.classList.add('frm_fourth'); + wrapper.prepend(padding); + } + return wrapper; + } + function getRowLayoutOption(size, type) { + var option, useClass; + option = div(); + option.classList.add('frm-row-layout-option'); + makeTabbable(option, type); + switch (size) { + case 6: + useClass = 'frm_half'; + break; + case 5: + useClass = 'frm_third'; + break; + default: + useClass = size % 2 === 1 ? 'frm_fourth' : 'frm_third'; + break; + } + option.classList.add(useClass); + option.setAttribute('layout-type', type); + option.appendChild(getRowForSizeAndType(size, type)); + return option; + } + function rowLayoutsMatch(row1, row2) { + return getRowLayoutAsKey(row1) === getRowLayoutAsKey(row2); + } + function getRowLayoutAsKey(row) { + var $fields, sizes; + if (row.classList.contains('frm-row-layout-option')) { + $fields = jQuery(row).find('.frm_grid_container').children(); + } else { + $fields = getFieldsInRow(jQuery(row)); + } + sizes = []; + $fields.each(function () { + sizes.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); + }); + return sizes.join('-'); + } + function getRowForSizeAndType(size, type) { + var row, index, block; + row = getEmptyGridContainer(); + for (index = 0; index < size; ++index) { + block = div(); + block.classList.add(getClassForBlock(size, type, index)); + block.style.height = '16px'; + block.style.background = '#9EA9B8'; + block.style.borderRadius = '1px'; + row.appendChild(block); + } + return row; + } + + /** + * @param {number} size 2-6. + * @param {string} type even, middle, left, or right. + * @param {number} index 0-5. + * @return {string} The class name. + */ + function getClassForBlock(size, type, index) { + if ('even' === type) { + return getEvenClassForSize(size, index); + } else if ('middle' === type) { + if (3 === size) { + return 1 === index ? 'frm6' : 'frm3'; + } + if (5 === size) { + return 2 === index ? 'frm4' : 'frm2'; + } + } else if ('left' === type) { + return 0 === index ? getLargeClassForSize(size) : getSmallClassForSize(size); + } else if ('right' === type) { + return index === size - 1 ? getLargeClassForSize(size) : getSmallClassForSize(size); + } + return 'frm12'; + } + function getEvenClassForSize(size, index) { + if (-1 !== [2, 3, 4, 6].indexOf(size)) { + return getLayoutClassForSize(12 / size); + } + if (5 === size && 'undefined' !== typeof index) { + return 0 === index ? 'frm4' : 'frm2'; + } + return 'frm12'; + } + function getSmallClassForSize(size) { + switch (size) { + case 2: + case 3: + return 'frm3'; + case 4: + return 'frm2'; + case 5: + return 'frm2'; + case 6: + return 'frm1'; + } + return 'frm12'; + } + function getLargeClassForSize(size) { + switch (size) { + case 2: + return 'frm9'; + case 3: + case 4: + return 'frm6'; + case 5: + return 'frm4'; + case 6: + return 'frm7'; + } + return 'frm12'; + } + function getEmptyGridContainer() { + var wrapper = div(); + wrapper.classList.add('frm_grid_container'); + return wrapper; + } + + /** + * Handle when a field group layout option (that sets grid classes/column sizing) is selected in the "Row Layout" popup. + * + * @return {void} + */ + function handleFieldGroupLayoutOptionClick() { + var row = document.querySelector('.frm-field-group-hover-target'); + if (!row) { + // The field group layout options also get clicked when merging multiple rows. + // The following code isn't required for multiple rows though so just exit early. + return; + } + var type = this.getAttribute('layout-type'); + syncLayoutClasses(getFieldsInRow(jQuery(row)).first(), type); + destroyFieldGroupPopup(); + } + function handleFieldGroupLayoutOptionInsideMergeClick() { + var $ul, type; + $ul = mergeSelectedFieldGroups(); + type = this.getAttribute('layout-type'); + syncLayoutClasses(getFieldsInRow($ul).first(), type); + unselectFieldGroups(); + } + function mergeSelectedFieldGroups() { + var $selectedFieldGroups = jQuery('.frm-selected-field-group'), + $firstGroupUl = $selectedFieldGroups.first(); + $selectedFieldGroups.not($firstGroupUl).each(function () { + getFieldsInRow(jQuery(this)).each(function () { + var previousParent = this.parentNode; + getFieldsInRow($firstGroupUl).last().after(this); + if (!jQuery(previousParent).children('li.form-field').length) { + // clean up the previous field group if we've removed all of its fields. + previousParent.closest('li.frm_field_box').remove(); + } + }); + }); + updateFieldOrder(); + syncLayoutClasses(getFieldsInRow($firstGroupUl).first()); + return $firstGroupUl; + } + function customFieldGroupLayoutClick() { + var $fields; + if (null !== this.closest('.frm-merge-fields-into-row')) { + return; + } + $fields = getFieldsInRow(jQuery('.frm-field-group-hover-target')); + setupCustomLayoutOptions($fields); + } + function setupCustomLayoutOptions($fields) { + var size, popup, wrapper, layoutClass, inputRow, paddingElement, inputValueOverride, index, inputField, heading, label, buttonsWrapper, cancelButton, saveButton; + size = $fields.length; + popup = document.getElementById('frm_field_group_popup'); + popup.innerHTML = ''; + wrapper = div(); + wrapper.style.padding = '0 24px'; + layoutClass = getEvenClassForSize(5 === size ? 6 : size); + inputRow = div(); + inputRow.style.padding = '20px 0'; + inputRow.classList.add('frm_grid_container'); + if (5 === size) { + // add a span to pad the inputs by 1 column, to account for the missing 2 columns. + paddingElement = document.createElement('span'); + paddingElement.classList.add('frm1'); + inputRow.appendChild(paddingElement); + } + inputValueOverride = getSelectedFieldCount() > 0 ? getSizeOfLayoutClass(getEvenClassForSize(size)) : false; + if (false !== inputValueOverride && inputValueOverride >= 12) { + inputValueOverride = Math.floor(12 / size); + } + for (index = 0; index < size; ++index) { + inputField = document.createElement('input'); + inputField.type = 'text'; + inputField.classList.add(layoutClass); + inputField.classList.add('frm-custom-grid-size-input'); + inputField.value = false !== inputValueOverride ? inputValueOverride : getSizeOfLayoutClass(getLayoutClassName($fields.get(index).classList)); + inputRow.appendChild(inputField); + } + heading = div(); + heading.classList.add('frm-builder-popup-heading'); + heading.textContent = __('Enter number of columns for each field', 'formidable'); + label = div(); + label.classList.add('frm-builder-popup-subheading'); + label.textContent = __('Layouts are based on a 12-column grid system', 'formidable'); + wrapper.appendChild(heading); + wrapper.appendChild(label); + wrapper.appendChild(inputRow); + buttonsWrapper = div(); + buttonsWrapper.style.textAlign = 'right'; + cancelButton = getSecondaryButton(); + cancelButton.textContent = __('Cancel', 'formidable'); + cancelButton.classList.add('frm-cancel-custom-field-group-layout'); + cancelButton.style.marginRight = '10px'; + saveButton = getPrimaryButton(); + saveButton.textContent = __('Save', 'formidable'); + saveButton.classList.add('frm-save-custom-field-group-layout'); + buttonsWrapper.appendChild(cancelButton); + buttonsWrapper.appendChild(saveButton); + wrapper.appendChild(buttonsWrapper); + popup.appendChild(wrapper); + setTimeout(function () { + var firstInput = popup.querySelector('input.frm-custom-grid-size-input').focus(); + if (firstInput) { + firstInput.focus(); + } + }, 0); + } + function customFieldGroupLayoutInsideMergeClick() { + $fields = jQuery('.frm-selected-field-group li.form-field'); + setupCustomLayoutOptions($fields); + } + function getPrimaryButton() { + var button = getButton(); + button.classList.add('button-primary', 'frm-button-primary'); + return button; + } + function getSecondaryButton() { + var button = getButton(); + button.classList.add('button-secondary', 'frm-button-secondary'); + return button; + } + function getButton() { + var button = document.createElement('a'); + button.setAttribute('href', '#'); + button.classList.add('button'); + button.style.textDecoration = 'none'; + return button; + } + function getSizeOfLayoutClass(className) { + switch (className) { + case 'frm_half': + return 6; + case 'frm_third': + return 4; + case 'frm_two_thirds': + return 8; + case 'frm_fourth': + return 3; + case 'frm_three_fourths': + return 9; + case 'frm_sixth': + return 2; + } + if (0 === className.indexOf('frm')) { + return parseInt(className.substr(3)); + } + + // Anything missing a layout class should be a full width row. + return 12; + } + function getLayoutClassName(classList) { + var classes, index, currentClass; + classes = getLayoutClasses(); + for (index = 0; index < classes.length; ++index) { + currentClass = classes[index]; + if (classList.contains(currentClass)) { + return currentClass; + } + } + return ''; + } + function getLayoutClassForSize(size) { + return 'frm' + size; + } + function breakFieldGroupClick() { + var row = document.querySelector('.frm-field-group-hover-target'); + breakRow(row); + destroyFieldGroupPopup(); + } + function breakRow(row) { + var $row = jQuery(row); + getFieldsInRow($row).each(function (index) { + var field = this; + if (0 !== index) { + $row.parent().after(wrapFieldLi(field)); + } + stripLayoutFromFields(jQuery(field)); + }); + } + function stripLayoutFromFields(field) { + syncLayoutClasses(field, 'clear'); + } + function focusFieldGroupInputOnClick() { + this.select(); + } + function cancelCustomFieldGroupClick() { + revertToFieldGroupPopupFirstPage(this); + } + function revertToFieldGroupPopupFirstPage(triggerElement) { + jQuery(document.getElementById('frm_field_group_popup')).replaceWith(getFieldGroupPopup(getSizeOfFieldGroupFromChildElement(triggerElement), triggerElement)); + } + function destroyFieldGroupPopup() { + var popup, wrapper; + popup = document.getElementById('frm_field_group_popup'); + if (popup === null) { + return; + } + wrapper = document.querySelector('.frm-has-open-field-group-popup'); + if (null !== wrapper) { + wrapper.classList.remove('frm-has-open-field-group-popup'); + popup.parentNode.remove(); + } + jQuery(document).off('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); + } + function saveCustomFieldGroupClick() { + var syncDetails, $controls, $ul; + syncDetails = []; + jQuery(document.getElementById('frm_field_group_popup').querySelectorAll('.frm_grid_container input')).each(function () { + syncDetails.push(parseInt(this.value)); + }); + $controls = jQuery(document.getElementById('frm_field_group_controls')); + if ($controls.length && 'none' !== $controls.get(0).style.display) { + syncLayoutClasses(getFieldsInRow(jQuery(document.querySelector('.frm-field-group-hover-target'))).first(), syncDetails); + } else { + $ul = mergeSelectedFieldGroups(); + syncLayoutClasses(getFieldsInRow($ul).first(), syncDetails); + unselectFieldGroups(); + } + destroyFieldGroupPopup(); + } + + /** + * Get an array of fields that are selected. + * + * @param {Object} $firstGroup + * @param {HTMLElement} hoverTarget + * + * @returns {Object} + */ + function getSelectedRange($firstGroup, hoverTarget) { + var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); + var targetSection, $range; + if (hoverTargetSection) { + targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); + } + var hoverTargetBox = hoverTarget.querySelector('li'); + if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { + // If field target field is in a section. + $range = $firstGroup.parent().nextUntil(targetSection || hoverTarget.parentNode); + if (!hoverTargetSection) { + return $range; + } + var _fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); + $range = $range.add(_fieldsInSection.slice(0, _fieldsInSection.indexOf(hoverTargetBox) + 1)); + return $range; + } + + // Select fields back to the first group. + $range = $firstGroup.parent().prevUntil(targetSection || hoverTarget.parentNode); + if (!hoverTargetSection) { + return $range; + } + var fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); + $range = $range.add(fieldsInSection.slice(-fieldsInSection.indexOf(hoverTargetBox) + 1)); + return $range; + } + function fieldGroupClick(e) { + maybeShowFieldGroupMessage(); + if ('ul' !== e.originalEvent.target.nodeName.toLowerCase()) { + // only continue if the group itself was clicked / ignore when a field is clicked. + return; + } + var hoverTarget = document.querySelector('.frm-field-group-hover-target'); + if (!hoverTarget) { + return; + } + var ctrlOrCmdKeyIsDown = e.ctrlKey || e.metaKey; + var shiftKeyIsDown = e.shiftKey; + var groupIsActive = hoverTarget.classList.contains('frm-selected-field-group'); + var $selectedFieldGroups = getSelectedFieldGroups(); + var numberOfSelectedGroups = $selectedFieldGroups.length; + if (ctrlOrCmdKeyIsDown || shiftKeyIsDown) { + // multi-selecting + + var selectedField = getSelectedField(); + if (null !== selectedField && !jQuery(selectedField).siblings('li.form-field').length) { + // count a selected field on its own as a selected field group when multiselecting. + selectedField.parentNode.classList.add('frm-selected-field-group'); + ++numberOfSelectedGroups; + } + if (ctrlOrCmdKeyIsDown) { + if (groupIsActive) { + // unselect if holding ctrl or cmd and the group was already active. + --numberOfSelectedGroups; + hoverTarget.classList.remove('frm-selected-field-group'); + syncAfterMultiSelect(numberOfSelectedGroups); + return; // exit early to avoid adding back frm-selected-field-group + } + ++numberOfSelectedGroups; + } else if (shiftKeyIsDown && !groupIsActive) { + ++numberOfSelectedGroups; // include the one we're selecting right now. + var $firstGroup = $selectedFieldGroups.first(); + getSelectedRange($firstGroup, hoverTarget).each(function () { + var $fieldGroup = jQuery(this).closest('li').find('ul.frm_sorting'); + if (!$fieldGroup.hasClass('frm-selected-field-group')) { + ++numberOfSelectedGroups; + $fieldGroup.addClass('frm-selected-field-group'); + } + }); + } + } else { + // not multi-selecting + unselectFieldGroups(); + numberOfSelectedGroups = 1; + } + hoverTarget.classList.add('frm-selected-field-group'); + syncAfterMultiSelect(numberOfSelectedGroups); + maybeHideFieldGroupMessage(); + jQuery(document).off('click', unselectFieldGroups); + jQuery(document).on('click', unselectFieldGroups); + } + + /** + * Hide the field group message by manipulating classes. + * + * @param {Element} fieldGroupMessage The field group message element. + * @return {void} + */ + function hideFieldGroupMessage(fieldGroupMessage) { + if (!fieldGroupMessage) { + return; + } + fieldGroupMessage.classList.add('frm_hidden'); + fieldGroupMessage.classList.remove('frm-fadein-up-back'); + } + + /** + * Show the field group message by manipulating classes. + * + * @param {Element} fieldGroupMessage The field group message element. + * @return {void} + */ + function showFieldGroupMessage(fieldGroupMessage) { + if (!fieldGroupMessage) { + return; + } + fieldGroupMessage.classList.remove('frm_hidden'); + fieldGroupMessage.classList.add('frm-fadein-up-back'); + } + + /** + * Maybe show a message if there are at least two rows. + * + * @return {void} + */ + function maybeShowFieldGroupMessage() { + var fieldGroupMessage = document.getElementById('frm-field-group-message'); + var rows = document.querySelectorAll('.edit_form_item:not(.edit_field_type_end_divider)'); + if (rows.length < 2) { + hideFieldGroupMessage(fieldGroupMessage); + return; + } + if (fieldGroupMessage) { + showFieldGroupMessage(fieldGroupMessage); + return; + } + fieldGroupMessage = div({ + id: 'frm-field-group-message', + className: 'frm-flex-center frm-fadein-up-back', + children: [span({ + id: 'frm-field-group-message-dismiss', + className: 'frm-flex-center', + child: svg({ + href: '#frm_close_icon' + }) + })] + }); + + // Insert the field group into the DOM + document.getElementById('post-body-content').appendChild(fieldGroupMessage); + + // Get and add the field group message text + var messageText = getFieldGroupMessageText(); + fieldGroupMessage.prepend(messageText); + + // Set up a click event listener + document.getElementById('frm-field-group-message-dismiss').addEventListener('click', function () { + hideFieldGroupMessage(document.getElementById('frm-field-group-message')); + }); + } + + /** + * Get a span element with text about selecting multiple fields. + * + * @return {HTMLElement} A span element with the message and style classes. + */ + function getFieldGroupMessageText() { + var text = document.createElement('span'); + text.classList.add('frm-field-group-message-text', 'frm-flex-center'); + text.innerHTML = sprintf(/* translators: %1$s: Start span HTML, %2$s: end span HTML */ + frm_admin_js.holdShiftMsg, + // eslint-disable-line camelcase + '', ''); + return text; + } + + /** + * Maybe hide the field group message based on the number of selected rows. + * + * @return {void} + */ + function maybeHideFieldGroupMessage() { + var selectedRowCount = document.querySelectorAll('.frm-selected-field-group').length; + if (selectedRowCount < 2) { + return; + } + var fieldGroupMessage = document.getElementById('frm-field-group-message'); + hideFieldGroupMessage(fieldGroupMessage); + } + function getSelectedField() { + return document.getElementById('frm-show-fields').querySelector('li.form-field.selected'); + } + function getSelectedFieldGroups() { + var $fieldGroups = jQuery('.frm-selected-field-group'); + if ($fieldGroups.length) { + return $fieldGroups; + } + var selectedField = getSelectedField(); + if (selectedField) { + // If there is only one field in a group and the field is selected, consider the field's group as selected for multi-select. + var selectedFieldGroup = selectedField.closest('ul'); + if (selectedFieldGroup && 1 === getFieldsInRow(jQuery(selectedFieldGroup)).length) { + selectedFieldGroup.classList.add('frm-selected-field-group'); + return jQuery(selectedFieldGroup); + } + } + return jQuery(); + } + function syncAfterMultiSelect(numberOfSelectedGroups) { + clearSettingsBox(true); // unselect any fields if one is selected. + if (numberOfSelectedGroups >= 2 || 1 === numberOfSelectedGroups && selectedGroupHasMultipleFields()) { + addFieldMultiselectPopup(); + } else { + maybeRemoveMultiselectPopup(); + } + maybeRemoveGroupHoverTarget(); + } + function selectedGroupHasMultipleFields() { + return getFieldsInRow(jQuery(document.querySelector('.frm-selected-field-group'))).length > 1; + } + function unselectFieldGroups(event) { + if ('undefined' !== typeof event) { + if (null !== event.originalEvent.target.closest('#frm-show-fields')) { + return; + } + if (event.originalEvent.target.classList.contains('frm-merge-fields-into-row')) { + return; + } + if (null !== event.originalEvent.target.closest('.frm-merge-fields-into-row')) { + return; + } + if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { + return; + } + if (event.originalEvent.target.classList.contains('frm-cancel-custom-field-group-layout')) { + return; + } + } + jQuery('.frm-selected-field-group').removeClass('frm-selected-field-group'); + jQuery(document).off('click', unselectFieldGroups); + maybeRemoveMultiselectPopup(); + } + function maybeRemoveMultiselectPopup() { + var popup = document.getElementById('frm_field_multiselect_popup'); + if (null !== popup) { + popup.remove(); + } + } + function addFieldMultiselectPopup() { + getFieldMultiselectPopup(); + } + function getFieldMultiselectPopup() { + var popup, mergeOption, caret, verticalSeparator, deleteOption; + popup = document.getElementById('frm_field_multiselect_popup'); + if (null !== popup) { + popup.classList.toggle('frm-unmergable', !selectedFieldsAreMergeable()); + return popup; + } + popup = div(); + popup.id = 'frm_field_multiselect_popup'; + if (!selectedFieldsAreMergeable()) { + popup.classList.add('frm-unmergable'); + } + mergeOption = div(); + mergeOption.classList.add('frm-merge-fields-into-row'); + mergeOption.textContent = __('Merge into row', 'formidable'); + caret = document.createElement('a'); + caret.style.marginLeft = '5px'; + caret.classList.add('frm_icon_font', 'frm_arrowdown6_icon'); + caret.setAttribute('href', '#'); + mergeOption.appendChild(caret); + popup.appendChild(mergeOption); + verticalSeparator = div(); + verticalSeparator.classList.add('frm-multiselect-popup-separator'); + popup.appendChild(verticalSeparator); + deleteOption = div(); + deleteOption.classList.add('frm-delete-field-groups'); + deleteOption.appendChild(getIconClone('frm_trash_svg')); + popup.appendChild(deleteOption); + document.getElementById('post-body-content').appendChild(popup); + jQuery(popup).hide().fadeIn(); + return popup; + } + function selectedFieldsAreMergeable() { + var selectedFieldGroups, totalFieldCount, length, index, fieldGroup; + selectedFieldGroups = document.querySelectorAll('.frm-selected-field-group'); + length = selectedFieldGroups.length; + if (1 === length) { + return false; + } + totalFieldCount = 0; + for (index = 0; index < length; ++index) { + fieldGroup = selectedFieldGroups[index]; + if (null !== fieldGroup.querySelector('.edit_field_type_break, .edit_field_type_hidden')) { + return false; + } + totalFieldCount += getFieldsInRow(jQuery(fieldGroup)).length; + if (totalFieldCount > 6) { + return false; + } + } + return true; + } + function mergeFieldsIntoRowClick(event) { + var size, popup; + if (null !== event.originalEvent.target.closest('#frm_field_group_popup')) { + // prevent clicks within the popup from triggering the button again. + return; + } + if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { + // avoid switching back to the first page when clicking the custom option nested inside of the merge option. + return; + } + size = getSelectedFieldCount(); + popup = getFieldGroupPopup(size, document.querySelector('.frm-selected-field-group').firstChild); + this.appendChild(popup); + } + function getSelectedFieldCount() { + var count = 0; + jQuery(document.querySelectorAll('.frm-selected-field-group')).each(function () { + count += getFieldsInRow(jQuery(this)).length; + }); + return count; + } + function deleteFieldGroupsClick() { + var fieldIdsToDelete, deleteOnConfirm, multiselectPopup; + fieldIdsToDelete = getSelectedFieldIds(); + deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction(fieldIdsToDelete); + multiselectPopup = document.getElementById('frm_field_multiselect_popup'); + if (null !== multiselectPopup) { + multiselectPopup.remove(); + } + this.setAttribute('data-frmverify', confirmFieldsDeleteMessage(fieldIdsToDelete.length)); + confirmLinkClick(this); + var confirmedClick = document.getElementById('frm-confirmed-click'); + + // Remove any previous delete field data so delete confirmation does not attempt + // to delete a field that was already deleted or previously attempted and cancelled. + confirmedClick === null || confirmedClick === void 0 || confirmedClick.removeAttribute('data-deletefield'); + jQuery(confirmedClick).on('click', deleteOnConfirm); + jQuery('#frm_confirm_modal').one('dialogclose', function () { + jQuery(confirmedClick).off('click', deleteOnConfirm); + }); + } + function getSelectedFieldIds() { + var deleteFieldIds = []; + jQuery('.frm-selected-field-group > li.form-field').each(function () { + deleteFieldIds.push(this.dataset.fid); + }); + return deleteFieldIds; + } + function getDeleteSelectedFieldGroupsOnConfirmFunction(deleteFieldIds) { + return function (event) { + event.preventDefault(); + deleteAllSelectedFieldGroups(deleteFieldIds); + }; + } + function deleteAllSelectedFieldGroups(deleteFieldIds) { + deleteFieldIds.forEach(function (fieldId) { + deleteFields(fieldId); + }); + } + function deleteFieldConfirmed() { + /*jshint validthis:true */ + deleteFields(this.getAttribute('data-deletefield')); + } + function deleteFields(fieldId) { + var field = jQuery('#frm_field_id_' + fieldId); + deleteField(fieldId); + if (field.hasClass('edit_field_type_divider')) { + field.find('li.frm_field_box[data-fid]').each(function () { + deleteField(this.getAttribute('data-fid')); + }); + } + toggleSectionHolder(); + } + + /** + * Checks if there is only submit field in the form builder. + * + * @return {Boolean} + */ + function hasOnlySubmitField() { + // If there are at least 2 rows, return false. + if ($newFields.get(0).childElementCount > 1) { + return false; + } + var childUl = $newFields.get(0).firstElementChild.firstElementChild; + + // Use query instead of children because there might be a div inside this ul. + var childLi = childUl.querySelectorAll('li.frm_field_box'); + + // If there are at least 2 items in the row, return false. + if (childLi.length > 1) { + return false; + } + return childLi[0].classList.contains('edit_field_type_submit'); + } + + /** + * Moves open modals out of the field options form. + * + * When a modal is open, it is moved in the DOM and appended to the parent element of the modal trigger input. That + * creates a problem since deleting the field also deletes the modal and this function fixes that problem. + * + * @since 6.22 + * + * @param {Object} settings + * @return {void} + */ + function moveOpenModalsOutOfFieldOptions(settings) { + var openModals = settings[0].querySelectorAll('.frm-inline-modal[data-fills]'); + if (!openModals.length) { + return; + } + openModals.forEach(function (modal) { + modal.classList.add('frm_hidden'); + modal.removeAttribute('data-fills'); + modal.closest('form').appendChild(modal); + }); + } + function deleteField(fieldId) { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_delete_field', + field_id: fieldId, + nonce: frmGlobal.nonce + }, + success: function success() { + var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)), + settings = jQuery('#frm-single-settings-' + fieldId); + + // Remove settings from sidebar. + if (settings.is(':visible')) { + var _document$querySelect2; + (_document$querySelect2 = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect2 === void 0 || _document$querySelect2.click(); + document.querySelector('#frm-options-panel .frm-single-settings').classList.remove('frm_hidden'); + } + moveOpenModalsOutOfFieldOptions(settings); + settings.remove(); + $thisField.fadeOut('slow', function () { + var $section = $thisField.closest('.start_divider'), + type = $thisField.data('type'), + $adjacentFields = $thisField.siblings('li.form-field'), + $liWrapper; + if (!$adjacentFields.length) { + if ($thisField.is('.edit_field_type_end_divider')) { + $adjacentFields.length = $thisField.closest('li.form-field').siblings(); + } else { + $liWrapper = $thisField.closest('ul.frm_sorting').parent(); + } + } + $thisField.remove(); + if (type === 'break') { + renumberPageBreaks(); + } else if (type === 'product') { + maybeHideQuantityProductFieldOption(); + // a product field attached to a quantity field earlier might be the one deleted, so re-populate + popAllProductFields(); + } + if ($adjacentFields.length) { + syncLayoutClasses($adjacentFields.first()); + } else { + $liWrapper.remove(); + } + if (jQuery('#frm-show-fields li').length === 0 || hasOnlySubmitField()) { + var formEditorContainer = document.getElementById('frm_form_editor_container'); + formEditorContainer.classList.remove('frm-has-fields'); + formEditorContainer.classList.add('frm-empty-fields'); + } else if ($section.length) { + toggleOneSectionHolder($section); + } + + // prevent "More Options" tooltips from staying around after their target field is deleted. + deleteTooltips(); + }); + if ($thisField.length) { + wp.hooks.doAction('frm_after_delete_field', $thisField[0]); + } + } + }); + } + function addFieldLogicRow() { + /*jshint validthis:true */ + var id = jQuery(this).closest('.frm-single-settings').data('fid'), + formId = thisFormId, + logicRows = document.getElementById('frm_logic_row_' + id).querySelectorAll('.frm_logic_row'); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_logic_row', + form_id: formId, + field_id: id, + nonce: frmGlobal.nonce, + meta_name: getNewRowId(logicRows, 'frm_logic_' + id + '_'), + fields: getFieldList() + }, + success: function success(html) { + jQuery(document.getElementById('logic_' + id)).fadeOut('fast', function () { + var logicRow = document.getElementById('frm_logic_row_' + id); + logicRow.insertAdjacentHTML('beforeend', html); + var logicRowText = logicRow.querySelector('.frm_logic_row:last-child .frm-logic-rule-text'); + if (logicRowText) { + logicRowText.textContent = logicRow.dataset.ruleText; + } + var logicRows = logicRow.closest('.frm_logic_rows'); + logicRows.style.height = 'auto'; + jQuery(logicRows).fadeIn('fast'); + }); + } + }); + return false; + } + function getNewRowId(rows, replace, defaultValue) { + if (!rows.length) { + return 'undefined' !== typeof defaultValue ? defaultValue : 0; + } + return parseInt(rows[rows.length - 1].id.replace(replace, ''), 10) + 1; + } + function addWatchLookupRow() { + /*jshint validthis:true */ + var lastRowId, + id = jQuery(this).closest('.frm-single-settings').data('fid'), + formId = thisFormId, + lookupBlockRows = document.getElementById('frm_watch_lookup_block_' + id).children; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_watch_lookup_row', + form_id: formId, + field_id: id, + row_key: getNewRowId(lookupBlockRows, 'frm_watch_lookup_' + id + '_'), + nonce: frmGlobal.nonce + }, + success: function success(newRow) { + var _document$getElementB2; + var watchRowBlock = jQuery(document.getElementById('frm_watch_lookup_block_' + id)); + watchRowBlock.append(newRow); + watchRowBlock.fadeIn('slow'); + + // Show the "Watch Lookup Fields" label if it was hidden + (_document$getElementB2 = document.getElementById("frm_watch_lookup_label_".concat(id))) === null || _document$getElementB2 === void 0 || _document$getElementB2.classList.remove('frm-force-hidden'); + } + }); + return false; + } + function resetOptionTextDetails() { + jQuery('.frm-single-settings ul input[type="text"][name^="field_options[options_"]').filter('[data-value-on-load]').removeAttr('data-value-on-load'); + jQuery('input[type="hidden"][name^=optionmap]').remove(); + } + function optionTextAlreadyExists(input) { + var fieldId = jQuery(input).closest('.frm-single-settings').attr('data-fid'), + optionInputs = jQuery(input).closest('ul').get(0).querySelectorAll('.field_' + fieldId + '_option'), + index, + optionInput; + for (index in optionInputs) { + optionInput = optionInputs[index]; + if (optionInput.id !== input.id && optionInput.value === input.value && optionInput.getAttribute('data-duplicate') !== 'true') { + return true; + } + } + return false; + } + function onOptionTextFocus() { + var input, fieldId; + if (this.getAttribute('data-value-on-load') === null) { + this.setAttribute('data-value-on-load', this.value); + fieldId = jQuery(this).closest('.frm-single-settings').attr('data-fid'); + input = document.createElement('input'); + input.value = this.value; + input.setAttribute('type', 'hidden'); + input.setAttribute('name', 'optionmap[' + fieldId + '][' + this.value + ']'); + this.parentNode.appendChild(input); + if (typeof optionMap[fieldId] === 'undefined') { + optionMap[fieldId] = {}; + } + optionMap[fieldId][this.value] = input; + } + if (this.getAttribute('data-duplicate') === 'true') { + this.removeAttribute('data-duplicate'); + + // we want to use original value if actually still a duplicate + if (optionTextAlreadyExists(this)) { + this.setAttribute('data-value-on-focus', this.getAttribute('data-value-on-load')); + return; + } + } + if ('' !== this.value || frmAdminJs.new_option !== this.getAttribute('data-value-on-focus')) { + this.setAttribute('data-value-on-focus', this.value); + } + } + + /** + * Returns an object that has the old and new values and labels, when a field choice is changed. + * + * @param {HTMLElement} input + * @return {Object} + */ + function getChoiceOldAndNewValues(input) { + var _getChoiceOldValueAnd = getChoiceOldValueAndLabel(input), + oldValue = _getChoiceOldValueAnd.oldValue, + oldLabel = _getChoiceOldValueAnd.oldLabel; + var _getChoiceNewValueAnd = getChoiceNewValueAndLabel(input), + newValue = _getChoiceNewValueAnd.newValue, + newLabel = _getChoiceNewValueAnd.newLabel; + return { + oldValue: oldValue, + oldLabel: oldLabel, + newValue: newValue, + newLabel: newLabel + }; + } + + /** + * Returns an object that has the new value and label, when a field choice is changed. + * + * @param {HTMLElement} choiceElement + * @return {Object} + */ + function getChoiceNewValueAndLabel(choiceElement) { + var singleOptionContainer = choiceElement.closest('.frm_single_option'); + var newValue, newLabel; + if (choiceElement.parentElement.classList.contains('frm_single_option')) { + // label changed + newValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').value; + newLabel = choiceElement.value; + return { + newValue: newValue, + newLabel: newLabel + }; + } + + // saved value changed + newLabel = singleOptionContainer.querySelector('input[type="text"]').value; + newValue = choiceElement.value; + return { + newValue: newValue, + newLabel: newLabel + }; + } + + /** + * Returns an object that has the old value and label, when a field choice is changed. + * + * @param {HTMLElement} choiceElement + * @return {Object} + */ + function getChoiceOldValueAndLabel(choiceElement) { + var _choiceElement$closes, _choiceElement$closes2; + var usingSeparateValues = (_choiceElement$closes = (_choiceElement$closes2 = choiceElement.closest('.frm-single-settings').querySelector('.frm_toggle_sep_values')) === null || _choiceElement$closes2 === void 0 ? void 0 : _choiceElement$closes2.checked) !== null && _choiceElement$closes !== void 0 ? _choiceElement$closes : false; + var singleOptionContainer = choiceElement.closest('.frm_single_option'); + var oldValue, oldLabel; + if (usingSeparateValues) { + if (choiceElement.parentElement.classList.contains('frm_single_option')) { + // label changed + oldValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').getAttribute('data-value-on-focus'); + oldLabel = choiceElement.getAttribute('data-value-on-focus'); + return { + oldValue: oldValue, + oldLabel: oldLabel + }; + } + } + oldValue = choiceElement.getAttribute('data-value-on-focus'); + oldLabel = singleOptionContainer.querySelector('input[type="text"]').getAttribute('data-value-on-focus'); + return { + oldValue: oldValue, + oldLabel: oldLabel + }; + } + function onOptionTextBlur() { + var originalValue, fieldId, fieldIndex, logicId, row, rowLength, rowIndex, valueSelect, opts, fieldIds, settingId, setting, optionMatches, option; + var _getChoiceOldAndNewVa = getChoiceOldAndNewValues(this), + oldValue = _getChoiceOldAndNewVa.oldValue, + oldLabel = _getChoiceOldAndNewVa.oldLabel, + newValue = _getChoiceOldAndNewVa.newValue, + newLabel = _getChoiceOldAndNewVa.newLabel; + if (oldValue === newValue && oldLabel === newLabel) { + return; + } + var singleSettingsContainer = this.closest('.frm-single-settings'); + fieldId = singleSettingsContainer.getAttribute('data-fid'); + originalValue = this.getAttribute('data-value-on-load'); + + // check if the newValue is already mapped to another option + // if it is, mark as duplicate and return + if (optionTextAlreadyExists(this)) { + this.setAttribute('data-duplicate', 'true'); + if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { + // unmap any other change that may have happened before instead of changing it to something unused + optionMap[fieldId][originalValue].value = originalValue; + } + return; + } + if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { + optionMap[fieldId][originalValue].value = newValue; + } + fieldIds = []; + rows = builderPage.querySelectorAll('.frm_logic_row'); + rowLength = rows.length; + for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { + row = rows[rowIndex]; + opts = row.querySelector('.frm_logic_field_opts'); + if (opts.value !== fieldId) { + continue; + } + logicId = row.id.split('_')[2]; + valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); + if ('' === oldValue) { + optionMatches = []; + } else { + optionMatches = valueSelect.querySelectorAll('option[value="' + oldValue + '"]'); + } + if (!optionMatches.length) { + optionMatches = valueSelect.querySelectorAll('option[value="' + newValue + '"]'); + if (!optionMatches.length) { + var _singleSettingsContai; + if (!((_singleSettingsContai = singleSettingsContainer.querySelector('.frm_toggle_sep_values')) !== null && _singleSettingsContai !== void 0 && _singleSettingsContai.checked)) { + option = searchSelectByText(valueSelect, oldValue); // Find conditional logic option with oldValue + } + if (!option) { + option = document.createElement('option'); + valueSelect.appendChild(option); + } + } + } + if (optionMatches.length) { + option = optionMatches[optionMatches.length - 1]; + } + option.setAttribute('value', newValue); + option.textContent = newLabel; + if (fieldIds.indexOf(logicId) === -1) { + fieldIds.push(logicId); + } + } + for (fieldIndex in fieldIds) { + settingId = fieldIds[fieldIndex]; + setting = document.getElementById('frm-single-settings-' + settingId); + moveFieldSettings(setting); + } + } + + /** + * Returns an option element that matches a string with its text content. + * + * @param {HTMLElement} selectElement + * @param {string} searchText + * @return {HTMLElement|null} + */ + function searchSelectByText(selectElement, searchText) { + var options = selectElement.options; + for (var _i10 = 0; _i10 < options.length; _i10++) { + var option = options[_i10]; + if (searchText === option.textContent) { + return option; + } + } + return null; + } + function updateGetValueFieldSelection() { + /*jshint validthis:true */ + var fieldID = this.id.replace('get_values_form_', ''); + var fieldSelect = document.getElementById('get_values_field_' + fieldID); + var fieldType = this.getAttribute('data-fieldtype'); + if (this.value === '') { + fieldSelect.options.length = 1; + } else { + var formID = this.value; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_get_options_for_get_values_field', + form_id: formID, + field_type: fieldType, + nonce: frmGlobal.nonce + }, + success: function success(fields) { + fieldSelect.innerHTML = fields; + } + }); + } + } + + // Clear the Watch Fields option when Lookup field switches to "Text" option + function maybeClearWatchFields() { + /*jshint validthis:true */ + var link, + lookupBlock, + fieldID = this.name.replace('field_options[data_type_', '').replace(']', ''); + link = document.getElementById('frm_add_watch_lookup_link_' + fieldID); + if (!link) { + return; + } + link = link.parentNode; + if (this.value === 'text') { + lookupBlock = document.getElementById('frm_watch_lookup_block_' + fieldID); + if (lookupBlock !== null) { + // Clear and hide the Watch Fields option + lookupBlock.innerHTML = ''; + link.classList.add('frm_hidden'); + + // Hide the Watch Fields row + link.previousElementSibling.style.display = 'none'; + link.previousElementSibling.previousElementSibling.style.display = 'none'; + link.previousElementSibling.previousElementSibling.previousElementSibling.style.display = 'none'; + } + } else { + // Show the Watch Fields option + link.classList.remove('frm_hidden'); + } + toggleMultiSelect(fieldID, this.value); + } + + // Number the pages and hide/show the first page as needed. + function renumberPageBreaks() { + var i, + containerClass, + pages = document.getElementsByClassName('frm-page-num'); + if (pages.length > 1) { + document.getElementById('frm-fake-page').style.display = 'block'; + for (i = 0; i < pages.length; i++) { + containerClass = pages[i].parentNode.parentNode.parentNode.classList; + if (i === 1) { + // Hide previous button on page 1 + containerClass.add('frm-first-page'); + } else { + containerClass.remove('frm-first-page'); + } + pages[i].textContent = i + 1; + } + } else { + document.getElementById('frm-fake-page').style.display = 'none'; + } + wp.hooks.doAction('frm_renumber_page_breaks', pages); + } + + // The fake field works differently than real fields. + function maybeCollapsePage() { + /*jshint validthis:true */ + var field = jQuery(this).closest('.frm_field_box[data-ftype=break]'); + if (field.length) { + toggleCollapsePage(field); + } else { + toggleCollapseFakePage(); + } + } + + // Find all fields in a page and hide/show them + function toggleCollapsePage(field) { + var toCollapse = getAllFieldsForPage(field.get(0).parentNode.closest('li.frm_field_box').nextElementSibling); + togglePage(field, toCollapse); + } + function toggleCollapseFakePage() { + var topLevel = document.getElementById('frm-fake-page'), + firstField = document.getElementById('frm-show-fields').firstElementChild, + toCollapse = getAllFieldsForPage(firstField); + if (firstField.getAttribute('data-ftype') === 'break') { + // Don't collapse if the first field is a page break. + return; + } + togglePage(jQuery(topLevel), toCollapse); + } + function getAllFieldsForPage(firstWrapper) { + var $fieldsForPage, currentWrapper; + $fieldsForPage = jQuery(); + if (null === firstWrapper) { + return $fieldsForPage; + } + currentWrapper = firstWrapper; + do { + if (null !== currentWrapper.querySelector('.edit_field_type_break')) { + break; + } + $fieldsForPage = $fieldsForPage.add(jQuery(currentWrapper)); + currentWrapper = currentWrapper.nextElementSibling; + } while (null !== currentWrapper); + return $fieldsForPage; + } + function togglePage(field, toCollapse) { + var i, + fieldCount = toCollapse.length, + slide = Math.min(fieldCount, 3); + if (field.hasClass('frm-page-collapsed')) { + field.removeClass('frm-page-collapsed'); + toCollapse.removeClass('frm-is-collapsed'); + for (i = 0; i < slide; i++) { + if (i === slide - 1) { + jQuery(toCollapse[i]).slideDown(150, function () { + toCollapse.show(); + }); + } else { + jQuery(toCollapse[i]).slideDown(150); + } + } + } else { + field.addClass('frm-page-collapsed'); + toCollapse.addClass('frm-is-collapsed'); + for (i = 0; i < slide; i++) { + if (i === slide - 1) { + jQuery(toCollapse[i]).slideUp(150, function () { + toCollapse.css('cssText', 'display:none !important;'); + }); + } else { + jQuery(toCollapse[i]).slideUp(150); + } + } + } + } + function maybeCollapseSection() { + /*jshint validthis:true */ + var parentCont = this.parentNode.parentNode.parentNode.parentNode; + parentCont.classList.toggle('frm-section-collapsed'); + } + function maybeCollapseSettings() { + /*jshint validthis:true */ + this.classList.toggle('frm-collapsed'); + + // Toggles the "aria-expanded" attribute + var expanded = this.getAttribute('aria-expanded') === 'true' || false; + this.setAttribute('aria-expanded', !expanded); + addSlideAnimationCssVars(this.nextElementSibling); + } + + /** + * Add slide animation CSS variables to the element + * + * @param {HTMLElement} element The element to add CSS variables to + * @return {void} + */ + function addSlideAnimationCssVars(element) { + if (!element) { + return; + } + var height = element.scrollHeight; + if (height <= 0) { + return; + } + height += 250; + element.style.setProperty('--slide-height', "".concat(height, "px")); + element.style.setProperty('--slide-time', "".concat(Math.ceil(height * 0.8), "ms")); + } + function clickLabel() { + if (!this.id) { + return; + } + + /*jshint validthis:true */ + var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0], + fieldId = this.id.replace('field_label_', ''), + fieldType = document.getElementById('field_options_type_' + fieldId), + fieldTypeName = fieldType.value; + if (typeof setting !== 'undefined') { + if (fieldType.tagName === 'SELECT') { + fieldTypeName = fieldType.options[fieldType.selectedIndex].text.toLowerCase(); + } else { + fieldTypeName = fieldTypeName.replace('_', ' '); + } + fieldTypeName = normalizeFieldName(fieldTypeName); + setTimeout(function () { + if (setting.value.toLowerCase() === fieldTypeName) { + setting.select(); + } else { + setting.focus(); + } + }, 50); + } + } + function clickDescription() { + /*jshint validthis:true */ + var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0]; + if (typeof setting !== 'undefined') { + setTimeout(function () { + setting.focus(); + autoExpandSettings(setting); + }, 50); + } + } + function autoExpandSettings(setting) { + var inSection = setting.closest('.frm-collapse-me'); + if (inSection !== null) { + inSection.previousElementSibling.classList.remove('frm-collapsed'); + } + } + function normalizeFieldName(fieldTypeName) { + if (fieldTypeName === 'divider') { + fieldTypeName = 'section'; + } else if (fieldTypeName === 'range') { + fieldTypeName = 'slider'; + } else if (fieldTypeName === 'data') { + fieldTypeName = 'dynamic'; + } else if (fieldTypeName === 'form') { + fieldTypeName = 'embed form'; + } + return fieldTypeName; + } + function clickVis(e) { + /*jshint validthis:true */ + var currentClass, originalList; + currentClass = e.target.classList; + if (currentClass.contains('frm-collapse-page') || currentClass.contains('frm-sub-label') || e.target.closest('.dropdown') !== null) { + return; + } + if (this.closest('.start_divider') !== null) { + e.stopPropagation(); + } + if (this.classList.contains('edit_field_type_divider')) { + originalList = e.originalEvent.target.closest('ul.frm_sorting'); + if (null !== originalList) { + // prevent section click if clicking a field group within a section. + if (originalList.classList.contains('edit_field_type_divider') || originalList.parentNode.parentNode.classList.contains('start_divider')) { + return; + } + } + } + clickAction(this); + } + + /** + * Update the format input based on the selected format type. + * + * @since 6.9 + * + * @param {Event} event The event object from the format type selection. + * @return {void} + */ + function maybeUpdateFormatInput(event) { + var formatElement = event.target; + var type = formatElement.value; + if ('custom' === type) { + var fieldId = formatElement.dataset.fieldId; + var formatInput = document.getElementById("frm-field-format-custom-".concat(fieldId)).querySelector('.frm_format_opt'); + if ('international' === formatInput.value || 'currency' === formatInput.value || 'number' === formatInput.value) { + formatInput.setAttribute('value', ''); + } + } + setTimeout(function () { + formatElement.querySelectorAll('option').forEach(function (option) { + if (option.selected && option.classList.contains('frm_show_upgrade')) { + formatElement.value = 'none'; + } + }); + }, 0); + } + + /** + * Open Advanced settings on double click. + */ + function openAdvanced() { + var fieldId = this.getAttribute('data-fid'); + autoExpandSettings(document.getElementById('field_options_field_key_' + fieldId)); + } + function toggleRepeatButtons() { + /*jshint validthis:true */ + var $thisField = jQuery(this).closest('.frm_field_box'); + $thisField.find('.repeat_icon_links').removeClass('repeat_format repeat_formatboth repeat_formattext').addClass('repeat_format' + this.value); + if (this.value === 'text' || this.value === 'both') { + $thisField.find('.frm_repeat_text').show(); + $thisField.find('.repeat_icon_links a').addClass('frm_button'); + } else { + $thisField.find('.frm_repeat_text').hide(); + $thisField.find('.repeat_icon_links a').removeClass('frm_button'); + } + } + function checkRepeatLimit() { + /*jshint validthis:true */ + var val = this.value; + if (val !== '' && (val < 2 || val > 200)) { + infoModal(frmAdminJs.repeat_limit_min); + this.value = ''; + } + } + function checkCheckboxSelectionsLimit() { + /*jshint validthis:true */ + var val = this.value; + if (val !== '' && (val < 1 || val > 200)) { + infoModal(frmAdminJs.checkbox_limit); + this.value = ''; + } + } + function updateRepeatText(obj, addRemove) { + var $thisField = jQuery(obj).closest('.frm_field_box'); + $thisField.find('.frm_' + addRemove + '_form_row .frm_repeat_label').text(obj.value); + } + function fieldsInSection(id) { + var children = []; + jQuery(document.getElementById('frm_field_id_' + id)).find('li.frm_field_box:not(.no_repeat_section .edit_field_type_end_divider)').each(function () { + children.push(jQuery(this).data('fid')); + }); + return children; + } + function toggleFormTax() { + /*jshint validthis:true */ + var id = jQuery(this).closest('.frm-single-settings').data('fid'); + var val = this.value; + var $showFields = document.getElementById('frm_show_selected_fields_' + id); + var $showForms = document.getElementById('frm_show_selected_forms_' + id); + jQuery($showForms).find('select').val(''); + if (val === 'form') { + $showForms.style.display = 'inline'; + empty($showFields); + } else { + $showFields.style.display = 'none'; + $showForms.style.display = 'none'; + getTaxOrFieldSelection(val, id); + } + } + function resetOptOnChange() { + /*jshint validthis:true */ + var field, thisOpt; + field = getFieldKeyFromOpt(this); + if (!field) { + return; + } + thisOpt = jQuery(this).closest('.frm_single_option'); + resetSingleOpt(field.fieldId, field.fieldKey, thisOpt); + } + function getFieldKeyFromOpt(object) { + var allOpts, fieldId, fieldKey; + allOpts = jQuery(object).closest('.frm_sortable_field_opts'); + if (!allOpts.length) { + return false; + } + fieldId = allOpts.attr('id').replace('frm_field_', '').replace('_opts', ''); + fieldKey = allOpts.data('key'); + return { + fieldId: fieldId, + fieldKey: fieldKey + }; + } + function resetSingleOpt(fieldId, fieldKey, thisOpt) { + var saved, + text, + defaultVal, + previewInput, + labelForDisplay, + optContainer, + optKey = thisOpt.data('optkey'), + separateValues = usingSeparateValues(fieldId), + single = jQuery('label[for="field_' + fieldKey + '-' + optKey + '"]'), + baseName = 'field_options[options_' + fieldId + '][' + optKey + ']', + label = jQuery('input[name="' + baseName + '[label]"]'); + if (single.length < 1) { + resetDisplayedOpts(fieldId); + + // Set the default value. + defaultVal = thisOpt.find('input[name^="default_value_"]'); + if (defaultVal.is(':checked') && label.length > 0) { + jQuery('select[name^="item_meta[' + fieldId + ']"]').val(label.val()); + } + return; + } + previewInput = single.children('input'); + if (label.length < 1) { + // Check for other label. + label = jQuery('input[name="' + baseName + '"]'); + saved = label.val(); + } else if (separateValues) { + saved = jQuery('input[name="' + baseName + '[value]"]').val(); + } else { + saved = label.val(); + } + if (label.length < 1) { + return; + } + + // Set the displayed value. + text = single[0].childNodes; + if (imagesAsOptions(fieldId)) { + labelForDisplay = getImageDisplayValue(thisOpt, fieldId, label); + optContainer = single.find('.frm_image_option_container'); + if (optContainer.length > 0) { + optContainer.replaceWith(labelForDisplay); + } else { + text[text.length - 1].nodeValue = ''; + single.append(labelForDisplay); + } + } else { + var firstInputIndex = false; + text.forEach(function (node, index) { + if (firstInputIndex === false) { + if (node.tagName === 'INPUT') { + firstInputIndex = index; + } + } else if (index === firstInputIndex + 1) { + var nodeValue = ''; + if (buttonsAsOptions(fieldId)) { + nodeValue = div({ + className: 'frm_label_button_container', + text: ' ' + label.val() + }); + single[0].replaceChild(nodeValue, node); + } else { + node.nodeValue = ' ' + label.val(); + } + } else { + single[0].removeChild(node); + } + }); + } + + // Set saved value. + previewInput.val(saved); + + // Set the default value. + defaultVal = thisOpt.find('input[name^="default_value_"]'); + previewInput.prop('checked', defaultVal.is(':checked') ? true : false); + } + function buttonsAsOptions(fieldId) { + var fields = document.getElementsByName('field_options[image_options_' + fieldId + ']'); + var result = Array.from(fields).find(function (field) { + return field.checked && 'buttons' === field.value; + }); + return typeof result !== 'undefined'; + } + + /** + * Set the displayed value for an image option. + */ + function getImageDisplayValue(thisOpt, fieldId, label) { + var image, imageUrl, showLabelWithImage, fieldType; + image = thisOpt.find('img'); + if (image) { + imageUrl = image.attr('src'); + } + showLabelWithImage = showingLabelWithImage(fieldId); + fieldType = radioOrCheckbox(fieldId); + return getImageLabel(label.val(), showLabelWithImage, imageUrl, fieldType); + } + function getImageOptionSize(fieldId) { + var val, + field = document.getElementById('field_options_image_size_' + fieldId), + size = ''; + if (field !== null) { + val = field.value; + if (val !== '') { + size = val; + } + } + return size; + } + function resetDisplayedOpts(fieldId) { + var i, + opts, + type, + placeholder, + fieldInfo, + input = jQuery('[name^="item_meta[' + fieldId + ']"]'); + if (input.length < 1) { + return; + } + if (input.is('select')) { + placeholder = document.getElementById('frm_placeholder_' + fieldId); + if (placeholder !== null && placeholder.value === '') { + fillDropdownOpts(input[0], { + sourceID: fieldId + }); + } else { + fillDropdownOpts(input[0], { + sourceID: fieldId, + placeholder: placeholder.value + }); + } + } else { + opts = getMultipleOpts(fieldId); + jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields').html(''); + fieldInfo = getFieldKeyFromOpt(jQuery('#frm_delete_field_' + fieldId + '-000_container')); + var container = jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields'), + hasImageOptions = imagesAsOptions(fieldId), + imageSize = hasImageOptions ? getImageOptionSize(fieldId) : '', + imageOptionClass = hasImageOptions ? 'frm_image_option frm_image_' + imageSize + ' ' : '', + isProduct = isProductField(fieldId); + type = 'hidden' === input.attr('type') ? input.data('field-type') : input.attr('type'); + for (i = 0; i < opts.length; i++) { + container.append(addRadioCheckboxOpt(type, opts[i], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass)); + } + } + adjustConditionalLogicOptionOrders(fieldId); + } + + /** + * Returns an object that has a value and label for new conditional logic option, for a given option value. + * + * @param {Number} fieldId + * @param {string} expectedOption + * @return {Object} + */ + function getNewConditionalLogicOption(fieldId, expectedOption) { + var optionsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); + var expectedOptionInput = optionsContainer.querySelector('input[value="' + expectedOption + '"]'); + if (expectedOptionInput) { + return getChoiceNewValueAndLabel(expectedOptionInput); + } + return { + newValue: expectedOption, + newLabel: expectedOption + }; + } + function adjustConditionalLogicOptionOrders(fieldId, type) { + var row, + opts, + logicId, + valueSelect, + optionLength, + optionIndex, + expectedOption, + optionMatch, + fieldOptions, + rows = builderPage.querySelectorAll('.frm_logic_row'), + rowLength = rows.length; + fieldOptions = wp.hooks.applyFilters('frm_conditional_logic_field_options', getFieldOptions(fieldId), { + type: type, + fieldId: fieldId + }); + optionLength = fieldOptions.length; + for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { + row = rows[rowIndex]; + opts = row.querySelector('.frm_logic_field_opts'); + if (opts.value != fieldId) { + continue; + } + logicId = row.id.split('_')[2]; + valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); + for (optionIndex = optionLength - 1; optionIndex >= 0; optionIndex--) { + var _document$getElementB3; + expectedOption = fieldOptions[optionIndex]; + var expectedOptionValue = (_document$getElementB3 = document.getElementById('frm_field_' + fieldId + '_opts').querySelector('.frm_option_key input[type="text"]')) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.value; + if (!expectedOptionValue) { + expectedOptionValue = expectedOption; + } + optionMatch = valueSelect.querySelector('option[value="' + expectedOptionValue + '"]'); + var _getNewConditionalLog = getNewConditionalLogicOption(fieldId, expectedOption), + newValue = _getNewConditionalLog.newValue, + newLabel = _getNewConditionalLog.newLabel; + var fieldChoices = document.querySelectorAll('#frm_field_' + fieldId + '_opts input[data-value-on-focus]'); + var expectedChoiceEl = Array.from(fieldChoices).find(function (element) { + return element.value === expectedOption; + }); + if (expectedChoiceEl) { + var oldValue = expectedChoiceEl.dataset.valueOnFocus; + var hasMatch = oldValue && valueSelect.querySelector('option[value="' + oldValue + '"]'); + if (hasMatch) { + continue; + } + } + prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel); + } + optionMatch = valueSelect.querySelector('option[value=""]'); + if (optionMatch !== null) { + valueSelect.prepend(optionMatch); + } + } + } + function prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel) { + if (optionMatch === null && !valueSelect.querySelector('option[value="' + newValue + '"]')) { + optionMatch = frmDom.tag('option', { + text: newLabel + }); + optionMatch.value = newValue; + } + valueSelect.prepend(optionMatch); + } + function getFieldOptions(fieldId) { + var index, + input, + li, + listItems, + optsContainer, + length, + options = []; + optsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); + if (!optsContainer) { + return options; + } + listItems = optsContainer.querySelectorAll('.frm_single_option'); + length = listItems.length; + for (index = 0; index < length; index++) { + li = listItems[index]; + if (li.classList.contains('frm_hidden')) { + continue; + } + input = li.querySelector('.field_' + fieldId + '_option'); + options.push(input.value); + } + return options; + } + function addRadioCheckboxOpt(type, opt, fieldId, fieldKey, isProduct, classes) { + var other, + single = '', + isOther = opt.key.indexOf('other') !== -1, + id = 'field_' + fieldKey + '-' + opt.key, + inputType = type === 'scale' ? 'radio' : type; + other = ''; + this.getSingle = function () { + /** + * Get single option template. + * + * @param {Object} option Object containing the option data. + * @param {string} type The field type. + * @param {string} fieldId The field id. + * @param {string} classes The option clasnames. + * @param {string} id The input id attribute. + */ + single = wp.hooks.applyFilters('frm_admin.build_single_option_template', single, { + opt: opt, + type: type, + fieldId: fieldId, + classes: classes, + id: id + }); + if ('' !== single) { + return single; + } + return '
                              ' + (isOther ? other : '') + '
                              '; + }; + return this.getSingle(); + } + function fillDropdownOpts(field, atts) { + if (field === null) { + return; + } + var sourceID = atts.sourceID, + placeholder = atts.placeholder, + isProduct = isProductField(sourceID), + showOther = atts.other; + removeDropdownOpts(field); + var opts = getMultipleOpts(sourceID), + hasPlaceholder = typeof placeholder !== 'undefined'; + for (var _i11 = 0; _i11 < opts.length; _i11++) { + var label = opts[_i11].label, + isOther = opts[_i11].key.indexOf('other') !== -1; + if (hasPlaceholder && label !== '') { + addBlankSelectOption(field, placeholder); + } else if (hasPlaceholder) { + label = placeholder; + } + hasPlaceholder = false; + if (!isOther || showOther) { + var opt = document.createElement('option'); + opt.value = opts[_i11].saved; + opt.innerHTML = purifyHtml(label); + if (isProduct) { + opt.setAttribute('data-price', opts[_i11].price); + } + field.appendChild(opt); + } + } + } + function addBlankSelectOption(field, placeholder) { + var opt = document.createElement('option'), + firstChild = field.firstChild; + opt.value = ''; + opt.innerHTML = placeholder; + if (firstChild !== null) { + field.insertBefore(opt, firstChild); + field.selectedIndex = 0; + } else { + field.appendChild(opt); + } + } + function getMultipleOpts(fieldId) { + var i, + saved, + labelName, + label, + key, + optObj, + fieldType, + checked = false, + opts = [], + imageUrl = ''; + var optVals = jQuery('input[name^="field_options[options_' + fieldId + ']"]'); + var isProduct = isProductField(fieldId); + var showLabelWithImage = showingLabelWithImage(fieldId); + var hasImageOptions = imagesAsOptions(fieldId); + var separateValues = usingSeparateValues(fieldId); + for (i = 0; i < optVals.length; i++) { + if (optVals[i].name.indexOf('[000]') > 0 || optVals[i].name.indexOf('[value]') > 0 || optVals[i].name.indexOf('[image]') > 0 || optVals[i].name.indexOf('[price]') > 0) { + continue; + } + saved = optVals[i].value; + label = saved; + key = optVals[i].name.replace('field_options[options_' + fieldId + '][', '').replace('[label]', '').replace(']', ''); + if (separateValues) { + labelName = optVals[i].name.replace('[label]', '[value]'); + saved = jQuery('input[name="' + labelName + '"]').val(); + } + if (hasImageOptions) { + imageUrl = getImageUrlFromInput(optVals[i]); + fieldType = radioOrCheckbox(fieldId); + label = getImageLabel(label, showLabelWithImage, imageUrl, fieldType); + } + + /** + * @since 5.0.04 + */ + label = frmAdminBuild.hooks.applyFilters('frm_choice_field_label', label, fieldId, optVals[i], hasImageOptions); + checked = getChecked(optVals[i].id); + optObj = { + saved: saved, + label: label, + checked: checked, + key: key + }; + if (isProduct) { + labelName = optVals[i].name.replace('[label]', '[price]'); + optObj.price = jQuery('input[name="' + labelName + '"]').val(); + } + opts.push(optObj); + } + return opts; + } + function radioOrCheckbox(fieldId) { + var settings = document.getElementById('frm-single-settings-' + fieldId); + if (settings === null) { + return 'radio'; + } + return settings.classList.contains('frm-type-checkbox') ? 'checkbox' : 'radio'; + } + function getImageUrlFromInput(optVal) { + var img, + wrapper = jQuery(optVal).siblings('.frm_image_preview_wrapper'); + if (!wrapper.length) { + return ''; + } + img = wrapper.find('img'); + if (!img.length) { + return ''; + } + return img.attr('src'); + } + function purifyHtml(html) { + if (html instanceof Element || html instanceof Document) { + html = html.outerHTML; + } + var clean = jQuery.parseHTML(html).reduce(function (total, currentNode) { + var cleanNode = frmDom.cleanNode(currentNode); + if ('#text' === cleanNode.nodeName) { + return total += cleanNode.textContent; + } + return total + cleanNode.outerHTML; + }, ''); + if (clean !== html) { + // Clean it until nothing changes, in case the stripped result is now unsafe. + return purifyHtml(clean); + } + return clean; + } + function getImageLabel(label, showLabelWithImage, imageUrl, fieldType) { + var imageLabelClass, + originalLabel = label, + shape = fieldType === 'checkbox' ? 'square' : 'circle', + labelImage, + labelNode, + imageLabel; + originalLabel = purifyHtml(originalLabel); + if (imageUrl) { + labelImage = img({ + src: imageUrl, + alt: originalLabel + }); + } else { + labelImage = div({ + className: 'frm_empty_url' + }); + labelImage.innerHTML = frmAdminJs.image_placeholder_icon; + } + imageLabelClass = showLabelWithImage ? ' frm_label_with_image' : ''; + imageLabel = tag('span', { + className: 'frm_text_label_for_image_inner' + }); + imageLabel.innerHTML = originalLabel; + labelNode = tag('span', { + className: 'frm_image_option_container' + imageLabelClass, + children: [labelImage, tag('span', { + className: 'frm_text_label_for_image', + child: imageLabel + })] + }); + return labelNode; + } + function getChecked(id) { + field = jQuery('#' + id); + if (field.length === 0) { + return false; + } + checkbox = field.siblings('input[type=checkbox]'); + return checkbox.length && checkbox.prop('checked'); + } + function removeDropdownOpts(field) { + var i; + if (typeof field.options === 'undefined') { + return; + } + for (i = field.options.length - 1; i >= 0; i--) { + field.remove(i); + } + } + + /** + * Is the box checked to use separate values? + */ + function usingSeparateValues(fieldId) { + return isChecked('separate_value_' + fieldId); + } + + /** + * Is the box checked to use images as options? + */ + function imagesAsOptions(fieldId) { + var checked = false, + field = document.getElementsByName('field_options[image_options_' + fieldId + ']'); + for (var _i12 = 0; _i12 < field.length; _i12++) { + if (field[_i12].checked) { + checked = '0' !== field[_i12].value; + } + } + + /** + * @since 5.0.04 + */ + return frmAdminBuild.hooks.applyFilters('frm_choice_field_images_as_options', checked, fieldId); + } + function showingLabelWithImage(fieldId) { + var isShowing = !isChecked('hide_image_text_' + fieldId); + + /** + * @since 5.0.04 + */ + return frmAdminBuild.hooks.applyFilters('frm_choice_field_showing_label_with_image', isShowing, fieldId); + } + function isChecked(id) { + var field = document.getElementById(id); + if (field === null) { + return false; + } + return field.checked; + } + function checkUniqueOpt(targetInput) { + var settingsContainer = targetInput.closest('.frm-single-settings'); + var fieldId = settingsContainer.getAttribute('data-fid'); + var areValuesSeparate = settingsContainer.querySelector('[name="field_options[separate_value_' + fieldId + ']"]').checked; + if (areValuesSeparate && !targetInput.name.endsWith('[value]')) { + return; + } + var container = document.getElementById('frm_field_' + fieldId + '_opts'); + var conflicts = Array.from(container.querySelectorAll('input[type="text"]')).filter(function (input) { + return input.id !== targetInput.id && areValuesSeparate === input.name.endsWith('[value]') && input.value === targetInput.value; + }); + if (conflicts.length) { + /* translators: %s: The detected option value. */ + infoModal(sprintf(__('Duplicate option value "%s" detected', 'formidable'), purifyHtml(targetInput.value))); + } + } + function getFieldValues() { + /*jshint validthis:true */ + var isTaxonomy, + val = this.value; + if (val) { + var parentIDs = this.parentNode.id.replace('frm_logic_', '').split('_'); + var fieldID = parentIDs[0]; + var metaKey = parentIDs[1]; + var valueField = document.getElementById('frm_field_id_' + val); + var valueFieldType = valueField.getAttribute('data-ftype'); + var fill = document.getElementById('frm_show_selected_values_' + fieldID + '_' + metaKey); + var optionName = 'field_options[hide_opt_' + fieldID + '][]'; + var optionID = 'frm_field_logic_opt_' + fieldID; + var input = false; + var showSelect = valueFieldType === 'select' || valueFieldType === 'checkbox' || valueFieldType === 'radio'; + var showText = valueFieldType === 'text' || valueFieldType === 'email' || valueFieldType === 'phone' || valueFieldType === 'url' || valueFieldType === 'number'; + if (showSelect) { + isTaxonomy = document.getElementById('frm_has_hidden_options_' + val); + if (isTaxonomy !== null) { + // get the category options with ajax + showSelect = false; + } + } + if (showSelect || showText) { + var comparison = document.querySelector("#frm_logic_".concat(fieldID, "_").concat(metaKey, " [name=\"field_options[hide_field_cond_").concat(fieldID, "][]\"]")).value; + fill.innerHTML = ''; + var creatingValuesDropdown = showSelect && !['LIKE', 'not LIKE', 'LIKE%', '%LIKE'].includes(comparison); + if (creatingValuesDropdown) { + input = document.createElement('select'); + } else { + input = document.createElement('input'); + input.type = 'text'; + } + input.name = optionName; + input.id = optionID + '_' + metaKey; + fill.appendChild(input); + if (creatingValuesDropdown) { + var fillField = document.getElementById(input.id); + fillDropdownOpts(fillField, { + sourceID: val, + placeholder: '', + other: true + }); + } + } else { + var thisType = this.getAttribute('data-type'); + var callback = function callback() { + var event = new CustomEvent('frm_logic_options_loaded'); + event.frmData = { + valueFieldType: valueFieldType, + fieldID: fieldID, + metaKey: metaKey + }; + document.dispatchEvent(event); + }; + frmGetFieldValues(val, fieldID, metaKey, thisType, undefined, callback); + } + } + } + function getFieldSelection() { + /*jshint validthis:true */ + var formId = this.value; + if (formId) { + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + getTaxOrFieldSelection(formId, fieldId); + } + } + function getTaxOrFieldSelection(formId, fieldId) { + if (formId) { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_get_field_selection', + field_id: fieldId, + form_id: formId, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + var $selectedFields = jQuery('#frm_show_selected_fields_' + fieldId); + $selectedFields.toggleClass('frm6', !msg.includes('frm-inline-message')); + $selectedFields.html(msg).show(); + } + }); + } + } + function updateFieldOrder() { + var self = this; + this.initOnceInAllInstances = function () { + if ('undefined' !== typeof updateFieldOrder.prototype.orderFieldsObject) { + return; + } + + // It will store the order input fields ( input[name="field_options[field_order_{fieldId}]"] ). + // It will help to reduce the DOM searches based on fieldId. + // The same object data is used across all "updateFieldOrder" instances. + updateFieldOrder.prototype.orderFieldsObject = {}; + + // Get the Form group that will handle the fields settings. + // Perform a single DOM search and use it across all "updateFieldOrder" instances. + updateFieldOrder.prototype.fieldSettingsForm = document.getElementById('frm-end-form-marker').closest('form'); + }; + this.getFieldOrderInputById = function (fieldId, parent) { + var field; + var orderFieldsObject = updateFieldOrder.prototype.orderFieldsObject; + var fieldSettingsForm = updateFieldOrder.prototype.fieldSettingsForm; + if ('undefined' === typeof orderFieldsObject[fieldId]) { + field = fieldSettingsForm.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); + if (null === field) { + field = parent.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); + } + orderFieldsObject[fieldId] = field; + return field; + } + return orderFieldsObject[fieldId]; + }; + this.initOnceInAllInstances(); + renumberPageBreaks(); + return function () { + var fieldId, + field, + currentOrder, + newOrder, + moveFieldsClass = new moveFieldSettings(), + fields = jQuery('li.frm_field_box', jQuery('#frm-show-fields')); + for (i = 0; i < fields.length; i++) { + fieldId = fields[i].getAttribute('data-fid'); + field = self.getFieldOrderInputById(fieldId, fields[i]); + + // get current field order, make sure we don't get the "field" reference as the "field" value will get updated later. + currentOrder = null !== field ? Object.assign({}, field.value)[0] : null; + newOrder = i + 1; + if (currentOrder != newOrder && null !== currentOrder) { + field.value = newOrder; + singleField = fields[i].querySelector('#frm-single-settings-' + fieldId); + + // add field that needs to be moved to "updateFieldOrder.prototype.fieldSettingsForm" + moveFieldsClass.append(singleField); + fieldUpdated(); + } + } + // move all appended fields + moveFieldsClass.moveFields(); + }(); + } + function toggleSectionHolder() { + document.querySelectorAll('.start_divider').forEach(function (divider) { + toggleOneSectionHolder(jQuery(divider)); + }); + } + function toggleOneSectionHolder($section) { + var noSectionFields, $rows, length, index, sectionHasFields; + if (!$section.length) { + return; + } + $rows = $section.find('ul.frm_sorting'); + sectionHasFields = false; + length = $rows.length; + for (index = 0; index < length; ++index) { + if (0 !== getFieldsInRow(jQuery($rows.get(index))).length) { + sectionHasFields = true; + break; + } + } + noSectionFields = $section.parent().children('.frm_no_section_fields').get(0); + noSectionFields.classList.toggle('frm_block', !sectionHasFields); + } + function handleShowPasswordLiveUpdate() { + frmDom.util.documentOn('change', '.frm_show_password_setting_input', function (event) { + var fieldId = event.target.getAttribute('data-fid'); + var fieldEl = document.getElementById('frm_field_id_' + fieldId); + if (!fieldEl) { + return; + } + fieldEl.classList.toggle('frm_disabled_show_password', !event.target.checked); + }); + } + function slideDown() { + /*jshint validthis:true */ + var id = jQuery(this).data('slidedown'); + var $thisId = jQuery(document.getElementById(id)); + if ($thisId.is(':hidden')) { + $thisId.slideDown('fast'); + this.style.display = 'none'; + } + return false; + } + function slideUp() { + /*jshint validthis:true */ + var id = jQuery(this).data('slideup'); + var $thisId = jQuery(document.getElementById(id)); + $thisId.slideUp('fast'); + $thisId.siblings('a').show(); + return false; + } + function adjustVisibilityValuesForEveryoneValues(element, option) { + if ('' === option.getAttribute('value')) { + onEveryoneOptionSelected(jQuery(this)); + } else { + unselectEveryoneOptionIfSelected(jQuery(this)); + } + } + function onEveryoneOptionSelected($select) { + $select.val(''); + $select.next('.btn-group').find('.multiselect-container input[value!=""]').prop('checked', false); + } + function unselectEveryoneOptionIfSelected($select) { + var selectedValues = $select.val(), + index; + if (selectedValues === null) { + $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', true); + onEveryoneOptionSelected($select); + return; + } + index = selectedValues.indexOf(''); + if (index >= 0) { + selectedValues.splice(index, 1); + $select.val(selectedValues); + $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', false); + } + } + + /** + * Get rid of empty container that inserts extra space. + */ + function hideEmptyEle() { + jQuery('.frm-hide-empty').each(function () { + if (jQuery(this).text().trim().length === 0) { + jQuery(this).remove(); + } + }); + } + + /* Change the classes in the builder */ + function changeFieldClass(field, setting) { + var classes, + replace, + alignField, + replaceWith = ' ' + setting.value, + fieldId = field.getAttribute('data-fid'); + + // Include classes from multiple settings. + if (typeof fieldId !== 'undefined') { + if (setting.classList.contains('field_options_align')) { + replaceWith += ' ' + document.getElementById('frm_classes_' + fieldId).value; + } else if (setting.classList.contains('frm_classes')) { + alignField = document.getElementById('field_options_align_' + fieldId); + if (alignField !== null) { + replaceWith += ' ' + alignField.value; + } + } + } + replaceWith += ' '; + + // Allow for the column number dropdown. + replaceWith = replaceWith.replace(' block ', ' vertical_radio ').replace(' inline ', ' horizontal_radio '); + classes = field.className.split(' frmstart ')[1]; + classes = 0 === classes.indexOf('frmend ') ? '' : classes.split(' frmend ')[0]; + if (classes.trim() === '') { + replace = ' frmstart frmend '; + if (-1 === field.className.indexOf(replace)) { + replace = ' frmstart frmend '; + } + replaceWith = ' frmstart ' + replaceWith.trim() + ' frmend '; + } else { + replace = classes.trim(); + replaceWith = replaceWith.trim(); + } + field.className = field.className.replace(replace, replaceWith); + } + function maybeShowInlineModal(e) { + /*jshint validthis:true */ + e.preventDefault(); + showInlineModal(this, undefined, e); + } + function showInlineModal(icon, input, event) { + var box = document.getElementById(icon.getAttribute('data-open')), + container = jQuery(icon).closest('p,ul'), + inputTrigger = typeof input !== 'undefined'; + if (container.hasClass('frm-open')) { + container.removeClass('frm-open'); + box.classList.add('frm_hidden'); + } else { + if (!inputTrigger) { + input = getInputForIcon(icon); + } + if (input !== null) { + if (!inputTrigger) { + var key = event.key; + if (key !== 'Enter' && key !== ' ') { + input.focus(); + } + } + container.after(box); + box.setAttribute('data-fills', input.id.replace('-proxy-input', '')); + if (box.id.indexOf('frm-calc-box') === 0) { + popCalcFields(box, true); + } + } + container.addClass('frm-open'); + box.classList.remove('frm_hidden'); + + /** + * @since 6.4.1 + */ + wp.hooks.doAction('frm_show_inline_modal', box, icon); + } + } + function dismissInlineModal(e) { + /*jshint validthis:true */ + e.preventDefault(); + this.parentNode.classList.add('frm_hidden'); + jQuery('.frm-open [data-open="' + this.parentNode.id + '"]').closest('.frm-open').removeClass('frm-open'); + } + + /** + * Close frm-modal-no-dismiss element when clicking outside of it + * + * @param {Event} event The click event + */ + function closeModalOnOutsideClick(_ref3) { + var target = _ref3.target; + if (target.closest('.frm-inline-modal.frm-modal-no-dismiss') || target.closest('.frm-show-inline-modal') || target.closest('#frm_adv_info') || target.closest('.frm-token-proxy-input')) { + return; + } + + // Close all inline modals (without close button) that are not hidden + document.querySelectorAll('.frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)').forEach(function (modal) { + modal.classList.add('frm_hidden'); + modal.previousElementSibling.classList.remove('frm-open'); + }); + } + function changeInputtedValue() { + /*jshint validthis:true */ + var i, + action = this.getAttribute('data-frmchange').split(','); + for (i = 0; i < action.length; i++) { + if (action[i] === 'updateOption') { + changeHiddenSeparateValue(this); + } else if (action[i] === 'updateDefault') { + changeDefaultRadioValue(this); + } else if (action[i] === 'checkUniqueOpt') { + checkUniqueOpt(this); + } else { + this.value = this.value[action[i]](); + } + } + } + + /** + * When the saved value is changed, update the default value radio. + */ + function changeDefaultRadioValue(input) { + var parentLi = getOptionParent(input), + key = parentLi.getAttribute('data-optkey'), + fieldId = getOptionFieldId(parentLi, key), + defaultRadio = parentLi.querySelector('input[name="default_value_' + fieldId + '"]'); + if (defaultRadio !== null) { + defaultRadio.value = input.value; + } + } + + /** + * If separate values are not enabled, change the saved value when + * the displayed value is changed. + */ + function changeHiddenSeparateValue(input) { + var savedVal, + parentLi = getOptionParent(input), + key = parentLi.getAttribute('data-optkey'), + fieldId = getOptionFieldId(parentLi, key), + sep = document.getElementById('separate_value_' + fieldId); + if (sep !== null && sep.checked === false) { + // If separate values are not turned on. + savedVal = document.getElementById('field_key_' + fieldId + '-' + key); + savedVal.value = input.value; + changeDefaultRadioValue(savedVal); + } + } + function getOptionParent(input) { + var parentLi = input.parentNode; + if (parentLi.tagName !== 'LI') { + parentLi = parentLi.parentNode; + } + return parentLi; + } + function getOptionFieldId(li, key) { + var liId = li.id; + return liId.replace('frm_delete_field_', '').replace('-' + key + '_container', ''); + } + function submitBuild() { + /*jshint validthis:true */ + var $thisEle = this; + if (showNameYourFormModal()) { + return; + } + preFormSave(this); + var $form = jQuery(builderForm); + var v = JSON.stringify($form.serializeArray()); + jQuery(document.getElementById('frm_compact_fields')).val(v); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_save_form', + frm_compact_fields: v, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + afterFormSave($thisEle); + var $postStuff = document.getElementById('post-body-content'); + var $html = document.createElement('div'); + $html.setAttribute('class', 'frm_updated_message'); + $html.innerHTML = msg; + $postStuff.insertBefore($html, $postStuff.firstChild); + reloadIfAddonActivatedAjaxSubmitOnly(); + }, + error: function error() { + triggerSubmit(document.getElementById('frm_js_build_form')); + } + }); + } + function triggerSubmit(form) { + var button = form.ownerDocument.createElement('input'); + button.style.display = 'none'; + button.type = 'submit'; + form.appendChild(button).click(); + form.removeChild(button); + } + function triggerChange(element) { + jQuery(element).trigger('change'); + } + function submitNoAjax() { + /*jshint validthis:true */ + var form; + if (showNameYourFormModal()) { + return; + } + preFormSave(this); + form = jQuery(builderForm); + jQuery(document.getElementById('frm_compact_fields')).val(JSON.stringify(form.serializeArray())); + triggerSubmit(document.getElementById('frm_js_build_form')); + } + + /** + * Display a modal dialog for naming a new form template, if applicable. + * + * @return {boolean} True if the modal is successfully initialized and displayed; false otherwise. + */ + function showNameYourFormModal() { + // Exit early if the 'new_template' URL parameter is not set to 'true' + if (!shouldShowNameYourFormNameModal()) { + return false; + } + var modalWidget = initModal('#frm-form-templates-modal', '440px'); + if (!modalWidget) { + return false; + } + + // Set the vertical offset for the modal and open it + offsetModalY(modalWidget, '72px'); + modalWidget.dialog('open'); + return true; + } + + /** + * Returns true if 'Name Your Form' modal should be displayed. + * + * @return {Boolean} + */ + function shouldShowNameYourFormNameModal() { + var _document$querySelect3; + var formNameInput = document.getElementById('frm_form_name'); + if (formNameInput && formNameInput.value.trim() !== '') { + return false; + } + return 'true' === urlParams.get('new_template') && ((_document$querySelect3 = document.querySelector('#frm_top_bar #frm_bs_dropdown .frm_bstooltip')) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.textContent.trim()) === frm_admin_js.noTitleText; // eslint-disable-line camelcase + } + + /** + * Manages event handling for the 'Name your form' modal. + * + * Attaches click and keydown event listeners to the save button and input field. + * + * @return {void} + */ + function addFormNameModalEvents() { + var saveFormNameButton = document.getElementById('frm-save-form-name-button'); + var newFormNameInput = document.getElementById('frm_new_form_name_input'); + + // Attach click event listener + onClickPreventDefault(saveFormNameButton, onSaveFormNameButton); + + // Attach keydown event listener + newFormNameInput.addEventListener('keydown', function (event) { + if (event.key === 'Enter') { + onSaveFormNameButton.call(this, event); + } + }); + } + + /** + * Handles the click event on the save form name button. + * + * @param {Event} event The click event object. + * @return {void} + */ + var onSaveFormNameButton = function onSaveFormNameButton(event) { + var newFormName = document.getElementById('frm_new_form_name_input').value.trim(); + + // Prepare FormData for the POST request + var formData = new FormData(); + formData.append('form_id', urlParams.get('id')); + formData.append('form_name', newFormName); + + // Perform the POST request + doJsonPost('rename_form', formData).then(function (data) { + // Remove the 'new_template' parameter from the URL and update the browser history + urlParams.delete('new_template'); + currentURL.search = urlParams.toString(); + history.replaceState({}, '', currentURL.toString()); + if (null !== document.getElementById('frm_notification_settings')) { + document.getElementById('frm_form_name').value = newFormName; + document.getElementById('frm_form_key').value = data.form_key; + } + + // Trigger the 'Save' button click using jQuery + jQuery('#frm-publishing').find('.frm_button_submit').trigger('click'); + }); + }; + function preFormSave(b) { + removeWPUnload(); + if (jQuery('form.inplace_form').length) { + jQuery('.inplace_save, .postbox').trigger('click'); + } + if (b.classList.contains('frm_button_submit')) { + b.classList.add('frm_loading_form'); + } else { + b.classList.add('frm_loading_button'); + } + b.setAttribute('aria-busy', 'true'); + adjustFormatInputBeforeSave(); + } + + /** + * Updates the format input based on the selected format type from dropdowns during the form save process. + * + * @since 6.9 + * + * @return {void} + */ + function adjustFormatInputBeforeSave() { + var formatTypes = document.querySelectorAll('.frm_format_dropdown, .frm_phone_type_dropdown'); + var valueMap = { + none: '', + international: 'international', + currency: 'currency', + number: 'number' + }; + formatTypes.forEach(function (formatType) { + var value = formatType.value; + if (value in valueMap) { + var formatInput = document.getElementById("frm_format_".concat(formatType.dataset.fieldId)); + formatInput.value = valueMap[value]; + } + }); + } + function afterFormSave(button) { + button.classList.remove('frm_loading_form'); + button.classList.remove('frm_loading_button'); + resetOptionTextDetails(); + fieldsUpdated = 0; + button.setAttribute('aria-busy', 'false'); + setTimeout(function () { + jQuery('.frm_updated_message').fadeOut('slow', function () { + this.parentNode.removeChild(this); + }); + }, 5000); + } + function initUpgradeModal() { + var $info = initModal('#frm_upgrade_modal'); + if ($info === false) { + return; + } + document.addEventListener('click', handleUpgradeClick); + frmDom.util.documentOn('change', 'select.frm_select_with_upgrade', handleUpgradeClick); + function handleUpgradeClick(event) { + var element, link, content; + element = event.target; + if (!element.classList) { + return; + } + var showExpiredModal = element.classList.contains('frm_show_expired_modal') || null !== element.querySelector('.frm_show_expired_modal') || element.closest('.frm_show_expired_modal'); + + // If a `select` element is clicked, check if the selected option has a 'data-upgrade' attribute + if (event.type === 'change' && element.classList.contains('frm_select_with_upgrade')) { + var selectedOption = element.options[element.selectedIndex]; + if (selectedOption && selectedOption.dataset.upgrade) { + element = selectedOption; + } + } + if (!element.dataset.upgrade) { + var parent = element.closest('[data-upgrade]'); + if (!parent) { + parent = element.closest('.frm_field_box'); + if (!parent) { + return; + } + // Fake it if it's missing to avoid error. + element.dataset.upgrade = ''; + } + element = parent; + } + if (showExpiredModal) { + var hookName = 'frm_show_expired_modal'; + wp.hooks.doAction(hookName, element); + return; + } + var upgradeLabel = element.dataset.upgrade; + if (!upgradeLabel || element.classList.contains('frm_show_upgrade_tab')) { + return; + } + event.preventDefault(); + var modal = $info.get(0); + var lockIcon = modal.querySelector('.frm_lock_icon'); + if (lockIcon) { + lockIcon.style.display = 'block'; + lockIcon.classList.remove('frm_lock_open_icon'); + lockIcon.querySelector('use').setAttribute('href', '#frm_lock_icon'); + } + var upgradeImageId = 'frm_upgrade_modal_image'; + var oldImage = document.getElementById(upgradeImageId); + if (oldImage) { + oldImage.remove(); + } + if (element.dataset.image) { + if (lockIcon) { + lockIcon.style.display = 'none'; + } + lockIcon.parentNode.insertBefore(img({ + id: upgradeImageId, + src: frmGlobal.url + '/images/' + element.dataset.image + }), lockIcon); + } + var level = modal.querySelector('.license-level'); + if (level) { + level.textContent = getRequiredLicenseFromTrigger(element); + } + + // If one click upgrade, hide other content + addOneClick(element, 'modal', upgradeLabel); + modal.querySelector('.frm_are_not_installed').style.display = element.dataset.image ? 'none' : 'inline-block'; + modal.querySelector('.frm_feature_label').textContent = upgradeLabel; + modal.querySelector('h2').style.display = 'block'; + $info.dialog('open'); + + // set the utm medium + var button = modal.querySelector('.button-primary:not(.frm-oneclick-button)'); + link = button.getAttribute('href').replace(/(medium=)[a-z_-]+/ig, '$1' + element.getAttribute('data-medium')); + content = element.getAttribute('data-content'); + if (content === null) { + content = ''; + } + link = link.replace(/(content=)[a-z_-]+/ig, '$1' + content); + button.setAttribute('href', link); + } + } + + /** + * Opens a basic modal with the given title and content. + * + * @param {Event} event The event object. + * @return {void} + */ + function showBasicModal(event) { + var _event$target$dataset; + var button = (_event$target$dataset = event.target.dataset) !== null && _event$target$dataset !== void 0 && _event$target$dataset.modalTitle ? event.target : event.target.closest('[data-modal-title]'); + if (!button) { + return; + } + var _button$dataset = button.dataset, + modalTitle = _button$dataset.modalTitle, + modalContent = _button$dataset.modalContent; + if (!modalTitle || !modalContent) { + return; + } + event.preventDefault(); + frmDom.modal.maybeCreateModal('frmBasicModal', { + title: modalTitle, + content: div({ + className: 'inside', + child: span(modalContent) + }) + }); + } + function getRequiredLicenseFromTrigger(element) { + if (element.dataset.requires) { + return element.dataset.requires; + } + return 'Pro'; + } + function populateUpgradeTab(element) { + var title = element.dataset.upgrade; + var tab = element.getAttribute('href').replace('#', ''); + var container = document.querySelector('.frm_' + tab) || document.querySelector('.' + tab); + if (!container) { + return; + } + if (container.querySelector('.frm-upgrade-message')) { + // Tab has already been populated. + return; + } + var h2 = container.querySelector('h2'); + h2.style.borderBottom = 'none'; + + /* translators: %s: Form Setting section name (ie Form Permissions, Form Scheduling). */ + h2.textContent = sprintf(__('%s are not installed', 'formidable'), title); + container.classList.add('frmcenter'); + var upgradeModal = document.getElementById('frm_upgrade_modal'); + appendClonedModalElementToContainer('frm-oneclick'); + appendClonedModalElementToContainer('frm-addon-status'); + + // Borrow the call to action from the Upgrade upgradeModal which should exist on the settings page (it is still used for other upgrades including Actions). + var upgradeModalLink = upgradeModal.querySelector('.frm-upgrade-link'); + if (upgradeModalLink) { + var upgradeButton = upgradeModalLink.cloneNode(true); + var level = upgradeButton.querySelector('.license-level'); + if (level) { + level.textContent = getRequiredLicenseFromTrigger(element); + } + container.appendChild(upgradeButton); + + // Maybe append the secondary "Already purchased?" link from the upgradeModal as well. + if (upgradeModalLink.nextElementSibling && upgradeModalLink.nextElementSibling.querySelector('.frm-link-secondary')) { + container.appendChild(upgradeModalLink.nextElementSibling.cloneNode(true)); + } + appendClonedModalElementToContainer('frm-oneclick-button'); + } + appendClonedModalElementToContainer('frm-upgrade-message'); + var upgradeLabel = element.dataset.message; + if (upgradeLabel === undefined) { + upgradeLabel = element.dataset.upgrade; + } + addOneClick(element, 'tab', upgradeLabel); + if (element.dataset.screenshot) { + container.appendChild(getScreenshotWrapper(element.dataset.screenshot)); + } + function appendClonedModalElementToContainer(className) { + container.appendChild(upgradeModal.querySelector('.' + className).cloneNode(true)); + } + } + function getScreenshotWrapper(screenshot) { + var folderUrl = frmGlobal.url + '/images/screenshots/'; + var wrapper = div({ + className: 'frm-settings-screenshot-wrapper', + children: [getToolbar(), div({ + child: img({ + src: folderUrl + screenshot + }) + })] + }); + function getToolbar() { + var children = getColorIcons(); + children.push(img({ + src: frmGlobal.url + '/images/tab.svg' + })); + return div({ + className: 'frm-settings-screenshot-toolbar', + children: children + }); + } + function getColorIcons() { + return ['#ED8181', '#EDE06A', '#80BE30'].map(function (color) { + var circle = div({ + className: 'frm-minmax-icon' + }); + circle.style.backgroundColor = color; + return circle; + }); + } + return wrapper; + } + + /** + * Allow addons to be installed from the upgrade modal. + * + * @param {Element} link + * @param {string} context Either 'modal' or 'tab'. + * @param {string|undefined} upgradeLabel + */ + function addOneClick(link, context, upgradeLabel) { + var container; + if ('modal' === context) { + container = document.getElementById('frm_upgrade_modal'); + } else if ('tab' === context) { + container = document.getElementById(link.getAttribute('href').substr(1)); + } else { + return; + } + var oneclickMessage = container.querySelector('.frm-oneclick'); + var upgradeMessage = container.querySelector('.frm-upgrade-message'); + var showLink = container.querySelector('.frm-upgrade-link'); + var button = container.querySelector('.frm-oneclick-button'); + var addonStatus = container.querySelector('.frm-addon-status'); + var oneclick = link.getAttribute('data-oneclick'); + var newMessage = link.getAttribute('data-message'); + var showIt = 'block'; + var showMsg = 'block'; + var hideIt = 'none'; + + // If one click upgrade, hide other content. + if (oneclickMessage !== null && typeof oneclick !== 'undefined' && oneclick) { + if (newMessage === null) { + showMsg = 'none'; + } + showIt = 'none'; + hideIt = 'block'; + oneclick = JSON.parse(oneclick); + button.className = button.className.replace(' frm-install-addon', '').replace(' frm-activate-addon', ''); + button.className = button.className + ' ' + oneclick.class; + button.rel = oneclick.url; + if (oneclick.class === 'frm-activate-addon') { + oneclickMessage.textContent = __('This plugin is not activated. Would you like to activate it now?', 'formidable'); + button.textContent = __('Activate', 'formidable'); + } else { + oneclickMessage.textContent = __('That add-on is not installed. Would you like to install it now?', 'formidable'); + button.textContent = __('Install', 'formidable'); + } + } + if (!newMessage) { + newMessage = upgradeMessage.getAttribute('data-default'); + } + if (undefined !== upgradeLabel) { + newMessage = newMessage.replace('', upgradeLabel); + } + upgradeMessage.innerHTML = newMessage; + if (link.dataset.upsellImage) { + upgradeMessage.appendChild(img({ + src: link.dataset.upsellImage, + alt: link.dataset.upgrade + })); + } + + // Either set the link or use the default. + showLink.href = getShowLinkHrefValue(link, showLink); + addonStatus.style.display = 'none'; + oneclickMessage.style.display = hideIt; + button.style.display = hideIt === 'block' ? 'inline-block' : hideIt; + upgradeMessage.style.display = showMsg; + showLink.style.display = showIt === 'block' ? 'inline-block' : showIt; + } + function getShowLinkHrefValue(link, showLink) { + var customLink = link.getAttribute('data-link'); + if (customLink === null || typeof customLink === 'undefined' || customLink === '') { + customLink = showLink.getAttribute('data-default'); + } + return customLink; + } + + /* Form settings */ + + function showInputIcon(parentClass) { + if (typeof parentClass === 'undefined') { + parentClass = ''; + } + maybeAddFieldSelection(parentClass); + jQuery(parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) input,' + parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) textarea').wrap('').before(''); + } + + /** + * For reverse compatibility. Check for fields that were + * using the old sidebar. + */ + function maybeAddFieldSelection(parentClass) { + var i, + missingClass = jQuery(parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_message, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_to, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_subject'); + for (i = 0; i < missingClass.length; i++) { + missingClass[i].parentNode.classList.add('frm_has_shortcodes'); + } + } + function showSuccessOpt() { + /*jshint validthis:true */ + var c = 'success'; + if (this.name === 'options[edit_action]') { + c = 'edit'; + } + var v = jQuery(this).val(); + jQuery('.' + c + '_action_box').hide(); + if (v === 'redirect') { + jQuery('.' + c + '_action_redirect_box.' + c + '_action_box').fadeIn('slow'); + } else if (v === 'page') { + jQuery('.' + c + '_action_page_box.' + c + '_action_box').fadeIn('slow'); + } else { + jQuery('.' + c + '_action_message_box.' + c + '_action_box').fadeIn('slow'); + } + } + function copyFormAction(event) { + if (waitForActionToLoadBeforeCopy(event.target)) { + return; + } + var targetSettings = event.target.closest('.frm_form_action_settings'); + var wysiwygs = targetSettings.querySelectorAll('.wp-editor-area'); + if (wysiwygs.length) { + // Temporary remove TinyMCE before cloning to avoid TinyMCE conflicts. + wysiwygs.forEach(function (wysiwyg) { + tinymce.EditorManager.execCommand('mceRemoveEditor', true, wysiwyg.id); + }); + } + var $action = jQuery(targetSettings).clone(); + var currentID = $action.attr('id').replace('frm_form_action_', ''); + var newID = newActionId(currentID); + $action.find('.frm_action_id, .frm-btn-group').remove(); + $action.find('input[name$="[' + currentID + '][ID]"]').val(''); + $action.find('.widget-inside').hide(); + + // the .html() gets original values, so they need to be set + $action.find('input[type=text], textarea, input[type=number]').prop('defaultValue', function () { + return this.value; + }); + $action.find('input[type=checkbox], input[type=radio]').prop('defaultChecked', function () { + return this.checked; + }); + var rename = new RegExp('\\[' + currentID + '\\]', 'g'); + var reid = new RegExp('_' + currentID + '"', 'g'); + var reclass = new RegExp('-' + currentID + '"', 'g'); + var revalue = new RegExp('"' + currentID + '"', 'g'); // if a field id matches, this could cause trouble + + var html = $action.html().replace(rename, '[' + newID + ']').replace(reid, '_' + newID + '"'); + html = html.replace(reclass, '-' + newID + '"').replace(revalue, '"' + newID + '"'); + var newAction = div({ + id: 'frm_form_action_' + newID, + className: $action.get(0).className + }); + newAction.setAttribute('data-actionkey', newID); + newAction.innerHTML = html; + newAction.querySelectorAll('.wp-editor-wrap, .wp-editor-wrap *').forEach(function (element) { + if ('string' === typeof element.className) { + element.className = element.className.replace(currentID, newID); + } + element.id = element.id.replace(currentID, newID); + }); + newAction.classList.remove('open'); + document.getElementById('frm_notification_settings').appendChild(newAction); + if (wysiwygs.length) { + // Re-initialize the original wysiwyg which was removed before cloning. + wysiwygs.forEach(function (wysiwyg) { + frmDom.wysiwyg.init(wysiwyg); + }); + newAction.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { + frmDom.wysiwyg.init(wysiwyg); + }); + } + if (newAction.classList.contains('frm_single_on_submit_settings')) { + var autocompleteInput = newAction.querySelector('input.frm-page-search'); + if (autocompleteInput) { + initAutocomplete(newAction); + } + } + initiateMultiselect(); + var hookName = 'frm_after_duplicate_action'; + wp.hooks.doAction(hookName, newAction); + } + function waitForActionToLoadBeforeCopy(element) { + var $trigger = jQuery(element), + $original = $trigger.closest('.frm_form_action_settings'), + $inside = $original.find('.widget-inside'), + $top; + if ($inside.find('p, div, table').length) { + return false; + } + $top = $original.find('.widget-top'); + $top.on('frm-action-loaded', function () { + $trigger.trigger('click'); + $original.removeClass('open'); + $inside.hide(); + }); + $top.trigger('click'); + return true; + } + function newActionId(currentID) { + var newID = parseInt(currentID, 10) + 11; + var exists = document.getElementById('frm_form_action_' + newID); + if (exists !== null) { + newID++; + newID = newActionId(newID); + } + return newID; + } + function addFormAction() { + /*jshint validthis:true */ + var type = jQuery(this).data('actiontype'); + if (isAtLimitForActionType(type)) { + return; + } + var actionId = getNewActionId(); + var formId = thisFormId; + var placeholderSetting = document.createElement('div'); + placeholderSetting.classList.add('frm_single_' + type + '_settings'); + var actionsList = document.getElementById('frm_notification_settings'); + actionsList.appendChild(placeholderSetting); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_form_action', + type: type, + list_id: actionId, + form_id: formId, + nonce: frmGlobal.nonce + }, + success: handleAddFormActionSuccess + }); + function handleAddFormActionSuccess(html) { + fieldUpdated(); + placeholderSetting.remove(); + closeOpenActions(); + var newActionContainer = div(); + newActionContainer.innerHTML = html; + var widgetTop = newActionContainer.querySelector('.widget-top'); + Array.from(newActionContainer.children).forEach(function (child) { + return actionsList.appendChild(child); + }); + jQuery('.frm_form_action_settings').fadeIn('slow'); + var newAction = document.getElementById('frm_form_action_' + actionId); + newAction.classList.add('open'); + document.getElementById('post-body-content').scroll({ + top: newAction.offsetTop + 10, + left: 0, + behavior: 'smooth' + }); + + // Check if icon should be active + checkActiveAction(type); + showInputIcon('#frm_form_action_' + actionId); + initiateMultiselect(); + initAutocomplete(newAction); + if (widgetTop) { + jQuery(widgetTop).trigger('frm-action-loaded'); + } + + /** + * Fires after added a new form action. + * + * @since 5.5.4 + * + * @param {HTMLElement} formAction Form action element. + */ + frmAdminBuild.hooks.doAction('frm_added_form_action', newAction); + } + } + function closeOpenActions() { + document.querySelectorAll('.frm_form_action_settings.open').forEach(function (setting) { + return setting.classList.remove('open'); + }); + } + function toggleActionGroups() { + /*jshint validthis:true */ + var actions = document.getElementById('frm_email_addon_menu').classList, + search = document.getElementById('actions-search-input'); + if (actions.contains('frm-all-actions')) { + actions.remove('frm-all-actions'); + actions.add('frm-limited-actions'); + } else { + actions.add('frm-all-actions'); + actions.remove('frm-limited-actions'); + } + + // Reset search. + search.value = ''; + triggerEvent(search, 'input'); + } + function getNewActionId() { + var actionSettings = document.querySelectorAll('.frm_form_action_settings'), + len = getNewRowId(actionSettings, 'frm_form_action_'); + if (typeof document.getElementById('frm_form_action_' + len) !== 'undefined') { + len = len + 100; + } + if (lastNewActionIdReturned >= len) { + len = lastNewActionIdReturned + 1; + } + lastNewActionIdReturned = len; + return len; + } + function clickAction(obj) { + var $thisobj = jQuery(obj); + if (obj.className.indexOf('selected') !== -1) { + return; + } + if (obj.className.indexOf('edit_field_type_end_divider') !== -1 && $thisobj.closest('.edit_field_type_divider').hasClass('no_repeat_section')) { + return; + } + deselectFields(); + $thisobj.addClass('selected'); + showFieldOptions(obj); + } + + /** + * When a field is selected, show the field settings in the sidebar. + */ + function showFieldOptions(obj) { + var _document$querySelect4; + var i, + singleField, + fieldId = obj.getAttribute('data-fid'), + fieldType = obj.getAttribute('data-type'), + allFieldSettings = document.querySelectorAll('.frm-single-settings:not(.frm_hidden)'); + for (i = 0; i < allFieldSettings.length; i++) { + allFieldSettings[i].classList.add('frm_hidden'); + } + singleField = document.getElementById('frm-single-settings-' + fieldId); + moveFieldSettings(singleField); + if (fieldType && 'quantity' === fieldType) { + popProductFields(jQuery(singleField).find('.frmjs_prod_field_opt')[0]); + } + + // Scroll settings panel to top + (_document$querySelect4 = document.querySelector('.frm-settings-panel.frm-scrollbar-wrapper')) === null || _document$querySelect4 === void 0 || _document$querySelect4.scrollTo({ + top: 0, + behavior: 'instant' + }); + singleField.classList.remove('frm_hidden'); + document.getElementById('frm-options-panel-tab').click(); + var editor = singleField.querySelector('.wp-editor-area'); + if (editor) { + frmDom.wysiwyg.init(editor, { + setupCallback: setupTinyMceEventHandlers + }); + } + wp.hooks.doAction('frmShowedFieldSettings', obj, singleField); + maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField); + } + function maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField) { + var _singleField$querySel; + if (!shouldAddShortcodesModalTriggerIcon(fieldType)) { + return; + } + var fieldSettingsSelector = '#frm-single-settings-' + fieldId; + if (document.querySelector(fieldSettingsSelector + ' .frm-show-box')) { + return; + } + (_singleField$querySel = singleField.querySelector('.wp-editor-container')) === null || _singleField$querySel === void 0 || _singleField$querySel.classList.add('frm_has_shortcodes'); + var wrapTextareaWithIconContainer = function wrapTextareaWithIconContainer() { + var textareas = document.querySelectorAll(fieldSettingsSelector + ' .frm_has_shortcodes textarea'); + textareas.forEach(function (textarea) { + var wrapperSpan = span({ + className: 'frm-with-right-icon' + }); + textarea.parentNode.insertBefore(wrapperSpan, textarea); + wrapperSpan.appendChild(createModalTriggerIcon()); + wrapperSpan.appendChild(textarea); + }); + }; + var createModalTriggerIcon = function createModalTriggerIcon() { + return frmDom.svg({ + href: '#frm_more_horiz_solid_icon', + classList: ['frm-show-box'] + }); + }; + wrapTextareaWithIconContainer(); + } + function shouldAddShortcodesModalTriggerIcon(fieldType) { + var fieldsWithShortcodesBox = wp.hooks.applyFilters('frm_fields_with_shortcode_popup', ['html']); + return fieldsWithShortcodesBox.includes(fieldType); + } + function setupTinyMceEventHandlers(editor) { + editor.on('Change', function () { + handleTinyMceChange(editor); + }); + } + function handleTinyMceChange(editor) { + if (!isTinyMceActive() || tinyMCE.activeEditor.isHidden()) { + return; + } + editor.targetElm.value = editor.getContent(); + jQuery(editor.targetElm).trigger('change'); + } + function isTinyMceActive() { + var activeSettings, wrapper; + activeSettings = document.querySelector('.frm-single-settings:not(.frm_hidden)'); + if (!activeSettings) { + return false; + } + wrapper = activeSettings.querySelector('.wp-editor-wrap'); + return null !== wrapper && wrapper.classList.contains('tmce-active'); + } + + /** + * Move the settings to the sidebar the first time they are changed or selected. + * Keep the end marker at the end of the form. + */ + function moveFieldSettings(singleField) { + var self = this; + if (singleField === null) { + // The field may have not been loaded yet via ajax. + return; + } + this.fragment = document.createDocumentFragment(); + this.initOnceInAllInstances = function () { + if ('undefined' !== typeof moveFieldSettings.prototype.endMarker) { + return; + } + // perform a single search in the DOM and use it across all moveFieldSettings instances + moveFieldSettings.prototype.endMarker = document.getElementById('frm-end-form-marker'); + }; + this.append = function (field) { + var classname = null !== field ? field.parentElement.classList : ''; + if (null === field || !classname.contains('frm_field_box') && !classname.contains('divider_section_only')) { + return; + } + self.fragment.appendChild(field); + }; + this.moveFields = function () { + builderForm.insertBefore(self.fragment, moveFieldSettings.prototype.endMarker); + }; + this.initOnceInAllInstances(); + + // Move the field if function is called as function with a singleField passed as arg. + // In this particular case only 1 field is needed to be moved so the field will get instantly moved. + // "singleField" may be undefined when it's called as a constructor instead of a function. Use the constructor to add multiple fields which are passed through "append" and move these all at once via "moveFields". + if ('undefined' !== typeof singleField) { + this.append(singleField); + this.moveFields(); + return; + } + return { + append: this.append, + moveFields: this.moveFields + }; + } + function showEmailRow() { + /*jshint validthis:true */ + var actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'); + var rowType = this.getAttribute('data-emailrow'); + jQuery('#frm_form_action_' + actionKey + ' .frm_' + rowType + '_row').fadeIn('slow'); + jQuery(this).fadeOut('slow'); + } + function hideEmailRow() { + /*jshint validthis:true */ + var actionBox = jQuery(this).closest('.frm_form_action_settings'), + rowType = this.getAttribute('data-emailrow'), + emailRowSelector = '.frm_' + rowType + '_row', + emailButtonSelector = '.frm_' + rowType + '_button'; + jQuery(actionBox).find(emailButtonSelector).fadeIn('slow'); + jQuery(actionBox).find(emailRowSelector).fadeOut('slow', function () { + jQuery(actionBox).find(emailRowSelector + ' input').val(''); + }); + } + function showEmailWarning() { + /*jshint validthis:true */ + var actionBox = jQuery(this).closest('.frm_form_action_settings'), + emailRowSelector = '.frm_from_to_match_row', + fromVal = actionBox.find('input[name$="[post_content][from]"]').val(), + toVal = actionBox.find('input[name$="[post_content][email_to]"]').val(); + if (fromVal === toVal) { + jQuery(actionBox).find(emailRowSelector).fadeIn('slow'); + } else { + jQuery(actionBox).find(emailRowSelector).fadeOut('slow'); + } + } + function checkActiveAction(type) { + var actionTriggers = document.querySelectorAll('.frm_' + type + '_action'); + if (isAtLimitForActionType(type)) { + var addAlreadyUsedClass = getLimitForActionType(type) > 0; + markActionTriggersInactive(actionTriggers, addAlreadyUsedClass); + return; + } + markActionTriggersActive(actionTriggers); + } + function markActionTriggersActive(triggers) { + triggers.forEach(function (trigger) { + if (trigger.querySelector('.frm_show_upgrade')) { + // Prevent disabled action becoming active. + return; + } + trigger.classList.remove('frm_inactive_action', 'frm_already_used'); + trigger.classList.add('frm_active_action'); + }); + } + function markActionTriggersInactive(triggers, addAlreadyUsedClass) { + triggers.forEach(function (trigger) { + trigger.classList.remove('frm_active_action'); + trigger.classList.add('frm_inactive_action'); + if (addAlreadyUsedClass) { + trigger.classList.add('frm_already_used'); + } + }); + } + function isAtLimitForActionType(type) { + var atLimit = getNumberOfActionsForType(type) >= getLimitForActionType(type); + var hookName = 'frm_action_at_limit'; + var hookArgs = { + type: type + }; + atLimit = wp.hooks.applyFilters(hookName, atLimit, hookArgs); + return atLimit; + } + function getLimitForActionType(type) { + return parseInt(jQuery('.frm_' + type + '_action').data('limit'), 10); + } + function getNumberOfActionsForType(type) { + return jQuery('.frm_single_' + type + '_settings').length; + } + function actionLimitMessage() { + var message = frmAdminJs.only_one_action; + var limit = this.dataset.limit; + if ('undefined' !== typeof limit) { + limit = parseInt(limit); + if (limit > 1) { + message = message.replace(1, limit).trim(); + } else { + message += ' ' + frmAdminJs.edit_action_text; + } + } + infoModal(message); + } + function addFormLogicRow() { + /*jshint validthis:true */ + var id = jQuery(this).data('emailkey'); + var type = jQuery(this).closest('.frm_form_action_settings').find('.frm_action_name').val(); + var formId = document.getElementById('form_id').value; + var logicRowsContainer = document.getElementById('frm_logic_row_' + id); + var logicRows = logicRowsContainer.querySelectorAll('.frm_logic_row'); + var newRowID = getNewRowId(logicRows, 'frm_logic_' + id + '_'); + var placeholder = div({ + id: 'frm_logic_' + id + '_' + newRowID, + className: 'frm_logic_row frm_hidden' + }); + logicRowsContainer.appendChild(placeholder); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_form_logic_row', + email_id: id, + form_id: formId, + meta_name: newRowID, + type: type, + nonce: frmGlobal.nonce + }, + success: function success(html) { + jQuery(document.getElementById('logic_link_' + id)).fadeOut('slow', function () { + placeholder.insertAdjacentHTML('beforebegin', html); + placeholder.remove(); + + // Show conditional logic options after "Add Conditional Logic" is clicked. + jQuery(logicRowsContainer).parent('.frm_logic_rows').fadeIn('slow'); + }); + } + }); + return false; + } + function checkDupPost() { + /*jshint validthis:true */ + var postField = jQuery('select.frm_single_post_field'); + postField.css('border-color', ''); + var $t = this; + var v = jQuery($t).val(); + if (v === '' || v === 'checkbox') { + return false; + } + postField.each(function () { + if (jQuery(this).val() === v && this.name !== $t.name) { + this.style.borderColor = 'red'; + jQuery($t).val(''); + infoModal(frmAdminJs.field_already_used); + return false; + } + }); + } + function togglePostContent() { + /*jshint validthis:true */ + var v = jQuery(this).val(); + if ('' === v) { + jQuery('.frm_post_content_opt, select.frm_dyncontent_opt').hide().val(''); + jQuery('.frm_dyncontent_opt').hide(); + } else if ('post_content' === v) { + jQuery('.frm_post_content_opt').show(); + jQuery('.frm_dyncontent_opt').hide(); + jQuery('select.frm_dyncontent_opt').val(''); + } else { + jQuery('.frm_post_content_opt').hide().val(''); + jQuery('select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt').show(); + } + } + function fillDyncontent() { + /*jshint validthis:true */ + var v = jQuery(this).val(); + var $dyn = jQuery(document.getElementById('frm_dyncontent')); + if ('' === v || 'new' === v) { + $dyn.val(''); + jQuery('.frm_dyncontent_opt').show(); + } else { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_display_get_content', + id: v, + nonce: frmGlobal.nonce + }, + success: function success(val) { + $dyn.val(val); + jQuery('.frm_dyncontent_opt').show(); + } + }); + } + } + function switchPostType() { + /*jshint validthis:true */ + // update all rows of categories/taxonomies + var curSelect, + newSelect, + catRows = document.getElementById('frm_posttax_rows').childNodes, + postParentField = document.querySelector('.frm_post_parent_field'), + postMenuOrderField = document.querySelector('.frm_post_menu_order_field'), + postType = this.value; + + // Get new category/taxonomy options + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_replace_posttax_options', + post_type: postType, + nonce: frmGlobal.nonce + }, + success: function success(html) { + // Loop through each category row, and replace the first dropdown + for (i = 0; i < catRows.length; i++) { + // Check if current element is a div + if (catRows[i].tagName !== 'DIV') { + continue; + } + + // Get current category select + curSelect = catRows[i].getElementsByTagName('select')[0]; + + // Set up new select + newSelect = document.createElement('select'); + newSelect.innerHTML = html; + newSelect.className = curSelect.className; + newSelect.name = curSelect.name; + + // Replace the old select with the new select + catRows[i].replaceChild(newSelect, curSelect); + } + } + }); + + // Get new post parent option. + if (postParentField) { + getActionOption(postParentField, postType, 'frm_get_post_parent_option', function (response, optName) { + // The replaced string is declared in FrmProFormActionController::ajax_get_post_menu_order_option() in the pro version. + postParentField.querySelector('.frm_post_parent_opt_wrapper').innerHTML = response.replaceAll('REPLACETHISNAME', optName); + initAutocomplete(postParentField); + }); + } + if (postMenuOrderField) { + getActionOption(postMenuOrderField, postType, 'frm_should_use_post_menu_order_option'); + } + } + function getActionOption(field, postType, action, successHandler) { + var opt = field.querySelector('.frm_autocomplete_value_input') || field.querySelector('select'), + optName = opt.getAttribute('name'); + jQuery.ajax({ + url: ajaxurl, + method: 'POST', + data: { + action: action, + post_type: postType, + _wpnonce: frmGlobal.nonce + }, + success: function success(response) { + if ('string' !== typeof response) { + console.error(response); + return; + } + if ('0' === response) { + // This post type does not support this field. + field.classList.add('frm_hidden'); + field.value = ''; + return; + } + field.classList.remove('frm_hidden'); + if ('function' === typeof successHandler) { + successHandler(response, optName); + } + }, + error: function error(response) { + return console.error(response); + } + }); + } + function addPosttaxRow() { + /*jshint validthis:true */ + addPostRow('tax', this); + } + function addPostmetaRow() { + /*jshint validthis:true */ + addPostRow('meta', this); + } + function addPostRow(type, button) { + var name, + id = jQuery('input[name="id"]').val(), + settings = jQuery(button).closest('.frm_form_action_settings'), + key = settings.data('actionkey'), + postType = settings.find('.frm_post_type').val(), + metaName = 0, + postTypeRows = document.querySelectorAll('.frm_post' + type + '_row'); + if (postTypeRows.length) { + name = postTypeRows[postTypeRows.length - 1].id.replace('frm_post' + type + '_', ''); + if (isNumeric(name)) { + metaName = 1 + parseInt(name, 10); + } else { + metaName = 1; + } + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_post' + type + '_row', + form_id: id, + meta_name: metaName, + tax_key: metaName, + post_type: postType, + action_key: key, + nonce: frmGlobal.nonce + }, + success: function success(html) { + var cfOpts, optIndex; + jQuery(document.getElementById('frm_post' + type + '_rows')).append(html); + jQuery('.frm_add_post' + type + '_row.button').hide(); + if (type === 'meta') { + jQuery('.frm_name_value').show(); + cfOpts = document.querySelectorAll('.frm_toggle_cf_opts'); + for (optIndex = 0; optIndex < cfOpts.length - 1; ++optIndex) { + cfOpts[optIndex].style.display = 'none'; + } + } else if (type === 'tax') { + jQuery('.frm_posttax_labels').show(); + } + } + }); + } + function isNumeric(value) { + return !isNaN(parseFloat(value)) && isFinite(value); + } + function changePosttaxRow() { + /*jshint validthis:true */ + if (!jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').length) { + return; + } + jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').html('
                              '); + var postType = jQuery(this).closest('.frm_form_action_settings').find('select[name$="[post_content][post_type]"]').val(), + actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'), + taxKey = jQuery(this).closest('.frm_posttax_row').attr('id').replace('frm_posttax_', ''), + metaName = jQuery(this).val(), + showExclude = jQuery(document.getElementById(taxKey + '_show_exclude')).is(':checked') ? 1 : 0, + fieldId = jQuery('select[name$="[post_category][' + taxKey + '][field_id]"]').val(), + id = jQuery('input[name="id"]').val(); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_add_posttax_row', + form_id: id, + post_type: postType, + tax_key: taxKey, + action_key: actionKey, + meta_name: metaName, + field_id: fieldId, + show_exclude: showExclude, + nonce: frmGlobal.nonce + }, + success: function success(html) { + var $tax = jQuery(document.getElementById('frm_posttax_' + taxKey)); + $tax.replaceWith(html); + } + }); + } + function toggleCfOpts() { + /*jshint validthis:true */ + var row = jQuery(this).closest('.frm_postmeta_row'); + var cancel = row.find('.frm_cancelnew'); + var select = row.find('.frm_enternew'); + if (row.find('select.frm_cancelnew').is(':visible')) { + cancel.hide(); + select.show(); + } else { + cancel.show(); + select.hide(); + } + row.find('input.frm_enternew, select.frm_cancelnew').val(''); + return false; + } + function toggleFormOpts() { + /*jshint validthis:true */ + var changedOpt = jQuery(this); + var val = changedOpt.val(); + if (changedOpt.attr('type') === 'checkbox') { + if (this.checked === false) { + val = ''; + } + } + var toggleClass = changedOpt.data('toggleclass'); + if (val === '') { + jQuery('.' + toggleClass).hide(); + } else { + jQuery('.' + toggleClass).show(); + jQuery('.hide_' + toggleClass + '_' + val).hide(); + } + } + function submitSettings() { + if (showNameYourFormModal()) { + return; + } + + /*jshint validthis:true */ + preFormSave(this); + triggerSubmit(document.querySelector('.frm_form_settings')); + } + + /* Customization Panel */ + function insertCode(e) { + /*jshint validthis:true */ + e.preventDefault(); + insertFieldCode(jQuery(this), this.getAttribute('data-code')); + return false; + } + function insertFieldCode(element, variable) { + var rich = false, + elementId = element; + if (_typeof(element) === 'object') { + if (element.hasClass('frm_noallow')) { + return; + } + elementId = jQuery(element).closest('[data-fills]').attr('data-fills'); + if (typeof elementId === 'undefined') { + elementId = element.closest('div').attr('class'); + if (typeof elementId !== 'undefined') { + elementId = elementId.split(' ')[1]; + } + } + } + if (typeof elementId === 'undefined') { + var active = document.activeElement; + if (active.type === 'search') { + // If the search field has focus, find the correct field. + elementId = active.id.replace('-search-input', ''); + if (elementId.match(/\d/gi) === null) { + active = jQuery('.frm-single-settings:visible .' + elementId); + elementId = active.attr('id'); + } + } else { + elementId = active.id; + } + } + if (elementId) { + rich = jQuery('#wp-' + elementId + '-wrap.wp-editor-wrap').length > 0; + } + var contentBox = jQuery(document.getElementById(elementId)); + if (typeof element.attr('data-shortcode') === 'undefined' && (!contentBox.length || typeof contentBox.attr('data-shortcode') === 'undefined')) { + // this helps to exclude those that don't want shortcode-like inserted content e.g. frm-pro's summary field + var doShortcode = element.parents('ul.frm_code_list').attr('data-shortcode'); + if (doShortcode === 'undefined' || doShortcode !== 'no') { + variable = '[' + variable + ']'; + } + } + if (rich) { + wpActiveEditor = elementId; + } + if (!contentBox.length) { + return false; + } + if (variable === '[default-html]' || variable === '[default-plain]') { + var p = 0; + if (variable === '[default-plain]') { + p = 1; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_get_default_html', + form_id: jQuery('input[name="id"]').val(), + plain_text: p, + nonce: frmGlobal.nonce + }, + elementId: elementId, + success: function success(msg) { + if (rich) { + var _p = document.createElement('p'); + _p.innerText = msg; + send_to_editor(_p.innerHTML); + } else { + insertContent(contentBox, msg); + } + } + }); + } else { + variable = maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox); + if (rich) { + send_to_editor(variable); + } else { + insertContent(contentBox, variable); + } + } + return false; + } + function maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox) { + if ('object' !== _typeof(element) || !(element instanceof jQuery) || 0 !== contentBox[0].id.indexOf('success_url_')) { + return variable; + } + element = element[0]; + if (!element.closest('#frm-insert-fields-box')) { + // Only add sanitize_url=1 to field shortcodes. + return variable; + } + if (!element.parentNode.classList.contains('frm_insert_url')) { + variable = variable.replace(']', ' sanitize_url=1]'); + } + return variable; + } + function insertContent(contentBox, variable) { + if (document.selection) { + contentBox[0].focus(); + document.selection.createRange().text = variable; + } else { + obj = contentBox[0]; + var e = obj.selectionEnd; + variable = maybeFormatInsertedContent(contentBox, variable, obj.selectionStart, e); + obj.value = obj.value.substr(0, obj.selectionStart) + variable + obj.value.substr(obj.selectionEnd, obj.value.length); + var _s = e + variable.length; + maybeRemoveLayoutClasses(obj, variable); + obj.focus(); + obj.setSelectionRange(_s, _s); + } + triggerChange(contentBox); + } + + /** + * When a layout class is added, remove any previous layout classes to avoid conflicts. + * We only expect one layout class to exist for a given field. + * For example, if a field has frm_half and we set it to frm_third, frm_half will be removed. + * + * @since 6.11 + * + * @param {HTMLElement} obj + * @param {string} variable + * @return {void} + */ + function maybeRemoveLayoutClasses(obj, variable) { + if (!obj.classList.contains('frm_classes') || !isALayoutClass(variable)) { + return; + } + var removeClasses = obj.value.split(' ').filter(isALayoutClass); + if (removeClasses.length) { + obj.value = maybeRemoveClasses(obj.value, removeClasses, variable.trim()); + } + } + + /** + * Check if a given class is a layout class. + * + * @since 6.11 + * + * @param {string} className + * @return {boolean} + */ + function isALayoutClass(className) { + var layoutClasses = ['frm_half', 'frm_third', 'frm_two_thirds', 'frm_fourth', 'frm_three_fourths', 'frm_fifth', 'frm_sixth', 'frm2', 'frm3', 'frm4', 'frm6', 'frm8', 'frm9', 'frm10', 'frm12']; + return layoutClasses.includes(className.trim()); + } + + /** + * @since 6.11 + * + * @param {string} beforeValue + * @param {Array} removeClasses + * @param {string} variable + * @return {string} + */ + function maybeRemoveClasses(beforeValue, removeClasses, variable) { + var currentClasses = beforeValue.split(' ').filter(function (currentClass) { + currentClass = currentClass.trim(); + return currentClass.length && !removeClasses.includes(currentClass); + }); + if (!currentClasses.includes(variable)) { + currentClasses.push(variable); + } + return currentClasses.join(' '); + } + function maybeFormatInsertedContent(input, textToInsert, selectionStart, selectionEnd) { + var separator = input.data('sep'); + if (undefined === separator) { + return textToInsert; + } + var value = input.val(); + if (!value.trim().length) { + return textToInsert; + } + var startPattern = new RegExp(separator + '\\s*$'); + var endPattern = new RegExp('^\\s*' + separator); + if (value.substr(0, selectionStart).trim().length && false === startPattern.test(value.substr(0, selectionStart))) { + textToInsert = separator + textToInsert; + } + if (value.substr(selectionEnd, value.length).trim().length && false === endPattern.test(value.substr(selectionEnd, value.length))) { + textToInsert += separator; + } + return textToInsert; + } + function resetLogicBuilder() { + /*jshint validthis:true */ + var id = document.getElementById('frm-id-condition'), + key = document.getElementById('frm-key-condition'); + if (this.value === 'id') { + id.classList.remove('frm_hidden'); + key.classList.add('frm_hidden'); + triggerEvent(key, 'change'); + } else { + id.classList.add('frm_hidden'); + key.classList.remove('frm_hidden'); + triggerEvent(id, 'change'); + } + } + function setLogicExample() { + var field, + code, + idKey = document.getElementById('frm-id-key-condition-id').checked ? 'frm-id-condition' : 'frm-key-condition', + is = document.getElementById('frm-is-condition').value, + text = document.getElementById('frm-text-condition').value, + result = document.getElementById('frm-insert-condition'); + idKey = document.getElementById(idKey); + field = idKey.options[idKey.selectedIndex].value; + code = 'if ' + field + ' ' + is + '="' + text + '"]'; + result.setAttribute('data-code', code + frmAdminJs.conditional_text + '[/if ' + field); + result.innerHTML = '[' + code + '[/if ' + field + ']'; + } + function maybeShowModal(input) { + var moreIcon; + if (input.parentNode.parentNode.classList.contains('frm_has_shortcodes')) { + hideShortcodes(); + moreIcon = getIconForInput(input); + if (moreIcon.tagName === 'use') { + moreIcon = moreIcon.firstElementChild; + if (moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href').indexOf('frm_close_icon') === -1) { + showShortcodeBox(moreIcon, 'nofocus'); + } + } else if (!moreIcon.classList.contains('frm_close_icon')) { + showShortcodeBox(moreIcon, 'nofocus'); + } + } + } + function showShortcodes(e) { + /*jshint validthis:true */ + e.preventDefault(); + e.stopPropagation(); + showShortcodeBox(this); + } + + /** + * Handles 'change' event on the document. + * + * @since 6.16.3 + * + * @param {Event} event + * @return {void} + */ + function handleBuilderChangeEvent(event) { + maybeShowSaveAndReloadModal(event.target); + } + + /** + * Shows 'Save and Reload' modal if the target field's type is changed. + * + * @since 6.16.3 + * + * @param {HTMLElement} target + * @return {void} + */ + function maybeShowSaveAndReloadModal(target) { + var _document$querySelect5; + if (!target.id.startsWith('field_options_type_')) { + return; + } + var idParts = target.id.split('_'); + var fieldId = idParts.length && idParts[idParts.length - 1]; + if ((_document$querySelect5 = document.querySelector("#frm-single-settings-".concat(fieldId))) !== null && _document$querySelect5 !== void 0 && _document$querySelect5.classList.contains("frm-type-".concat(target.value))) { + // Do not show modal if the field type is reverted back to the original type when builder is loaded. + return; + } + showSaveAndReloadModal(); + } + + /** + * Shows 'Save and Reload' modal with the given message. + * + * @since 6.16.3 + * + * @param {string} message + * @return {void} + */ + function showSaveAndReloadModal(message) { + if ('undefined' === typeof message) { + message = __('You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?', 'formidable'); + } + frmDom.modal.maybeCreateModal('frmSaveAndReloadModal', { + title: __('Save and Reload?', 'formidable'), + content: getModalContent(), + footer: getModalFooter() + }); + function getModalContent() { + var modalContent = div(message); + modalContent.style.padding = 'var(--gap-md)'; + return modalContent; + } + function getModalFooter() { + var continueButton = frmDom.modal.footerButton({ + text: __('Save and Reload', 'formidable'), + buttonType: 'primary' + }); + onClickPreventDefault(continueButton, function () { + saveAndReloadFormBuilder(); + }); + var cancelButton = frmDom.modal.footerButton({ + text: __('Cancel', 'formidable'), + buttonType: 'cancel' + }); + cancelButton.classList.add('dismiss'); + return frmDom.div({ + children: [cancelButton, continueButton] + }); + } + } + function updateShortcodesPopupPosition(target) { + var moreIcon; + if (target instanceof Event) { + var useElements = document.querySelectorAll('.frm-single-settings .frm-show-box.frmsvg use'); + var openTrigger = Array.from(useElements).find(function (use) { + return use.getAttribute('href') === '#frm_close_icon'; + }); + if ('undefined' === typeof openTrigger) { + return; + } + moreIcon = openTrigger.parentElement; + } else { + moreIcon = target; + } + var moreIconPosition = moreIcon.getBoundingClientRect(); + var shortCodesPopup = document.getElementById('frm_adv_info'); + var parentPos = shortCodesPopup.parentElement.getBoundingClientRect(); + shortCodesPopup.style.top = moreIconPosition.top - parentPos.top + 32 + 'px'; + shortCodesPopup.style.left = moreIconPosition.left - parentPos.left - 280 + 'px'; + } + function showShortcodeBox(moreIcon, shouldFocus) { + var input = getInputForIcon(moreIcon), + box = document.getElementById('frm_adv_info'), + classes = moreIcon.className; + if (moreIcon.tagName === 'svg') { + moreIcon = moreIcon.firstElementChild; + } + if (moreIcon.tagName === 'use') { + classes = moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href'); + if (null === classes) { + // If the deprecated xlink:href is not defined, check for href. + classes = moreIcon.getAttribute('href'); + } + } + if (classes.indexOf('frm_close_icon') !== -1) { + hideShortcodes(box); + } else { + updateShortcodesPopupPosition(moreIcon); + jQuery('.frm_code_list a').removeClass('frm_noallow'); + if (input.classList.contains('frm_not_email_to')) { + jQuery('#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a').addClass('frm_noallow'); + } else if (input.classList.contains('frm_not_email_subject')) { + jQuery('.frm_code_list li.hide_frm_not_email_subject a').addClass('frm_noallow'); + } + box.setAttribute('data-fills', input.id); + box.style.display = 'block'; + if (moreIcon.tagName === 'use') { + if (moreIcon.hasAttributeNS('http://www.w3.org/1999/xlink', 'href')) { + moreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); + } else { + var newMoreIcon = document.createElementNS('http://www.w3.org/2000/svg', 'use'); + newMoreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); + moreIcon.parentNode.replaceChild(newMoreIcon, moreIcon); + } + } else { + moreIcon.className = classes.replace('frm_more_horiz_solid_icon', 'frm_close_icon'); + } + if (shouldFocus !== 'nofocus') { + if ('none' !== input.style.display) { + input.focus(); + } else { + jQuery(tinymce.get(input.id)).trigger('focus'); + } + } + showOrHideContextualShortcodes(input); + } + } + + /** + * Returns true if a shortcode could be shown in the search result. + * + * @since 6.16.3 + * + * @param {HTMLElement} item + * @return {Boolean} + */ + function checkContextualShortcode(item) { + if (frmAdminJs.contextualShortcodes.length === 0) { + return true; + } + return !isContextualShortcode(item) || canShowContextualShortcode(item); + } + + /** + * Returns true if a shortcode is contextual to fields. + * + * @since 6.16.3 + * + * @param {HTMLElement} item + * @return {Boolean} + */ + function isContextualShortcode(item) { + var anchor = item.querySelector('a'); + if (!anchor) { + return false; + } + var shortcode = anchor.dataset.code; + return frmAdminJs.contextualShortcodes.address.includes(shortcode) || frmAdminJs.contextualShortcodes.body.includes(shortcode); + } + + /** + * @since 6.16.3 + * + * @param {HTMLElement} item + * @return {Boolean} + */ + function canShowContextualShortcode(item) { + var shortcode = item.querySelector('a').dataset.code; + var inputId = document.getElementById('frm_adv_info').dataset.fills; + var input = document.getElementById(inputId); + var contextualShortcodes = frmAdminJs.contextualShortcodes; + if (contextualShortcodes.address.includes(shortcode)) { + return input.matches(contextualShortcodes.addressSelector); + } + return input.matches(contextualShortcodes.bodySelector); + } + + /** + * @since 6.16.3 + * + * @param {HTMLElement} input + * @return {void} + */ + function showOrHideContextualShortcodes(input) { + ['address', 'body'].forEach(function (type) { + toggleContextualShortcodes(input, type); + }); + } + + /** + * @since 6.16.3 + * + * @param {HTMLElement} input + * @param {string} type + * + * @return {void} + */ + function toggleContextualShortcodes(input, type) { + var selector, contextualShortcodes; + selector = frmAdminJs.contextualShortcodes[type + 'Selector']; + contextualShortcodes = frmAdminJs.contextualShortcodes[type]; + var shouldShowShortcodes = input.matches(selector); + var _iterator = _createForOfIteratorHelper(contextualShortcodes), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _document$querySelect6; + var shortcode = _step.value; + var shortcodeLi = (_document$querySelect6 = document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="' + shortcode + '"]')) === null || _document$querySelect6 === void 0 ? void 0 : _document$querySelect6.closest('li'); + shortcodeLi === null || shortcodeLi === void 0 || shortcodeLi.classList.toggle('frm_hidden', !shouldShowShortcodes); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + + /** + * Returns shortcodes that are contextual to the current input field. + * + * @since 6.16.3 + * + * @return {Array} + */ + function getContextualShortcodes() { + var _document$getElementB4; + var contextualShortcodes = (_document$getElementB4 = document.getElementById('frm_adv_info')) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.dataset.contextualShortcodes; + if (!contextualShortcodes) { + return []; + } + contextualShortcodes = JSON.parse(contextualShortcodes); + contextualShortcodes.addressSelector = '[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]'; + contextualShortcodes.bodySelector = '[id^=email_message_]'; + return contextualShortcodes; + } + function fieldUpdated() { + if (!fieldsUpdated) { + fieldsUpdated = 1; + window.addEventListener('beforeunload', confirmExit); + } + } + function buildSubmittedNoAjax() { + // set fieldsUpdated to 0 to avoid the unsaved changes pop up + fieldsUpdated = 0; + } + function settingsSubmitted() { + // set fieldsUpdated to 0 to avoid the unsaved changes pop up + fieldsUpdated = 0; + } + function saveAndReloadSettings() { + var page, form; + page = document.getElementById('form_settings_page'); + if (null !== page) { + form = page.querySelector('form.frm_form_settings'); + if (null !== form) { + fieldsUpdated = 0; + form.submit(); + } + } + } + function reloadIfAddonActivatedAjaxSubmitOnly() { + var submitButton = document.getElementById('frm_submit_side_top'); + if (submitButton.hasAttribute('data-new-addon-installed') && 'true' === submitButton.getAttribute('data-new-addon-installed')) { + submitButton.removeAttribute('data-new-addon-installed'); + window.location.reload(); + } + } + function saveAndReloadFormBuilder() { + var submitButton = document.getElementById('frm_submit_side_top'); + if (submitButton.classList.contains('frm_submit_ajax')) { + submitButton.setAttribute('data-new-addon-installed', true); + } + submitButton.click(); + } + function confirmExit(event) { + if (fieldsUpdated) { + event.preventDefault(); + event.returnValue = ''; + } + } + function bindClickForDialogClose($modal) { + var closeModal = function closeModal() { + $modal.dialog('close'); + }; + jQuery('.ui-widget-overlay').on('click', closeModal); + $modal.on('click', 'a.dismiss', closeModal); + } + function offsetModalY($modal, amount) { + var position = { + my: 'top', + at: 'top+' + amount, + of: window + }; + $modal.dialog('option', 'position', position); + } + + /** + * Get the input box for the selected icon or calculation field. + * + * @param {Element} moreIcon The icon element + * @return {Element} The associated input or textarea + */ + function getInputForIcon(moreIcon) { + if (moreIcon.classList.contains('frm-input-icon')) { + return moreIcon.previousElementSibling; + } + + // For regular fields + var input = moreIcon.nextElementSibling; + while (input !== null && (input.tagName !== 'INPUT' && input.tagName !== 'TEXTAREA' || input.classList.contains('frm-token-input-field'))) { + input = getInputForIcon(input); + } + + // For calculation fields + if (!input) { + var _moreIcon$closest; + input = (_moreIcon$closest = moreIcon.closest('.frm-field-formula')) === null || _moreIcon$closest === void 0 ? void 0 : _moreIcon$closest.querySelector('.frm-calc-field'); + } + return input; + } + + /** + * Get the ... icon for the selected input box. + */ + function getIconForInput(input) { + var _input$nextElementSib; + if ((_input$nextElementSib = input.nextElementSibling) !== null && _input$nextElementSib !== void 0 && _input$nextElementSib.classList.contains('frm-input-icon')) { + return input.nextElementSibling; + } + var moreIcon = input.previousElementSibling; + while (moreIcon !== null && moreIcon.tagName !== 'I' && moreIcon.tagName !== 'svg') { + moreIcon = getIconForInput(moreIcon); + } + return moreIcon; + } + function hideShortcodes(box) { + var i, u, closeIcons, closeSvg; + if (typeof box === 'undefined') { + box = document.getElementById('frm_adv_info'); + if (box === null) { + return; + } + } + if (document.getElementById('frm_dyncontent') !== null) { + // Don't run when in the sidebar. + return; + } + box.style.display = 'none'; + closeIcons = document.querySelectorAll('.frm-show-box.frm_close_icon'); + for (i = 0; i < closeIcons.length; i++) { + closeIcons[i].classList.remove('frm_close_icon'); + closeIcons[i].classList.add('frm_more_horiz_solid_icon'); + } + closeSvg = document.querySelectorAll('.frm_has_shortcodes use'); + for (u = 0; u < closeSvg.length; u++) { + if (closeSvg[u].getAttributeNS('http://www.w3.org/1999/xlink', 'href') === '#frm_close_icon') { + if (closeSvg[u].closest('.frm_remove_field')) { + // Don't change the icon for the email fields remove button. + continue; + } + closeSvg[u].setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_more_horiz_solid_icon'); + } + } + } + function toggleAllowedHTML(input) { + var b, + id = input.id; + if (typeof id === 'undefined' || id.indexOf('-search-input') !== -1) { + return; + } + jQuery('#frm-adv-info-tab').attr('data-fills', id.trim()); + if (input.classList.contains('field_custom_html')) { + id = 'field_custom_html'; + } + b = ['after_html', 'before_html', 'submit_html', 'field_custom_html']; + if (jQuery.inArray(id, b) >= 0) { + jQuery('.frm_code_list li:not(.show_' + id + ')').addClass('frm_hidden'); + jQuery('.frm_code_list li.show_' + id).removeClass('frm_hidden'); + } + } + function toggleKeyID(switchTo, e) { + e.stopPropagation(); + jQuery('.frm_code_list .frmids, .frm_code_list .frmkeys').addClass('frm_hidden'); + jQuery('.frm_code_list .' + switchTo).removeClass('frm_hidden'); + jQuery('.frmids, .frmkeys').removeClass('current'); + jQuery('.' + switchTo).addClass('current'); + } + function onActionLoaded(event) { + var settings = event.target.closest('.frm_form_action_settings'); + if (settings && (settings.classList.contains('frm_single_email_settings') || settings.classList.contains('frm_single_on_submit_settings'))) { + initWysiwygOnActionLoaded(settings); + } + } + function initWysiwygOnActionLoaded(settings) { + settings.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { + frmDom.wysiwyg.init(wysiwyg, { + height: 160, + addFocusEvents: true + }); + }); + } + + /* Global settings page */ + function loadSettingsTab(anchor) { + var holder = anchor.replace('#', ''); + var holderContainer = jQuery('.frm_' + holder + '_ajax'); + if (holderContainer.length) { + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: 'frm_settings_tab', + tab: holder.replace('_settings', ''), + nonce: frmGlobal.nonce + }, + success: function success(html) { + holderContainer.replaceWith(html); + } + }); + } + } + function uninstallNow() { + /*jshint validthis:true */ + if (confirmLinkClick(this) === true) { + jQuery('.frm_uninstall .frm-wait').css('visibility', 'visible'); + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: 'action=frm_uninstall&nonce=' + frmGlobal.nonce, + success: function success(msg) { + jQuery('.frm_uninstall').fadeOut('slow'); + window.location = msg; + } + }); + } + return false; + } + function saveAddonLicense() { + /*jshint validthis:true */ + var button = jQuery(this); + var buttonName = this.name; + var pluginSlug = this.getAttribute('data-plugin'); + var action = buttonName.replace('edd_' + pluginSlug + '_license_', ''); + var license = document.getElementById('edd_' + pluginSlug + '_license_key').value; + button.get(0).disabled = true; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + dataType: 'json', + data: { + action: 'frm_addon_' + action, + license: license, + plugin: pluginSlug, + nonce: frmGlobal.nonce + }, + success: function success(msg) { + button.get(0).disabled = false; + var thisRow = button.closest('.edd_frm_license_row'); + if (action === 'deactivate') { + license = ''; + document.getElementById('edd_' + pluginSlug + '_license_key').value = ''; + } + thisRow.find('.edd_frm_license').html(license); + var eddWrapper = button.get(0).closest('.frm_form_field'); + var actionIsSuccess = msg.success === true; + eddWrapper.querySelector(".frm_icon_font.frm_action_success").classList.toggle('frm_hidden', !actionIsSuccess || action === 'deactivate'); + eddWrapper.querySelector(".frm_icon_font.frm_action_error").classList.toggle('frm_hidden', actionIsSuccess); + var messageBox = thisRow.find('.frm_license_msg'); + messageBox.html(msg.message); + if (msg.message !== '') { + setTimeout(function () { + messageBox.html(''); + thisRow.find('.frm_icon_font').addClass('frm_hidden'); + if (actionIsSuccess) { + var actionIsActivate = action === 'activate'; + thisRow.get(0).querySelector('.edd_frm_unauthorized').classList.toggle('frm_hidden', actionIsActivate); + thisRow.get(0).querySelector('.edd_frm_authorized').classList.toggle('frm_hidden', !actionIsActivate); + } + }, 2000); + } + } + }); + } + + /* Import/Export page */ + + function startFormMigration(event) { + event.preventDefault(); + var checkedBoxes = jQuery(event.target).find('input:checked'); + if (!checkedBoxes.length) { + return; + } + var ids = []; + checkedBoxes.each(function (i) { + ids[i] = this.value; + }); + + // Begin the import process. + importForms(ids, event.target); + } + + /** + * Begins the process of importing the forms. + */ + function importForms(forms, targetForm) { + // Hide the form select section. + var $form = jQuery(targetForm), + $processSettings = $form.next('.frm-importer-process'); + + // Display total number of forms we have to import. + $processSettings.find('.form-total').text(forms.length); + $processSettings.find('.form-current').text('1'); + $form.hide(); + + // Show processing status. + // '.process-completed' might have been shown earlier during a previous import, so hide now. + $processSettings.find('.process-completed').hide(); + $processSettings.show(); + + // Create global import queue. + s.importQueue = forms; + s.imported = 0; + + // Import the first form in the queue. + importForm($processSettings); + } + + /** + * Imports a single form from the import queue. + */ + function importForm($processSettings) { + var formID = s.importQueue[0], + provider = jQuery('#welcome-panel').find('input[name="slug"]').val(), + data = { + action: 'frm_import_' + provider, + form_id: formID, + nonce: frmGlobal.nonce + }; + + // Trigger AJAX import for this form. + jQuery.post(ajaxurl, data, function (res) { + if (res.success) { + var statusUpdate; + if (res.data.error) { + statusUpdate = '

                              ' + res.data.name + ': ' + res.data.msg + '

                              '; + } else { + statusUpdate = '

                              Imported ' + res.data.name + '

                              '; + } + $processSettings.find('.status').prepend(statusUpdate); + $processSettings.find('.status').show(); + + // Remove this form ID from the queue. + s.importQueue = jQuery.grep(s.importQueue, function (value) { + return value != formID; + }); + s.imported++; + if (s.importQueue.length === 0) { + $processSettings.find('.process-count').hide(); + $processSettings.find('.forms-completed').text(s.imported); + $processSettings.find('.process-completed').show(); + } else { + // Import next form in the queue. + $processSettings.find('.form-current').text(s.imported + 1); + importForm($processSettings); + } + } + }); + } + function validateExport(e) { + /*jshint validthis:true */ + e.preventDefault(); + var s = false; + var $exportForms = jQuery('input[name="frm_export_forms[]"]'); + if (!jQuery('input[name="frm_export_forms[]"]:checked').val()) { + $exportForms.closest('.frm-table-box').addClass('frm_blank_field'); + s = 'stop'; + } + var $exportType = jQuery('input[name="type[]"]'); + if (!jQuery('input[name="type[]"]:checked').val() && $exportType.attr('type') === 'checkbox') { + $exportType.closest('p').addClass('frm_blank_field'); + s = 'stop'; + } + if (s === 'stop') { + return false; + } + e.stopPropagation(); + this.submit(); + } + function removeExportError() { + /*jshint validthis:true */ + var t = jQuery(this).closest('.frm_blank_field'); + if (typeof t === 'undefined') { + return; + } + var $thisName = this.name; + if ($thisName === 'type[]' && jQuery('input[name="type[]"]:checked').val()) { + t.removeClass('frm_blank_field'); + } else if ($thisName === 'frm_export_forms[]' && jQuery(this).val()) { + t.removeClass('frm_blank_field'); + } + } + function checkCSVExtension() { + /*jshint validthis:true */ + var f = jQuery(this).val(); + var re = /\.csv$/i; + if (f.match(re) !== null) { + jQuery('.show_csv').fadeIn(); + } else { + jQuery('.show_csv').fadeOut(); + } + } + function getExportOption() { + var exportFormatSelect = document.querySelector('select[name="format"]'); + if (exportFormatSelect) { + return exportFormatSelect.value; + } + return ''; + } + function exportTypeChanged(event) { + var value = event.target.value; + showOrHideRepeaters(value); + checkExportTypes.call(event.target); + checkSelectedAllFormsCheckbox(value); + } + function checkSelectedAllFormsCheckbox(exportType) { + var selectAllCheckbox = document.getElementById('frm-export-select-all'); + if (exportType === 'csv') { + selectAllCheckbox.checked = false; + selectAllCheckbox.disabled = true; + } else { + selectAllCheckbox.disabled = false; + } + } + function checkExportTypes() { + /*jshint validthis:true */ + var $dropdown = jQuery(this); + var $selected = $dropdown.find(':selected'); + var s = $selected.data('support'); + var multiple = s.indexOf('|'); + jQuery('input[name="type[]"]').each(function () { + this.checked = false; + if (s.indexOf(this.value) >= 0) { + this.disabled = false; + if (multiple === -1) { + this.checked = true; + } + } else { + this.disabled = true; + } + }); + if ($dropdown.val() === 'csv') { + jQuery('.csv_opts').show(); + jQuery('.xml_opts').hide(); + } else { + jQuery('.csv_opts').hide(); + jQuery('.xml_opts').show(); + } + var c = $selected.data('count'); + var exportField = jQuery('input[name="frm_export_forms[]"]'); + if (c === 'single') { + exportField.prop('multiple', false); + exportField.prop('checked', false); + } else { + exportField.prop('multiple', true); + exportField.prop('disabled', false); + } + $dropdown.trigger('change'); + } + function showOrHideRepeaters(exportOption) { + if (exportOption === '') { + return; + } + var repeaters = document.querySelectorAll('.frm-is-repeater'); + if (!repeaters.length) { + return; + } + if (exportOption === 'csv') { + repeaters.forEach(function (form) { + form.classList.remove('frm_hidden'); + }); + } else { + repeaters.forEach(function (form) { + form.classList.add('frm_hidden'); + }); + } + searchContent.call(document.querySelector('.frm-auto-search')); + } + function preventMultipleExport() { + var type = jQuery('select[name=format]'), + selected = type.find(':selected'), + count = selected.data('count'), + exportField = jQuery('input[name="frm_export_forms[]"]'); + if (count === 'single') { + // Disable all other fields to prevent multiple selections. + if (this.checked) { + exportField.prop('disabled', true); + this.removeAttribute('disabled'); + } else { + exportField.prop('disabled', false); + } + } else { + exportField.prop('disabled', false); + } + } + function initiateMultiselect() { + jQuery('.frm_multiselect').hide().each(frmDom.bootstrap.multiselect.init); + } + + /* Addons page */ + function installMultipleAddons(e) { + e.preventDefault(); + toggleAddonState(this, 'frm_multiple_addons'); + } + function activateAddon(e) { + e.preventDefault(); + toggleAddonState(this, 'frm_activate_addon'); + } + function installAddon(e) { + e.preventDefault(); + toggleAddonState(this, 'frm_install_addon'); + } + function toggleAddonState(clicked, action) { + var button, plugin, el, message; + + // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated. + jQuery('.frm-addon-error').remove(); + button = jQuery(clicked); + plugin = button.attr('rel'); + el = button.parent(); + message = el.parent().find('.addon-status-label'); + button.addClass('frm_loading_button'); + + // Process the Ajax to perform the activation. + jQuery.ajax({ + url: ajaxurl, + type: 'POST', + async: true, + cache: false, + dataType: 'json', + data: { + action: action, + nonce: frmGlobal.nonce, + plugin: plugin + }, + success: function success(response) { + var _response$data, _response; + response = (_response$data = (_response = response) === null || _response === void 0 ? void 0 : _response.data) !== null && _response$data !== void 0 ? _response$data : response; + var saveAndReload; + if ('string' !== typeof response && 'string' === typeof response.message) { + if ('undefined' !== typeof response.saveAndReload) { + saveAndReload = response.saveAndReload; + } + response = response.message; + } + var error = extractErrorFromAddOnResponse(response); + if (error) { + addonError(error, el, button); + return; + } + afterAddonInstall(response, button, message, el, saveAndReload, action); + + /** + * Trigger an action after successfully toggling the addon state. + * + * @param {Object} response + */ + wp.hooks.doAction('frm_update_addon_state', response); + }, + error: function error() { + button.removeClass('frm_loading_button'); + } + }); + } + function installAddonWithCreds(e) { + // Prevent the default action, let the user know we are attempting to install again and go with it. + e.preventDefault(); + + // Now let's make another Ajax request once the user has submitted their credentials. + var proceed = jQuery(this); + var el = proceed.parent().parent(); + var plugin = proceed.attr('rel'); + proceed.addClass('frm_loading_button'); + jQuery.ajax({ + url: ajaxurl, + type: 'POST', + async: true, + cache: false, + dataType: 'json', + data: { + action: 'frm_install_addon', + nonce: frmAdminJs.nonce, + plugin: plugin, + hostname: el.find('#hostname').val(), + username: el.find('#username').val(), + password: el.find('#password').val() + }, + success: function success(response) { + var _response$data2, _response2; + response = (_response$data2 = (_response2 = response) === null || _response2 === void 0 ? void 0 : _response2.data) !== null && _response$data2 !== void 0 ? _response$data2 : response; + var error = extractErrorFromAddOnResponse(response); + if (error) { + addonError(error, el, proceed); + return; + } + afterAddonInstall(response, proceed, message, el); + }, + error: function error() { + proceed.removeClass('frm_loading_button'); + } + }); + } + function afterAddonInstall(response, button, message, el, saveAndReload) { + var action = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'frm_activate_addon'; + var addonStatuses = document.querySelectorAll('.frm-addon-status'); + addonStatuses.forEach(function (addonStatus) { + addonStatus.textContent = response; + addonStatus.style.display = 'block'; + }); + + // The Ajax request was successful, so let's update the output. + button.css({ + opacity: '0' + }); + document.querySelectorAll('.frm-oneclick').forEach(function (oneClick) { + oneClick.style.display = 'none'; + }); + jQuery('#frm_upgrade_modal h2').hide(); + jQuery('#frm_upgrade_modal .frm_lock_icon').addClass('frm_lock_open_icon'); + jQuery('#frm_upgrade_modal .frm_lock_icon use').attr('xlink:href', '#frm_lock_open_icon'); + + // Proceed with CSS changes + var actionMap = { + frm_activate_addon: { + class: 'frm-addon-active', + message: frmAdminJs.active + }, + frm_deactivate_addon: { + class: 'frm-addon-installed', + message: frmAdminJs.installed + }, + frm_uninstall_addon: { + class: 'frm-addon-not-installed', + message: frmAdminJs.not_installed + } + }; + actionMap.frm_install_addon = actionMap.frm_activate_addon; + var messageElement = message[0]; + if (messageElement) { + messageElement.textContent = actionMap[action].message; + } + var parentElement = el[0].parentElement; + parentElement.classList.remove('frm-addon-not-installed', 'frm-addon-installed', 'frm-addon-active'); + parentElement.classList.add(actionMap[action].class); + var buttonElement = button[0]; + buttonElement.classList.remove('frm_loading_button'); + + // Maybe refresh import and SMTP pages + var refreshPage = document.querySelectorAll('.frm-admin-page-import, #frm-admin-smtp, #frm-welcome'); + if (refreshPage.length > 0) { + window.location.reload(); + return; + } + if (['settings', 'form_builder'].includes(saveAndReload)) { + addonStatuses.forEach(function (addonStatus) { + var inModal = null !== addonStatus.closest('#frm_upgrade_modal'); + addonStatus.appendChild(getSaveAndReloadSettingsOptions(saveAndReload, inModal)); + }); + } + } + function getSaveAndReloadSettingsOptions(saveAndReload, inModal) { + var className = 'frm-save-and-reload-options'; + var children = [saveAndReloadSettingsButton(saveAndReload)]; + if (inModal) { + children.push(closePopupButton()); + } + return div({ + className: className, + children: children + }); + } + function saveAndReloadSettingsButton(saveAndReload) { + var button = document.createElement('button'); + button.classList.add('frm-save-and-reload', 'button', 'button-primary', 'frm-button-primary'); + button.textContent = __('Save and Reload', 'formidable'); + button.addEventListener('click', function () { + if (saveAndReload === 'form_builder') { + saveAndReloadFormBuilder(); + } else if (saveAndReload === 'settings') { + saveAndReloadSettings(); + } + }); + return button; + } + function closePopupButton() { + var a = document.createElement('a'); + a.setAttribute('href', '#'); + a.classList.add('button', 'button-secondary', 'frm-button-secondary', 'dismiss'); + a.textContent = __('Close', 'formidable'); + return a; + } + function extractErrorFromAddOnResponse(response) { + if (typeof response !== 'string') { + if (typeof response.success !== 'undefined' && response.success) { + return false; + } + if (response.form) { + if (jQuery(response.form).is('#message')) { + return { + message: jQuery(response.form).find('p').html() + }; + } + } + return response; + } + return false; + } + function addonError(response, el, button) { + if (response.form) { + jQuery('.frm-inline-error').remove(); + button.closest('.frm-card').html(response.form).css({ + padding: 5 + }).find('#upgrade').attr('rel', button.attr('rel')).on('click', installAddonWithCreds); + } else { + el.append('

                              ' + response.message + '

                              '); + button.removeClass('frm_loading_button'); + jQuery('.frm-addon-error').delay(4000).fadeOut(); + } + } + + /* Templates */ + function showActiveCampaignForm() { + loadApiEmailForm(); + } + function handleApiFormError(inputId, errorId, type, message) { + var $error = jQuery(errorId); + $error.removeClass('frm_hidden').attr('frm-error', type); + if (typeof message !== 'undefined') { + $error.find('span[frm-error="' + type + '"]').text(message); + } + jQuery(inputId).one('keyup', function () { + $error.addClass('frm_hidden'); + }); + } + function handleEmailAddressError(type) { + handleApiFormError('#frm_leave_email', '#frm_leave_email_error', type); + } + function loadApiEmailForm() { + var formContainer = document.getElementById('frmapi-email-form'); + jQuery.ajax({ + dataType: 'json', + url: formContainer.getAttribute('data-url'), + success: function success(json) { + var form = json.renderedHtml; + form = form.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi, ''); + formContainer.innerHTML = form; + } + }); + } + function initAutocomplete(container) { + frmDom.autocomplete.initSelectionAutocomplete(container); + } + function nextInstallStep(thisStep) { + thisStep.classList.add('frm_grey'); + thisStep.nextElementSibling.classList.remove('frm_grey'); + } + function installTemplateFieldset(e) { + /*jshint validthis:true */ + var fieldset = this.parentNode.parentNode, + action = fieldset.elements.type.value, + button = this; + e.preventDefault(); + button.classList.add('frm_loading_button'); + installNewForm(fieldset, action, button); + } + function installTemplate(e) { + /*jshint validthis:true */ + var action = this.elements.type.value, + button = this.querySelector('button'); + e.preventDefault(); + button.classList.add('frm_loading_button'); + installNewForm(this, action, button); + } + function installNewForm(form, action, button) { + var formData = formToData(form); + var formName = formData.template_name; + var formDesc = formData.template_desc; + var link = form.elements.link.value; + var data = { + action: action, + xml: link, + name: formName, + desc: formDesc, + form: JSON.stringify(formData), + nonce: frmGlobal.nonce + }; + var hookName = 'frm_before_install_new_form'; + var filterArgs = { + formData: formData + }; + data = wp.hooks.applyFilters(hookName, data, filterArgs); + postAjax(data, function (response) { + if (typeof response.redirect !== 'undefined') { + var redirect = response.redirect; + if (typeof form.elements.redirect === 'undefined') { + window.location = redirect; + } else { + var href = document.getElementById('frm-redirect-link'); + if (typeof link !== 'undefined' && href !== null) { + // Show the next installation step. + href.setAttribute('href', redirect); + href.classList.remove('frm_grey', 'disabled'); + nextInstallStep(form.parentNode.parentNode); + button.classList.add('frm_grey', 'disabled'); + } + } + } else { + jQuery('.spinner').css('visibility', 'hidden'); + + // Show response.message + if ('string' === typeof response.message) { + showInstallFormErrorModal(response.message); + } + } + button.classList.remove('frm_loading_button'); + }); + } + function showInstallFormErrorModal(message) { + var modalContent = div(message); + modalContent.style.padding = '20px 40px'; + var modal = frmDom.modal.maybeCreateModal('frmInstallFormErrorModal', { + title: __('Unable to install template', 'formidable'), + content: modalContent + }); + modal.classList.add('frm_common_modal'); + } + function handleCaptchaTypeChange(e) { + var thresholdContainer = document.getElementById('frm_captcha_threshold_container'); + if (thresholdContainer) { + thresholdContainer.classList.toggle('frm_hidden', 'v3' !== e.target.value); + } + } + function trashTemplate(e) { + /*jshint validthis:true */ + var id = this.getAttribute('data-id'); + e.preventDefault(); + data = { + action: 'frm_forms_trash', + id: id, + nonce: frmGlobal.nonce + }; + postAjax(data, function () { + var card = document.getElementById('frm-template-custom-' + id); + fadeOut(card, function () { + card.parentNode.removeChild(card); + }); + }); + } + function searchContent() { + /*jshint validthis:true */ + var i, + regEx = false, + searchText = this.value.toLowerCase(), + toSearch = this.getAttribute('data-tosearch'), + items = document.getElementsByClassName(toSearch); + if (this.tagName === 'SELECT') { + searchText = selectedOptions(this); + searchText = searchText.join('|').toLowerCase(); + regEx = true; + } + if (toSearch === 'frm-action' && searchText !== '') { + var addons = document.getElementById('frm_email_addon_menu').classList; + addons.remove('frm-all-actions'); + addons.add('frm-limited-actions'); + } + for (i = 0; i < items.length; i++) { + var innerText = items[i].innerText.toLowerCase(); + var itemCanBeShown = !(getExportOption() === 'xml' && items[i].classList.contains('frm-is-repeater')); + if (searchText === '') { + if (itemCanBeShown && checkContextualShortcode(items[i])) { + items[i].classList.remove('frm_hidden'); + } + items[i].classList.remove('frm-search-result'); + } else if (regEx && new RegExp(searchText).test(innerText) || innerText.indexOf(searchText) >= 0 || textMatchesPlural(innerText, searchText)) { + if (itemCanBeShown && checkContextualShortcode(items[i])) { + items[i].classList.remove('frm_hidden'); + } + items[i].classList.add('frm-search-result'); + } else { + items[i].classList.add('frm_hidden'); + items[i].classList.remove('frm-search-result'); + } + } + + // Updates the visibility of category headings based on search results. + updateCatHeadingVisibility(); + jQuery(this).trigger('frmAfterSearch'); + } + + /** + * Allow a search for "signatures" to still match "signature" for example when searching fields. + * + * @since 6.15 + * + * @param {string} text The text in the element we are checking for a match. + * @param {string} searchText The text value that is being searched. + * @return {boolean} + */ + function textMatchesPlural(text, searchText) { + if (searchText === 's') { + // Don't match everything when just "s" is searched. + return false; + } + if (text[text.length - 1] === 's') { + // Do not match something with double s if the text already ends in s. + return false; + } + return (text + 's').indexOf(searchText) >= 0; + } + + /** + * Updates the visibility of category headings based on search results. + * If all associated fields are hidden (indicating no search matches), + * the heading is hidden. + * + * @since 6.4.1 + */ + function updateCatHeadingVisibility() { + var insertFieldsElement = document.querySelector('#frm-insert-fields'); + if (!insertFieldsElement) { + return; + } + var headingElements = insertFieldsElement.querySelectorAll(':scope > .frm-with-line'); + headingElements.forEach(function (heading) { + var fieldsListElement = heading.nextElementSibling; + if (!fieldsListElement) { + return; + } + var listItemElements = fieldsListElement.querySelectorAll(':scope > li.frmbutton'); + var allHidden = Array.from(listItemElements).every(function (li) { + return li.classList.contains('frm_hidden'); + }); + + // Add or remove class based on `allHidden` condition + heading.classList.toggle('frm_hidden', allHidden); + }); + } + function stopPropagation(e) { + e.stopPropagation(); + } + + /* Helpers */ + + function selectedOptions(select) { + var opt, + result = [], + options = select && select.options; + for (var _i13 = 0, iLen = options.length; _i13 < iLen; _i13++) { + opt = options[_i13]; + if (opt.selected) { + result.push(opt.value); + } + } + return result; + } + function triggerEvent(element, event) { + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(event, false, true); + element.dispatchEvent(evt); + } + function postAjax(data, success) { + var response; + var xmlHttp = new XMLHttpRequest(); + var params = typeof data === 'string' ? data : Object.keys(data).map(function (k) { + return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]); + }).join('&'); + xmlHttp.open('post', ajaxurl, true); + xmlHttp.onreadystatechange = function () { + if (xmlHttp.readyState > 3 && xmlHttp.status == 200) { + response = xmlHttp.responseText; + try { + response = JSON.parse(response); + } catch (e) { + // The response may not be JSON, so just return it. + } + success(response); + } + }; + xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xmlHttp.send(params); + return xmlHttp; + } + function fadeOut(element, success) { + element.classList.add('frm-fade'); + setTimeout(success, 1000); + } + function invisible(classes) { + jQuery(classes).css('visibility', 'hidden'); + } + function visible(classes) { + jQuery(classes).css('visibility', 'visible'); + } + function initModal(id, width) { + var $info = jQuery(id); + if (!$info.length) { + return false; + } + if (typeof width === 'undefined') { + width = '550px'; + } + var dialogArgs = { + dialogClass: 'frm-dialog', + modal: true, + autoOpen: false, + closeOnEscape: true, + width: width, + resizable: false, + draggable: false, + open: function open() { + jQuery('.ui-dialog-titlebar').addClass('frm_hidden').removeClass('ui-helper-clearfix'); + jQuery('#wpwrap').addClass('frm_overlay'); + jQuery('.frm-dialog').removeClass('ui-widget ui-widget-content ui-corner-all'); + $info.removeClass('ui-dialog-content ui-widget-content'); + bindClickForDialogClose($info); + }, + close: function close() { + jQuery('#wpwrap').removeClass('frm_overlay'); + jQuery('.spinner').css('visibility', 'hidden'); + this.removeAttribute('data-option-type'); + var optionType = document.getElementById('bulk-option-type'); + if (optionType) { + optionType.value = ''; + } + } + }; + $info.dialog(dialogArgs); + return $info; + } + function toggle(cname, id) { + if (id === '#') { + var cont = document.getElementById(cname); + var hidden = cont.style.display; + if (hidden === 'none') { + cont.style.display = 'block'; + } else { + cont.style.display = 'none'; + } + } else { + var vis = cname.is(':visible'); + if (vis) { + cname.hide(); + } else { + cname.show(); + } + } + } + function removeWPUnload() { + window.onbeforeunload = null; + var w = jQuery(window); + w.off('beforeunload.widgets'); + w.off('beforeunload.edit-post'); + } + function addMultiselectLabelListener() { + var clickListener = function clickListener(e) { + if ('LABEL' !== e.target.nodeName) { + return; + } + var labelFor = e.target.getAttribute('for'); + if (!labelFor) { + return; + } + var input = document.getElementById(labelFor); + if (!input || !input.nextElementSibling) { + return; + } + var buttonToggle = input.nextElementSibling.querySelector('button.dropdown-toggle.multiselect'); + if (!buttonToggle) { + return; + } + var triggerMultiselectClick = function triggerMultiselectClick() { + return buttonToggle.click(); + }; + setTimeout(triggerMultiselectClick, 0); + }; + document.addEventListener('click', clickListener); + } + function maybeChangeEmbedFormMsg() { + var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); + var fieldItem = document.getElementById('frm_field_id_' + fieldId); + if (null === fieldItem || 'form' !== fieldItem.dataset.type) { + return; + } + fieldItem = jQuery(fieldItem); + if (this.options[this.selectedIndex].value) { + fieldItem.find('.frm-not-set')[0].classList.add('frm_hidden'); + var embedMsg = fieldItem.find('.frm-embed-message'); + embedMsg.html(embedMsg.data('embedmsg') + this.options[this.selectedIndex].text); + fieldItem.find('.frm-embed-field-placeholder')[0].classList.remove('frm_hidden'); + } else { + fieldItem.find('.frm-not-set')[0].classList.remove('frm_hidden'); + fieldItem.find('.frm-embed-field-placeholder')[0].classList.add('frm_hidden'); + } + } + function toggleProductType() { + var settings = jQuery(this).closest('.frm-single-settings'), + container = settings.find('.frmjs_product_choices'), + heading = settings.find('.frm_prod_options_heading'), + currentVal = this.options[this.selectedIndex].value; + container.removeClass('frm_prod_type_single frm_prod_type_user_def'); + heading.removeClass('frm_prod_user_def'); + if ('single' === currentVal) { + container.addClass('frm_prod_type_single'); + } else if ('user_def' === currentVal) { + container.addClass('frm_prod_type_user_def'); + heading.addClass('frm_prod_user_def'); + } + } + + /** + * @param {Number | string} fieldId + * @return {boolean} True if the field is a product field. + */ + function isProductField(fieldId) { + var field = document.getElementById('frm_field_id_' + fieldId); + if (field === null) { + return false; + } + return 'product' === field.getAttribute('data-type'); + } + + /** + * Serialize form data with vanilla JS. + */ + function formToData(form) { + var subKey, + i, + object = {}, + formData = form.elements; + for (i = 0; i < formData.length; i++) { + var input = formData[i], + key = input.name, + value = input.value, + names = key.match(/(.*)\[(.*)\]/); + if ((input.type === 'radio' || input.type === 'checkbox') && !input.checked) { + continue; + } + if (names !== null) { + key = names[1]; + subKey = names[2]; + if (!Reflect.has(object, key)) { + object[key] = {}; + } + object[key][subKey] = value; + continue; + } + + // Reflect.has in favor of: object.hasOwnProperty(key) + if (!Reflect.has(object, key)) { + object[key] = value; + continue; + } + if (!Array.isArray(object[key])) { + object[key] = [object[key]]; + } + object[key].push(value); + } + return object; + } + + /** + * Show, hide, and sort subfields of Name field on form builder. + * + * @since 4.11 + */ + function handleNameFieldOnFormBuilder() { + /** + * Gets subfield element from cache. + * + * @param {string} fieldId Field ID. + * @param {string} key Cache key. + * @return {HTMLElement|undefined} Return the element from cache or undefined if not found. + */ + var getSubFieldElFromCache = function getSubFieldElFromCache(fieldId, key) { + window.frmCachedSubFields = window.frmCachedSubFields || {}; + window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; + return window.frmCachedSubFields[fieldId][key]; + }; + + /** + * Sets subfield element to cache. + * + * @param {string} fieldId Field ID. + * @param {string} key Cache key. + * @param {HTMLElement} el Element. + */ + var setSubFieldElToCache = function setSubFieldElToCache(fieldId, key, el) { + window.frmCachedSubFields = window.frmCachedSubFields || {}; + window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; + window.frmCachedSubFields[fieldId][key] = el; + }; + + /** + * Gets column class from the number of columns. + * + * @param {Number} colCount Number of columns. + * @return {string} + */ + var getColClass = function getColClass(colCount) { + return 'frm' + parseInt(12 / colCount); + }; + var colClasses = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(function (num) { + return 'frm' + num; + }); + var allSubFieldNames = ['first', 'middle', 'last']; + + /** + * Handles name layout change. + * + * @param {Event} event Event object. + */ + var onChangeLayout = function onChangeLayout(event) { + var value = event.target.value; + var subFieldNames = value.split('_'); + var fieldId = event.target.dataset.fieldId; + + /* + * Live update form on the form builder. + */ + var container = document.querySelector('#field_' + fieldId + '_inner_container .frm_combo_inputs_container'); + var newColClass = getColClass(subFieldNames.length); + + // Set all sub field elements to cache and hide all of them first. + allSubFieldNames.forEach(function (name) { + var subFieldEl = container.querySelector('[data-sub-field-name="' + name + '"]'); + if (subFieldEl) { + var _subFieldEl$classList; + subFieldEl.classList.add('frm_hidden'); + (_subFieldEl$classList = subFieldEl.classList).remove.apply(_subFieldEl$classList, _toConsumableArray(colClasses)); + setSubFieldElToCache(fieldId, name, subFieldEl); + } + }); + subFieldNames.forEach(function (subFieldName) { + var subFieldEl = getSubFieldElFromCache(fieldId, subFieldName); + if (!subFieldEl) { + return; + } + subFieldEl.classList.remove('frm_hidden'); + subFieldEl.classList.add(newColClass); + container.append(subFieldEl); + }); + + /* + * Live update subfield options. + */ + // Hide all subfield options. + allSubFieldNames.forEach(function (name) { + var optionsEl = document.querySelector('.frm_sub_field_options-' + name + '[data-field-id="' + fieldId + '"]'); + if (optionsEl) { + optionsEl.classList.add('frm_hidden'); + setSubFieldElToCache(fieldId, name + '_options', optionsEl); + } + }); + subFieldNames.forEach(function (subFieldName) { + var optionsEl = getSubFieldElFromCache(fieldId, subFieldName + '_options'); + if (!optionsEl) { + return; + } + optionsEl.classList.remove('frm_hidden'); + }); + }; + var dropdownSelector = '.frm_name_layout_dropdown'; + document.addEventListener('change', function (event) { + if (event.target.matches(dropdownSelector)) { + onChangeLayout(event); + } + }, false); + } + function debounce(func) { + var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100; + return frmDom.util.debounce(func, wait); + } + function addSaveAndDragIconsToOption(fieldId, liObject) { + var li, useTag, useTagHref; + var hasDragIcon = false; + var hasSaveIcon = false; + if (liObject.newOption) { + var parser = new DOMParser(); + li = parser.parseFromString(liObject.newOption, 'text/html').body.childNodes[0]; + } else { + li = liObject; + } + var liIcons = li.querySelectorAll('svg'); + liIcons.forEach(function (svg, key) { + useTag = svg.getElementsByTagNameNS('http://www.w3.org/2000/svg', 'use')[0]; + if (!useTag) { + return; + } + useTagHref = useTag.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || useTag.getAttribute('href'); + if (useTagHref === '#frm_drag_icon') { + hasDragIcon = true; + } + if (useTagHref === '#frm_save_icon') { + hasSaveIcon = true; + } + }); + if (!hasDragIcon) { + li.prepend(icons.drag.cloneNode(true)); + } + if (li.querySelector("[id^=field_key_".concat(fieldId, "-]")) && !hasSaveIcon) { + li.querySelector("[id^=field_key_".concat(fieldId, "-]")).after(icons.save.cloneNode(true)); + } + if (liObject.newOption) { + liObject.newOption = li; + } + } + function maybeAddSaveAndDragIcons(fieldId) { + var fieldOptions = document.querySelectorAll("[id^=frm_delete_field_".concat(fieldId, "-]")); + // return if there are no options. + if (fieldOptions.length < 2) { + return; + } + var options = _toConsumableArray(fieldOptions).slice(1); + options.forEach(function (li, _key) { + if (li.classList.contains('frm_other_option')) { + return; + } + addSaveAndDragIconsToOption(fieldId, li); + }); + } + + /** + * Enforce the maximum number of entries list columns dynamically. + * + * @since 6.24 + * + * @return {void} + */ + function maybeInitEntriesListPage() { + if (!document.body.classList.contains('frm-admin-page-entries')) { + return; + } + var screenOptionsWrapper = document.getElementById('screen-options-wrap'); + if (!screenOptionsWrapper) { + return; + } + var maxSelectionsNote = div({ + className: 'frm_warning_style', + text: __('Only 10 columns can be selected at a time.', 'formidable') + }); + maxSelectionsNote.style.margin = 0; + var legend = screenOptionsWrapper.querySelector('legend'); + legend.parentNode.insertBefore(maxSelectionsNote, legend.nextElementSibling); + var checkboxes = Array.from(screenOptionsWrapper.querySelectorAll('input[type="checkbox"]')); + var maximumColumns = 10; + var getSelectedCount = function getSelectedCount() { + return checkboxes.reduce(function (count, checkbox) { + return checkbox.checked ? count + 1 : count; + }, 0); + }; + var disableCheckboxesIfAtMax = function disableCheckboxesIfAtMax() { + if (getSelectedCount() >= maximumColumns) { + maxSelectionsNote.classList.remove('frm_hidden'); + checkboxes.forEach(function (checkbox) { + if (!checkbox.checked) { + checkbox.parentNode.classList.add('frm_noallow'); + checkbox.disabled = true; + } + }); + } else { + maxSelectionsNote.classList.add('frm_hidden'); + } + }; + var addCheckboxListeners = function addCheckboxListeners() { + checkboxes.forEach(function (checkbox) { + checkbox.addEventListener('change', function (event) { + if (event.target.checked) { + disableCheckboxesIfAtMax(); + } else { + maxSelectionsNote.classList.add('frm_hidden'); + + // Enable all checkboxes when a checkbox is unchecked. + checkboxes.forEach(function (checkbox) { + checkbox.parentNode.classList.remove('frm_noallow'); + checkbox.disabled = false; + }); + } + }); + }); + }; + disableCheckboxesIfAtMax(); + addCheckboxListeners(); + } + function initOnSubmitAction() { + var onChangeType = function onChangeType(event) { + if (!event.target.checked) { + return; + } + var actionEl = event.target.closest('.frm_form_action_settings'); + actionEl.querySelectorAll('.frm_on_submit_dependent_setting:not(.frm_hidden)').forEach(function (el) { + el.classList.add('frm_hidden'); + }); + var activeEls = actionEl.querySelectorAll('.frm_on_submit_dependent_setting[data-show-if-' + event.target.value + ']'); + activeEls.forEach(function (activeEl) { + activeEl.classList.remove('frm_hidden'); + }); + actionEl.setAttribute('data-on-submit-type', event.target.value); + }; + frmDom.util.documentOn('change', '.frm_on_submit_type input[type="radio"]', onChangeType); + } + + /** + * Listen for click events for an API-loaded email collection form. + * + * This is used for the Active Campaign sign-up form in the inbox page (when there are no messages). + */ + function initAddMyEmailAddress() { + jQuery(document).on('click', '#frm-add-my-email-address', function (event) { + event.preventDefault(); + addMyEmailAddress(); + }); + var emptyInbox = document.getElementById('frm_empty_inbox'); + var leaveEmailInput = document.getElementById('frm_leave_email'); + if (emptyInbox && leaveEmailInput) { + var leaveEmailModal = document.getElementById('frm-leave-email-modal'); + leaveEmailModal.classList.remove('frm_hidden'); + leaveEmailModal.querySelector('.frm_modal_footer').classList.add('frm_hidden'); + leaveEmailInput.addEventListener('keyup', function (event) { + if ('Enter' === event.key) { + var button = document.getElementById('frm-add-my-email-address'); + if (button) { + button.click(); + } + } + }); + } + } + function addMyEmailAddress() { + var email = document.getElementById('frm_leave_email').value.trim(); + if ('' === email) { + handleEmailAddressError('empty'); + return; + } + var regex = /^(([^<>()\[\]\\.,;:\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; + if (regex.test(email) === false) { + handleEmailAddressError('invalid'); + return; + } + var $hiddenForm = jQuery('#frmapi-email-form').find('form'); + var $hiddenEmailField = $hiddenForm.find('[type="email"]').not('.frm_verify'); + if (!$hiddenEmailField.length) { + return; + } + var emptyInbox = document.getElementById('frm_empty_inbox'); + if (emptyInbox) { + document.getElementById('frm-add-my-email-address').remove(); + var emailWrapper = document.getElementById('frm_leave_email_wrapper'); + if (emailWrapper) { + emailWrapper.classList.add('frm_hidden'); + var spinner = span({ + className: 'frm-wait frm_spinner' + }); + spinner.style.visibility = 'visible'; + spinner.style.float = 'none'; + spinner.style.width = 'unset'; + emailWrapper.parentElement.insertBefore(spinner, emailWrapper.nextElementSibling); + } + } + $hiddenEmailField.val(email); + jQuery.ajax({ + type: 'POST', + url: $hiddenForm.attr('action'), + data: $hiddenForm.serialize() + '&action=frm_forms_preview' + }).done(function (data) { + var message = jQuery(data).find('.frm_message').text().trim(); + if (message.indexOf('Thanks!') === -1) { + handleEmailAddressError('invalid'); + return; + } + var apiForm = document.getElementById('frmapi-email-form'); + var spinner = apiForm.parentElement.querySelector('.frm_spinner'); + if (spinner) { + spinner.remove(); + } + var showSuccessMessage = wp.hooks.applyFilters('frm_thank_you_on_signup', true); + if (showSuccessMessage) { + // Handle successful form submission. + // handle the Active Campaign form on the inbox page. + document.getElementById('frm_leave_email_wrapper').replaceWith(span(__('Thank you for signing up!', 'formidable'))); + } + }); + } + + /** + * Adds footer links to the admin body content. + * + * @return {void} + */ + function addAdminFooterLinks() { + var _document$querySelect7; + var footerLinks = document.querySelector('.frm-admin-footer-links'); + var container = (_document$querySelect7 = document.querySelector('.frm_page_container')) !== null && _document$querySelect7 !== void 0 ? _document$querySelect7 : document.getElementById('wpbody-content'); + if (!footerLinks || !container) { + return; + } + container.appendChild(footerLinks); + footerLinks.classList.remove('frm_hidden'); + } + + /** + * Apply zebra striping to a table while ignoring empty rows. + * + * @param {string} tableSelector The CSS selector for the table. + * @param {string} emptyRowClass The class name used to identify empty rows. + */ + function applyZebraStriping(tableSelector, emptyRowClass) { + // Get all non-empty table rows within the specified table + var rows = document.querySelectorAll("".concat(tableSelector, " tr").concat(emptyRowClass ? ":not(.".concat(emptyRowClass, ")") : '')); + if (rows.length < 1) { + return; + } + var isOdd = true; + rows.forEach(function (row) { + // Clean old "frm-odd" or "frm-even" classes and add the appropriate new class + row.classList.remove('frm-odd', 'frm-even'); + row.classList.add(isOdd ? 'frm-odd' : 'frm-even'); + isOdd = !isOdd; + }); + var tables = document.querySelectorAll(tableSelector); + tables.forEach(function (table) { + return table.classList.add('frm-zebra-striping'); + }); + } + function maybeHideShortcodes(e) { + if (!builderPage) { + e.stopPropagation(); + } + if (e.target.classList.contains('frm-show-box') || e.target.parentElement && e.target.parentElement.classList.contains('frm-show-box')) { + return; + } + var sidebar = document.getElementById('frm_adv_info'); + if (!sidebar) { + return; + } + if (sidebar.dataset.fills === e.target.id && typeof e.target.id !== 'undefined') { + return; + } + var isChild = e.target.closest('#frm_adv_info'); + if (!isChild && sidebar.style.display !== 'none') { + hideShortcodes(sidebar); + } + } + + /** + * Initializes and manages the visibility of dependent elements based on the selected options in dropdowns with the 'frm_select_with_dependency' class. + * It sets up initial visibility at page load and updates it on each dropdown change. + * + * @since 6.9 + * + * @return {void} + */ + function initSelectDependencies() { + var selects = document.querySelectorAll('select.frm_select_with_dependency'); + + /** + * Toggles the visibility of dependent elements associated with a select element based on its current selection. + * + * @since 6.9 + * + * @param {HTMLElement} select The select element whose dependencies need to be managed. + * @return {void} + */ + function toggleDependencyVisibility(select) { + var selectedOption = select.options[select.selectedIndex]; + select.querySelectorAll('option[data-dependency]:not([data-dependency-skip])').forEach(function (option) { + var dependencyElement = document.querySelector(option.dataset.dependency); + dependencyElement === null || dependencyElement === void 0 || dependencyElement.classList.toggle('frm_hidden', selectedOption !== option); + }); + } + + // Initial setup: Show dependencies based on the current selection in each dropdown + selects.forEach(toggleDependencyVisibility); + + // Update dependencies visibility on dropdown change + frmDom.util.documentOn('change', 'select.frm_select_with_dependency', function (event) { + return toggleDependencyVisibility(event.target); + }); + } + + /** + * Moves the focus to the next single option input field in the list and positions the cursor at the end of the text. + * + * @param {HTMLElement} currentInput The currently focused input element. + */ + function focusNextSingleOptionInput(currentInput) { + var optionsList = currentInput.closest('.frm_single_option').parentElement; + var inputs = optionsList.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'); + var inputsArray = Array.from(inputs); + + // Find the index of the currently focused input + var currentIndex = inputsArray.indexOf(currentInput); + if (currentIndex < 0) { + return; + } + + // Find the next visible input field + var nextInput = inputsArray.slice(currentIndex + 1).find(function (input) { + return input.offsetParent !== null; + }); + if (nextInput) { + nextInput.focus(); + + // Move the cursor to the end of the text in the next input field + var textLength = nextInput.value.length; + nextInput.setSelectionRange(textLength, textLength); + } + } + return { + init: function init() { + initAddMyEmailAddress(); + addAdminFooterLinks(); + s = {}; + + // Bootstrap dropdown button + jQuery('.wp-admin').on('click', function (e) { + var t = jQuery(e.target); + var $openDrop = jQuery('.dropdown.open'); + if ($openDrop.length && !t.hasClass('dropdown') && !t.closest('.dropdown').length) { + $openDrop.removeClass('open'); + } + }); + jQuery('#frm_bs_dropdown:not(.open) a').on('click', focusSearchBox); + if (typeof thisFormId === 'undefined') { + thisFormId = jQuery(document.getElementById('form_id')).val(); + } + + // Add event listener for dismissible warning messages. + document.querySelectorAll('.frm-warning-dismiss').forEach(function (dismissIcon) { + onClickPreventDefault(dismissIcon, dismissWarningMessage); + }); + frmAdminBuild.inboxBannerInit(); + if ($newFields.length > 0) { + // only load this on the form builder page + frmAdminBuild.buildInit(); + } else if (document.getElementById('frm_notification_settings') !== null) { + // only load on form settings page + frmAdminBuild.settingsInit(); + } else if (document.getElementById('frm_styling_form') !== null) { + // load styling settings js + frmAdminBuild.styleInit(); + } else if (document.getElementById('form_global_settings') !== null) { + // global settings page + frmAdminBuild.globalSettingsInit(); + } else if (document.getElementById('frm_export_xml') !== null) { + // import/export page + frmAdminBuild.exportInit(); + } else if (null !== document.querySelector('.frm-inbox-wrapper')) { + // Dashboard page inbox. + frmAdminBuild.inboxInit(); + } else if (document.getElementById('frm-welcome') !== null) { + // Solution install page + frmAdminBuild.solutionInit(); + } else { + maybeInitEntriesListPage(); + initAutocomplete(); + jQuery('[data-frmprint]').on('click', function () { + window.print(); + return false; + }); + } + jQuery(document).on('change', 'select[data-toggleclass], input[data-toggleclass]', toggleFormOpts); + initSelectDependencies(); + var $advInfo = jQuery(document.getElementById('frm_adv_info')); + if ($advInfo.length > 0 || jQuery('.frm_field_list').length > 0) { + // only load on the form, form settings, and view settings pages + frmAdminBuild.panelInit(); + } + loadTooltips(); + initUpgradeModal(); + frmDom.util.documentOn('click', '[data-modal-title]', showBasicModal); + + // used on build, form settings, and view settings + var $shortCodeDiv = jQuery(document.getElementById('frm_shortcodediv')); + if ($shortCodeDiv.length > 0) { + jQuery('a.edit-frm_shortcode').on('click', function () { + if ($shortCodeDiv.is(':hidden')) { + $shortCodeDiv.slideDown('fast'); + this.style.display = 'none'; + } + return false; + }); + jQuery('.cancel-frm_shortcode', '#frm_shortcodediv').on('click', function () { + $shortCodeDiv.slideUp('fast'); + $shortCodeDiv.siblings('a.edit-frm_shortcode').show(); + return false; + }); + } + + // tabs + jQuery(document).on('click', '#frm-nav-tabs a', clickNewTab); + jQuery('.post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a').on('click', function () { + var showUpgradeTab = this.classList.contains('frm_show_upgrade_tab'); + if (this.classList.contains('frm_noallow') && !showUpgradeTab) { + return; + } + if (showUpgradeTab) { + populateUpgradeTab(this); + } + clickTab(this); + return false; + }); + clickTab(jQuery('.starttab a'), 'auto'); + + // submit the search form with dropdown + jQuery(document).on('click', '#frm-fid-search-menu a', function () { + var val = this.id.replace('fid-', ''); + jQuery('select[name="fid"]').val(val); + triggerSubmit(document.getElementById('posts-filter')); + return false; + }); + jQuery('.frm_select_box').on('click focus', function () { + this.select(); + }); + jQuery(document).on('input search change', '.frm-auto-search:not(#frm-form-templates-page #template-search-input)', searchContent); + jQuery(document).on('focusin click', '.frm-auto-search', stopPropagation); + var autoSearch = jQuery('.frm-auto-search'); + if (autoSearch.val() !== '') { + autoSearch.trigger('keyup'); + } + + // Initialize Formidable Connection. + FrmFormsConnect.init(); + jQuery(document).on('click', '.frm-install-addon', installAddon); + jQuery(document).on('click', '.frm-activate-addon', activateAddon); + jQuery(document).on('click', '.frm-solution-multiple', installMultipleAddons); + + // prevent annoying confirmation message from WordPress + jQuery('button, input[type=submit]').on('click', removeWPUnload); + addMultiselectLabelListener(); + frmAdminBuild.hooks.addFilter('frm_before_embed_modal', function (ids, _ref4) { + var element = _ref4.element, + type = _ref4.type; + if ('form' !== type) { + return ids; + } + var formId, formKey; + var row = element.closest('tr'); + if (row) { + // Embed icon on form index. + formId = parseInt(row.querySelector('.column-id').textContent); + formKey = row.querySelector('.column-form_key').textContent; + } else { + // Embed button in form builder / form settings. + formId = document.getElementById('form_id').value; + var formKeyInput = document.getElementById('frm_form_key'); + if (formKeyInput) { + formKey = formKeyInput.value; + } else { + var previewDrop = document.getElementById('frm-previewDrop'); + if (previewDrop) { + formKey = previewDrop.nextElementSibling.querySelector('.dropdown-item a').getAttribute('href').split('form=')[1]; + } + } + } + return [formId, formKey]; + }); + document.querySelectorAll('#frm-show-fields > li, .frm_grid_container li').forEach(function (el, _key) { + el.addEventListener('click', function () { + var _this$querySelector; + var fieldId = ((_this$querySelector = this.querySelector('li')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.dataset.fid) || this.dataset.fid; + maybeAddSaveAndDragIcons(fieldId); + }); + }); + var smallScreenProceedButton = document.getElementById('frm_small_screen_proceed_button'); + if (smallScreenProceedButton) { + onClickPreventDefault(smallScreenProceedButton, function () { + var _document$getElementB5; + (_document$getElementB5 = document.getElementById('frm_small_device_message_container')) === null || _document$getElementB5 === void 0 || _document$getElementB5.remove(); + doJsonPost('small_screen_proceed', new FormData()); + }); + } + var saleBanner = document.getElementById('frm_sale_banner'); + var saleDismiss = saleBanner === null || saleBanner === void 0 ? void 0 : saleBanner.querySelector('.dismiss'); + if (saleBanner) { + onClickPreventDefault(saleBanner, function (event) { + var target = event.target; + if (target.closest('.dismiss')) { + return; + } + window.location.href = saleBanner.getAttribute('data-url'); + }); + if (saleDismiss) { + onClickPreventDefault(saleDismiss, function () { + saleBanner.remove(); + var formData = new FormData(); + doJsonPost('sale_banner_dismiss', formData); + }); + } + } + }, + buildInit: function buildInit() { + jQuery('#frm_builder_page').on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); + var loadFieldId, $builderForm, builderArea; + debouncedSyncAfterDragAndDrop = debounce(syncAfterDragAndDrop, 10); + postBodyContent = document.getElementById('post-body-content'); + $postBodyContent = jQuery(postBodyContent); + if (jQuery('.frm_field_loading').length) { + loadFieldId = jQuery('.frm_field_loading').first().attr('id'); + loadFields(loadFieldId); + } + setupSortable('ul.frm_sorting'); + document.querySelectorAll('.field_type_list > li:not(.frm_show_upgrade)').forEach(makeDraggable); + jQuery('ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a').disableSelection(); + jQuery('.frm_submit_ajax').on('click', submitBuild); + jQuery('.frm_submit_no_ajax').on('click', submitNoAjax); + addFormNameModalEvents(); + jQuery('a.edit-form-status').on('click', slideDown); + jQuery('.cancel-form-status').on('click', slideUp); + jQuery('.save-form-status').on('click', function () { + var newStatus = jQuery(document.getElementById('form_change_status')).val(); + jQuery('input[name="new_status"]').val(newStatus); + jQuery(document.getElementById('form-status-display')).html(newStatus); + jQuery('.cancel-form-status').trigger('click'); + return false; + }); + jQuery('.frm_form_builder form').first().on('submit', function () { + jQuery('.inplace_field').trigger('blur'); + }); + initiateMultiselect(); + renumberPageBreaks(); + $builderForm = jQuery(builderForm); + builderArea = document.getElementById('frm_form_editor_container'); + $builderForm.on('click', '.frm_add_logic_row', addFieldLogicRow); + $builderForm.on('click', '.frm_add_watch_lookup_row', addWatchLookupRow); + $builderForm.on('change', '.frm_get_values_form', updateGetValueFieldSelection); + $builderForm.on('change', '.frm_logic_field_opts', getFieldValues); + $builderForm.on('frm-multiselect-changed', 'select[name^="field_options[admin_only_"]', adjustVisibilityValuesForEveryoneValues); + jQuery(document.getElementById('frm-insert-fields')).on('click', '.frm_add_field', addFieldClick); + $newFields.on('click', '.frm_clone_field', duplicateField); + $builderForm.on('blur', 'input[id^="frm_calc"]', checkCalculationCreatedByUser); + $builderForm.on('change', 'input.frm_format_opt, input.frm_max_length_opt', toggleInvalidMsg); + $builderForm.on('change click', '[data-changeme]', liveChanges); + $builderForm.on('click', 'input.frm_req_field', markRequired); + $builderForm.on('click', '.frm_mark_unique', markUnique); + $builderForm.on('change', '.frm_repeat_format', toggleRepeatButtons); + $builderForm.on('change', '.frm_repeat_limit', checkRepeatLimit); + $builderForm.on('change', '.frm_js_checkbox_limit', checkCheckboxSelectionsLimit); + $builderForm.on('input', 'input[name^="field_options[add_label_"]', function () { + updateRepeatText(this, 'add'); + }); + $builderForm.on('input', 'input[name^="field_options[remove_label_"]', function () { + updateRepeatText(this, 'remove'); + }); + $builderForm.on('change', 'select[name^="field_options[data_type_"]', maybeClearWatchFields); + jQuery(builderArea).on('click', '.frm-collapse-page', maybeCollapsePage); + jQuery(builderArea).on('click', '.frm-collapse-section', maybeCollapseSection); + $builderForm.on('click', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', maybeCollapseSettings); + $builderForm.on('keydown', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', function (event) { + // If so, only proceed if the key pressed was 'Enter' or 'Space' + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + maybeCollapseSettings.call(this, event); + } + }); + jQuery(builderArea).on('show.bs.dropdown hide.bs.dropdown', changeSectionStyle); + $builderForm.on('click', '.frm_toggle_sep_values', toggleSepValues); + $builderForm.on('click', '.frm_toggle_image_options', toggleImageOptions); + $builderForm.on('click', '.frm_remove_image_option', removeImageFromOption); + $builderForm.on('click', '.frm_choose_image_box', addImageToOption); + $builderForm.on('change', '.frm_hide_image_text', refreshOptionDisplay); + $builderForm.on('change', '.frm_field_options_image_size', setImageSize); + $builderForm.on('click', '.frm_multiselect_opt', toggleMultiselect); + $newFields.on('mousedown', 'input, textarea, select', stopFieldFocus); + $newFields.on('click', 'input[type=radio], input[type=checkbox]', stopFieldFocus); + $newFields.on('click', '.frm_delete_field', clickDeleteField); + $newFields.on('click', '.frm_select_field', clickSelectField); + jQuery(document).on('click', '.frm_delete_field_group', clickDeleteFieldGroup); + jQuery(document).on('click', '.frm_clone_field_group', duplicateFieldGroup); + jQuery(document).on('click', '#frm_field_group_controls > span:first-child', clickFieldGroupLayout); + jQuery(document).on('click', '.frm-row-layout-option', handleFieldGroupLayoutOptionClick); + jQuery(document).on('click', '.frm-merge-fields-into-row .frm-row-layout-option', handleFieldGroupLayoutOptionInsideMergeClick); + jQuery(document).on('click', '.frm-custom-field-group-layout', customFieldGroupLayoutClick); + jQuery(document).on('click', '.frm-merge-fields-into-row .frm-custom-field-group-layout', customFieldGroupLayoutInsideMergeClick); + jQuery(document).on('click', '.frm-break-field-group', breakFieldGroupClick); + $newFields.on('click', '#frm_field_group_popup .frm_grid_container input', focusFieldGroupInputOnClick); + jQuery(document).on('click', '.frm-cancel-custom-field-group-layout', cancelCustomFieldGroupClick); + jQuery(document).on('click', '.frm-save-custom-field-group-layout', saveCustomFieldGroupClick); + $newFields.on('click', 'ul.frm_sorting', fieldGroupClick); + jQuery(document).on('click', '.frm-merge-fields-into-row', mergeFieldsIntoRowClick); + jQuery(document).on('click', '.frm-delete-field-groups', deleteFieldGroupsClick); + $newFields.on('click', '.frm-field-action-icons [data-toggle="dropdown"]', function () { + this.closest('li.form-field').classList.add('frm-field-settings-open'); + jQuery(document).on('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); + }); + $newFields.on('mousemove', 'ul.frm_sorting', checkForMultiselectKeysOnMouseMove); + $newFields.on('show.bs.dropdown', '.frm-field-action-icons', onFieldActionDropdownShow); + jQuery(document).on('show.bs.dropdown', '#frm_field_group_controls', onFieldGroupActionDropdownShow); + $builderForm.on('click', '.frm_single_option a[data-removeid]', deleteFieldOption); + $builderForm.on('mousedown', '.frm_single_option input[type=radio]', maybeUncheckRadio); + $builderForm.on('focusin', '.frm_single_option input[type=text]', maybeClearOptText); + $builderForm.on('click', '.frm_add_opt', addFieldOption); + $builderForm.on('change', '.frm_single_option input', resetOptOnChange); + $builderForm.on('change', '.frm_image_id', resetOptOnChange); + $builderForm.on('change', '.frm_toggle_mult_sel', toggleMultSel); + $newFields.on('click', '.frm_primary_label', clickLabel); + $newFields.on('click', '.frm_description', clickDescription); + $newFields.on('click', 'li.ui-state-default:not(.frm_noallow)', clickVis); + $newFields.on('dblclick', 'li.ui-state-default', openAdvanced); + $builderForm.on('change', '.frm_tax_form_select', toggleFormTax); + $builderForm.on('change', 'select.conf_field', addConf); + $builderForm.on('change', '.frm_get_field_selection', getFieldSelection); + $builderForm.on('click', '.frm-show-inline-modal', maybeShowInlineModal); + $builderForm.on('keydown', '.frm-show-inline-modal', function (event) { + var key = event.key; + if (key === 'Enter' || key === ' ') { + event.preventDefault(); + maybeShowInlineModal.call(this, event); + } + }); + $builderForm.on('click', '.frm-inline-modal .dismiss', dismissInlineModal); + jQuery(document).on('change', '[data-frmchange]', changeInputtedValue); + document.addEventListener('click', closeModalOnOutsideClick); + $builderForm.on('change', '.frm_include_extras_field', rePopCalcFieldsForSummary); + $builderForm.on('change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg); + jQuery(document).on('submit', '#frm_js_build_form', buildSubmittedNoAjax); + jQuery(document).on('change', '#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea', fieldUpdated); + popAllProductFields(); + jQuery(document).on('change', '.frmjs_prod_data_type_opt', toggleProductType); + jQuery(document).on('focus', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextFocus); + jQuery(document).on('blur', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextBlur); + frmDom.util.documentOn('click', '.frm-show-field-settings', clickVis); + frmDom.util.documentOn('change', 'select.frm_format_dropdown, select.frm_phone_type_dropdown', maybeUpdateFormatInput); + + // Navigate to the next input field on pressing Enter in a single option field + $builderForm.on('keydown', '.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]', function (event) { + if ('Enter' === event.key) { + focusNextSingleOptionInput(event.currentTarget); + } + }); + initBulkOptionsOverlay(); + hideEmptyEle(); + document.addEventListener('frm_added_field', hideEmptyEle); + maybeHideQuantityProductFieldOption(); + handleNameFieldOnFormBuilder(); + toggleSectionHolder(); + handleShowPasswordLiveUpdate(); + document.addEventListener('scroll', updateShortcodesPopupPosition, true); + document.addEventListener('change', handleBuilderChangeEvent); + document.querySelector('.frm_form_builder').addEventListener('mousedown', function (event) { + if (event.shiftKey) { + event.preventDefault(); + } + }); + wp.hooks.addAction('frmShowedFieldSettings', 'formidableAdmin', function (showBtn, fieldSettingsEl) { + fieldSettingsEl.querySelectorAll('.frm-collapse-me').forEach(addSlideAnimationCssVars); + }, 9999); + }, + settingsInit: function settingsInit() { + var $formActions = jQuery(document.getElementById('frm_notification_settings')); + var formSettings, $loggedIn, $cookieExp, $editable; + + // BCC, CC, and Reply To button functionality + $formActions.on('click', '.frm_email_buttons', showEmailRow); + $formActions.on('click', '.frm_remove_field', hideEmailRow); + $formActions.on('change', '.frm_to_row, .frm_from_row', showEmailWarning); + $formActions.on('change', '.frm_tax_selector', changePosttaxRow); + $formActions.on('change', 'select.frm_single_post_field', checkDupPost); + $formActions.on('change', 'select.frm_toggle_post_content', togglePostContent); + $formActions.on('change', 'select.frm_dyncontent_opt', fillDyncontent); + $formActions.on('change', '.frm_post_type', switchPostType); + $formActions.on('click', '.frm_add_postmeta_row', addPostmetaRow); + $formActions.on('click', '.frm_add_posttax_row', addPosttaxRow); + $formActions.on('click', '.frm_toggle_cf_opts', toggleCfOpts); + $formActions.on('click', '.frm_duplicate_form_action', copyFormAction); + jQuery('.frm_actions_list').on('click', '.frm_active_action', addFormAction); + jQuery('#frm-show-groups, #frm-hide-groups').on('click', toggleActionGroups); + initiateMultiselect(); + + //set actions icons to inactive + jQuery('ul.frm_actions_list li').each(function () { + checkActiveAction(jQuery(this).children('a').data('actiontype')); + + // If the icon is a background image, don't add BG color. + var icon = jQuery(this).find('i'); + if (icon.css('background-image') !== 'none') { + icon.addClass('frm-inverse'); + } + }); + jQuery('.frm_submit_settings_btn').on('click', submitSettings); + addFormNameModalEvents(); + formSettings = jQuery('.frm_form_settings'); + formSettings.on('click', '.frm_add_form_logic', addFormLogicRow); + formSettings.on('click', '.frm_already_used', actionLimitMessage); + document.addEventListener('click', function handleImageUploadClickEvents(event) { + var target = event.target; + if (!target.closest('.frm_image_preview_wrapper')) { + return; + } + if (target.closest('.frm_choose_image_box')) { + addImageToOption.bind(target)(event); + return; + } + if (target.closest('.frm_remove_image_option')) { + removeImageFromOption.bind(target)(event); + } + }); + + // Close shortcode modal on click. + formSettings.on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); + + //Warning when user selects "Do not store entries ..." + jQuery(document.getElementById('no_save')).on('change', function () { + if (this.checked) { + if (confirm(frmAdminJs.no_save_warning) !== true) { + // Uncheck box if user hits "Cancel" + jQuery(this).attr('checked', false); + } + } + }); + jQuery('select[name="options[edit_action]"]').on('change', showSuccessOpt); + $loggedIn = document.getElementById('logged_in'); + jQuery($loggedIn).on('change', function () { + if (this.checked) { + visible('.hide_logged_in'); + } else { + invisible('.hide_logged_in'); + } + }); + $cookieExp = jQuery(document.getElementById('frm_cookie_expiration')); + jQuery(document.getElementById('frm_single_entry_type')).on('change', function () { + if (this.value === 'cookie') { + $cookieExp.fadeIn('slow'); + } else { + $cookieExp.fadeOut('slow'); + } + }); + var $singleEntry = document.getElementById('single_entry'); + jQuery($singleEntry).on('change', function () { + if (this.checked) { + visible('.hide_single_entry'); + } else { + invisible('.hide_single_entry'); + } + if (this.checked && jQuery(document.getElementById('frm_single_entry_type')).val() === 'cookie') { + $cookieExp.fadeIn('slow'); + } else { + $cookieExp.fadeOut('slow'); + } + }); + jQuery('.hide_save_draft').hide(); + var $saveDraft = jQuery(document.getElementById('save_draft')); + $saveDraft.on('change', function () { + if (this.checked) { + jQuery('.hide_save_draft').fadeIn('slow'); + } else { + jQuery('.hide_save_draft').fadeOut('slow'); + } + }); + triggerChange($saveDraft); + + //If Allow editing is checked/unchecked + $editable = document.getElementById('editable'); + jQuery($editable).on('change', function () { + if (this.checked) { + jQuery('.hide_editable').fadeIn('slow'); + triggerChange(document.getElementById('edit_action')); + } else { + jQuery('.hide_editable').fadeOut('slow'); + jQuery('.edit_action_message_box').fadeOut('slow'); //Hide On Update message box + } + }); + + //If File Protection is checked/unchecked + jQuery(document).on('change', '#protect_files', function () { + if (this.checked) { + jQuery('.hide_protect_files').fadeIn('slow'); + } else { + jQuery('.hide_protect_files').fadeOut('slow'); + } + }); + jQuery(document).on('frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues); + jQuery(document).on('submit', '.frm_form_settings', settingsSubmitted); + jQuery(document).on('change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated); + + // Page Selection Autocomplete + initAutocomplete(); + jQuery(document).on('frm-action-loaded', onActionLoaded); + initOnSubmitAction(); + }, + panelInit: function panelInit() { + var customPanel, settingsPage, viewPage, insertFieldsTab; + jQuery('.frm_wrap, #postbox-container-1').on('click', '.frm_insert_code', insertCode); + jQuery(document).on('change', '.frm_insert_val', function () { + insertFieldCode(jQuery(this).data('target'), jQuery(this).val()); + jQuery(this).val(''); + }); + jQuery(document).on('click change', '[name="frm-id-key-condition"]', resetLogicBuilder); + jQuery(document).on('keyup change', '.frm-build-logic', setLogicExample); + showInputIcon(); + jQuery(document).on('frmElementAdded', function (event, parentEle) { + /* This is here for add-ons to trigger */ + showInputIcon(parentEle); + }); + jQuery(document).on('mousedown', '.frm-show-box', showShortcodes); + settingsPage = document.getElementById('form_settings_page'); + viewPage = document.body.classList.contains('post-type-frm_display'); + insertFieldsTab = document.getElementById('frm_insert_fields_tab'); + if (settingsPage !== null || viewPage || builderPage) { + jQuery(document).on('focusin', 'form input, form textarea', function (e) { + var htmlTab; + e.stopPropagation(); + maybeShowModal(this); + if (jQuery(this).is(':not(:submit, input[type=button], .frm-search-input, input[type=checkbox])')) { + if (jQuery(e.target).closest('#frm_adv_info').length) { + // Don't trigger for fields inside of the modal. + return; + } + if (settingsPage !== null || builderPage) { + /* form settings page */ + htmlTab = jQuery('#frm_html_tab'); + if (jQuery(this).closest('#html_settings').length > 0) { + htmlTab.show(); + htmlTab.siblings().hide(); + jQuery('#frm_html_tab a').trigger('click'); + toggleAllowedHTML(this); + } else { + showElement(jQuery('.frm-category-tabs li')); + insertFieldsTab.click(); + htmlTab.hide(); + htmlTab.siblings().show(); + } + } else if (viewPage) { + var event = new CustomEvent('frm_legacy_views_handle_field_focus'); + event.frmData = { + idAttrValue: this.id + }; + document.dispatchEvent(event); + } + } + }); + } + jQuery('.frm_wrap, #postbox-container-1').on('mousedown', '#frm_adv_info a, .frm_field_list a', function (e) { + e.preventDefault(); + }); + customPanel = jQuery('#frm_adv_info'); + customPanel.on('click', '.subsubsub a.frmids', function (e) { + toggleKeyID('frmids', e); + }); + customPanel.on('click', '.subsubsub a.frmkeys', function (e) { + toggleKeyID('frmkeys', e); + }); + }, + inboxInit: function inboxInit() { + var _document$getElementB6; + jQuery('.frm_inbox_dismiss').on('click', function (e) { + var message = this.parentNode.parentNode; + var key = message.getAttribute('data-message'); + var href = this.getAttribute('href'); + var dismissedMessage = message.cloneNode(true); + var dismissedMessagesWrapper = document.querySelector('.frm-dismissed-inbox-messages'); + if ('free_templates' === key && !this.classList.contains('frm_inbox_dismiss')) { + return; + } + e.preventDefault(); + data = { + action: 'frm_inbox_dismiss', + key: key, + nonce: frmGlobal.nonce + }; + var isInboxSlideIn = 'frm_inbox_slide_in' === message.id; + if (isInboxSlideIn) { + message.classList.remove('s11-fadein'); + message.classList.add('s11-fadeout'); + message.addEventListener('animationend', function () { + return message.remove(); + }, { + once: true + }); + } + postAjax(data, function () { + if (isInboxSlideIn) { + return; + } + if (href !== '#') { + window.location = href; + return true; + } + fadeOut(message, function () { + if (null !== dismissedMessagesWrapper) { + var _dismissedMessage$que; + dismissedMessage.classList.remove('frm-fade'); + (_dismissedMessage$que = dismissedMessage.querySelector('.frm-inbox-message-heading')) === null || _dismissedMessage$que === void 0 || _dismissedMessage$que.removeChild(dismissedMessage.querySelector('.frm-inbox-message-heading .frm_inbox_dismiss')); + dismissedMessagesWrapper.append(dismissedMessage); + } + if (1 === message.parentNode.querySelectorAll('.frm-inbox-message-container').length) { + document.getElementById('frm_empty_inbox').classList.remove('frm_hidden'); + message.parentNode.closest('.frm-active').classList.add('frm-empty-inbox'); + showActiveCampaignForm(); + } + message.parentNode.removeChild(message); + }); + }); + }); + if (false === ((_document$getElementB6 = document.getElementById('frm_empty_inbox')) === null || _document$getElementB6 === void 0 ? void 0 : _document$getElementB6.classList.contains('frm_hidden'))) { + showActiveCampaignForm(); + } + }, + solutionInit: function solutionInit() { + jQuery(document).on('submit', '#frm-new-template', installTemplate); + }, + styleInit: function styleInit() { + var $previewWrapper = jQuery('.frm_image_preview_wrapper'); + $previewWrapper.on('click', '.frm_choose_image_box', addImageToOption); + $previewWrapper.on('click', '.frm_remove_image_option', removeImageFromOption); + wp.hooks.doAction('frm_style_editor_init'); + }, + customCSSInit: function customCSSInit() { + console.warn('Calling frmAdminBuild.customCSSInit is deprecated.'); + }, + globalSettingsInit: function globalSettingsInit() { + var licenseTab; + jQuery(document).on('click', '[data-frmuninstall]', uninstallNow); + initiateMultiselect(); + + // activate addon licenses + licenseTab = document.getElementById('licenses_settings'); + if (licenseTab !== null) { + jQuery(licenseTab).on('click', '.edd_frm_save_license', saveAddonLicense); + } + + // Solution install page + jQuery(document).on('click', '#frm-new-template button', installTemplateFieldset); + jQuery('#frm-dismissable-cta .dismiss').on('click', function (event) { + event.preventDefault(); + jQuery.post(ajaxurl, { + action: 'frm_lite_settings_upgrade', + nonce: frmGlobal.nonce + }); + jQuery('.settings-lite-cta').remove(); + }); + var captchaType = document.getElementById('frm_re_type'); + if (captchaType) { + captchaType.addEventListener('change', handleCaptchaTypeChange); + } + document.querySelector('.frm_captchas').addEventListener('change', function (event) { + var _document$querySelect8; + var captchaValueOnLoad = (_document$querySelect8 = document.querySelector('.frm_captchas input[checked="checked"]')) === null || _document$querySelect8 === void 0 ? void 0 : _document$querySelect8.value; + var showNote = event.target.value !== captchaValueOnLoad; + document.querySelector('.captcha_settings .frm_note_style').classList.toggle('frm_hidden', !showNote); + }); + + // Set fieldsUpdated to 0 to avoid the unsaved changes pop up. + frmDom.util.documentOn('submit', '.frm_settings_form', function () { + return fieldsUpdated = 0; + }); + var manageStyleSettings = document.getElementById('manage_styles_settings'); + if (manageStyleSettings) { + manageStyleSettings.addEventListener('change', function (event) { + var target = event.target; + if ('SELECT' !== target.nodeName || !target.dataset.name || target.getAttribute('name')) { + return; + } + target.setAttribute('name', target.dataset.name); + }); + } + var paymentsSettings = document.getElementById('payments_settings'); + var paymentSettingsTabs = paymentsSettings === null || paymentsSettings === void 0 ? void 0 : paymentsSettings.querySelectorAll('[name="frm_payment_section"]'); + if (paymentSettingsTabs) { + paymentSettingsTabs.forEach(function (element) { + element.addEventListener('change', function () { + if (!element.checked) { + return; + } + var label = paymentsSettings.querySelector("label[for=\"".concat(element.id, "\"]")); + if (label) { + label.setAttribute('aria-selected', 'true'); + } + paymentSettingsTabs.forEach(function (tab) { + if (tab === element) { + return; + } + var label = paymentsSettings.querySelector("label[for=\"".concat(tab.id, "\"]")); + if (label) { + label.setAttribute('aria-selected', 'false'); + } + }); + }); + }); + } + }, + exportInit: function exportInit() { + jQuery('.frm_form_importer').on('submit', startFormMigration); + jQuery(document.getElementById('frm_export_xml')).on('submit', validateExport); + jQuery('#frm_export_xml input, #frm_export_xml select').on('change', removeExportError); + jQuery('input[name="frm_import_file"]').on('change', checkCSVExtension); + document.querySelector('select[name="format"]').addEventListener('change', exportTypeChanged); + jQuery('input[name="frm_export_forms[]"]').on('click', preventMultipleExport); + initiateMultiselect(); + jQuery('.frm-feature-banner .dismiss').on('click', function (event) { + event.preventDefault(); + jQuery.post(ajaxurl, { + action: 'frm_dismiss_migrator', + plugin: this.id, + nonce: frmGlobal.nonce + }); + this.parentElement.remove(); + }); + showOrHideRepeaters(getExportOption()); + document.querySelector('#frm-export-select-all').addEventListener('change', function (event) { + document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function (cb) { + return cb.checked = event.target.checked; + }); + }); + }, + inboxBannerInit: function inboxBannerInit() { + var banner = document.getElementById('frm_banner'); + if (!banner) { + return; + } + var dismissButton = banner.querySelector('.frm-banner-dismiss'); + document.addEventListener('click', function (event) { + if (event.target !== dismissButton) { + return; + } + var data = { + action: 'frm_inbox_dismiss', + key: banner.dataset.key, + nonce: frmGlobal.nonce + }; + postAjax(data, function () { + jQuery(banner).fadeOut(400, function () { + banner.remove(); + }); + }); + }); + }, + updateOpts: function updateOpts(fieldId, opts, modal) { + var separate = usingSeparateValues(fieldId), + action = isProductField(fieldId) ? 'frm_bulk_products' : 'frm_import_options'; + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: { + action: action, + field_id: fieldId, + opts: opts, + separate: separate, + nonce: frmGlobal.nonce + }, + success: function success(html) { + document.getElementById('frm_field_' + fieldId + '_opts').innerHTML = html; + wp.hooks.doAction('frm_after_bulk_edit_opts', fieldId); + resetDisplayedOpts(fieldId); + if (typeof modal !== 'undefined') { + modal.dialog('close'); + document.getElementById('frm-update-bulk-opts').classList.remove('frm_loading_button'); + } + } + }); + }, + /* remove conditional logic if the field doesn't exist */ + triggerRemoveLogic: function triggerRemoveLogic(fieldID, metaName) { + jQuery('#frm_logic_' + fieldID + '_' + metaName + ' .frm_remove_tag').trigger('click'); + }, + downloadXML: function downloadXML(controller, ids, isTemplate) { + var url = ajaxurl + '?action=frm_' + controller + '_xml&ids=' + ids; + if (isTemplate !== null) { + url = url + '&is_template=' + isTemplate; + } + location.href = url; + }, + /** + * @since 5.0.04 + */ + hooks: { + applyFilters: function applyFilters(hookName) { + var _wp$hooks; + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + return (_wp$hooks = wp.hooks).applyFilters.apply(_wp$hooks, [hookName].concat(args)); + }, + addFilter: function addFilter(hookName, callback, priority) { + return wp.hooks.addFilter(hookName, 'formidable', callback, priority); + }, + doAction: function doAction(hookName) { + var _wp$hooks2; + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key3 = 1; _key3 < _len2; _key3++) { + args[_key3 - 1] = arguments[_key3]; + } + return (_wp$hooks2 = wp.hooks).doAction.apply(_wp$hooks2, [hookName].concat(args)); + }, + addAction: function addAction(hookName, callback, priority) { + return wp.hooks.addAction(hookName, 'formidable', callback, priority); + } + }, + applyZebraStriping: applyZebraStriping, + initModal: initModal, + infoModal: infoModal, + offsetModalY: offsetModalY, + adjustConditionalLogicOptionOrders: adjustConditionalLogicOptionOrders, + addRadioCheckboxOpt: addRadioCheckboxOpt, + installNewForm: installNewForm, + toggleAddonState: toggleAddonState, + purifyHtml: purifyHtml, + loadApiEmailForm: loadApiEmailForm, + addMyEmailAddress: addMyEmailAddress, + fillDropdownOpts: fillDropdownOpts, + showSaveAndReloadModal: showSaveAndReloadModal, + clearSettingsBox: clearSettingsBox, + deleteField: deleteField, + insertFormField: insertFormField, + confirmLinkClick: confirmLinkClick, + handleInsertFieldByDraggingResponse: handleInsertFieldByDraggingResponse, + handleAddFieldClickResponse: handleAddFieldClickResponse, + syncLayoutClasses: syncLayoutClasses, + moveFieldSettings: moveFieldSettings + }; +}; +window.frmAdminBuild = frmAdminBuildJS(); +jQuery(document).ready(function () { + var _document$querySelect9; + frmAdminBuild.init(); + frmDom.bootstrap.setupBootstrapDropdowns(convertOldBootstrapDropdownsToBootstrap4); + (_document$querySelect9 = document.querySelector('.preview.dropdown .frm-dropdown-toggle')) === null || _document$querySelect9 === void 0 || _document$querySelect9.setAttribute('data-toggle', 'dropdown'); + function convertOldBootstrapDropdownsToBootstrap4(frmDropdownMenu) { + var toggle = frmDropdownMenu.querySelector('.frm-dropdown-toggle'); + if (toggle) { + if (!toggle.hasAttribute('role')) { + toggle.setAttribute('role', 'button'); + } + if (!toggle.hasAttribute('tabindex')) { + toggle.setAttribute('tabindex', 0); + } + } + + // Convert
                            • and
                                tags. + if ('UL' === frmDropdownMenu.tagName) { + convertBootstrapUl(frmDropdownMenu); + } + } + function convertBootstrapUl(ul) { + var html = ul.outerHTML; + html = html.replace('
                                  ', ''); + html = html.replaceAll('
                                • ', '
                                • ', ''); + ul.outerHTML = html; + } +}); +window.frm_show_div = function (div, value, showIf, classId) { + // eslint-disable-line camelcase + if (value == showIf) { + jQuery(classId + div).fadeIn('slow').css('visibility', 'visible'); + } else { + jQuery(classId + div).fadeOut('slow'); + } +}; +window.frmCheckAll = function (checked, n) { + jQuery('input[name^="' + n + '"]').prop('checked', !!checked); +}; +window.frmCheckAllLevel = function (checked, n, level) { + var $kids = jQuery('.frm_catlevel_' + level).children('.frm_checkbox').children('label'); + $kids.children('input[name^="' + n + '"]').prop('checked', !!checked); +}; +window.frmGetFieldValues = function (fieldId, cur, rowNumber, fieldType, htmlName, callback) { + if (!fieldId) { + return; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: 'action=frm_get_field_values¤t_field=' + cur + '&field_id=' + fieldId + '&name=' + htmlName + '&t=' + fieldType + '&form_action=' + jQuery('input[name="frm_action"]').val() + '&nonce=' + frmGlobal.nonce, + success: function success(msg) { + document.getElementById('frm_show_selected_values_' + cur + '_' + rowNumber).innerHTML = msg; + if ('function' === typeof callback) { + callback(); + } + } + }); +}; +window.frmImportCsv = function (formID) { + var urlVars = ''; + if (typeof __FRMURLVARS !== 'undefined') { + urlVars = __FRMURLVARS; + } + jQuery.ajax({ + type: 'POST', + url: ajaxurl, + data: 'action=frm_import_csv&nonce=' + frmGlobal.nonce + '&frm_skip_cookie=1' + urlVars, + success: function success(count) { + var max = jQuery('.frm_admin_progress_bar').attr('aria-valuemax'); + var imported = max - count; + var percent = imported / max * 100; + jQuery('.frm_admin_progress_bar').css('width', percent + '%').attr('aria-valuenow', imported); + if (parseInt(count, 10) > 0) { + jQuery('.frm_csv_remaining').html(count); + frmImportCsv(formID); + } else { + jQuery(document.getElementById('frm_import_message')).html(frm_admin_js.import_complete); // eslint-disable-line camelcase + setTimeout(function () { + location.href = '?page=formidable-entries&frm_action=list&form=' + formID + '&import-message=1'; + }, 2000); + } + } + }); +}; +/******/ })() +; +//# sourceMappingURL=formidable_admin.js.map \ No newline at end of file diff --git a/js/formidable_blocks.js b/js/formidable_blocks.js index 954846e136..f6a7dd57bb 100644 --- a/js/formidable_blocks.js +++ b/js/formidable_blocks.js @@ -1 +1,2718 @@ -(()=>{var e={532:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l});var n=r(601),o=r.n(n),i=r(314),a=r.n(i)()(o());a.push([e.id,"button.t3RQZV1ZQbHGYyQUnhIY {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.t3RQZV1ZQbHGYyQUnhIY:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: Ts7haRQUDk0YMfLiQW00 2s linear infinite;\n}",""]);const l=a},314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var l=0;l0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},601:e=>{"use strict";e.exports=function(e){return e[1]}},694:(e,t,r)=>{"use strict";var n=r(925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,a){if(a!==n){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},556:(e,t,r)=>{e.exports=r(694)()},925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},72:e=>{"use strict";var t=[];function r(e){for(var r=-1,n=0;n{"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,r)=>{"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nc=void 0,(()=>{"use strict";function e(t){return e="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},e(t)}function t(t,r,n){var o,i,a;n((o={},a=r,(i=function(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}(i=t))in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,o))}function n(e,t){return e?" ".concat(t,'="').concat(e,'"'):""}function o(e){return o="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},o(e)}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r-1&&(n=e.substr(0,r)),n+"wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(c))},V("Go to form","formidable")))),wp.element.createElement(W,{title:V("Options","formidable"),initialOpen:!1},wp.element.createElement(Y,{label:V("Show Form Title","formidable"),checked:s,onChange:function(e){t("title",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Show Form Description","formidable"),checked:m,onChange:function(e){t("description",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Minimize HTML","formidable"),checked:f,onChange:function(e){t("minimize",e?"1":"",i)}})),wp.element.createElement(W,{title:V("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(Q,null,wp.element.createElement(u,this.props.attributes))))}}])&&z(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(B);function q(e){return q="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},q(e)}function $(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./js/src/api/class-addon-api.js": +/*!***************************************!*\ + !*** ./js/src/api/class-addon-api.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAddonAPI: () => (/* binding */ frmAddonAPI) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAddonAPI = /*#__PURE__*/function () { + function frmAddonAPI() { + _classCallCheck(this, frmAddonAPI); + } + return _createClass(frmAddonAPI, null, [{ + key: "toggleAddonState", + value: + /** + * A function designed to toggle different addon states. + * + * @param {'frm_install_addon'|'frm_activate_addon'|'frm_multiple_addons'} action The addon state action type. + * @param {string} addon The addon path. Ex: formidable-views/formidable-views.php + * + * @return {Promise} The response from the server. + */ + function toggleAddonState(action, addon) { + return fetch(ajaxurl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + action: action, + nonce: frmGlobal.nonce, + plugin: addon + }) + }).then(function (response) { + return response.json(); + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/api/index.js": +/*!*****************************!*\ + !*** ./js/src/api/index.js ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAddonAPI: () => (/* reexport safe */ _class_addon_api__WEBPACK_IMPORTED_MODULE_0__.frmAddonAPI) +/* harmony export */ }); +/* harmony import */ var _class_addon_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./class-addon-api */ "./js/src/api/class-addon-api.js"); + + +/***/ }), + +/***/ "./js/src/common/components/icon.js": +/*!******************************************!*\ + !*** ./js/src/common/components/icon.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormidableIcon) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Formidable Forms icon + */ +var Component = wp.element.Component; +var Dashicon = wp.components.Dashicon; +var FormidableIcon = /*#__PURE__*/function (_Component) { + function FormidableIcon() { + _classCallCheck(this, FormidableIcon); + return _callSuper(this, FormidableIcon, arguments); + } + _inherits(FormidableIcon, _Component); + return _createClass(FormidableIcon, [{ + key: "loadCustomSvgIcon", + value: function loadCustomSvgIcon() { + var icon = formidable_form_selector.icon; + if (icon.match(/frm_white_label_icon/)) { + return wp.element.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 20 20", + width: "120", + height: "120" + }, wp.element.createElement("path", { + d: "M18.1 1.3H2C.9 1.3 0 2 0 3V17c0 1 .8 1.9 1.9 1.9H18c1 0 1.9-.9 1.9-2V3.2c0-1-.8-1.9-1.9-1.9zM18 16.9H2a.2.2 0 0 1-.2-.3V3.4c0-.2 0-.3.2-.3H18c.1 0 .2.1.2.3v13.2c0 .2 0 .3-.2.3zm-1.6-3.6v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm0-3.8v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.4v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.4zm0-3.7v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm-9.9.5a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.7a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.8a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0z" + })); + } + return false; + } + }, { + key: "render", + value: function render() { + if (false !== this.loadCustomSvgIcon()) { + return this.loadCustomSvgIcon(); + } + if (formidable_form_selector.icon !== 'svg') { + return wp.element.createElement(Dashicon, { + icon: formidable_form_selector.icon + }); + } + return wp.element.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 599.68 601.37", + width: "120", + height: "120" + }, wp.element.createElement("path", { + className: "cls-1 orange", + d: "M289.6 384h140v76h-140z" + }), wp.element.createElement("path", { + className: "cls-1", + d: "M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z" + }), wp.element.createElement("path", { + className: "cls-1", + d: "M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z" + })); + } + }]); +}(Component); + + +/***/ }), + +/***/ "./js/src/common/components/itemselect.js": +/*!************************************************!*\ + !*** ./js/src/common/components/itemselect.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ ItemSelect) +/* harmony export */ }); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +var _wp$i18n = wp.i18n, + __ = _wp$i18n.__, + sprintf = _wp$i18n.sprintf; + +var Component = wp.element.Component; +var SelectControl = wp.components.SelectControl; + +/** + * Displays a Select control with the specified items as options + * + */ +var ItemSelect = /*#__PURE__*/function (_Component) { + function ItemSelect() { + _classCallCheck(this, ItemSelect); + return _callSuper(this, ItemSelect, arguments); + } + _inherits(ItemSelect, _Component); + return _createClass(ItemSelect, [{ + key: "createOptions", + value: function createOptions(items, itemName) { + var options = items.map(function (item) { + return { + label: item.label, + value: item.value + }; + }); + return [{ + // translators: %s is the name of the item + label: sprintf(__('Select a %s', 'formidable'), itemName), + value: '' + }].concat(_toConsumableArray(options)); + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + selected = _this$props.selected, + items = _this$props.items, + onChange = _this$props.onChange, + itemName = _this$props.itemName, + itemNamePlural = _this$props.itemNamePlural, + label = _this$props.label, + help = _this$props.help; + if (!items || items.length === 0) { + return wp.element.createElement("p", { + className: "frm-block-select-no-items" + }, sprintf( + // translators: %s is the name of the item + __('Currently, there are no %s', 'formidable'), itemNamePlural)); + } + return wp.element.createElement(SelectControl, { + value: selected, + options: this.createOptions(items, itemName), + label: label, + help: help, + onChange: onChange + }); + } + }]); +}(Component); + +ItemSelect.defaultProps = { + itemName: 'item', + itemNamePlural: 'items' +}; +ItemSelect.propTypes = { + selected: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number)]), + //selected item + items: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().array), + //list of possible items + onChange: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func), + itemName: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), + //name for item in select label + itemNamePlural: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), + //plural of items, used in some labels + label: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), + help: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string) +}; + +/***/ }), + +/***/ "./js/src/common/utilities/values.js": +/*!*******************************************!*\ + !*** ./js/src/common/utilities/values.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ cssHideAdvancedSettings: () => (/* binding */ cssHideAdvancedSettings), +/* harmony export */ getSubDir: () => (/* binding */ getSubDir), +/* harmony export */ setTextAttribute: () => (/* binding */ setTextAttribute), +/* harmony export */ updateAttribute: () => (/* binding */ updateAttribute) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Updates an attribute with the specified new value + * + * @param {string} attributeName Name of block attribute to be updated + * @param {*} attributeValue Value of block attribute to be updated + * @param {Function} setAttributes Function to set the block attribute to be updated + */ +function updateAttribute(attributeName, attributeValue, setAttributes) { + setAttributes(_defineProperty({}, attributeName, attributeValue)); +} + +/** + * Sets text attribute for a shortcode from a key value pair + * + * @param {*} value Value of text attribute to be set + * @param {string} attributeName Name of text attribute to be set + * @return {string} String of the text attribute in the format " id=10" + */ +function setTextAttribute(value, attributeName) { + if (value) { + return " ".concat(attributeName, "=\"").concat(value, "\""); + } + return ''; +} + +/** + * Gets subdirectory of current site, if the site isn't on the top level of the domain + * + * @return {string} The subdirectory of the current site + */ +function getSubDir() { + var page = window.location.pathname; + var index = page.indexOf('wp-admin'); + var subDir = '/'; + if (index > -1) { + subDir = page.substr(0, index); + } + return subDir; +} +var cssHideAdvancedSettings = "\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"; + +/***/ }), + +/***/ "./js/src/form/block.js": +/*!******************************!*\ + !*** ./js/src/form/block.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); +/* harmony import */ var _inspector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inspector */ "./js/src/form/inspector.js"); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); +/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); +/** + * BLOCK: formidable/simple-form + * + * Block to display selected Formidable form with limited setting options + */ + + + + + +var Fragment = wp.element.Fragment; +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var _wp = wp, + ServerSideRender = _wp.serverSideRender; +registerBlockType('formidable/simple-form', { + title: formidable_form_selector.name, + description: __('Display a Form', 'formidable'), + icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], + category: 'widgets', + keywords: [__('contact forms', 'formidable'), 'formidable'], + edit: function edit(_ref) { + var setAttributes = _ref.setAttributes, + attributes = _ref.attributes, + isSelected = _ref.isSelected; + var formId = attributes.formId; + var forms = formidable_form_selector.forms; + if (forms.length === 0) { + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, __('This site does not have any forms.', 'formidable')); + } + if (!formId) { + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, formidable_form_selector.name), wp.element.createElement("div", { + className: "frm-block-selector-screen" + }, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_3__["default"], { + formId: formId, + setAttributes: setAttributes, + forms: forms + })))); + } + return wp.element.createElement(Fragment, null, wp.element.createElement(_inspector__WEBPACK_IMPORTED_MODULE_1__["default"], { + attributes: attributes, + setAttributes: setAttributes, + forms: forms + }), isSelected && wp.element.createElement("style", null, _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__.cssHideAdvancedSettings), wp.element.createElement(ServerSideRender, { + block: "formidable/simple-form", + attributes: attributes + })); + }, + save: function save(props) { + var attributes = props.attributes; + var formId = attributes.formId; + return formId === undefined ? '' : wp.element.createElement(Fragment, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_0__["default"], attributes)); + } +}); + +/***/ }), + +/***/ "./js/src/form/calculator.js": +/*!***********************************!*\ + !*** ./js/src/form/calculator.js ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/** + * BLOCK: formidable/calculator + * + * Block to display selected Formidable calculator form + */ + +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var FrmCalcIcon = wp.element.createElement('svg', { + width: 20, + height: 20 +}, wp.element.createElement('path', { + d: 'M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z' +})); +registerBlockType('formidable/calculator', { + title: __('Calculator Form', 'formidable'), + description: __('Display a Calculator Form', 'formidable'), + icon: FrmCalcIcon, + category: 'widgets', + keywords: ['calculation', 'formidable'], + edit: function edit(_ref) { + var setAttributes = _ref.setAttributes, + attributes = _ref.attributes; + var formId = attributes.formId; + var forms = formidable_form_selector.forms; + if (forms.length === 0) { + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, __('This site does not have any forms.', 'formidable')); + } + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, __('Calculator Form', 'formidable')), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip" + }, wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, __('This site does not have any calculator forms.', 'formidable'), wp.element.createElement("br", null), wp.element.createElement("a", { + href: formidable_form_selector.link, + target: "_blank" + }, __('Upgrade Formidable Forms.', 'formidable'))), wp.element.createElement("img", { + src: formidable_form_selector.url + '/images/conversion-calc.jpg', + alt: __('Calculator Form', 'formidable') + })))); + } +}); + +/***/ }), + +/***/ "./js/src/form/formselect.js": +/*!***********************************!*\ + !*** ./js/src/form/formselect.js ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormSelect) +/* harmony export */ }); +/* harmony import */ var _common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/itemselect */ "./js/src/common/components/itemselect.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Form selector + */ + + +var __ = wp.i18n.__; +var Component = wp.element.Component; +var FormSelect = /*#__PURE__*/function (_Component) { + function FormSelect() { + _classCallCheck(this, FormSelect); + return _callSuper(this, FormSelect, arguments); + } + _inherits(FormSelect, _Component); + return _createClass(FormSelect, [{ + key: "render", + value: function render() { + var _this$props = this.props, + formId = _this$props.formId, + setAttributes = _this$props.setAttributes, + forms = _this$props.forms; + return wp.element.createElement(_common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__["default"], { + selected: formId, + itemName: __('form', 'formidable'), + itemNamePlural: __('forms', 'formidable'), + items: forms, + onChange: function onChange(newFormId) { + setAttributes({ + formId: newFormId + }); + } + }); + } + }]); +}(Component); + +FormSelect.propTypes = { + formId: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string), + //current formId + setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func).isRequired //setAttributes of block +}; + +/***/ }), + +/***/ "./js/src/form/formshortcode.js": +/*!**************************************!*\ + !*** ./js/src/form/formshortcode.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormShortcode) +/* harmony export */ }); +/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Form shortcode of current form + */ +var Component = wp.element.Component; + +function createParamsText(atts) { + var formId = atts.formId, + title = atts.title, + description = atts.description, + minimize = atts.minimize; + var paramsText = ''; + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(formId, 'id'); + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(title, 'title'); + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(description, 'description'); + paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(minimize, 'minimize'); + return paramsText; +} +var FormShortcode = /*#__PURE__*/function (_Component) { + function FormShortcode() { + _classCallCheck(this, FormShortcode); + return _callSuper(this, FormShortcode, arguments); + } + _inherits(FormShortcode, _Component); + return _createClass(FormShortcode, [{ + key: "render", + value: function render() { + return wp.element.createElement("div", null, "[formidable", createParamsText(this.props), "]"); + } + }]); +}(Component); + + +/***/ }), + +/***/ "./js/src/form/graph.js": +/*!******************************!*\ + !*** ./js/src/form/graph.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* global formidable_form_selector */ + + +(function () { + 'use strict'; + + if (formidable_form_selector.chartsAddon.installed) { + return; + } + var __ = wp.i18n.__; + var registerBlockType = wp.blocks.registerBlockType; + var Notice = wp.components.Notice; + var UpgradeNotice = function UpgradeNotice(_ref) { + var text = _ref.text, + buttonText = _ref.buttonText, + link = _ref.link; + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, text, wp.element.createElement("br", null), wp.element.createElement("a", { + href: link, + target: "_blank" + }, buttonText)); + }; + var blockName = __('Formidable Chart', 'formidable'); + registerBlockType('frm-charts/graph', { + title: blockName, + description: __('Display a chart or graph', 'formidable'), + icon: wp.element.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + fill: "none", + viewBox: "0 0 25 23" + }, wp.element.createElement("path", { + stroke: "currentColor", + strokeLinecap: "round", + strokeWidth: "2.5", + d: "M23 2v19m-7-7.5V21M9 10.8V21m-7-2.9V21" + })), + category: 'design', + edit: function edit() { + var imageWrapperStyles = { + padding: '38px', + margin: '0 auto', + maxWidth: '600px' + }; + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, blockName), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip", + style: { + alignSelf: 'stretch' + } + }, formidable_form_selector.chartsAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { + text: __('This site does not have Formidable Charts active.', 'formidable'), + buttonText: __('Install Formidable Charts', 'formidable'), + link: formidable_form_selector.chartsAddon.link + }) : wp.element.createElement(UpgradeNotice, { + text: __('This site does not have Formidable Charts installed.', 'formidable'), + buttonText: __('Upgrade Formidable Forms', 'formidable'), + link: formidable_form_selector.link + }), wp.element.createElement("div", { + style: imageWrapperStyles + }, wp.element.createElement("img", { + src: formidable_form_selector.url + '/images/demo-graph.svg', + alt: blockName + }))))); + } + }); +})(); + +/***/ }), + +/***/ "./js/src/form/inspector.js": +/*!**********************************!*\ + !*** ./js/src/form/inspector.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Inspector) +/* harmony export */ }); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); +/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); +/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/** + * Inspector controls for Formidable Simple Form block + */ + +var __ = wp.i18n.__; +var Component = wp.element.Component; +var InspectorControls = wp.blockEditor.InspectorControls; +var _wp$components = wp.components, + PanelBody = _wp$components.PanelBody, + PanelRow = _wp$components.PanelRow, + ToggleControl = _wp$components.ToggleControl, + ExternalLink = _wp$components.ExternalLink; + + + + +var Inspector = /*#__PURE__*/function (_Component) { + function Inspector() { + _classCallCheck(this, Inspector); + return _callSuper(this, Inspector, arguments); + } + _inherits(Inspector, _Component); + return _createClass(Inspector, [{ + key: "render", + value: function render() { + var _this$props = this.props, + setAttributes = _this$props.setAttributes, + attributes = _this$props.attributes, + forms = _this$props.forms; + var formId = attributes.formId, + title = attributes.title, + description = attributes.description, + minimize = attributes.minimize; + return wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, { + title: __('Select Form', 'formidable'), + initialOpen: true + }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_0__["default"], { + formId: formId, + setAttributes: setAttributes, + forms: forms + })), formId && wp.element.createElement(PanelRow, null, wp.element.createElement(ExternalLink, { + href: (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.getSubDir)() + "wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(formId) + }, __('Go to form', 'formidable')))), wp.element.createElement(PanelBody, { + title: __('Options', 'formidable'), + initialOpen: false + }, wp.element.createElement(ToggleControl, { + label: __('Show Form Title', 'formidable'), + checked: title, + onChange: function onChange(response) { + (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('title', response ? '1' : '', setAttributes); + } + }), wp.element.createElement(ToggleControl, { + label: __('Show Form Description', 'formidable'), + checked: description, + onChange: function onChange(response) { + (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('description', response ? '1' : '', setAttributes); + } + }), wp.element.createElement(ToggleControl, { + label: __('Minimize HTML', 'formidable'), + checked: minimize, + onChange: function onChange(response) { + (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('minimize', response ? '1' : '', setAttributes); + } + })), wp.element.createElement(PanelBody, { + title: __('Shortcode', 'formidable'), + initialOpen: false + }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_1__["default"], this.props.attributes)))); + } + }]); +}(Component); + +Inspector.propTypes = { + attributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object), + //block attributes + setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func) //setAttributes of block +}; + +/***/ }), + +/***/ "./js/src/form/modal.js": +/*!******************************!*\ + !*** ./js/src/form/modal.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* global formidable_form_selector */ + + +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var UpgradeNotice = function UpgradeNotice(_ref) { + var text = _ref.text, + buttonText = _ref.buttonText, + link = _ref.link; + return wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, text, wp.element.createElement("br", null), wp.element.createElement("a", { + href: link, + target: "_blank" + }, buttonText)); +}; +registerBlockType('frm-modal/modal', { + title: formidable_form_selector.name + ' ' + __('Modal', 'formidable'), + description: __('Display a modal', 'formidable'), + icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], + category: 'widgets', + keywords: ['modal', 'formidable'], + edit: function edit(_ref2) { + var setAttributes = _ref2.setAttributes, + attributes = _ref2.attributes; + var blockName = __('Bootstrap modal popup', 'formidable'); + var imageStyles = { + maxWidth: '504px', + height: 'auto', + borderRadius: '12px' + }; + var imageWrapperStyles = { + padding: '38px', + textAlign: 'center', + backgroundColor: '#f2f4f7', + marginTop: '24px' + }; + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, blockName), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip", + style: { + alignSelf: 'stretch' + } + }, formidable_form_selector.modalAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { + text: __('This site does not have popup modals active.', 'formidable'), + buttonText: __('Install Formidable Modals', 'formidable'), + link: formidable_form_selector.modalAddon.link + }) : wp.element.createElement(UpgradeNotice, { + text: __('This site does not have popup modals.', 'formidable'), + buttonText: __('Upgrade Formidable Forms', 'formidable'), + link: formidable_form_selector.link + }), wp.element.createElement("div", { + style: imageWrapperStyles + }, wp.element.createElement("img", { + src: formidable_form_selector.url + '/images/modal.png', + alt: blockName, + style: imageStyles + }))))); + } +}); + +/***/ }), + +/***/ "./js/src/form/views.js": +/*!******************************!*\ + !*** ./js/src/form/views.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); +/* harmony import */ var _api_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api/index */ "./js/src/api/index.js"); +/* harmony import */ var _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./css/button.module.css */ "./js/src/form/css/button.module.css"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +/* global formidable_form_selector */ + + + +var __ = wp.i18n.__; +var registerBlockType = wp.blocks.registerBlockType; +var Notice = wp.components.Notice; +var _wp$element = wp.element, + useState = _wp$element.useState, + useEffect = _wp$element.useEffect; +var blockData = formidable_form_selector; // eslint-disable-line camelcase +var upgradeLink = blockData.viewsAddon.hasAccess ? blockData.viewsAddon.link : blockData.link; +registerBlockType('formidable/simple-view', { + title: __('Formidable Views', 'formidable'), + description: __('Display a Visual View', 'formidable'), + icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], + category: 'widgets', + keywords: ['views', 'formidable'], + edit: function edit() { + var _useState = useState({ + // eslint-disable-line react-hooks/rules-of-hooks + defaultClassname: 'frm-activate-addon frm-button-primary button button-primary', + loadingClassname: _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__["default"]["frm-loading"], + classnames: 'frm-activate-addon frm-button-primary button button-primary', + label: !blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess ? __('Install', 'formidable') : __('Activate', 'formidable'), + isLoading: false + }), + _useState2 = _slicedToArray(_useState, 2), + addonActivateButton = _useState2[0], + updateAddonActivateButton = _useState2[1]; + var activateViewsAddon = function activateViewsAddon() { + if (true === addonActivateButton.isLoading) { + return; + } + updateAddonActivateButton(_objectSpread(_objectSpread({}, addonActivateButton), {}, { + isLoading: true, + classnames: addonActivateButton.defaultClassname + ' ' + addonActivateButton.loadingClassname + })); + if (!blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess) { + _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_install_addon', blockData.viewsAddon.url).then(function () { + window.location.reload(); + }); + return; + } + _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_activate_addon', 'formidable-views/formidable-views.php').then(function () { + window.location.reload(); + }); + }; + var blockName = __('Formidable Views', 'formidable'); + var imageStyles = { + maxWidth: '504px', + height: 'auto', + borderRadius: '12px' + }; + var imageWrapperStyles = { + padding: '38px', + textAlign: 'center', + backgroundColor: '#f2f4f7', + marginTop: '24px' + }; + return wp.element.createElement("div", { + className: "frm-block-intro-screen" + }, wp.element.createElement("div", { + className: "frm-block-intro-content" + }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { + className: "frm-block-title" + }, blockName), wp.element.createElement("div", { + className: "frm-block-selector-screen frm_pro_tip", + style: { + alignSelf: 'stretch' + } + }, !blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, wp.element.createElement("div", { + style: { + maxWidth: '500px', + margin: 'auto' + } + }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("a", { + href: upgradeLink, + rel: "noreferrer", + target: "_blank" + }, __('Upgrade Formidable Forms', 'formidable'))), blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { + status: "warning", + isDismissible: false + }, wp.element.createElement("div", { + style: { + maxWidth: '500px', + margin: 'auto' + } + }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("button", { + className: addonActivateButton.classnames, + onClick: activateViewsAddon, + type: "button" + }, " ", addonActivateButton.label, " ")), wp.element.createElement("div", { + style: imageWrapperStyles + }, wp.element.createElement("img", { + src: blockData.url + '/images/blocks/views-block-placeholder.jpg', + alt: blockName, + style: imageStyles + }))))); + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css": +/*!*********************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css ***! + \*********************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ "frm-loading": () => (/* binding */ _1), +/* harmony export */ spin: () => (/* binding */ spin) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `button.t3RQZV1ZQbHGYyQUnhIY { + cursor: progress; + opacity: 0.7; + position: relative; + text-indent: -999px; + min-width: 70px; + overflow: hidden; +} +button.t3RQZV1ZQbHGYyQUnhIY:before { + content: ''; + display: inline-block; + position: absolute; + background: transparent; + border: 1px solid #fff; + border-top-color: transparent; + border-left-color: transparent; + border-radius: 50%; + + box-sizing: border-box; + top: 50%; + left: 50%; + margin-top: -10px; + margin-left: -10px; + width: 20px; + height: 20px; + + animation: Ts7haRQUDk0YMfLiQW00 2s linear infinite; +}`, "",{"version":3,"sources":["webpack://./js/src/form/css/button.module.css"],"names":[],"mappings":"AAAA;CACC,gBAAgB;CAChB,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB,eAAe;CACf,gBAAgB;AACjB;AACA;CACC,WAAW;CACX,qBAAqB;CACrB,kBAAkB;CAClB,uBAAuB;CACvB,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,kBAAkB;;CAElB,sBAAsB;CACtB,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,kBAAkB;CAClB,WAAW;CACX,YAAY;;CAEZ,kDAAkC;AACnC","sourcesContent":["button.frm-loading {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.frm-loading:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: spin 2s linear infinite;\n}"],"sourceRoot":""}]); +// Exports +var _1 = `t3RQZV1ZQbHGYyQUnhIY`; + +var spin = `Ts7haRQUDk0YMfLiQW00`; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function (cssWithMappingToString) { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + return this.map(function (item) { + var content = ""; + var needLayer = typeof item[5] !== "undefined"; + if (item[4]) { + content += "@supports (".concat(item[4], ") {"); + } + if (item[2]) { + content += "@media ".concat(item[2], " {"); + } + if (needLayer) { + content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); + } + content += cssWithMappingToString(item); + if (needLayer) { + content += "}"; + } + if (item[2]) { + content += "}"; + } + if (item[4]) { + content += "}"; + } + return content; + }).join(""); + }; + + // import a list of modules into the list + list.i = function i(modules, media, dedupe, supports, layer) { + if (typeof modules === "string") { + modules = [[null, modules, undefined]]; + } + var alreadyImportedModules = {}; + if (dedupe) { + for (var k = 0; k < this.length; k++) { + var id = this[k][0]; + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + for (var _k = 0; _k < modules.length; _k++) { + var item = [].concat(modules[_k]); + if (dedupe && alreadyImportedModules[item[0]]) { + continue; + } + if (typeof layer !== "undefined") { + if (typeof item[5] === "undefined") { + item[5] = layer; + } else { + item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); + item[5] = layer; + } + } + if (media) { + if (!item[2]) { + item[2] = media; + } else { + item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); + item[2] = media; + } + } + if (supports) { + if (!item[4]) { + item[4] = "".concat(supports); + } else { + item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); + item[4] = supports; + } + } + list.push(item); + } + }; + return list; +}; + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": +/*!************************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = function (item) { + var content = item[1]; + var cssMapping = item[3]; + if (!cssMapping) { + return content; + } + if (typeof btoa === "function") { + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); + var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); + var sourceMapping = "/*# ".concat(data, " */"); + return [content].concat([sourceMapping]).join("\n"); + } + return [content].join("\n"); +}; + +/***/ }), + +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/***/ ((module) => { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var printWarning = function() {}; + +if (true) { + var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); + var loggedTypeFailures = {}; + var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) { /**/ } + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (true) { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (true) { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; + + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); +var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); + +var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); +var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); +var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js"); + +var printWarning = function() {}; + +if (true) { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bigint: createPrimitiveTypeChecker('bigint'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message, data) { + this.message = message; + this.data = data && typeof data === 'object' ? data: {}; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (true) { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if ( true && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), + {expectedType: expectedType} + ); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (true) { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + var expectedTypes = []; + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); + if (checkerResult == null) { + return null; + } + if (checkerResult.data && has(checkerResult.data, 'expectedType')) { + expectedTypes.push(checkerResult.data.expectedType); + } + } + var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function invalidValidatorError(componentName, location, propFullName, key, type) { + return new PropTypeError( + (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' + ); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (has(shapeTypes, key) && typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (true) { + var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess); +} else {} + + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + + +/***/ }), + +/***/ "./node_modules/prop-types/lib/has.js": +/*!********************************************!*\ + !*** ./node_modules/prop-types/lib/has.js ***! + \********************************************/ +/***/ ((module) => { + +module.exports = Function.call.bind(Object.prototype.hasOwnProperty); + + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + + +if (true) { + (function() { +'use strict'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} + + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +if (false) {} else { + module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js"); +} + + +/***/ }), + +/***/ "./js/src/form/css/button.module.css": +/*!*******************************************!*\ + !*** ./js/src/form/css/button.module.css ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ "frm-loading": () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["frm-loading"]), +/* harmony export */ spin: () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__.spin) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!./button.module.css */ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": +/*!****************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +var stylesInDOM = []; +function getIndexByIdentifier(identifier) { + var result = -1; + for (var i = 0; i < stylesInDOM.length; i++) { + if (stylesInDOM[i].identifier === identifier) { + result = i; + break; + } + } + return result; +} +function modulesToDom(list, options) { + var idCountMap = {}; + var identifiers = []; + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var id = options.base ? item[0] + options.base : item[0]; + var count = idCountMap[id] || 0; + var identifier = "".concat(id, " ").concat(count); + idCountMap[id] = count + 1; + var indexByIdentifier = getIndexByIdentifier(identifier); + var obj = { + css: item[1], + media: item[2], + sourceMap: item[3], + supports: item[4], + layer: item[5] + }; + if (indexByIdentifier !== -1) { + stylesInDOM[indexByIdentifier].references++; + stylesInDOM[indexByIdentifier].updater(obj); + } else { + var updater = addElementStyle(obj, options); + options.byIndex = i; + stylesInDOM.splice(i, 0, { + identifier: identifier, + updater: updater, + references: 1 + }); + } + identifiers.push(identifier); + } + return identifiers; +} +function addElementStyle(obj, options) { + var api = options.domAPI(options); + api.update(obj); + var updater = function updater(newObj) { + if (newObj) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { + return; + } + api.update(obj = newObj); + } else { + api.remove(); + } + }; + return updater; +} +module.exports = function (list, options) { + options = options || {}; + list = list || []; + var lastIdentifiers = modulesToDom(list, options); + return function update(newList) { + newList = newList || []; + for (var i = 0; i < lastIdentifiers.length; i++) { + var identifier = lastIdentifiers[i]; + var index = getIndexByIdentifier(identifier); + stylesInDOM[index].references--; + } + var newLastIdentifiers = modulesToDom(newList, options); + for (var _i = 0; _i < lastIdentifiers.length; _i++) { + var _identifier = lastIdentifiers[_i]; + var _index = getIndexByIdentifier(_identifier); + if (stylesInDOM[_index].references === 0) { + stylesInDOM[_index].updater(); + stylesInDOM.splice(_index, 1); + } + } + lastIdentifiers = newLastIdentifiers; + }; +}; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": +/*!********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! + \********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +var memo = {}; + +/* istanbul ignore next */ +function getTarget(target) { + if (typeof memo[target] === "undefined") { + var styleTarget = document.querySelector(target); + + // Special case to return head of iframe instead of iframe itself + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch (e) { + // istanbul ignore next + styleTarget = null; + } + } + memo[target] = styleTarget; + } + return memo[target]; +} + +/* istanbul ignore next */ +function insertBySelector(insert, style) { + var target = getTarget(insert); + if (!target) { + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); + } + target.appendChild(style); +} +module.exports = insertBySelector; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": +/*!**********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! + \**********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* istanbul ignore next */ +function insertStyleElement(options) { + var element = document.createElement("style"); + options.setAttributes(element, options.attributes); + options.insert(element, options.options); + return element; +} +module.exports = insertStyleElement; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +/* istanbul ignore next */ +function setAttributesWithoutAttributes(styleElement) { + var nonce = true ? __webpack_require__.nc : 0; + if (nonce) { + styleElement.setAttribute("nonce", nonce); + } +} +module.exports = setAttributesWithoutAttributes; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": +/*!***************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* istanbul ignore next */ +function apply(styleElement, options, obj) { + var css = ""; + if (obj.supports) { + css += "@supports (".concat(obj.supports, ") {"); + } + if (obj.media) { + css += "@media ".concat(obj.media, " {"); + } + var needLayer = typeof obj.layer !== "undefined"; + if (needLayer) { + css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); + } + css += obj.css; + if (needLayer) { + css += "}"; + } + if (obj.media) { + css += "}"; + } + if (obj.supports) { + css += "}"; + } + var sourceMap = obj.sourceMap; + if (sourceMap && typeof btoa !== "undefined") { + css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); + } + + // For old IE + /* istanbul ignore if */ + options.styleTagTransform(css, styleElement, options.options); +} +function removeStyleElement(styleElement) { + // istanbul ignore if + if (styleElement.parentNode === null) { + return false; + } + styleElement.parentNode.removeChild(styleElement); +} + +/* istanbul ignore next */ +function domAPI(options) { + if (typeof document === "undefined") { + return { + update: function update() {}, + remove: function remove() {} + }; + } + var styleElement = options.insertStyleElement(options); + return { + update: function update(obj) { + apply(styleElement, options, obj); + }, + remove: function remove() { + removeStyleElement(styleElement); + } + }; +} +module.exports = domAPI; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": +/*!*********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* istanbul ignore next */ +function styleTagTransform(css, styleElement) { + if (styleElement.styleSheet) { + styleElement.styleSheet.cssText = css; + } else { + while (styleElement.firstChild) { + styleElement.removeChild(styleElement.firstChild); + } + styleElement.appendChild(document.createTextNode(css)); + } +} +module.exports = styleTagTransform; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/nonce */ +/******/ (() => { +/******/ __webpack_require__.nc = undefined; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!**************************!*\ + !*** ./js/src/blocks.js ***! + \**************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _form_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form/block */ "./js/src/form/block.js"); +/* harmony import */ var _form_calculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form/calculator */ "./js/src/form/calculator.js"); +/* harmony import */ var _form_modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./form/modal */ "./js/src/form/modal.js"); +/* harmony import */ var _form_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./form/graph */ "./js/src/form/graph.js"); +/* harmony import */ var _form_views__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form/views */ "./js/src/form/views.js"); +/** + * Formidable Simple Blocks + * + */ + + + + + + +})(); + +/******/ })() +; +//# sourceMappingURL=formidable_blocks.js.map \ No newline at end of file diff --git a/js/formidable_dashboard.js b/js/formidable_dashboard.js index b275064174..b161665a3a 100644 --- a/js/formidable_dashboard.js +++ b/js/formidable_dashboard.js @@ -1 +1,917 @@ -(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=i,this.prepareElements()},i=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,i){e.classList.remove("frm-animate"),e.style.transitionDelay=(i+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,i){t.addEventListener("click",(function(t){return e.onNavClick(t,i)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var i=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),i.classList.add("frm-active"),this.initSlideTrackUnderline(i,t),this.changeSlide(t);var n,r,o=i.querySelector("a");o&&"frm_insert_fields_tab"===o.id&&!o.closest("#frm_adv_info")&&(null===(n=window.frmAdminBuild)||void 0===n||null===(r=n.clearSettingsBox)||void 0===r||r.call(n))}},{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 i=void 0!==e?e:this.navs.filter((function(e){return e.classList.contains("frm-active")}));this.positionUnderlineIndicator(i)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var i=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(i,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function u(e){return u="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},u(e)}function f(e,t){for(var i=0;i { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./js/src/components/class-counter.js": +/*!********************************************!*\ + !*** ./js/src/components/class-counter.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmCounter: () => (/* binding */ frmCounter) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmCounter = /*#__PURE__*/function () { + /** + * Init frmCounter + * + * @param {Element} element + * @param {Object} options + * @param {number} options.timetoFinish Max time in mileseconds for counter to complete the animation. + */ + function frmCounter(element, options) { + _classCallCheck(this, frmCounter); + if (!(element instanceof Element) || !element.dataset.counter) { + return; + } + this.template = element.dataset.type || 'default'; + this.element = element; + this.value = parseInt(element.dataset.counter, 10); + this.activeCounter = 0; + this.locale = element.dataset.locale ? element.dataset.locale.replace('_', '-') : 'en-US'; + this.timeoutInterval = 50; + this.timeToFinish = 'undefined' !== typeof options && 'undefined' !== typeof options.timetoFinish ? options.timetoFinish : 1400; + this.valueStep = this.value / Math.ceil(this.timeToFinish / this.timeoutInterval); + if (0 === this.value) { + return; + } + this.animate(); + } + return _createClass(frmCounter, [{ + key: "formatNumber", + value: function formatNumber(number) { + if ('currency' === this.template) { + return number.toLocaleString(this.locale, { + minimumFractionDigits: 2 + }); + } + return number; + } + }, { + key: "animate", + value: function animate() { + if (Math.round(this.activeCounter) < this.value) { + this.activeCounter += this.valueStep; + this.element.innerText = this.formatNumber(Math.round(this.activeCounter)); + setTimeout(this.animate.bind(this), this.timeoutInterval); + } else { + this.element.innerText = this.formatNumber(this.value); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/components/class-tabs-navigator.js": +/*!***************************************************!*\ + !*** ./js/src/components/class-tabs-navigator.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmTabsNavigator = /*#__PURE__*/function () { + function frmTabsNavigator(wrapper) { + _classCallCheck(this, frmTabsNavigator); + if ('undefined' === typeof wrapper) { + return; + } + this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); + if (null === this.wrapper) { + return; + } + this.flexboxSlidesGap = '16px'; + this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; + this.resizeObserver = null; + this.init(); + } + return _createClass(frmTabsNavigator, [{ + key: "init", + value: function init() { + var _this = this; + if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { + return; + } + this.initDefaultSlideTrackerWidth(); + this.navs.forEach(function (nav, index) { + nav.addEventListener('click', function (event) { + return _this.onNavClick(event, index); + }); + }); + this.setupScrollbarObserver(); + // Cleanup observers when page unloads to prevent memory leaks + window.addEventListener('beforeunload', this.cleanupObservers); + } + }, { + key: "onNavClick", + value: function onNavClick(event, index) { + var navItem = event.currentTarget; + event.preventDefault(); + this.removeActiveClassnameFromNavs(); + navItem.classList.add('frm-active'); + this.initSlideTrackUnderline(navItem, index); + this.changeSlide(index); + + // Handle special case for frm_insert_fields_tab + var navLink = navItem.querySelector('a'); + if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { + var _window$frmAdminBuild, _window$frmAdminBuild2; + (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); + } + } + }, { + key: "initDefaultSlideTrackerWidth", + value: function initDefaultSlideTrackerWidth() { + if (!this.slideTrackLine.dataset.initialWidth) { + return; + } + this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); + } + }, { + key: "initSlideTrackUnderline", + value: function initSlideTrackUnderline(nav, index) { + this.slideTrackLine.classList.remove('frm-first', 'frm-last'); + var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { + return nav.classList.contains('frm-active'); + }); + this.positionUnderlineIndicator(activeNav); + } + + /** + * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. + * Automatically repositions the underline indicator when layout changes occur. + */ + }, { + key: "setupScrollbarObserver", + value: function setupScrollbarObserver() { + var _this2 = this; + var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); + if (!scrollbarWrapper || !('ResizeObserver' in window)) { + return; + } + this.resizeObserver = new ResizeObserver(function () { + var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); + if (activeNav) { + _this2.positionUnderlineIndicator(activeNav); + } + }); + this.resizeObserver.observe(scrollbarWrapper); + } + + /** + * Cleans up observers to prevent memory leaks. + */ + }, { + key: "cleanupObservers", + value: function cleanupObservers() { + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + } + } + + /** + * Positions the underline indicator based on the active navigation element. + * + * @param {HTMLElement} activeNav The active navigation element to position the underline under + */ + }, { + key: "positionUnderlineIndicator", + value: function positionUnderlineIndicator(activeNav) { + var _this3 = this; + requestAnimationFrame(function () { + var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; + _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); + _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; + }); + } + }, { + key: "changeSlide", + value: function changeSlide(index) { + this.removeActiveClassnameFromSlides(); + var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); + if ('0px' !== translate) { + this.slideTrack.style.transform = "translateX(".concat(translate, ")"); + } else { + this.slideTrack.style.removeProperty('transform'); + } + if (index in this.slides) { + this.slides[index].classList.add('frm-active'); + } + } + }, { + key: "removeActiveClassnameFromSlides", + value: function removeActiveClassnameFromSlides() { + this.slides.forEach(function (slide) { + return slide.classList.remove('frm-active'); + }); + } + }, { + key: "removeActiveClassnameFromNavs", + value: function removeActiveClassnameFromNavs() { + this.navs.forEach(function (nav) { + return nav.classList.remove('frm-active'); + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/** + * Removes a query parameter and updates history with replaceState. + * + * @param {string} paramName The query parameter to remove. + * @return {void} + */ +var removeParamFromHistory = function removeParamFromHistory(paramName) { + return history.replaceState({}, '', removeQueryParam(paramName)); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!*****************************!*\ + !*** ./js/src/dashboard.js ***! + \*****************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); +/* harmony import */ var _components_class_counter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/class-counter */ "./js/src/components/class-counter.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + + + +var frmDashboard = /*#__PURE__*/function () { + function frmDashboard() { + _classCallCheck(this, frmDashboard); + this.options = { + ajax: { + action: 'dashboard_ajax_action', + dashboardActions: { + welcomeBanner: 'welcome-banner-has-closed', + checkEmailIfSubscribed: 'email-has-subscribed', + saveSubscribedEmail: 'save-subscribed-email' + } + } + }; + this.widgetsAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(document.querySelectorAll('.frm-dashboard-widget'), 'cascade'); + } + return _createClass(frmDashboard, [{ + key: "init", + value: function init() { + this.initInbox(); + this.initCounters(); + this.initCloseWelcomeBanner(); + this.widgetsAnimate.cascadeFadeIn(); + } + }, { + key: "initInbox", + value: function initInbox() { + var _this = this; + new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__.frmTabsNavigator('.frm-inbox-wrapper'); + var userEmailInput = document.querySelector('#frm_leave_email'); + var subscribeButton = document.querySelector('#frm-add-my-email-address'); + subscribeButton.addEventListener('click', function () { + _this.saveSubscribedEmail(userEmailInput.value).then(); + }); + } + }, { + key: "initCounters", + value: function initCounters() { + var counters = document.querySelectorAll('.frm-counter'); + counters.forEach(function (counter) { + return new _components_class_counter__WEBPACK_IMPORTED_MODULE_2__.frmCounter(counter); + }); + } + }, { + key: "initCloseWelcomeBanner", + value: function initCloseWelcomeBanner() { + var _this2 = this; + var closeButton = document.querySelector('.frm-dashboard-banner-close'); + var dashboardBanner = document.querySelector('.frm-dashboard-banner'); + if (!closeButton || !dashboardBanner) { + return; + } + closeButton.addEventListener('click', function () { + _this2.closeWelcomeBannerSaveCookieRequest().then(function (data) { + if (true === data.success) { + dashboardBanner.remove(); + } + }); + }); + } + }, { + key: "saveSubscribedEmail", + value: function saveSubscribedEmail(email) { + return fetch(window.ajaxurl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + action: this.options.ajax.action, + dashboard_action: this.options.ajax.dashboardActions.saveSubscribedEmail, + email: email + }) + }).then(function (result) { + return result.json(); + }); + } + }, { + key: "closeWelcomeBannerSaveCookieRequest", + value: function closeWelcomeBannerSaveCookieRequest() { + return fetch(window.ajaxurl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + action: this.options.ajax.action, + dashboard_action: this.options.ajax.dashboardActions.welcomeBanner, + banner_has_closed: 1 + }) + }).then(function (result) { + return result.json(); + }); + } + }]); +}(); +var frmDashboardClass = new frmDashboard(); +document.addEventListener('DOMContentLoaded', function () { + frmDashboardClass.init(); +}); +/******/ })() +; +//# sourceMappingURL=formidable_dashboard.js.map \ No newline at end of file diff --git a/js/formidable_dashboard.js.map b/js/formidable_dashboard.js.map index e223681386..448b1f4bd6 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/components/class-counter.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.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 frmCounter {\n\t/**\n\t * Init frmCounter\n\t *\n\t * @param {Element} element\n\t * @param {Object} options\n\t * @param {number} 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\t}\n}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', () => this.cleanupObservers() );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","// 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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\nimport { frmTabsNavigator } from './components/class-tabs-navigator';\nimport { frmCounter } from './components/class-counter';\nclass frmDashboard {\n\tconstructor() {\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":["frmCounter","element","options","_classCallCheck","Element","dataset","counter","template","type","value","parseInt","activeCounter","locale","replace","timeoutInterval","timeToFinish","timetoFinish","valueStep","Math","ceil","animate","_createClass","key","formatNumber","number","toLocaleString","minimumFractionDigits","round","innerText","setTimeout","bind","frmTabsNavigator","wrapper","document","querySelector","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","forEach","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","concat","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","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","frmDashboard","ajax","action","dashboardActions","welcomeBanner","checkEmailIfSubscribed","saveSubscribedEmail","widgetsAnimate","initInbox","initCounters","initCloseWelcomeBanner","userEmailInput","subscribeButton","counters","closeButton","dashboardBanner","closeWelcomeBannerSaveCookieRequest","data","success","fetch","ajaxurl","method","headers","URLSearchParams","dashboard_action","result","json","banner_has_closed","frmDashboardClass"],"sourceRoot":""} +{"version":3,"file":"formidable_dashboard.js","mappings":"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","sources":["webpack://formidable/./js/src/components/class-counter.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.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 frmCounter {\n\t/**\n\t * Init frmCounter\n\t *\n\t * @param {Element} element\n\t * @param {Object} options\n\t * @param {number} 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\t}\n}\n","export class frmTabsNavigator {\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\t\tthis.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl';\n\t\tthis.resizeObserver = null;\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.slideTrackLine || 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\n\t\tthis.setupScrollbarObserver();\n\t\t// Cleanup observers when page unloads to prevent memory leaks\n\t\twindow.addEventListener( 'beforeunload', this.cleanupObservers );\n\t}\n\n\tonNavClick( event, index ) {\n\t\tconst navItem = event.currentTarget;\n\n\t\tevent.preventDefault();\n\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tnavItem.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( navItem, index );\n\t\tthis.changeSlide( index );\n\n\t\t// Handle special case for frm_insert_fields_tab\n\t\tconst navLink = navItem.querySelector( 'a' );\n\t\tif ( navLink && navLink.id === 'frm_insert_fields_tab' && ! navLink.closest( '#frm_adv_info' ) ) {\n\t\t\twindow.frmAdminBuild?.clearSettingsBox?.();\n\t\t}\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.positionUnderlineIndicator( activeNav );\n\t}\n\n\t/**\n\t * Sets up a ResizeObserver to watch for scrollbar changes in the parent container.\n\t * Automatically repositions the underline indicator when layout changes occur.\n\t */\n\tsetupScrollbarObserver() {\n\t\tconst scrollbarWrapper = this.wrapper.closest( '.frm-scrollbar-wrapper' );\n\n\t\tif ( ! scrollbarWrapper || ! ( 'ResizeObserver' in window ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver( () => {\n\t\t\tconst activeNav = this.wrapper.querySelector( '.frm-tabs-navs ul > li.frm-active' );\n\t\t\tif ( activeNav ) {\n\t\t\t\tthis.positionUnderlineIndicator( activeNav );\n\t\t\t}\n\t\t} );\n\n\t\tthis.resizeObserver.observe( scrollbarWrapper );\n\t}\n\n\t/**\n\t * Cleans up observers to prevent memory leaks.\n\t */\n\tcleanupObservers() {\n\t\tif ( this.resizeObserver ) {\n\t\t\tthis.resizeObserver.disconnect();\n\t\t\tthis.resizeObserver = null;\n\t\t}\n\t}\n\n\t/**\n\t * Positions the underline indicator based on the active navigation element.\n\t *\n\t * @param {HTMLElement} activeNav The active navigation element to position the underline under\n\t */\n\tpositionUnderlineIndicator( activeNav ) {\n\t\trequestAnimationFrame( () => {\n\t\t\tconst position = this.isRTL\n\t\t\t\t? -( activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth )\n\t\t\t\t: activeNav.offsetLeft;\n\n\t\t\tthis.slideTrackLine.style.transform = `translateX(${ position }px)`;\n\t\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\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 ) * ${ this.isRTL ? 1 : -1 } )`;\n\t\tif ( '0px' !== translate ) {\n\t\t\tthis.slideTrack.style.transform = `translateX(${ translate })`;\n\t\t} else {\n\t\t\tthis.slideTrack.style.removeProperty( 'transform' );\n\t\t}\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","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\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 {number} delay The transition delay value.\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","// 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","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\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/**\n * Removes a query parameter and updates history with replaceState.\n *\n * @param {string} paramName The query parameter to remove.\n * @return {void}\n */\nexport const removeParamFromHistory = paramName =>\n\thistory.replaceState( {}, '', removeQueryParam( 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","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/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","// 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 = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\nimport { frmTabsNavigator } from './components/class-tabs-navigator';\nimport { frmCounter } from './components/class-counter';\nclass frmDashboard {\n\tconstructor() {\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":["frmCounter","element","options","_classCallCheck","Element","dataset","counter","template","type","value","parseInt","activeCounter","locale","replace","timeoutInterval","timeToFinish","timetoFinish","valueStep","Math","ceil","animate","_createClass","key","formatNumber","number","toLocaleString","minimumFractionDigits","round","innerText","setTimeout","bind","frmTabsNavigator","wrapper","document","querySelector","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","isRTL","documentElement","dir","body","resizeObserver","init","_this","length","initDefaultSlideTrackerWidth","forEach","nav","index","addEventListener","event","onNavClick","setupScrollbarObserver","window","cleanupObservers","navItem","currentTarget","preventDefault","removeActiveClassnameFromNavs","classList","add","initSlideTrackUnderline","changeSlide","navLink","id","closest","_window$frmAdminBuild","_window$frmAdminBuild2","frmAdminBuild","clearSettingsBox","call","initialWidth","style","width","concat","remove","activeNav","filter","contains","positionUnderlineIndicator","_this2","scrollbarWrapper","ResizeObserver","observe","disconnect","_this3","requestAnimationFrame","position","parentElement","offsetWidth","offsetLeft","transform","clientWidth","removeActiveClassnameFromSlides","translate","removeProperty","slide","_window$frmGlobal","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","frmAnimate","elements","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","setAttribute","_window$frmDom$util","frmDom","util","onClickPreventDefault","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","includes","state","_defineProperty","history","hasQueryParam","has","removeParamFromHistory","replaceState","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","frmDashboard","ajax","action","dashboardActions","welcomeBanner","checkEmailIfSubscribed","saveSubscribedEmail","widgetsAnimate","initInbox","initCounters","initCloseWelcomeBanner","userEmailInput","subscribeButton","counters","closeButton","dashboardBanner","closeWelcomeBannerSaveCookieRequest","data","success","fetch","ajaxurl","method","headers","URLSearchParams","dashboard_action","result","json","banner_has_closed","frmDashboardClass"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable_overlay.js b/js/formidable_overlay.js index dfe0f80f4e..533a32231a 100644 --- a/js/formidable_overlay.js +++ b/js/formidable_overlay.js @@ -1 +1,745 @@ -(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,r){e.classList.remove("frm-animate"),e.style.transitionDelay=(r+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./js/src/components/class-overlay.js": +/*!********************************************!*\ + !*** ./js/src/components/class-overlay.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmOverlay: () => (/* binding */ frmOverlay) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * External dependencies + */ + +var frmOverlay = /*#__PURE__*/function () { + function frmOverlay() { + _classCallCheck(this, frmOverlay); + this.body = document.body; + } + + /** + * Open overlay + * + * @param {Object} overlayData An object containing data for the overlay. + * @param {string} overlayData.hero_image URL of the hero image. + * @param {string} overlayData.heading Heading of the overlay. + * @param {string} overlayData.copy Copy/content of the overlay. + * @param {Array} overlayData.buttons Array of button objects. + * @param {string} overlayData.buttons[].url URL for the button. + * @param {string} overlayData.buttons[].target Target attribute for the button link. + * @param {string} overlayData.buttons[].label Label/text of the button. + */ + return _createClass(frmOverlay, [{ + key: "open", + value: function open(overlayData) { + this.overlayData = { + hero_image: null, + heading: null, + copy: null, + buttons: [] + }; + this.overlayData = _objectSpread(_objectSpread({}, this.overlayData), overlayData); + this.bodyAddOverflowHidden(); + this.body.insertBefore(this.buildOverlay(), this.body.firstChild); + this.initCloseButton(); + this.initOverlayIntroAnimation(200); + } + }, { + key: "bodyAddOverflowHidden", + value: function bodyAddOverflowHidden() { + this.body.classList.add('frm-hidden-overflow'); + setTimeout(function () { + document.body.scrollTop = 0; + document.documentElement.scrollTop = 0; + }, 80); + } + }, { + key: "close", + value: function close() { + var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); + if (overlayWrapper) { + document.body.classList.remove('frm-hidden-overflow'); + overlayWrapper.remove(); + } + } + }, { + key: "initCloseButton", + value: function initCloseButton() { + var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); + if (overlayWrapper) { + var closeButton = document.createElement('span'); + closeButton.classList.add('frm-overlay--close'); + closeButton.addEventListener('click', this.close); + overlayWrapper.prepend(closeButton); + } + } + }, { + key: "getHeroImage", + value: function getHeroImage() { + if (this.overlayData.hero_image) { + return frmDom.img({ + src: this.overlayData.hero_image + }); + } + return ''; + } + }, { + key: "getButtons", + value: function getButtons() { + var buttons = this.overlayData.buttons.map(function (button, index) { + if (!button.url || '' === button.url) { + return ''; + } + var buttonTypeClassname = 1 === index ? 'frm-button-primary' : 'frm-button-secondary'; + var options = { + href: button.url, + text: button.label, + className: 'button frm_animate_bg ' + buttonTypeClassname + }; + if (button.target) { + options.target = button.target; + } + return frmDom.a(options); + }); + if (buttons) { + var buttonsWrapperElementOptions = { + className: 'frm-overlay--cta frm-flex-box', + children: buttons + }; + return frmDom.div(buttonsWrapperElementOptions); + } + return ''; + } + }, { + key: "getHeading", + value: function getHeading() { + if (this.overlayData.heading) { + return frmDom.tag('h2', { + className: 'frm-overlay--heading frm-text-xl', + text: this.overlayData.heading + }); + } + return ''; + } + }, { + key: "getCopy", + value: function getCopy() { + if (this.overlayData.copy) { + var copy = frmDom.tag('div'); + copy.innerHTML = this.overlayData.copy; + return frmDom.div({ + className: 'frm-overlay--copy', + child: copy + }); + } + return ''; + } + }, { + key: "initOverlayIntroAnimation", + value: function initOverlayIntroAnimation(delay) { + setTimeout(function () { + var elements = document.querySelectorAll('.frm-overlay--hero-image, .frm-overlay--heading, .frm-overlay--copy, .frm-overlay--cta a'); + new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(elements, 'cascade-3d').cascadeFadeIn(0.07); + }, delay); + } + }, { + key: "buildOverlay", + value: function buildOverlay() { + var container = frmDom.div({ + className: 'frm-overlay--container', + children: [frmDom.div({ + className: 'frm-overlay--hero-image frm-mb-md', + children: [this.getHeroImage()] + }), this.getHeading(), this.getCopy(), this.getButtons()] + }); + return frmDom.div({ + className: 'frm-overlay--wrapper frm_wrap', + children: [container] + }); + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/** + * Removes a query parameter and updates history with replaceState. + * + * @param {string} paramName The query parameter to remove. + * @return {void} + */ +var removeParamFromHistory = function removeParamFromHistory(paramName) { + return history.replaceState({}, '', removeQueryParam(paramName)); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!***************************!*\ + !*** ./js/src/overlay.js ***! + \***************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/class-overlay */ "./js/src/components/class-overlay.js"); + +window.frmOverlay = new _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__.frmOverlay(); +/******/ })() +; +//# sourceMappingURL=formidable_overlay.js.map \ No newline at end of file diff --git a/js/formidable_styles.js b/js/formidable_styles.js index 76a6b9259d..09bfa29043 100644 --- a/js/formidable_styles.js +++ b/js/formidable_styles.js @@ -1 +1,3027 @@ -(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,i=0;function o(){var o,a,s=n,c=arguments.length;t:for(;s;){if(s.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(t){return function(t,e){var n,r,a,s,c,u,l,f,p,d=1,h=t.length,v="";for(r=0;r=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?p="":(p=f?"+":"-",n=n.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",l=s.width-(p+n).length,c=s.width&&l>0?u.repeat(l):"",v+=s.align?p+n+c:"0"===u?p+c+n:c+p+n)}return v}(function(t){if(s[t])return s[t];for(var e,n=t,r=[],o=0;n;){if(null!==(e=i.text.exec(n)))r.push(e[0]);else if(null!==(e=i.modulo.exec(n)))r.push("%");else{if(null===(e=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){o|=1;var a=[],c=e[2],u=[];if(null===(u=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=i.key_access.exec(c)))a.push(u[1]);else{if(null===(u=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(u[1])}e[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return s[t]=r}(t),arguments)}function a(t,e){return o.apply(null,[t].concat(e||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(r=function(){return{sprintf:o,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t,e,r,i,o=n(616),a=n.n(o);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}n(604),a()(console.error),t={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},e=["(","?"],r={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var u={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var l={contextDelimiter:"",onMissingKey:null};function f(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},l)this.options[n]=void 0!==e&&n in e?e[n]:l[n]}function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e=0||t[c]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(m(n)&&y(r))if("function"==typeof i)if("number"==typeof o){var s={callback:i,priority:o,namespace:r};if(a[n]){var c,u=a[n].handlers;for(c=u.length;c>0&&!(o>=u[c-1].priority);c--);c===u.length?u[c]=s:u.splice(c,0,s),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=c&&t.currentIndex++}))}else a[n]={handlers:[s],runs:0};"hookAdded"!==n&&t.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.")}},g=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,i){var o=t[e];if(m(r)&&(n||y(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,c=function(t){s[t].namespace===i&&(s.splice(t,1),a++,o.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},u=s.length-1;u>=0;u--)c(u);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,i),a}}},_=function(t,e){return function(n,r){var i=t[e];return void 0!==r?n in i&&i[n].handlers.some((function(t){return t.namespace===r})):n in i}},x=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var i=t[e];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),c=1;c1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=d(d(d({},h),r.data[e]),t),r.data[e][""]=d(d({},h[""]),r.data[e][""])},s=function(t,e){a(t,e),o()},c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=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[t]||a(void 0,t),r.dcnpgettext(t,e,n,i,o)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},l=function(t,e,r){var i=c(r,e,t);return n?(i=n.applyFilters("i18n.gettext_with_context",i,t,e,r),n.applyFilters("i18n.gettext_with_context_"+u(r),i,t,e,r)):i};if(n){var p=function(t){v.test(t)&&o()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:s,resetLocaleData:function(t,e){r.data={},r.pluralForms={},s(t,e)},subscribe:function(t){return i.add(t),function(){return i.delete(t)}},__:function(t,e){var r=c(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+u(e),r,t,e)):r},_x:l,_n:function(t,e,r,i){var o=c(i,void 0,t,e,r);return n?(o=n.applyFilters("i18n.ngettext",o,t,e,r,i),n.applyFilters("i18n.ngettext_"+u(i),o,t,e,r,i)):o},_nx:function(t,e,r,i,o){var a=c(o,i,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,i,o),n.applyFilters("i18n.ngettext_with_context_"+u(o),a,t,e,r,i,o)):a},isRTL:function(){return"rtl"===l("ltr","text direction")},hasTranslation:function(t,e,i){var o,a,s=e?e+""+t:t,c=!(null===(o=r.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[s]);return n&&(c=n.applyFilters("i18n.has_translation",c,t,e,i),c=n.applyFilters("i18n.has_translation_"+u(i),c,t,e,i)),c}}}(0,0,A));F.getLocaleData.bind(F),F.setLocaleData.bind(F),F.resetLocaleData.bind(F),F.subscribe.bind(F);var j=F.__.bind(F);function E(t){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function O(t,e){for(var n=0;n ul").querySelectorAll(":scope > li").forEach((function(t){t.querySelector("h3").addEventListener("mouseover",(function(t){e.style.transform="translateY(".concat(t.target.closest("li").offsetTop,"px)"),e.classList.add("frm-animating"),e.classList.remove("frm_hidden"),setTimeout((function(){e.classList.remove("frm-animating")}),250)}))})),document.querySelectorAll("#frm_style_sidebar .accordion-section h3").forEach((function(t){t.addEventListener("click",(function(){e.classList.add("frm_hidden")}))}))}}},{key:"initStyleClassCopyToClipboard",value:function(t){var e=this;document.querySelector(".frm-copy-text").addEventListener("click",(function(n){var r=n.currentTarget.innerText;navigator.clipboard.writeText(r).then((function(){e.success(t)}))}))}}])&&I(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}())})()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@tannin/compile/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/compile/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ compile) +/* harmony export */ }); +/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); +/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); + + + +/** + * Given a C expression, returns a function which can be called to evaluate its + * result. + * + * @example + * + * ```js + * import compile from '@tannin/compile'; + * + * const evaluate = compile( 'n > 1' ); + * + * evaluate( { n: 2 } ); + * // ⇒ true + * ``` + * + * @param {string} expression C expression. + * + * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. + */ +function compile( expression ) { + var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( variables ) { + return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/evaluate/index.js": +/*!************************************************!*\ + !*** ./node_modules/@tannin/evaluate/index.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ evaluate) +/* harmony export */ }); +/** + * Operator callback functions. + * + * @type {Object} + */ +var OPERATORS = { + '!': function( a ) { + return ! a; + }, + '*': function( a, b ) { + return a * b; + }, + '/': function( a, b ) { + return a / b; + }, + '%': function( a, b ) { + return a % b; + }, + '+': function( a, b ) { + return a + b; + }, + '-': function( a, b ) { + return a - b; + }, + '<': function( a, b ) { + return a < b; + }, + '<=': function( a, b ) { + return a <= b; + }, + '>': function( a, b ) { + return a > b; + }, + '>=': function( a, b ) { + return a >= b; + }, + '==': function( a, b ) { + return a === b; + }, + '!=': function( a, b ) { + return a !== b; + }, + '&&': function( a, b ) { + return a && b; + }, + '||': function( a, b ) { + return a || b; + }, + '?:': function( a, b, c ) { + if ( a ) { + throw b; + } + + return c; + }, +}; + +/** + * Given an array of postfix terms and operand variables, returns the result of + * the postfix evaluation. + * + * @example + * + * ```js + * import evaluate from '@tannin/evaluate'; + * + * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' + * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; + * + * evaluate( terms, {} ); + * // ⇒ 6.333333333333334 + * ``` + * + * @param {string[]} postfix Postfix terms. + * @param {Object} variables Operand variables. + * + * @return {*} Result of evaluation. + */ +function evaluate( postfix, variables ) { + var stack = [], + i, j, args, getOperatorResult, term, value; + + for ( i = 0; i < postfix.length; i++ ) { + term = postfix[ i ]; + + getOperatorResult = OPERATORS[ term ]; + if ( getOperatorResult ) { + // Pop from stack by number of function arguments. + j = getOperatorResult.length; + args = Array( j ); + while ( j-- ) { + args[ j ] = stack.pop(); + } + + try { + value = getOperatorResult.apply( null, args ); + } catch ( earlyReturn ) { + return earlyReturn; + } + } else if ( variables.hasOwnProperty( term ) ) { + value = variables[ term ]; + } else { + value = +term; + } + + stack.push( value ); + } + + return stack[ 0 ]; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/plural-forms/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@tannin/plural-forms/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pluralForms) +/* harmony export */ }); +/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); + + +/** + * Given a C expression, returns a function which, when called with a value, + * evaluates the result with the value assumed to be the "n" variable of the + * expression. The result will be coerced to its numeric equivalent. + * + * @param {string} expression C expression. + * + * @return {Function} Evaluator function. + */ +function pluralForms( expression ) { + var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); + + return function( n ) { + return +evaluate( { n: n } ); + }; +} + + +/***/ }), + +/***/ "./node_modules/@tannin/postfix/index.js": +/*!***********************************************!*\ + !*** ./node_modules/@tannin/postfix/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ postfix) +/* harmony export */ }); +var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + +/** + * Operator precedence mapping. + * + * @type {Object} + */ +PRECEDENCE = { + '(': 9, + '!': 8, + '*': 7, + '/': 7, + '%': 7, + '+': 6, + '-': 6, + '<': 5, + '<=': 5, + '>': 5, + '>=': 5, + '==': 4, + '!=': 4, + '&&': 3, + '||': 2, + '?': 1, + '?:': 1, +}; + +/** + * Characters which signal pair opening, to be terminated by terminators. + * + * @type {string[]} + */ +OPENERS = [ '(', '?' ]; + +/** + * Characters which signal pair termination, the value an array with the + * opener as its first member. The second member is an optional operator + * replacement to push to the stack. + * + * @type {string[]} + */ +TERMINATORS = { + ')': [ '(' ], + ':': [ '?', '?:' ], +}; + +/** + * Pattern matching operators and openers. + * + * @type {RegExp} + */ +PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + +/** + * Given a C expression, returns the equivalent postfix (Reverse Polish) + * notation terms as an array. + * + * If a postfix string is desired, simply `.join( ' ' )` the result. + * + * @example + * + * ```js + * import postfix from '@tannin/postfix'; + * + * postfix( 'n > 1' ); + * // ⇒ [ 'n', '1', '>' ] + * ``` + * + * @param {string} expression C expression. + * + * @return {string[]} Postfix terms. + */ +function postfix( expression ) { + var terms = [], + stack = [], + match, operator, term, element; + + while ( ( match = expression.match( PATTERN ) ) ) { + operator = match[ 0 ]; + + // Term is the string preceding the operator match. It may contain + // whitespace, and may be empty (if operator is at beginning). + term = expression.substr( 0, match.index ).trim(); + if ( term ) { + terms.push( term ); + } + + while ( ( element = stack.pop() ) ) { + if ( TERMINATORS[ operator ] ) { + if ( TERMINATORS[ operator ][ 0 ] === element ) { + // Substitution works here under assumption that because + // the assigned operator will no longer be a terminator, it + // will be pushed to the stack during the condition below. + operator = TERMINATORS[ operator ][ 1 ] || operator; + break; + } + } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { + // Push to stack if either an opener or when pop reveals an + // element of lower precedence. + stack.push( element ); + break; + } + + // For each popped from stack, push to terms. + terms.push( element ); + } + + if ( ! TERMINATORS[ operator ] ) { + stack.push( operator ); + } + + // Slice matched fragment from expression to continue match. + expression = expression.substr( match.index + operator.length ); + } + + // Push remainder of operand, if exists, to terms. + expression = expression.trim(); + if ( expression ) { + terms.push( expression ); + } + + // Pop remaining items from stack into terms. + return terms.concat( stack.reverse() ); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback AddHook + * + * Adds the hook to the appropriate hooks container. + * + * @param {string} hookName Name of hook to add + * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. + * @param {import('.').Callback} callback Function to call when the hook is run + * @param {number} [priority=10] Priority of this hook + */ + +/** + * Returns a function which, when invoked, will add a hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {AddHook} Function that adds a new hook. + */ + +function createAddHook(hooks, storeKey) { + return function addHook(hookName, namespace, callback) { + var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } + + if ('function' !== typeof callback) { + // eslint-disable-next-line no-console + console.error('The hook callback must be a function.'); + return; + } // Validate numeric priority + + + if ('number' !== typeof priority) { + // eslint-disable-next-line no-console + console.error('If specified, the hook priority must be a number.'); + return; + } + + var handler = { + callback: callback, + priority: priority, + namespace: namespace + }; + + if (hooksStore[hookName]) { + // Find the correct insert index of the new hook. + var handlers = hooksStore[hookName].handlers; + /** @type {number} */ + + var i; + + for (i = handlers.length; i > 0; i--) { + if (priority >= handlers[i - 1].priority) { + break; + } + } + + if (i === handlers.length) { + // If append, operate via direct assignment. + handlers[i] = handler; + } else { + // Otherwise, insert before index via splice. + handlers.splice(i, 0, handler); + } // We may also be currently executing this hook. If the callback + // we're adding would come after the current callback, there's no + // problem; otherwise we need to increase the execution index of + // any other runs by 1 to account for the added element. + + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex++; + } + }); + } else { + // This is the first hook of its type. + hooksStore[hookName] = { + handlers: [handler], + runs: 0 + }; + } + + if (hookName !== 'hookAdded') { + hooks.doAction('hookAdded', hookName, namespace, callback, priority); + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); +//# sourceMappingURL=createAddHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Returns a function which, when invoked, will return the name of the + * currently running hook, or `null` if no hook of the given type is currently + * running. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {() => string | null} Function that returns the current hook name or null. + */ +function createCurrentHook(hooks, storeKey) { + return function currentHook() { + var _hooksStore$__current, _hooksStore$__current2; + + var hooksStore = hooks[storeKey]; + 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; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); +//# sourceMappingURL=createCurrentHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + +/** + * @callback DidHook + * + * Returns the number of times an action has been fired. + * + * @param {string} hookName The hook name to check. + * + * @return {number | undefined} The number of times the hook has run. + */ + +/** + * Returns a function which, when invoked, will return the number of times a + * hook has been called. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DidHook} Function that returns a hook's call count. + */ + +function createDidHook(hooks, storeKey) { + return function didHook(hookName) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { + return; + } + + return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); +//# sourceMappingURL=createDidHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback DoingHook + * Returns whether a hook is currently being executed. + * + * @param {string} [hookName] The name of the hook to check for. If + * omitted, will check for any hook being executed. + * + * @return {boolean} Whether the hook is being executed. + */ + +/** + * Returns a function which, when invoked, will return whether a hook is + * currently being executed. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {DoingHook} Function that returns whether a hook is currently + * being executed. + */ +function createDoingHook(hooks, storeKey) { + return function doingHook(hookName) { + var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. + + if ('undefined' === typeof hookName) { + return 'undefined' !== typeof hooksStore.__current[0]; + } // Return the __current hook. + + + return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); +//# sourceMappingURL=createDoingHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * @callback HasHook + * + * Returns whether any handlers are attached for the given hookName and optional namespace. + * + * @param {string} hookName The name of the hook to check for. + * @param {string} [namespace] Optional. The unique namespace identifying the callback + * in the form `vendor/plugin/function`. + * + * @return {boolean} Whether there are handlers that are attached to the given hook. + */ + +/** + * Returns a function which, when invoked, will return whether any handlers are + * attached to a particular hook. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * + * @return {HasHook} Function that returns whether any handlers are + * attached to a particular hook and optional namespace. + */ +function createHasHook(hooks, storeKey) { + return function hasHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; // Use the namespace if provided. + + if ('undefined' !== typeof namespace) { + return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { + return hook.namespace === namespace; + }); + } + + return hookName in hooksStore; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); +//# sourceMappingURL=createHasHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _Hooks: () => (/* binding */ _Hooks), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); +/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); +/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); +/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); +/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); +/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); +/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); + + +/** + * Internal dependencies + */ + + + + + + + +/** + * Internal class for constructing hooks. Use `createHooks()` function + * + * Note, it is necessary to expose this class to make its type public. + * + * @private + */ + +var _Hooks = function _Hooks() { + (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); + + /** @type {import('.').Store} actions */ + this.actions = Object.create(null); + this.actions.__current = []; + /** @type {import('.').Store} filters */ + + this.filters = Object.create(null); + this.filters.__current = []; + this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); + this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); + this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); + this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); + this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); + this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); + this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); + this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); + this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); + this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); + this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); + this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); + this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); + this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); + this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); + this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); +}; +/** @typedef {_Hooks} Hooks */ + +/** + * Returns an instance of the hooks object. + * + * @return {Hooks} A Hooks instance. + */ + +function createHooks() { + return new _Hooks(); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); +//# sourceMappingURL=createHooks.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); +/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); +/** + * Internal dependencies + */ + + +/** + * @callback RemoveHook + * Removes the specified callback (or all callbacks) from the hook with a given hookName + * and namespace. + * + * @param {string} hookName The name of the hook to modify. + * @param {string} namespace The unique namespace identifying the callback in the + * form `vendor/plugin/function`. + * + * @return {number | undefined} The number of callbacks removed. + */ + +/** + * Returns a function which, when invoked, will remove a specified hook or all + * hooks by the given name. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, + * without regard to namespace. Used to create + * `removeAll*` functions. + * + * @return {RemoveHook} Function that removes hooks. + */ + +function createRemoveHook(hooks, storeKey) { + var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function removeHook(hookName, namespace) { + var hooksStore = hooks[storeKey]; + + if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { + return; + } + + if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { + return; + } // Bail if no hooks exist by this name + + + if (!hooksStore[hookName]) { + return 0; + } + + var handlersRemoved = 0; + + if (removeAll) { + handlersRemoved = hooksStore[hookName].handlers.length; + hooksStore[hookName] = { + runs: hooksStore[hookName].runs, + handlers: [] + }; + } else { + // Try to find the specified callback to remove. + var handlers = hooksStore[hookName].handlers; + + var _loop = function _loop(i) { + if (handlers[i].namespace === namespace) { + handlers.splice(i, 1); + handlersRemoved++; // This callback may also be part of a hook that is + // currently executing. If the callback we're removing + // comes after the current callback, there's no problem; + // otherwise we need to decrease the execution index of any + // other runs by 1 to account for the removed element. + + hooksStore.__current.forEach(function (hookInfo) { + if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { + hookInfo.currentIndex--; + } + }); + } + }; + + for (var i = handlers.length - 1; i >= 0; i--) { + _loop(i); + } + } + + if (hookName !== 'hookRemoved') { + hooks.doAction('hookRemoved', hookName, namespace); + } + + return handlersRemoved; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); +//# sourceMappingURL=createRemoveHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); + + +/** + * Returns a function which, when invoked, will execute all callbacks + * registered to a hook of the specified type, optionally returning the final + * value of the call chain. + * + * @param {import('.').Hooks} hooks Hooks instance. + * @param {import('.').StoreKey} storeKey + * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to + * return its first argument. + * + * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. + */ +function createRunHook(hooks, storeKey) { + var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return function runHooks(hookName) { + var hooksStore = hooks[storeKey]; + + if (!hooksStore[hookName]) { + hooksStore[hookName] = { + handlers: [], + runs: 0 + }; + } + + hooksStore[hookName].runs++; + var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. + + if (true) { + // Handle any 'all' hooks registered. + if ('hookAdded' !== hookName && hooksStore.all) { + handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); + } + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!handlers || !handlers.length) { + return returnFirstArg ? args[0] : undefined; + } + + var hookInfo = { + name: hookName, + currentIndex: 0 + }; + + hooksStore.__current.push(hookInfo); + + while (hookInfo.currentIndex < handlers.length) { + var handler = handlers[hookInfo.currentIndex]; + var result = handler.callback.apply(null, args); + + if (returnFirstArg) { + args[0] = result; + } + + hookInfo.currentIndex++; + } + + hooksStore.__current.pop(); + + if (returnFirstArg) { + return args[0]; + } + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); +//# sourceMappingURL=createRunHook.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ actions: () => (/* binding */ actions), +/* harmony export */ addAction: () => (/* binding */ addAction), +/* harmony export */ addFilter: () => (/* binding */ addFilter), +/* harmony export */ applyFilters: () => (/* binding */ applyFilters), +/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ currentAction: () => (/* binding */ currentAction), +/* harmony export */ currentFilter: () => (/* binding */ currentFilter), +/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), +/* harmony export */ didAction: () => (/* binding */ didAction), +/* harmony export */ didFilter: () => (/* binding */ didFilter), +/* harmony export */ doAction: () => (/* binding */ doAction), +/* harmony export */ doingAction: () => (/* binding */ doingAction), +/* harmony export */ doingFilter: () => (/* binding */ doingFilter), +/* harmony export */ filters: () => (/* binding */ filters), +/* harmony export */ hasAction: () => (/* binding */ hasAction), +/* harmony export */ hasFilter: () => (/* binding */ hasFilter), +/* harmony export */ removeAction: () => (/* binding */ removeAction), +/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), +/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), +/* harmony export */ removeFilter: () => (/* binding */ removeFilter) +/* harmony export */ }); +/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); +/** + * Internal dependencies + */ + +/** @typedef {(...args: any[])=>any} Callback */ + +/** + * @typedef Handler + * @property {Callback} callback The callback + * @property {string} namespace The namespace + * @property {number} priority The namespace + */ + +/** + * @typedef Hook + * @property {Handler[]} handlers Array of handlers + * @property {number} runs Run counter + */ + +/** + * @typedef Current + * @property {string} name Hook name + * @property {number} currentIndex The index + */ + +/** + * @typedef {Record & {__current: Current[]}} Store + */ + +/** + * @typedef {'actions' | 'filters'} StoreKey + */ + +/** + * @typedef {import('./createHooks').Hooks} Hooks + */ + +var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); +var addAction = defaultHooks.addAction, + addFilter = defaultHooks.addFilter, + removeAction = defaultHooks.removeAction, + removeFilter = defaultHooks.removeFilter, + hasAction = defaultHooks.hasAction, + hasFilter = defaultHooks.hasFilter, + removeAllActions = defaultHooks.removeAllActions, + removeAllFilters = defaultHooks.removeAllFilters, + doAction = defaultHooks.doAction, + applyFilters = defaultHooks.applyFilters, + currentAction = defaultHooks.currentAction, + currentFilter = defaultHooks.currentFilter, + doingAction = defaultHooks.doingAction, + doingFilter = defaultHooks.doingFilter, + didAction = defaultHooks.didAction, + didFilter = defaultHooks.didFilter, + actions = defaultHooks.actions, + filters = defaultHooks.filters; + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": +/*!************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a hookName string. + * + * @param {string} hookName The hook name to validate. Should be a non empty string containing + * only numbers, letters, dashes, periods and underscores. Also, + * the hook name cannot begin with `__`. + * + * @return {boolean} Whether the hook name is valid. + */ +function validateHookName(hookName) { + if ('string' !== typeof hookName || '' === hookName) { + // eslint-disable-next-line no-console + console.error('The hook name must be a non-empty string.'); + return false; + } + + if (/^__/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name cannot begin with `__`.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { + // eslint-disable-next-line no-console + console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); +//# sourceMappingURL=validateHookName.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Validate a namespace string. + * + * @param {string} namespace The namespace to validate - should take the form + * `vendor/plugin/function`. + * + * @return {boolean} Whether the namespace is valid. + */ +function validateNamespace(namespace) { + if ('string' !== typeof namespace || '' === namespace) { + // eslint-disable-next-line no-console + console.error('The namespace must be a non-empty string.'); + return false; + } + + if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { + // eslint-disable-next-line no-console + console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); + return false; + } + + return true; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); +//# sourceMappingURL=validateNamespace.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": +/*!******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createI18n: () => (/* binding */ createI18n) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); + + +function 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; } + +function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } + +/** + * External dependencies + */ + +/** + * @typedef {Record} LocaleData + */ + +/** + * Default locale data to use for Tannin domain when not otherwise provided. + * Assumes an English plural forms expression. + * + * @type {LocaleData} + */ + +var DEFAULT_LOCALE_DATA = { + '': { + /** @param {number} n */ + plural_forms: function plural_forms(n) { + return n === 1 ? 0 : 1; + } + } +}; +/* + * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, + * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. + */ + +var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; +/** + * @typedef {(domain?: string) => LocaleData} GetLocaleData + * + * Returns locale data by domain in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData + * + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** + * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData + * + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + */ + +/** @typedef {() => void} SubscribeCallback */ + +/** @typedef {() => void} UnsubscribeCallback */ + +/** + * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe + * + * Subscribes to changes of locale data + */ + +/** + * @typedef {(domain?: string) => string} GetFilterDomain + * Retrieve the domain to use when calling domain-specific filters. + */ + +/** + * @typedef {(text: string, domain?: string) => string} __ + * + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + */ + +/** + * @typedef {(text: string, context: string, domain?: string) => string} _x + * + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n + * + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + */ + +/** + * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx + * + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + */ + +/** + * @typedef {() => boolean} IsRtl + * + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + */ + +/** + * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation + * + * Check if there is a translation for a given string in singular form. + */ + +/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ + +/** + * An i18n instance + * + * @typedef I18n + * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. + * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. + * @property {__} __ Retrieve the translation of text. + * @property {_x} _x Retrieve translated string with gettext context. + * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied + * number. + * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * @property {IsRtl} isRTL Check if current locale is RTL. + * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. + */ + +/** + * Create an i18n instance + * + * @param {LocaleData} [initialData] Locale data configuration. + * @param {string} [initialDomain] Domain for which configuration applies. + * @param {Hooks} [hooks] Hooks implementation. + * @return {I18n} I18n instance + */ + +var createI18n = function createI18n(initialData, initialDomain, hooks) { + /** + * The underlying instance of Tannin to which exported functions interface. + * + * @type {Tannin} + */ + var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); + var listeners = new Set(); + + var notifyListeners = function notifyListeners() { + listeners.forEach(function (listener) { + return listener(); + }); + }; + /** + * Subscribe to changes of locale data. + * + * @param {SubscribeCallback} callback Subscription callback. + * @return {UnsubscribeCallback} Unsubscribe callback. + */ + + + var subscribe = function subscribe(callback) { + listeners.add(callback); + return function () { + return listeners.delete(callback); + }; + }; + /** @type {GetLocaleData} */ + + + var getLocaleData = function getLocaleData() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return tannin.data[domain]; + }; + /** + * @param {LocaleData} [data] + * @param {string} [domain] + */ + + + var doSetLocaleData = function doSetLocaleData(data) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits + // a plural forms expression). + + tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); + }; + /** @type {SetLocaleData} */ + + + var setLocaleData = function setLocaleData(data, domain) { + doSetLocaleData(data, domain); + notifyListeners(); + }; + /** @type {ResetLocaleData} */ + + + var resetLocaleData = function resetLocaleData(data, domain) { + // Reset all current Tannin locale data. + tannin.data = {}; // Reset cached plural forms functions cache. + + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + /** + * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not + * otherwise previously assigned. + * + * @param {string|undefined} domain Domain to retrieve the translated text. + * @param {string|undefined} context Context information for the translators. + * @param {string} single Text to translate if non-plural. Used as + * fallback return value on a caught error. + * @param {string} [plural] The text to be used if the number is + * plural. + * @param {number} [number] The number to compare against to use + * either the singular or plural form. + * + * @return {string} The translated string. + */ + + + var dcnpgettext = function dcnpgettext() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + var context = arguments.length > 1 ? arguments[1] : undefined; + var single = arguments.length > 2 ? arguments[2] : undefined; + var plural = arguments.length > 3 ? arguments[3] : undefined; + var number = arguments.length > 4 ? arguments[4] : undefined; + + if (!tannin.data[domain]) { + // use `doSetLocaleData` to set silently, without notifying listeners + doSetLocaleData(undefined, domain); + } + + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + /** @type {GetFilterDomain} */ + + + var getFilterDomain = function getFilterDomain() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; + return domain; + }; + /** @type {__} */ + + + var __ = function __(text, domain) { + var translation = dcnpgettext(domain, undefined, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext', translation, text, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) + ); + }; + /** @type {_x} */ + + + var _x = function _x(text, context, domain) { + var translation = dcnpgettext(domain, context, text); + + if (!hooks) { + return translation; + } + /** + * Filters text with its translation based on context information. + * + * @param {string} translation Translated text. + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) + ); + }; + /** @type {_n} */ + + + var _n = function _n(single, plural, number, domain) { + var translation = dcnpgettext(domain, undefined, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) + ); + }; + /** @type {_nx} */ + + + var _nx = function _nx(single, plural, number, context, domain) { + var translation = dcnpgettext(domain, context, single, plural, number); + + if (!hooks) { + return translation; + } + /** + * Filters the singular or plural form of a string with gettext context. + * + * @param {string} translation Translated text. + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {string} number The number to compare against to use either the singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + + + translation = + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); + return ( + /** @type {string} */ + + /** @type {*} */ + hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) + ); + }; + /** @type {IsRtl} */ + + + var isRTL = function isRTL() { + return 'rtl' === _x('ltr', 'text direction'); + }; + /** @type {HasTranslation} */ + + + var hasTranslation = function hasTranslation(single, context, domain) { + var _tannin$data, _tannin$data2; + + var key = context ? context + "\x04" + single : single; + 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]); + + if (hooks) { + /** + * Filters the presence of a translation in the locale data. + * + * @param {boolean} hasTranslation Whether the translation is present or not.. + * @param {string} single The singular form of the translated text (used as key in locale data) + * @param {string} context Context information for the translators. + * @param {string} domain Text domain. Unique identifier for retrieving translated strings. + */ + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation', result, single, context, domain); + result = + /** @type { boolean } */ + + /** @type {*} */ + hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); + } + + return result; + }; + + if (initialData) { + setLocaleData(initialData, initialDomain); + } + + if (hooks) { + /** + * @param {string} hookName + */ + var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + + hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); + hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); + } + + return { + getLocaleData: getLocaleData, + setLocaleData: setLocaleData, + resetLocaleData: resetLocaleData, + subscribe: subscribe, + __: __, + _x: _x, + _n: _n, + _nx: _nx, + isRTL: isRTL, + hasTranslation: hasTranslation + }; +}; +//# sourceMappingURL=create-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* binding */ __), +/* harmony export */ _n: () => (/* binding */ _n), +/* harmony export */ _nx: () => (/* binding */ _nx), +/* harmony export */ _x: () => (/* binding */ _x), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), +/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), +/* harmony export */ isRTL: () => (/* binding */ isRTL), +/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), +/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), +/* harmony export */ subscribe: () => (/* binding */ subscribe) +/* harmony export */ }); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); +/** + * Internal dependencies + */ + +/** + * WordPress dependencies + */ + + +var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); +/** + * Default, singleton instance of `I18n`. + */ + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); +/* + * Comments in this file are duplicated from ./i18n due to + * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 + */ + +/** + * @typedef {import('./create-i18n').LocaleData} LocaleData + * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback + * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback + */ + +/** + * Returns locale data by domain in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {string} [domain] Domain for which to get the data. + * @return {LocaleData} Locale data. + */ + +var getLocaleData = i18n.getLocaleData.bind(i18n); +/** + * Merges locale data into the Tannin instance by domain. Accepts data in a + * Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var setLocaleData = i18n.setLocaleData.bind(i18n); +/** + * Resets all current Tannin instance locale data and sets the specified + * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. + * + * @see http://messageformat.github.io/Jed/ + * + * @param {LocaleData} [data] Locale data configuration. + * @param {string} [domain] Domain for which configuration applies. + */ + +var resetLocaleData = i18n.resetLocaleData.bind(i18n); +/** + * Subscribes to changes of locale data + * + * @param {SubscribeCallback} callback Subscription callback + * @return {UnsubscribeCallback} Unsubscribe callback + */ + +var subscribe = i18n.subscribe.bind(i18n); +/** + * Retrieve the translation of text. + * + * @see https://developer.wordpress.org/reference/functions/__/ + * + * @param {string} text Text to translate. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated text. + */ + +var __ = i18n.__.bind(i18n); +/** + * Retrieve translated string with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_x/ + * + * @param {string} text Text to translate. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} Translated context string without pipe. + */ + +var _x = i18n._x.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number. + * + * @see https://developer.wordpress.org/reference/functions/_n/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _n = i18n._n.bind(i18n); +/** + * Translates and retrieves the singular or plural form based on the supplied + * number, with gettext context. + * + * @see https://developer.wordpress.org/reference/functions/_nx/ + * + * @param {string} single The text to be used if the number is singular. + * @param {string} plural The text to be used if the number is plural. + * @param {number} number The number to compare against to use either the + * singular or plural form. + * @param {string} context Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * + * @return {string} The translated singular or plural form. + */ + +var _nx = i18n._nx.bind(i18n); +/** + * Check if current locale is RTL. + * + * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. + * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common + * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, + * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). + * + * @return {boolean} Whether locale is RTL. + */ + +var isRTL = i18n.isRTL.bind(i18n); +/** + * Check if there is a translation for a given string (in singular form). + * + * @param {string} single Singular form of the string to look up. + * @param {string} [context] Context information for the translators. + * @param {string} [domain] Domain to retrieve the translated text. + * @return {boolean} Whether the translation exists or not. + */ + +var hasTranslation = i18n.hasTranslation.bind(i18n); +//# sourceMappingURL=default-i18n.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), +/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), +/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), +/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), +/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), +/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), +/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), +/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), +/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), +/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), +/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), +/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), +/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) +/* harmony export */ }); +/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); +/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); +/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": +/*!**************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ sprintf: () => (/* binding */ sprintf) +/* harmony export */ }); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); +/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); +/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); +/** + * External dependencies + */ + + +/** + * Log to console, once per message; or more precisely, per referentially equal + * argument set. Because Jed throws errors, we log these to the console instead + * to avoid crashing the application. + * + * @param {...*} args Arguments to pass to `console.error` + */ + +var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console + +/** + * Returns a formatted string. If an error occurs in applying the format, the + * original format string is returned. + * + * @param {string} format The format of the string to generate. + * @param {...*} args Arguments to apply to the format. + * + * @see https://www.npmjs.com/package/sprintf-js + * + * @return {string} The formatted string. + */ + +function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); + } catch (error) { + logErrorOnce('sprintf error: \n\n' + error.toString()); + return format; + } +} +//# sourceMappingURL=sprintf.js.map + +/***/ }), + +/***/ "./js/src/admin/components/dependent-updater-component.js": +/*!****************************************************************!*\ + !*** ./js/src/admin/components/dependent-updater-component.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. + * The names of the elements that will be updated are specified using the "will-change" attribute. + * It is primarily used in components from Style/Quick Settings. + * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. + */ +var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { + /** + * Creates an instance of frmStyleDependentUpdaterComponent. + * + * @param {HTMLElement} component - The component element. + */ + function frmStyleDependentUpdaterComponent(component) { + _classCallCheck(this, frmStyleDependentUpdaterComponent); + this.component = component; + try { + var willChangeData = JSON.parse(this.component.dataset.willChange); + this.data = { + propagateInputs: this.initPropagationList(willChangeData), + changeEvent: new Event('change', { + bubbles: true + }) + }; + } catch (error) { + console.error('Error parsing JSON data from "will-change" attribute.', error); + } + } + + /** + * Initializes the list of inputs to propagate changes to. + * The selection is made by provided input's names list in "will-change" attribute. + * + * @param {string[]} inputNames - The names of the inputs to propagate changes to. + * @return {HTMLElement[]} - The list of inputs to propagate changes to. + */ + return _createClass(frmStyleDependentUpdaterComponent, [{ + key: "initPropagationList", + value: function initPropagationList(inputNames) { + var list = []; + inputNames.forEach(function (name) { + var input = document.querySelector("input[name=\"".concat(name, "\"]")); + if (null !== input) { + list.push(input); + } + }); + return list; + } + + /** + * Updates all dependent elements with the given value. + * + * @param {string} value - The value to update the dependent elements with. + */ + }, { + key: "updateAllDependentElements", + value: function updateAllDependentElements(value) { + this.data.propagateInputs.forEach(function (input) { + input.value = value; + }); + this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); + } + }]); +}(); + + +/***/ }), + +/***/ "./node_modules/memize/index.js": +/*!**************************************!*\ + !*** ./node_modules/memize/index.js ***! + \**************************************/ +/***/ ((module) => { + +/** + * Memize options object. + * + * @typedef MemizeOptions + * + * @property {number} [maxSize] Maximum size of the cache. + */ + +/** + * Internal cache entry. + * + * @typedef MemizeCacheNode + * + * @property {?MemizeCacheNode|undefined} [prev] Previous node. + * @property {?MemizeCacheNode|undefined} [next] Next node. + * @property {Array<*>} args Function arguments for cache + * entry. + * @property {*} val Function result. + */ + +/** + * Properties of the enhanced function for controlling cache. + * + * @typedef MemizeMemoizedFunction + * + * @property {()=>void} clear Clear the cache. + */ + +/** + * Accepts a function to be memoized, and returns a new memoized function, with + * optional options. + * + * @template {Function} F + * + * @param {F} fn Function to memoize. + * @param {MemizeOptions} [options] Options object. + * + * @return {F & MemizeMemoizedFunction} Memoized function. + */ +function memize( fn, options ) { + var size = 0; + + /** @type {?MemizeCacheNode|undefined} */ + var head; + + /** @type {?MemizeCacheNode|undefined} */ + var tail; + + options = options || {}; + + function memoized( /* ...args */ ) { + var node = head, + len = arguments.length, + args, i; + + searchCache: while ( node ) { + // Perform a shallow equality test to confirm that whether the node + // under test is a candidate for the arguments passed. Two arrays + // are shallowly equal if their length matches and each entry is + // strictly equal between the two sets. Avoid abstracting to a + // function which could incur an arguments leaking deoptimization. + + // Check whether node arguments match arguments length + if ( node.args.length !== arguments.length ) { + node = node.next; + continue; + } + + // Check whether node arguments match arguments values + for ( i = 0; i < len; i++ ) { + if ( node.args[ i ] !== arguments[ i ] ) { + node = node.next; + continue searchCache; + } + } + + // At this point we can assume we've found a match + + // Surface matched node to head if not already + if ( node !== head ) { + // As tail, shift to previous. Must only shift if not also + // head, since if both head and tail, there is no previous. + if ( node === tail ) { + tail = node.prev; + } + + // Adjust siblings to point to each other. If node was tail, + // this also handles new tail's empty `next` assignment. + /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; + if ( node.next ) { + node.next.prev = node.prev; + } + + node.next = head; + node.prev = null; + /** @type {MemizeCacheNode} */ ( head ).prev = node; + head = node; + } + + // Return immediately + return node.val; + } + + // No cached value found. Continue to insertion phase: + + // Create a copy of arguments (avoid leaking deoptimization) + args = new Array( len ); + for ( i = 0; i < len; i++ ) { + args[ i ] = arguments[ i ]; + } + + node = { + args: args, + + // Generate the result from original function + val: fn.apply( null, args ), + }; + + // Don't need to check whether node is already head, since it would + // have been returned above already if it was + + // Shift existing head down list + if ( head ) { + head.prev = node; + node.next = head; + } else { + // If no head, follows that there's no tail (at initial or reset) + tail = node; + } + + // Trim tail if we're reached max size and are pending cache insertion + if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { + tail = /** @type {MemizeCacheNode} */ ( tail ).prev; + /** @type {MemizeCacheNode} */ ( tail ).next = null; + } else { + size++; + } + + head = node; + + return node.val; + } + + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + + if ( false ) {} + + // Ignore reason: There's not a clear solution to create an intersection of + // the function with additional properties, where the goal is to retain the + // function signature of the incoming argument and add control properties + // on the return value. + + // @ts-ignore + return memoized; +} + +module.exports = memize; + + +/***/ }), + +/***/ "./node_modules/sprintf-js/src/sprintf.js": +/*!************************************************!*\ + !*** ./node_modules/sprintf-js/src/sprintf.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (typeof parse_tree[i] === 'object') { + ph = parse_tree[i] // convenience purposes only + if (ph.keys) { // keyword argument + arg = argv[cursor] + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) + } + arg = arg[ph.keys[k]] + } + } + else if (ph.param_no) { // positional argument (explicit) + arg = argv[ph.param_no] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(ph.type)) { + is_positive = arg >= 0 + } + + switch (ph.type) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break + case 'e': + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break + case 'f': + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break + case 'g': + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 't': + arg = String(!!arg) + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(ph.type)) { + output += arg + } + else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + + parse_tree.push( + { + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + } + ) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports.sprintf = sprintf + exports.vsprintf = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}(); // eslint-disable-line + + +/***/ }), + +/***/ "./node_modules/tannin/index.js": +/*!**************************************!*\ + !*** ./node_modules/tannin/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Tannin) +/* harmony export */ }); +/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); + + +/** + * Tannin constructor options. + * + * @typedef {Object} TanninOptions + * + * @property {string} [contextDelimiter] Joiner in string lookup with context. + * @property {Function} [onMissingKey] Callback to invoke when key missing. + */ + +/** + * Domain metadata. + * + * @typedef {Object} TanninDomainMetadata + * + * @property {string} [domain] Domain name. + * @property {string} [lang] Language code. + * @property {(string|Function)} [plural_forms] Plural forms expression or + * function evaluator. + */ + +/** + * Domain translation pair respectively representing the singular and plural + * translation. + * + * @typedef {[string,string]} TanninTranslation + */ + +/** + * Locale data domain. The key is used as reference for lookup, the value an + * array of two string entries respectively representing the singular and plural + * translation. + * + * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain + */ + +/** + * Jed-formatted locale data. + * + * @see http://messageformat.github.io/Jed/ + * + * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData + */ + +/** + * Default Tannin constructor options. + * + * @type {TanninOptions} + */ +var DEFAULT_OPTIONS = { + contextDelimiter: '\u0004', + onMissingKey: null, +}; + +/** + * Given a specific locale data's config `plural_forms` value, returns the + * expression. + * + * @example + * + * ``` + * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' + * ``` + * + * @param {string} pf Locale data plural forms. + * + * @return {string} Plural forms expression. + */ +function getPluralExpression( pf ) { + var parts, i, part; + + parts = pf.split( ';' ); + + for ( i = 0; i < parts.length; i++ ) { + part = parts[ i ].trim(); + if ( part.indexOf( 'plural=' ) === 0 ) { + return part.substr( 7 ); + } + } +} + +/** + * Tannin constructor. + * + * @class + * + * @param {TanninLocaleData} data Jed-formatted locale data. + * @param {TanninOptions} [options] Tannin options. + */ +function Tannin( data, options ) { + var key; + + /** + * Jed-formatted locale data. + * + * @name Tannin#data + * @type {TanninLocaleData} + */ + this.data = data; + + /** + * Plural forms function cache, keyed by plural forms string. + * + * @name Tannin#pluralForms + * @type {Object} + */ + this.pluralForms = {}; + + /** + * Effective options for instance, including defaults. + * + * @name Tannin#options + * @type {TanninOptions} + */ + this.options = {}; + + for ( key in DEFAULT_OPTIONS ) { + this.options[ key ] = options !== undefined && key in options + ? options[ key ] + : DEFAULT_OPTIONS[ key ]; + } +} + +/** + * Returns the plural form index for the given domain and value. + * + * @param {string} domain Domain on which to calculate plural form. + * @param {number} n Value for which plural form is to be calculated. + * + * @return {number} Plural form index. + */ +Tannin.prototype.getPluralForm = function( domain, n ) { + var getPluralForm = this.pluralForms[ domain ], + config, plural, pf; + + if ( ! getPluralForm ) { + config = this.data[ domain ][ '' ]; + + pf = ( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + if ( typeof pf !== 'function' ) { + plural = getPluralExpression( + config[ 'Plural-Forms' ] || + config[ 'plural-forms' ] || + // Ignore reason: As known, there's no way to document the empty + // string property on a key to guarantee this as metadata. + // @ts-ignore + config.plural_forms + ); + + pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); + } + + getPluralForm = this.pluralForms[ domain ] = pf; + } + + return getPluralForm( n ); +}; + +/** + * Translate a string. + * + * @param {string} domain Translation domain. + * @param {string|void} context Context distinguishing terms of the same name. + * @param {string} singular Primary key for translation lookup. + * @param {string=} plural Fallback value used for non-zero plural + * form index. + * @param {number=} n Value to use in calculating plural form. + * + * @return {string} Translated string. + */ +Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { + var index, key, entry; + + if ( n === undefined ) { + // Default to singular. + index = 0; + } else { + // Find index by evaluating plural form for value. + index = this.getPluralForm( domain, n ); + } + + key = singular; + + // If provided, context is prepended to key with delimiter. + if ( context ) { + key = context + this.options.contextDelimiter + singular; + } + + entry = this.data[ domain ][ key ]; + + // Verify not only that entry exists, but that the intended index is within + // range and non-empty. + if ( entry && entry[ index ] ) { + return entry[ index ]; + } + + if ( this.options.onMissingKey ) { + this.options.onMissingKey( singular, domain ); + } + + // If entry not found, fall back to singular vs. plural with zero index + // representing the singular value. + return index === 0 ? singular : plural; +}; + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) +/* harmony export */ }); +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _classCallCheck) +/* harmony export */ }); +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _iterableToArray) +/* harmony export */ }); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) +/* harmony export */ }); +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _toConsumableArray) +/* harmony export */ }); +/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); +/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); + + + + +function _toConsumableArray(r) { + return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) +/* harmony export */ }); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); + +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; + } +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _defineProperty) +/* harmony export */ }); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); + +function _defineProperty(e, r, t) { + return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPrimitive) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); + +function toPrimitive(t, r) { + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ toPropertyKey) +/* harmony export */ }); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); + + +function toPropertyKey(t) { + var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); + return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; +} + + +/***/ }), + +/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _typeof) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!********************************!*\ + !*** ./js/src/admin/styles.js ***! + \********************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); +/* harmony import */ var _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + + + +/** + * Represents the frmStyleOptions class. + * + * @class + */ +var frmStyleOptions = /*#__PURE__*/function () { + function frmStyleOptions() { + _classCallCheck(this, frmStyleOptions); + this.success = frmDom.success; + this.init(); + this.initHover(); + } + + /** + * Init the dependent + */ + return _createClass(frmStyleOptions, [{ + key: "init", + value: function init() { + this.initColorPickerDependentUpdaterComponents(); + this.initStyleClassCopyToClipboard((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The class name has been copied.', 'formidable')); + } + + /** + * Initializes the color picker dependent updater components. + * Retrieves the components and elements, and adds them to the elements array. + * Adds an action hook for the frm_style_options_color_change event. + */ + }, { + key: "initColorPickerDependentUpdaterComponents", + value: function initColorPickerDependentUpdaterComponents() { + var components = document.querySelectorAll('.frm-style-dependent-updater-component.frm-colorpicker'); + var elements = []; + components.forEach(function (component) { + var element = component.querySelector('input.hex'); + var id = 'undefined' !== typeof element ? element.getAttribute('id') : null; + if (null !== id) { + elements.push({ + id: id, + dependentUpdaterClass: new _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](component, 'colorpicker') + }); + } + }); + wp.hooks.addAction('frm_style_options_color_change', 'formidable', function (_ref) { + var event = _ref.event, + value = _ref.value; + var container = event.target.closest('.wp-picker-container'); + var id = event.target.getAttribute('id'); + container.querySelector('.wp-color-result-text').innerText = value; + elements.forEach(function (element) { + if (element.id === id) { + element.dependentUpdaterClass.updateAllDependentElements(value); + } + }); + }); + } + + /** + * Initializes the hover functionality for the style options. + * Creates a hover element and appends it to the settingsWrapper. + * Adds event listeners for mouseover and click events. + */ + }, { + key: "initHover", + value: function initHover() { + var settingsWrapper = document.querySelector('.frm-right-panel .styling_settings .accordion-container'); + if (null === settingsWrapper) { + return; + } + var hoverElement = document.createElement('div'); + hoverElement.classList.add('frm_hidden'); + hoverElement.classList.add('frm-style-settings-hover'); + settingsWrapper.appendChild(hoverElement); + var styleOptionsMenu = settingsWrapper.querySelector(':scope > ul'); + styleOptionsMenu.querySelectorAll(':scope > li').forEach(function (item) { + item.querySelector('h3').addEventListener('mouseover', function (event) { + hoverElement.style.transform = "translateY(".concat(event.target.closest('li').offsetTop, "px)"); + hoverElement.classList.add('frm-animating'); + hoverElement.classList.remove('frm_hidden'); + setTimeout(function () { + hoverElement.classList.remove('frm-animating'); + }, 250); + }); + }); + var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); + accordionitems.forEach(function (item) { + item.addEventListener('click', function () { + hoverElement.classList.add('frm_hidden'); + }); + }); + } + + /** + * Initializes the copy to clipboard functionality for style classes. + * Adds a click event listener to the copyLabel element. + * Copies the class name to the clipboard and displays a success message. + * + * @param {string} successMessage - The success message to display. + */ + }, { + key: "initStyleClassCopyToClipboard", + value: function initStyleClassCopyToClipboard(successMessage) { + var _this = this; + var copyLabel = document.querySelector('.frm-copy-text'); + copyLabel.addEventListener('click', function (event) { + var className = event.currentTarget.innerText; + navigator.clipboard.writeText(className).then(function () { + _this.success(successMessage); + }); + }); + } + }]); +}(); +new frmStyleOptions(); +})(); + +/******/ })() +; +//# sourceMappingURL=formidable_styles.js.map \ No newline at end of file diff --git a/js/formidable_styles.js.map b/js/formidable_styles.js.map index 52627d0e52..db7fcb9096 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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YA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DAAiD,mFAAmF,OAAO;;AAEtgB;AACA;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,m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;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;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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/components/dependent-updater-component.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\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}\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 frmStyleDependentUpdaterComponent from './components/dependent-updater-component';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Init the dependent\n\t */\n\tinit() {\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( () => {\n\t\t\t\t\thoverElement.classList.remove( 'frm-animating' );\n\t\t\t\t}, 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.currentTarget.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","__","frmStyleOptions","success","frmDom","init","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","querySelectorAll","elements","element","id","getAttribute","dependentUpdaterClass","wp","hooks","addAction","_ref","event","container","target","closest","innerText","settingsWrapper","hoverElement","createElement","classList","add","appendChild","styleOptionsMenu","item","addEventListener","style","transform","offsetTop","remove","setTimeout","accordionitems","successMessage","_this","copyLabel","className","currentTarget","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,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YA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DAAiD,mFAAmF,OAAO;;AAEtgB;AACA;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,m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Ac,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;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;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;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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/components/dependent-updater-component.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\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t *\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 *\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 *\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","/**\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as 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}\nexport { _typeof as default };","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 frmStyleDependentUpdaterComponent from './components/dependent-updater-component';\n\n/**\n * Represents the frmStyleOptions class.\n *\n * @class\n */\nclass frmStyleOptions {\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Init the dependent\n\t */\n\tinit() {\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( () => {\n\t\t\t\t\thoverElement.classList.remove( 'frm-animating' );\n\t\t\t\t}, 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 *\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.currentTarget.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","__","frmStyleOptions","success","frmDom","init","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","querySelectorAll","elements","element","id","getAttribute","dependentUpdaterClass","wp","hooks","addAction","_ref","event","container","target","closest","innerText","settingsWrapper","hoverElement","createElement","classList","add","appendChild","styleOptionsMenu","item","addEventListener","style","transform","offsetTop","remove","setTimeout","accordionitems","successMessage","_this","copyLabel","className","currentTarget","navigator","clipboard","writeText","then"],"sourceRoot":""} \ No newline at end of file diff --git a/js/onboarding-wizard.js b/js/onboarding-wizard.js index 29de947775..a85b806935 100644 --- a/js/onboarding-wizard.js +++ b/js/onboarding-wizard.js @@ -1,2 +1,1854 @@ -/*! For license information please see onboarding-wizard.js.LICENSE.txt */ -(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):00&&void 0!==arguments[0]?arguments[0]:{};if("object"!==x(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==x(t)||null===t)throw new Error("setState: newState must be a non-null object");e=j(j({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({processedSteps:[],installedAddons:[]}),_=P.getState,k=(P.getSingleState,P.setState,P.setSingleState),T=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==b(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==b(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=m(m({},e),t)}}}({onboardingWizardPage:document.getElementById("".concat(S,"-wizard-page")),container:document.getElementById("".concat(S,"-container")),rootline:document.getElementById("".concat(S,"-rootline")),steps:document.querySelectorAll(".".concat(S,"-step")),skipStepButtons:document.querySelectorAll(".".concat(S,"-skip-step")),backButtons:document.querySelectorAll(".".concat(S,"-back-button")),consentTrackingButton:document.getElementById("".concat(S,"-consent-tracking")),installAddonsButton:document.getElementById("".concat(S,"-install-addons-button")),hiddenLicenseKeyInput:document.getElementById("frm-license-key")}),A=T.getElements;T.addElements;var I=function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pushState",o=document.querySelector(".".concat(S,'-step[data-step-name="').concat(t,'"]'));if(o){var i=document.querySelector(".".concat(S,"-step.").concat(d));i&&(i.classList.remove(d),null==(e=i)||e.classList.add(y)),o.classList.add(d),function(t){null==t||t.classList.remove(y)}(o),new n(o).fadeIn(),A().onboardingWizardPage.setAttribute("data-current-step",t),function(t,e){var r,n,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pushState";if(l.set(t,e),u.search=l.toString(),["pushState","replaceState"].includes(i)){var a=(r={},o=e,(n=function(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[i](a,"",u)}u.toString()}("step",t,r),function(t){t===E.UNSUCCESSFUL&&(t=E.SUCCESS);var e=A().rootline,r=e.querySelector('.frm-rootline-item[data-step="'.concat(t,'"]'));e.querySelectorAll(".frm-rootline-item").forEach((function(t){t.classList.remove(D),t.classList.remove(d)}));var n=r.previousElementSibling;if(n)for(;n;)n.classList.add(D),n=n.previousElementSibling;t===E.SUCCESS?r.classList.add(D):r.classList.add(d)}(t)}},N=function(){var t=document.querySelector(".".concat(S,"-step.").concat(d)),e=null==t?void 0:t.nextElementSibling;if(e){var r=t.dataset.stepName,n=e.dataset.stepName,o=_().processedSteps;o.includes(r)||(o.push(r),k("processedSteps",o)),function(t,e){var r=function(t,e){var r;if(E.SUCCESS===e||E.UNSUCCESSFUL===e){var n=_().processedSteps;n.length>1&&(n.includes(e)||n.push(e),(r=new FormData).append("processed_steps",n.join(",")),r.append("completed_steps",!0))}if(E.INSTALL_ADDONS===t){var o,i=_().installedAddons;i.length>0&&(r=null!==(o=r)&&void 0!==o?o:new FormData).append("installed_addons",i.join(","))}return r}(t,e);r&&(0,frmDom.ajax.doJsonPost)("onboarding_setup_usage_data",r)}(r,n),I(n)}};var D="frm-completed-step",C=".frm-option-box";function F(t){"input"===t.target.tagName.toLowerCase()&&t.currentTarget.closest(C).classList.toggle("frm-checked")}var U=function(){N()};var G=function(){var t,e;(e=null==(t=document.querySelector(".".concat(S,"-step.").concat(d)))?void 0:t.previousElementSibling)&&I(e.dataset.stepName)};function B(t){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(t)}function q(){q=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==B(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Y(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}var z=function(){var t,e=(t=q().mark((function t(){return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(0,frmDom.ajax.doJsonPost)("onboarding_consent_tracking",new FormData).then(N);case 2:case"end":return t.stop()}}),t)})),function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){Y(i,n,o,a,c,"next",t)}function c(t){Y(i,n,o,a,c,"throw",t)}a(void 0)}))});return function(){return e.apply(this,arguments)}}();function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function W(){W=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==R(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function J(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return K(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ domReady) +/* harmony export */ }); +/** + * @typedef {() => void} Callback + * + * TODO: Remove this typedef and inline `() => void` type. + * + * This typedef is used so that a descriptive type is provided in our + * automatically generated documentation. + * + * An in-line type `() => void` would be preferable, but the generated + * documentation is `null` in that case. + * + * @see https://github.com/WordPress/gutenberg/issues/18045 + */ + +/** + * Specify a function to execute when the DOM is fully loaded. + * + * @param {Callback} callback A function to execute after the DOM is ready. + * + * @example + * ```js + * import domReady from '@wordpress/dom-ready'; + * + * domReady( function() { + * //do something after DOM loads. + * } ); + * ``` + * + * @return {void} + */ +function domReady(callback) { + if (typeof document === 'undefined') { + return; + } + + if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. + document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. + ) { + return void callback(); + } // DOMContentLoaded has not fired yet, delay callback until then. + + + document.addEventListener('DOMContentLoaded', callback); +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./js/src/core/constants.js": +/*!**********************************!*\ + !*** ./js/src/core/constants.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), +/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), +/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), +/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), +/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), +/* harmony export */ HOOKS: () => (/* binding */ HOOKS), +/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), +/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), +/* harmony export */ nonce: () => (/* binding */ nonce) +/* harmony export */ }); +var _window$frmGlobal = window.frmGlobal, + PLUGIN_URL = _window$frmGlobal.url, + nonce = _window$frmGlobal.nonce; + +var HIDDEN_CLASS = 'frm_hidden'; +var DISABLED_CLASS = 'frm_disabled'; +var HIDE_JS_CLASS = 'frm-hide-js'; +var CURRENT_CLASS = 'frm-current'; +var CHECKED_CLASS = 'frm-checked'; +var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; +var HOOKS = { + SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' +}; + +/***/ }), + +/***/ "./js/src/core/events/index.js": +/*!*************************************!*\ + !*** ./js/src/core/events/index.js ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addOptionBoxEvents: () => (/* reexport safe */ _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents) +/* harmony export */ }); +/* harmony import */ var _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./optionBoxListener */ "./js/src/core/events/optionBoxListener.js"); + + +/***/ }), + +/***/ "./js/src/core/events/optionBoxListener.js": +/*!*************************************************!*\ + !*** ./js/src/core/events/optionBoxListener.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addOptionBoxEvents: () => (/* binding */ addOptionBoxEvents) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + +var OPTION_BOX_CLASS = '.frm-option-box'; + +/** + * Manages event handling for an option-box. + * + * @return {void} + */ +function addOptionBoxEvents() { + var optionBoxes = document.querySelectorAll(OPTION_BOX_CLASS); + optionBoxes.forEach(function (optionBox) { + optionBox.addEventListener('click', onOptionBoxClick); + }); +} + +/** + * Handles the click event on a option box item. + * + * @private + * @param {Event} event The click event object. + */ +function onOptionBoxClick(event) { + if (event.target.tagName.toLowerCase() !== 'input') { + return; + } + var optionBox = event.currentTarget.closest(OPTION_BOX_CLASS); + optionBox.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.CHECKED_CLASS); +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageElements.js": +/*!***************************************************!*\ + !*** ./js/src/core/factory/createPageElements.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* binding */ createPageElements) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page elements manager. + * + * @param {Object} [initialElements={}] An object containing initial DOM elements. + * @throws {Error} Throws an error if the `initialElements` is not an object. + * @return {Object} An object with methods to get and add elements. + */ +function createPageElements() { + var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialElements) !== 'object' || initialElements === null) { + throw new Error('createPageElements: initialElements must be a non-null object'); + } + var elements = initialElements; + + /** + * Retrieve the initialized essential DOM elements. + * + * @return {Object} The initialized elements object. + */ + function getElements() { + return elements; + } + + /** + * Add new elements to the elements object. + * + * @param {Object} newElements An object containing new elements to be added. + * @throws {Error} Throws an error if the `newElements` is not a non-null object. + * @return {void} Updates the elements object by merging the new elements into it. + */ + function addElements(newElements) { + if (_typeof(newElements) !== 'object' || newElements === null) { + throw new Error('addElements: newElements must be a non-null object'); + } + elements = _objectSpread(_objectSpread({}, elements), newElements); + } + return { + getElements: getElements, + addElements: addElements + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/createPageState.js": +/*!************************************************!*\ + !*** ./js/src/core/factory/createPageState.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageState: () => (/* binding */ createPageState) +/* harmony export */ }); +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +/** + * Creates a page state manager. + * + * @param {Object} [initialState={}] An object containing the initial state. + * @throws {Error} Throws an error if the `initialState` is not a plain object. + * @return {Object} An object with methods to initialize, get, and set the page state. + */ +function createPageState() { + var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (_typeof(initialState) !== 'object' || initialState === null) { + throw new Error('createPageState: initialState must be a non-null object'); + } + var state = initialState; + + /** + * Returns the current page state. + * + * @return {Object|null} The current state of the page or null if not initialized. + */ + var getState = function getState() { + return state; + }; + + /** + * Returns a specific property from the current page state. + * + * @param {string} propertyName The name of the property to retrieve. + * @return {*} The value of the specified property, or null if it doesn't exist. + */ + var getSingleState = function getSingleState(propertyName) { + var value = Reflect.get(state, propertyName); + + // We convert `undefined` to `null` for a consistent API. + // This makes it easier for users to handle the results since all missing properties return `null`. + return value === undefined ? null : value; + }; + + /** + * Updates the page state with new values. + * + * @param {Object} newState The new values to update the state with. + * @throws {Error} Throws an error if `newState` is not a plain object. + * @return {void} + */ + var setState = function setState(newState) { + if (_typeof(newState) !== 'object' || newState === null) { + throw new Error('setState: newState must be a non-null object'); + } + state = _objectSpread(_objectSpread({}, state), newState); + }; + + /** + * Updates a specific property in the page state with a new value. + * + * @param {string} propertyName The name of the property to update. + * @param {*} value The new value to set for the property. + * @return {void} + */ + var setSingleState = function setSingleState(propertyName, value) { + if (Reflect.has(state, propertyName)) { + Reflect.set(state, propertyName, value); + } + }; + return { + getState: getState, + getSingleState: getSingleState, + setState: setState, + setSingleState: setSingleState + }; +} + +/***/ }), + +/***/ "./js/src/core/factory/index.js": +/*!**************************************!*\ + !*** ./js/src/core/factory/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), +/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) +/* harmony export */ }); +/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); +/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); + + + +/***/ }), + +/***/ "./js/src/core/utils/animation.js": +/*!****************************************!*\ + !*** ./js/src/core/utils/animation.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var frmAnimate = /*#__PURE__*/function () { + /** + * Construct frmAnimate + * + * @param {Element|Element[]} elements The elements to animate. + * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d + */ + function frmAnimate(elements) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; + _classCallCheck(this, frmAnimate); + this.elements = elements; + this.type = type; + this.prepareElements(); + } + + /** + * Init animation - fadeIn. + * Requires this.type = 'default'; + * ex: new frmAnimate( elements ).fadeIn(); + */ + return _createClass(frmAnimate, [{ + key: "fadeIn", + value: function fadeIn() { + var _this = this; + this.applyStyleToElements(function (element) { + element.classList.add('frm-fadein-up'); + element.addEventListener('animationend', function () { + _this.resetOpacity(); + element.classList.remove('frm-fadein-up'); + }, { + once: true + }); + }); + } + + /** + * Init animation - cascadeFadeIn. + * Requires this.type = 'cascade'|'cascade-3d'; + * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); + * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); + * + * @param {number} delay The transition delay value. + */ + }, { + key: "cascadeFadeIn", + value: function cascadeFadeIn() { + var _this2 = this; + var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; + setTimeout(function () { + _this2.applyStyleToElements(function (element, index) { + element.classList.remove('frm-animate'); + element.style.transitionDelay = (index + 1) * delay + 's'; + }); + }, 200); + } + }, { + key: "prepareElements", + value: function prepareElements() { + var _this3 = this; + this.applyStyleToElements(function (element) { + if ('default' === _this3.type) { + element.style.opacity = '0.0'; + } + if ('cascade' === _this3.type) { + element.classList.add('frm-init-cascade-animation'); + } + if ('cascade-3d' === _this3.type) { + element.classList.add('frm-init-fadein-3d'); + } + element.classList.add('frm-animate'); + }); + } + }, { + key: "resetOpacity", + value: function resetOpacity() { + this.applyStyleToElements(function (element) { + return element.style.opacity = '1.0'; + }); + } + }, { + key: "applyStyleToElements", + value: function applyStyleToElements(callback) { + if (this.elements instanceof Element) { + callback(this.elements, 0); + return; + } + if (0 < this.elements.length) { + this.elements.forEach(function (element, index) { + return callback(element, index); + }); + } + } + }]); +}(); + +/***/ }), + +/***/ "./js/src/core/utils/async.js": +/*!************************************!*\ + !*** ./js/src/core/utils/async.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) +/* harmony export */ }); +// Initialize lastPromise with a resolved promise as the starting point for the queue +var lastPromise = Promise.resolve(); + +/** + * Adds a task to the request queue. + * + * @param {function(): Promise} task A function that returns a promise. + * @return {Promise} The new last promise in the queue. + */ +var addToRequestQueue = function addToRequestQueue(task) { + return lastPromise = lastPromise.then(task).catch(task); +}; + +/***/ }), + +/***/ "./js/src/core/utils/error.js": +/*!************************************!*\ + !*** ./js/src/core/utils/error.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ showFormError: () => (/* binding */ showFormError) +/* harmony export */ }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); +/** + * Internal dependencies + */ + + +/** + * Displays form validation error messages. + * + * @param {string} inputId The ID selector for the input field with the error. + * @param {string} errorId The ID selector for the error message display element. + * @param {string} type The categorization of the error (e.g., "invalid", "empty"). + * @param {string} [message] Optional. The specific error message to display. + * @return {void} + */ +var showFormError = function showFormError(inputId, errorId, type, message) { + var inputElement = document.querySelector(inputId); + var errorElement = document.querySelector(errorId); + if (!inputElement || !errorElement) { + console.warn('showFormError: Unable to find input or error element.'); + return; + } + + // If a message is provided, update the span element's text that matches the error type + if (message) { + var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); + if (span) { + span.textContent = message; + } + } + + // Assign the error type and make the error message visible + errorElement.setAttribute('frm-error', type); + (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); + + // Hide the error message when the user starts typing in the faulty input field + inputElement.addEventListener('keyup', function () { + (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); + }, { + once: true + }); +}; + +/***/ }), + +/***/ "./js/src/core/utils/event.js": +/*!************************************!*\ + !*** ./js/src/core/utils/event.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ documentOn: () => (/* binding */ documentOn), +/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) +/* harmony export */ }); +var _window$frmDom$util = window.frmDom.util, + onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, + documentOn = _window$frmDom$util.documentOn; + + +/***/ }), + +/***/ "./js/src/core/utils/index.js": +/*!************************************!*\ + !*** ./js/src/core/utils/index.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), +/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), +/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), +/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), +/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), +/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), +/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), +/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), +/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), +/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), +/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), +/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), +/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), +/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), +/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), +/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) +/* harmony export */ }); +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); +/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); +/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); +/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); +/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); +/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); +/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); + + + + + + + + +/***/ }), + +/***/ "./js/src/core/utils/url.js": +/*!**********************************!*\ + !*** ./js/src/core/utils/url.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), +/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), +/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), +/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), +/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) +/* harmony export */ }); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * Initializes URL and URLSearchParams objects from the current window's location + */ +var url = new URL(window.location.href); +var urlParams = url.searchParams; + +/** + * Gets the value of a specified query parameter from the current URL. + * + * @param {string} paramName The name of the query parameter to retrieve. + * @return {string|null} The value associated with the specified query parameter name, or null if not found. + */ +var getQueryParam = function getQueryParam(paramName) { + return urlParams.get(paramName); +}; + +/** + * Removes a query parameter from the current URL and returns the updated URL string. + * + * @param {string} paramName The name of the query parameter to remove. + * @return {string} The updated URL string. + */ +var removeQueryParam = function removeQueryParam(paramName) { + urlParams.delete(paramName); + url.search = urlParams.toString(); + return url.toString(); +}; + +/** + * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. + * + * @param {string} paramName The name of the query parameter to set. + * @param {string} paramValue The value to set for the query parameter. + * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. + * @return {string} The updated URL string. + */ +var setQueryParam = function setQueryParam(paramName, paramValue) { + var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; + urlParams.set(paramName, paramValue); + url.search = urlParams.toString(); + if (['pushState', 'replaceState'].includes(updateMethod)) { + var state = _defineProperty({}, paramName, paramValue); + window.history[updateMethod](state, '', url); + } + return url.toString(); +}; + +/** + * Checks if a query parameter exists in the current URL. + * + * @param {string} paramName The name of the query parameter to check. + * @return {boolean} True if the query parameter exists, otherwise false. + */ +var hasQueryParam = function hasQueryParam(paramName) { + return urlParams.has(paramName); +}; + +/** + * Removes a query parameter and updates history with replaceState. + * + * @param {string} paramName The query parameter to remove. + * @return {void} + */ +var removeParamFromHistory = function removeParamFromHistory(paramName) { + return history.replaceState({}, '', removeQueryParam(paramName)); +}; + +/***/ }), + +/***/ "./js/src/core/utils/validation.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/validation.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), +/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), +/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) +/* harmony export */ }); +/** + * Validates an email address using a regular expression. + * + * @param {string} email The email address to validate. + * @return {boolean} True if the email address is valid, otherwise false. + */ +var isValidEmail = function isValidEmail(email) { + return typeof 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; +}; + +/** + * Validates if the given element is an instance of HTMLElement. + * + * @param {any} element Element to be checked. + * @return {boolean} True if it's an HTMLElement, otherwise false. + */ +var isHTMLElement = function isHTMLElement(element) { + return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; +}; + +/** + * Checks if the given object is empty. + * + * @param {Object} obj The object to check. + * @return {boolean} True if the object is empty, otherwise false. + */ +var isEmptyObject = function isEmptyObject(obj) { + return Object.keys(obj).length === 0 && obj.constructor === Object; +}; + +/***/ }), + +/***/ "./js/src/core/utils/visibility.js": +/*!*****************************************!*\ + !*** ./js/src/core/utils/visibility.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hide: () => (/* binding */ hide), +/* harmony export */ hideElements: () => (/* binding */ hideElements), +/* harmony export */ isVisible: () => (/* binding */ isVisible), +/* harmony export */ show: () => (/* binding */ show), +/* harmony export */ showElements: () => (/* binding */ showElements) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/** + * Internal dependencies + */ + + +/** + * Shows specified elements by removing the hidden class. + * + * @param {Array} elements An array of elements to show. + * @return {void} + */ +var showElements = function showElements(elements) { + var _Array$from; + return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { + return show(element); + }); +}; + +/** + * Hides specified elements by adding the hidden class. + * + * @param {Array} elements An array of elements to hide. + * @return {void} + */ +var hideElements = function hideElements(elements) { + var _Array$from2; + return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { + return hide(element); + }); +}; + +/** + * Removes the hidden class to show the element. + * + * @param {Element} element The element to show. + * @return {void} + */ +var show = function show(element) { + return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Adds the hidden class to hide the element. + * + * @param {Element} element The element to hide. + * @return {void} + */ +var hide = function hide(element) { + return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); +}; + +/** + * Checks if an element is visible. + * + * @param {HTMLElement} element The HTML element to check for visibility. + * @return {boolean} Returns true if the element is visible, otherwise false. + */ +var isVisible = function isVisible(element) { + var styles = window.getComputedStyle(element); + return styles.getPropertyValue('display') !== 'none'; +}; + +/***/ }), + +/***/ "./js/src/onboarding-wizard/dataUtils/index.js": +/*!*****************************************************!*\ + !*** ./js/src/onboarding-wizard/dataUtils/index.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupUsageData: () => (/* reexport safe */ _setupUsageData__WEBPACK_IMPORTED_MODULE_0__["default"]) +/* harmony export */ }); +/* harmony import */ var _setupUsageData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupUsageData */ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js"); + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js": +/*!**************************************************************!*\ + !*** ./js/src/onboarding-wizard/dataUtils/setupUsageData.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/** + * Internal Dependencies + */ + + +/** + * Processes and submits usage data for the specified onboarding step. + * + * @param {string} processedStep The name of the step that has just been processed. + * @param {string} nextStepName The name of the next step in the onboarding process. + * @return {void} + */ +function setupUsageData(processedStep, nextStepName) { + var formData = processDataForStep(processedStep, nextStepName); + if (!formData) { + return; + } + + // Send the POST request + var doJsonPost = frmDom.ajax.doJsonPost; + doJsonPost('onboarding_setup_usage_data', formData); +} + +/** + * Processes onboarding step data and returns the corresponding FormData. + * + * @private + * @param {string} processedStep The name of the step that has just been processed. + * @param {string} nextStepName The name of the next step in the onboarding process. + * @return {FormData|null} The FormData to be submitted for the step, or null if there's no data. + */ +function processDataForStep(processedStep, nextStepName) { + var formData; + + // Append completed steps if moving to the success step + if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.SUCCESS === nextStepName || _shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.UNSUCCESSFUL === nextStepName) { + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), + processedSteps = _getState.processedSteps; + if (processedSteps.length > 1) { + if (!processedSteps.includes(nextStepName)) { + processedSteps.push(nextStepName); + } + formData = new FormData(); + formData.append('processed_steps', processedSteps.join(',')); + formData.append('completed_steps', true); + } + } + + // Append installed addons for the addon installation step + if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.INSTALL_ADDONS === processedStep) { + var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), + installedAddons = _getState2.installedAddons; + if (installedAddons.length > 0) { + var _formData; + formData = (_formData = formData) !== null && _formData !== void 0 ? _formData : new FormData(); + formData.append('installed_addons', installedAddons.join(',')); + } + } + return formData; +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupUsageData); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/elements/elements.js": +/*!*******************************************************!*\ + !*** ./js/src/onboarding-wizard/elements/elements.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* binding */ addElements), +/* harmony export */ getElements: () => (/* binding */ getElements) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + +var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)({ + onboardingWizardPage: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-wizard-page")), + container: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-container")), + rootline: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-rootline")), + steps: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-step")), + skipStepButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-skip-step")), + backButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-back-button")), + consentTrackingButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-consent-tracking")), + installAddonsButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-install-addons-button")), + hiddenLicenseKeyInput: document.getElementById('frm-license-key') + }), + getElements = _createPageElements.getElements, + addElements = _createPageElements.addElements; + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/elements/index.js": +/*!****************************************************!*\ + !*** ./js/src/onboarding-wizard/elements/index.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), +/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) +/* harmony export */ }); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/onboarding-wizard/elements/elements.js"); + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/backButtonListener.js": +/*!***************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/backButtonListener.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Back" button. + * + * @return {void} + */ +function addBackButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + backButtons = _getElements.backButtons; + + // Attach click event listeners to each back buttons + backButtons.forEach(function (backButton) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(backButton, onBackButtonClick); + }); +} + +/** + * Handles the click event on a "Back" button. + * + * @private + * @return {void} + */ +var onBackButtonClick = function onBackButtonClick() { + (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToPrevStep)(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addBackButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js": +/*!**************************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/consentTrackingButtonListener.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Allow & Continue" button in the "Never miss an important update" step. + * + * @return {void} + */ +function addConsentTrackingButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + consentTrackingButton = _getElements.consentTrackingButton; + + // Attach click event listener + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(consentTrackingButton, onConsentTrackingButtonClick); +} + +/** + * Handles the click event on the "Allow & Continue" button in the "Never miss an important update" step. + * + * @private + * @return {void} + */ +var onConsentTrackingButtonClick = /*#__PURE__*/function () { + var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { + var doJsonPost; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + doJsonPost = frmDom.ajax.doJsonPost; + doJsonPost('onboarding_consent_tracking', new FormData()).then(_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep); + case 2: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function onConsentTrackingButtonClick() { + return _ref.apply(this, arguments); + }; +}(); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addConsentTrackingButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/index.js": +/*!**************************************************!*\ + !*** ./js/src/onboarding-wizard/events/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) +/* harmony export */ }); +/* harmony import */ var core_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/events */ "./js/src/core/events/index.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./skipStepButtonListener */ "./js/src/onboarding-wizard/events/skipStepButtonListener.js"); +/* harmony import */ var _backButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backButtonListener */ "./js/src/onboarding-wizard/events/backButtonListener.js"); +/* harmony import */ var _consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./consentTrackingButtonListener */ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js"); +/* harmony import */ var _installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./installAddonsButtonListener */ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + + +/** + * Attaches event listeners for handling user interactions. + * + * @return {void} + */ +function addEventListeners() { + // Add event handling for the "Skip" and "Back" buttons + (0,_skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_backButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); + (0,_consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); + + // Add event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step + (0,_installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__["default"])(); + // Add event handling for an option-box + (0,core_events__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents)(); +} + +/** + * Responds to browser navigation events (back/forward) by updating the UI to match the step indicated in the URL or history state. + * + * @param {PopStateEvent} event The event object associated with the navigation action. + * @return {void} + */ +window.addEventListener('popstate', function (event) { + var _event$state; + var stepName = ((_event$state = event.state) === null || _event$state === void 0 ? void 0 : _event$state.step) || (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.getQueryParam)('step'); + // Navigate to the specified step without adding to browser history + (0,_utils__WEBPACK_IMPORTED_MODULE_6__.navigateToStep)(stepName, 'replaceState'); +}); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js": +/*!************************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/installAddonsButtonListener.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + +/** + * Manages event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. + * + * @return {void} + */ +function addInstallAddonsButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), + installAddonsButton = _getElements.installAddonsButton; + + // Attach click event listener + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(installAddonsButton, onInstallAddonsButtonClick); +} + +/** + * Handles the click event on the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. + * + * @private + * @param {Event} event The click event object. + * @return {void} + */ +var onInstallAddonsButtonClick = /*#__PURE__*/function () { + var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) { + var addons, _getState, installedAddons, installAddonsButton, _iterator, _step, _loop; + return _regeneratorRuntime().wrap(function _callee$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + addons = document.querySelectorAll('.frm-option-box.frm-checked:not(.frm-disabled)'); + _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), installedAddons = _getState.installedAddons; + installAddonsButton = event.currentTarget; + installAddonsButton.classList.add('frm_loading_button'); + _iterator = _createForOfIteratorHelper(addons); + _context2.prev = 5; + _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() { + var addon, addonTitle; + return _regeneratorRuntime().wrap(function _loop$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + addon = _step.value; + _context.prev = 1; + _context.next = 4; + return (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue)(function () { + return installAddon(addon.getAttribute('rel'), addon.dataset); + }); + case 4: + // Capture addon title + addonTitle = addon.dataset.title; + if (!installedAddons.includes(addonTitle)) { + installedAddons.push(addonTitle); + } + _context.next = 11; + break; + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](1); + console.error('An error occurred:', _context.t0); + case 11: + case "end": + return _context.stop(); + } + }, _loop, null, [[1, 8]]); + }); + _iterator.s(); + case 8: + if ((_step = _iterator.n()).done) { + _context2.next = 12; + break; + } + return _context2.delegateYield(_loop(), "t0", 10); + case 10: + _context2.next = 8; + break; + case 12: + _context2.next = 17; + break; + case 14: + _context2.prev = 14; + _context2.t1 = _context2["catch"](5); + _iterator.e(_context2.t1); + case 17: + _context2.prev = 17; + _iterator.f(); + return _context2.finish(17); + case 20: + installAddonsButton.classList.remove('frm_loading_button'); + (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('installedAddons', installedAddons); + (0,_utils__WEBPACK_IMPORTED_MODULE_4__.navigateToNextStep)(); + case 23: + case "end": + return _context2.stop(); + } + }, _callee, null, [[5, 14, 17, 20]]); + })); + return function onInstallAddonsButtonClick(_x) { + return _ref.apply(this, arguments); + }; +}(); + +/** + * Installs an add-on or plugin based on the provided plugin name and vendor status. + * + * @private + * @param {string} plugin The unique identifier or name of the plugin or add-on to be installed. + * @param {Object} options An object containing additional options for the installation. + * @param {boolean} options.isInstalled Indicates whether the plugin is already installed. + * @param {boolean} options.isVendor Indicates whether the plugin is a vendor plugin (true) or a regular add-on (false). + * @return {Promise} A promise that resolves with the JSON response from the server after the installation request is completed. + */ +function installAddon(_x2, _x3) { + return _installAddon.apply(this, arguments); +} +function _installAddon() { + _installAddon = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(plugin, _ref2) { + var isVendor, isInstalled, formData, addonAction, response; + return _regeneratorRuntime().wrap(function _callee2$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + isVendor = _ref2.isVendor, isInstalled = _ref2.isInstalled; + // Prepare FormData for the POST request + formData = new FormData(); + formData.append('nonce', core_constants__WEBPACK_IMPORTED_MODULE_0__.nonce); + formData.append('plugin', plugin); + addonAction = isInstalled ? 'frm_activate_addon' : 'frm_install_addon'; + formData.append('action', isVendor ? 'frm_install_plugin' : addonAction); + _context3.prev = 6; + _context3.next = 9; + return fetch(ajaxurl, { + method: 'POST', + body: formData + }); + case 9: + response = _context3.sent; + if (response.ok) { + _context3.next = 12; + break; + } + throw new Error("Server responded with status ".concat(response.status)); + case 12: + _context3.next = 14; + return response.json(); + case 14: + return _context3.abrupt("return", _context3.sent); + case 17: + _context3.prev = 17; + _context3.t0 = _context3["catch"](6); + console.error('An error occurred:', _context3.t0); + case 20: + case "end": + return _context3.stop(); + } + }, _callee2, null, [[6, 17]]); + })); + return _installAddon.apply(this, arguments); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addInstallAddonsButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/events/skipStepButtonListener.js": +/*!*******************************************************************!*\ + !*** ./js/src/onboarding-wizard/events/skipStepButtonListener.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + +/** + * Manages event handling for the "Skip" step button. + * + * @return {void} + */ +function addSkipStepButtonEvents() { + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + skipStepButtons = _getElements.skipStepButtons; + + // Attach click event listeners to each skip buttons + skipStepButtons.forEach(function (skipButton) { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(skipButton, onSkipStepButtonClick); + }); +} + +/** + * Handles the click event on a "Skip" step button. + * + * @private + * @return {void} + */ +var onSkipStepButtonClick = function onSkipStepButtonClick() { + (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep)(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSkipStepButtonEvents); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/initializeOnboardingWizard.js": +/*!****************************************************************!*\ + !*** ./js/src/onboarding-wizard/initializeOnboardingWizard.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/onboarding-wizard/ui/index.js"); +/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/onboarding-wizard/events/index.js"); +/** + * Internal dependencies + */ + + + +/** + * Initializes Onboarding Wizard. + * + * @return {void} + */ +function initializeOnboardingWizard() { + (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); + (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeOnboardingWizard); + +/***/ }), + +/***/ "./js/src/onboarding-wizard/shared/constants.js": +/*!******************************************************!*\ + !*** ./js/src/onboarding-wizard/shared/constants.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ INITIAL_STEP: () => (/* binding */ INITIAL_STEP), +/* harmony export */ PREFIX: () => (/* binding */ PREFIX), +/* harmony export */ STEPS: () => (/* binding */ STEPS) +/* harmony export */ }); +var INITIAL_STEP = window.frmOnboardingWizardVars.INITIAL_STEP; + +var PREFIX = 'frm-onboarding'; +var STEPS = { + INITIAL: INITIAL_STEP, + INSTALL_ADDONS: 'install-addons', + SUCCESS: 'success', + UNSUCCESSFUL: 'unsuccessful' +}; + +/***/ }), + +/***/ "./js/src/onboarding-wizard/shared/index.js": +/*!**************************************************!*\ + !*** ./js/src/onboarding-wizard/shared/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ INITIAL_STEP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.INITIAL_STEP), +/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), +/* harmony export */ STEPS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.STEPS), +/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), +/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), +/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), +/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/onboarding-wizard/shared/constants.js"); +/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/onboarding-wizard/shared/pageState.js"); + + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/shared/pageState.js": +/*!******************************************************!*\ + !*** ./js/src/onboarding-wizard/shared/pageState.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getSingleState: () => (/* binding */ getSingleState), +/* harmony export */ getState: () => (/* binding */ getState), +/* harmony export */ setSingleState: () => (/* binding */ setSingleState), +/* harmony export */ setState: () => (/* binding */ setState) +/* harmony export */ }); +/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); +/** + * External dependencies + */ + +var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ + processedSteps: [], + installedAddons: [] + }), + getState = _createPageState.getState, + getSingleState = _createPageState.getSingleState, + setState = _createPageState.setState, + setSingleState = _createPageState.setSingleState; + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/ui/index.js": +/*!**********************************************!*\ + !*** ./js/src/onboarding-wizard/ui/index.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), +/* harmony export */ updateRootline: () => (/* reexport safe */ _rootline__WEBPACK_IMPORTED_MODULE_1__.updateRootline) +/* harmony export */ }); +/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/onboarding-wizard/ui/setupInitialView.js"); +/* harmony import */ var _rootline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rootline */ "./js/src/onboarding-wizard/ui/rootline.js"); + + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/ui/rootline.js": +/*!*************************************************!*\ + !*** ./js/src/onboarding-wizard/ui/rootline.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ updateRootline: () => (/* binding */ updateRootline) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + +var COMPLETED_STEP_CLASS = 'frm-completed-step'; + +/** + * Updates the rootline to reflect the current and completed steps. + * + * - Applies COMPLETED_STEP_CLASS to steps before the current one. + * - Applies CURRENT_CLASS to the current step, unless it is the success step. + * + * @param {string} currentStep The current step in the process. + * @return {void} + */ +function updateRootline(currentStep) { + if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL) { + currentStep = _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS; + } + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + rootline = _getElements.rootline; + var currentItem = rootline.querySelector(".frm-rootline-item[data-step=\"".concat(currentStep, "\"]")); + rootline.querySelectorAll('.frm-rootline-item').forEach(function (item) { + item.classList.remove(COMPLETED_STEP_CLASS); + item.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + }); + var prevItem = currentItem.previousElementSibling; + if (prevItem) { + while (prevItem) { + prevItem.classList.add(COMPLETED_STEP_CLASS); + prevItem = prevItem.previousElementSibling; // move to the previous sibling + } + } + if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS) { + currentItem.classList.add(COMPLETED_STEP_CLASS); + } else { + currentItem.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + } +} + +/***/ }), + +/***/ "./js/src/onboarding-wizard/ui/setupInitialView.js": +/*!*********************************************************!*\ + !*** ./js/src/onboarding-wizard/ui/setupInitialView.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ setupInitialView) +/* harmony export */ }); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); +/** + * External dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Initializes the onboarding wizard's UI, sets up the initial step based on certain conditions, + * and applies necessary UI enhancements for a smoother user experience. + * + * @return {void} + */ +function setupInitialView() { + navigateToInitialStep(); + fadeInPageElements(); +} + +/** + * Determines the initial step in the onboarding process and navigates to it, considering the installation + * status of Formidable Pro and specific query parameters. + * + * @private + * @return {void} + */ +function navigateToInitialStep() { + var initialStepName = determineInitialStep(); + clearOnboardingQueryParams(); + (0,_utils__WEBPACK_IMPORTED_MODULE_3__.navigateToStep)(initialStepName, 'replaceState'); +} + +/** + * Determines the initial step based on the current state, such as whether Formidable Pro is installed + * and the presence of specific query parameters. Also handles the removal of unnecessary steps. + * + * @private + * @return {string} The name of the initial step to navigate to. + */ +function determineInitialStep() { + var isConnectedAccount = (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('success'); + if (isConnectedAccount === '0') { + return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL; + } + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + hiddenLicenseKeyInput = _getElements.hiddenLicenseKeyInput; + if (hiddenLicenseKeyInput || isConnectedAccount) { + return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INSTALL_ADDONS; + } + return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('step') || _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INITIAL; +} + +/** + * Clears specific query parameters related to the onboarding process. + * + * @private + * @return {void} + */ +function clearOnboardingQueryParams() { + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('key'); + (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('success'); +} + +/** + * Smoothly fades in the background and container elements of the page for a more pleasant user experience. + * + * @private + * @return {void} + */ +function fadeInPageElements() { + var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), + container = _getElements2.container; + new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(container).fadeIn(); +} + +/***/ }), + +/***/ "./js/src/onboarding-wizard/utils/index.js": +/*!*************************************************!*\ + !*** ./js/src/onboarding-wizard/utils/index.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ navigateToNextStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToNextStep), +/* harmony export */ navigateToPrevStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToPrevStep), +/* harmony export */ navigateToStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToStep) +/* harmony export */ }); +/* harmony import */ var _navigateToStep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navigateToStep */ "./js/src/onboarding-wizard/utils/navigateToStep.js"); + + +/***/ }), + +/***/ "./js/src/onboarding-wizard/utils/navigateToStep.js": +/*!**********************************************************!*\ + !*** ./js/src/onboarding-wizard/utils/navigateToStep.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ navigateToNextStep: () => (/* binding */ navigateToNextStep), +/* harmony export */ navigateToPrevStep: () => (/* binding */ navigateToPrevStep), +/* harmony export */ navigateToStep: () => (/* binding */ navigateToStep) +/* harmony export */ }); +/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); +/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); +/* harmony import */ var _dataUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dataUtils */ "./js/src/onboarding-wizard/dataUtils/index.js"); +/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui */ "./js/src/onboarding-wizard/ui/index.js"); +/** + * External dependencies + */ + + + +/** + * Internal dependencies + */ + + + + + +/** + * Navigates to the given step in the onboarding sequence. + * Optionally updates the browser's history state to include the current step. + * + * @param {string} stepName The name of the step to navigate to. + * @param {string} [updateMethod='pushState'] Specifies the method to update the browser's history and URL. Accepts 'pushState' or 'replaceState'. If omitted, defaults to 'pushState'. + * @return {void} + */ +var navigateToStep = function navigateToStep(stepName) { + var updateMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'pushState'; + // Find the target step element + var targetStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step[data-step-name=\"").concat(stepName, "\"]")); + if (!targetStep) { + return; + } + + // Find and hide the current step element + var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); + if (currentStep) { + currentStep.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(currentStep); + } + + // Display the target step element + targetStep.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(targetStep); + new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(targetStep).fadeIn(); + + // Update the onboarding wizard's current step attribute + var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), + onboardingWizardPage = _getElements.onboardingWizardPage; + onboardingWizardPage.setAttribute('data-current-step', stepName); + + // Update the URL query parameter, with control over history update method + (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.setQueryParam)('step', stepName, updateMethod); + (0,_ui__WEBPACK_IMPORTED_MODULE_5__.updateRootline)(stepName); +}; + +/** + * Navigates to the next step in the sequence. + * + * The function assumes steps are sequentially ordered in the DOM. + * + * @return {void} + */ +var navigateToNextStep = function navigateToNextStep() { + var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); + var nextStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.nextElementSibling; + if (!nextStep) { + return; + } + var processedStep = currentStep.dataset.stepName; + var nextStepName = nextStep.dataset.stepName; + + // Save processed steps + var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), + processedSteps = _getState.processedSteps; + if (!processedSteps.includes(processedStep)) { + processedSteps.push(processedStep); + (0,_shared__WEBPACK_IMPORTED_MODULE_4__.setSingleState)('processedSteps', processedSteps); + } + (0,_dataUtils__WEBPACK_IMPORTED_MODULE_2__.setupUsageData)(processedStep, nextStepName); + navigateToStep(nextStepName); +}; + +/** + * Navigates to the previous step in the sequence. + * + * The function assumes steps are sequentially ordered in the DOM. + * + * @return {void} + */ +var navigateToPrevStep = function navigateToPrevStep() { + var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); + var prevStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.previousElementSibling; + if (!prevStep) { + return; + } + navigateToStep(prevStep.dataset.stepName); +}; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/*!*******************************************!*\ + !*** ./js/src/onboarding-wizard/index.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); +/* harmony import */ var _initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./initializeOnboardingWizard */ "./js/src/onboarding-wizard/initializeOnboardingWizard.js"); +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + +(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__["default"])(function () { + (0,_initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__["default"])(); +}); +/******/ })() +; +//# sourceMappingURL=onboarding-wizard.js.map \ No newline at end of file diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index 883a23ad84..18fa1a61ce 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4547,6 +4547,7 @@ window.frmAdminBuildJS = function() { if ( hoverTargetSection ) { targetSection = hoverTargetSection.closest( 'ul' ).closest( '.frm_field_box.ui-draggable' ); } + const hoverTargetBox = hoverTarget.querySelector( 'li' ); if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { // If field target field is in a section. $range = $firstGroup.parent().nextUntil( targetSection || hoverTarget.parentNode ); @@ -4555,7 +4556,7 @@ window.frmAdminBuildJS = function() { return $range; } const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); - $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTargetBox ) + 1 ) ); return $range; } @@ -4565,7 +4566,7 @@ window.frmAdminBuildJS = function() { return $range; } const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); - $range = $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTarget ) + 1 ) ); + $range = $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTargetBox ) + 1 ) ); return $range; } From 5ebc44b3910a1d4d6fd5647b42daffc85c828408 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 14 Oct 2025 16:09:51 +0300 Subject: [PATCH 07/14] Fix bottom up multiselection --- js/formidable_admin.js | 19 ++++++++++--------- js/src/admin/admin.js | 9 ++++----- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/js/formidable_admin.js b/js/formidable_admin.js index 49cb2646c8..c492352f90 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -2,14 +2,14 @@ /*!*******************************!*\ !*** ./js/src/admin/admin.js ***! \*******************************/ +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } /* exported frm_add_logic_row, frm_remove_tag, frm_show_div, frmCheckAll, frmCheckAllLevel */ /* eslint-disable jsdoc/require-param, prefer-const, no-redeclare, @wordpress/no-unused-vars-before-return, jsdoc/check-types, jsdoc/check-tag-names, @wordpress/i18n-translator-comments, @wordpress/valid-sprintf, jsdoc/require-returns-description, jsdoc/require-param-type, no-unused-expressions, compat/compat */ @@ -3946,28 +3946,29 @@ window.frmAdminBuildJS = function () { */ function getSelectedRange($firstGroup, hoverTarget) { var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); - var targetSection, $range; + var targetSection, $range, fieldsInSection; if (hoverTargetSection) { targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); + fieldsInSection = _toConsumableArray(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')).filter(function (el) { + return el.classList.length === 2; + }); } var hoverTargetBox = hoverTarget.querySelector('li'); if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { // If field target field is in a section. $range = $firstGroup.parent().nextUntil(targetSection || hoverTarget.parentNode); - if (!hoverTargetSection) { + if (!fieldsInSection) { return $range; } - var _fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); - $range = $range.add(_fieldsInSection.slice(0, _fieldsInSection.indexOf(hoverTargetBox) + 1)); + $range = $range.add(fieldsInSection.slice(0, fieldsInSection.indexOf(hoverTargetBox) + 1)); return $range; } // Select fields back to the first group. $range = $firstGroup.parent().prevUntil(targetSection || hoverTarget.parentNode); - if (!hoverTargetSection) { + if (!fieldsInSection) { return $range; } - var fieldsInSection = Array.from(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')); $range = $range.add(fieldsInSection.slice(-fieldsInSection.indexOf(hoverTargetBox) + 1)); return $range; } diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index 18fa1a61ce..9aaa54afc2 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4543,29 +4543,28 @@ window.frmAdminBuildJS = function() { */ function getSelectedRange( $firstGroup, hoverTarget ) { const hoverTargetSection = hoverTarget.closest( '.edit_field_type_divider' ); - let targetSection, $range; + let targetSection, $range, fieldsInSection; if ( hoverTargetSection ) { targetSection = hoverTargetSection.closest( 'ul' ).closest( '.frm_field_box.ui-draggable' ); + fieldsInSection = [ ...hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' )].filter( el => el.classList.length === 2 ); } const hoverTargetBox = hoverTarget.querySelector( 'li' ); if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { // If field target field is in a section. $range = $firstGroup.parent().nextUntil( targetSection || hoverTarget.parentNode ); - if ( ! hoverTargetSection ) { + if ( ! fieldsInSection ) { return $range; } - const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); $range = $range.add( fieldsInSection.slice( 0, fieldsInSection.indexOf( hoverTargetBox ) + 1 ) ); return $range; } // Select fields back to the first group. $range = $firstGroup.parent().prevUntil( targetSection || hoverTarget.parentNode ); - if ( ! hoverTargetSection ) { + if ( ! fieldsInSection ) { return $range; } - const fieldsInSection = Array.from( hoverTargetSection.querySelectorAll( '.frm_field_box.ui-draggable' ) ); $range = $range.add( fieldsInSection.slice( -fieldsInSection.indexOf( hoverTargetBox ) + 1 ) ); return $range; From 26a63d1c8bd81a43f6599696083540380ba3427e Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 14 Oct 2025 16:26:56 +0300 Subject: [PATCH 08/14] Correct some multiselection errors --- css/admin/frm-settings-components.css | 620 +- css/font_icons.css | 854 +- css/frm_admin.css | 12416 +----------------------- js/addons-page.js | 4800 +-------- js/form-templates.js | 6754 +------------ js/formidable-settings-components.js | 2765 +----- js/formidable_admin.js | 10183 +------------------ js/formidable_blocks.js | 2719 +----- js/formidable_dashboard.js | 918 +- js/formidable_overlay.js | 746 +- js/formidable_styles.js | 3028 +----- js/onboarding-wizard.js | 1856 +--- js/src/admin/admin.js | 2 +- 13 files changed, 16 insertions(+), 47645 deletions(-) diff --git a/css/admin/frm-settings-components.css b/css/admin/frm-settings-components.css index bd90479bcd..4d0879f684 100644 --- a/css/admin/frm-settings-components.css +++ b/css/admin/frm-settings-components.css @@ -1,619 +1 @@ -/*!***********************************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm-settings-components.scss ***! - \***********************************************************************************************************************************************************************************************************************************************/ -/** - * Formidable Forms settings components styles - */ -/** - * Accordion settings component styles - */ -.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus { - background: none; -} -.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover > svg:last-child, -.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:first-child, -.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title > svg:last-child { - color: var(--grey-900); -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component { - align-self: center; -} - -/** - * Color picker component styles - */ -.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button, -.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button { - background-color: #fff !important; -} -.frm_settings_form .frm-style-component .wp-picker-container button, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button { - position: relative; - height: 36px !important; - background-image: none !important; - overflow: hidden; - background-color: #fff !important; -} -.frm_settings_form .frm-style-component .wp-picker-container::after, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after { - content: ""; - width: 20px; - height: 20px; - display: block; - position: absolute; - top: 0; - right: 8px; - bottom: 0; - margin: auto; - background: url("../../images/style/small-arrow.svg") no-repeat; - background-position: center; - z-index: 10; -} -.frm_settings_form .frm-style-component .wp-color-result-text, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text { - line-height: 36px !important; - padding: 0 12px; - border: 0; -} -.frm_settings_form .frm-style-component .color-alpha, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha { - width: 20px !important; - height: 20px !important; - border-radius: 50% !important; - border: 1px solid rgb(208, 213, 221); - top: 0; - left: 0; - bottom: 0; - margin: auto; - margin-left: 12px; -} -.frm_settings_form .frm-style-component .wp-picker-input-wrap input, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input { - width: calc(100% - 10px) !important; - margin: 1px 5px; - height: 32px; - line-height: 32px; -} - -/** - * Background image component styles - */ -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component > div { - max-width: 216px; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container { - max-width: calc(100% - 44px); - position: relative; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box { - width: 36px; - height: 36px; - padding: 0; - background: white; - overflow: hidden; - text-indent: -999px; - flex-wrap: wrap; - border: none; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame { - margin-left: 0; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper { - position: relative; - width: 36px; - height: 36px; - margin: 0; - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); - overflow: hidden; - box-sizing: border-box; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame { - max-width: 120%; - height: 120%; - margin: -10%; - position: relative; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow: hidden; - margin: 0; - border-radius: var(--small-radius); -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option { - width: 100%; - height: 100%; - border: 1px solid var(--red-500); - text-indent: -9999px; - position: absolute; - top: 0; - left: 0; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before { - opacity: 0; - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - z-index: 1; - top: 0; - left: 0; - background: rgba(255, 255, 255, 0.8); -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after { - opacity: 0; - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - z-index: 1; - top: 0; - left: 0; - background: url("../../images/style/close.svg") no-repeat; - background-position: center; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after { - opacity: 1; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img { - width: 100%; - height: 100%; -} -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper + *, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings, -.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option * { - display: none; -} - -/** - * Radio buttons component styles - */ -.frm-style-component .frm-radio-container { - max-width: 216px; - height: 36px; - background: rgb(242, 244, 247); - gap: var(--small-gap); - padding: var(--gap-2xs); - box-sizing: border-box; - border-radius: var(--small-radius); - position: relative; -} -.frm-style-component.frm-field-shape .frm-radio-container { - max-width: unset; -} -.frm-style-component.frm-direction-component .frm-radio-container { - gap: var(--gap-xs); -} -.frm-style-component .frm-radio-container svg { - width: 16px; -} -.frm-style-component .frm-radio-container .frm-radio-active-tracker { - display: block; - width: 28%; - height: calc(100% - 8px); - background: white; - border-radius: var(--small-radius); - box-shadow: var(--button-shadow); - position: absolute; - top: var(--gap-2xs); - bottom: 0; - left: var(--gap-2xs); - z-index: 1; - transition: 0.35s transform cubic-bezier(0.075, 0.82, 0.165, 1); -} -.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker { - width: 23%; -} -.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker, .frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { - width: calc(50% - var(--gap-xs)); -} -.frm-style-component .frm-radio-container > label { - width: 30%; - height: 100%; - margin: 0; - cursor: pointer; - position: relative; - display: flex; - z-index: 2; -} -.frm-style-component.frm-field-shape .frm-radio-container > label { - width: 23%; -} -.frm-style-component.frm-align-component.frm-2-options .frm-radio-container > label, .frm-style-component.frm-direction-component .frm-radio-container > label, .frm-style-component.frm-text-toggle-component .frm-radio-container > label { - width: 50%; -} -.frm-style-component.frm-text-toggle-component .frm-radio-container { - height: 44px; - max-width: unset; - gap: var(--gap-xs); - padding: var(--gap-xs); -} -.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker { - height: calc(100% - var(--gap-sm)); - top: var(--gap-xs); -} - -.frm-style-tabs-wrapper .frm-tabs-navs ul > li:not(.frm-active):hover, -.frm-style-component .frm-radio-container input:not(:checked) + label:hover { - background: rgb(234, 236, 240); - border-radius: var(--small-radius); - box-shadow: var(--button-shadow); -} - -.frm-style-component .frm-radio-container input { - display: none; -} - -/** - * Sliders component styles - */ -.frm-style-component .frm-slider-container { - width: calc(100% - 91px); - display: flex; - align-items: center; - color: rgb(29, 41, 57); -} -.frm-style-component .frm-slider-container svg.frmsvg { - color: currentColor; - margin-right: 8px; - margin-left: -5px; - position: relative; - z-index: 15; -} - -.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover { - color: rgb(65, 153, 253); - cursor: pointer; -} - -.frm-style-component .frm-slider-container .frm-slider-active-track { - display: block; - height: 100%; - width: 0; - position: relative; - border-radius: 200px; -} -.frm-style-component .frm-slider-container .frm-slider-active-track, -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { - background: rgb(65, 153, 253); - box-shadow: 0 1.88px 4px -1px rgba(16, 24, 40, 0.03), 0 6px 8px -2px rgba(16, 24, 40, 0.08); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet { - position: absolute; - display: block; - width: 16px; - height: 16px; - border-radius: 50%; - transform: translateX(15px); - cursor: grab; - right: 0; - top: 0; - bottom: 0; - margin: auto; -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label { - position: absolute; - display: block; - width: 48px; - height: 36px; - background: rgb(16, 24, 40); - color: white; - font-weight: 400; - font-size: var(--text-sm); - line-height: 36px; - border-radius: var(--small-radius); - transform: translate(-18px, -42px) scale3d(0.7, 1, 1); - opacity: 0; - z-index: -2; - pointer-events: none; - text-align: center; - user-select: none; -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label { - z-index: 12; - transform: translate(-18px, -42px) scale3d(1, 1, 1); - opacity: 1; - transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before { - content: ""; - display: block; - position: absolute; - width: 18px; - height: 18px; - border-radius: 50%; - left: 0; - top: 0; - transform: translate(-5px, -5px) scale3d(0.7, 0.7, 1); - border: 4px solid rgb(65, 153, 253); - opacity: 0; - transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before { - opacity: 0.5; - transform: translate(-5px, -5px) scale3d(1, 1, 1); - transition: 0.3s opacity, 0.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after { - content: ""; - position: absolute; - display: block; - width: 180%; - height: 200%; - border-radius: 50%; - left: 0; - top: 0; - transform: translate(-24%, -24%); -} - -.frm-style-component .frm-slider-value { - width: 86px; - height: 36px; - display: flex; - justify-content: center; - box-sizing: border-box; - background: white; - border-radius: var(--small-radius); - border: 1px solid var(--grey-300); -} -.frm-style-component .frm-slider-value > * { - border: none; -} -.frm-style-component .frm-slider-value input { - width: 40px; - height: 100%; - padding: 0; - font-size: var(--text-sm); - color: rgb(16, 24, 40); - padding-left: 12px; - box-sizing: border-box; -} -.frm-style-component .frm-slider-value select { - text-align: right; - padding: 0; - font-size: var(--text-sm); - color: rgb(102, 112, 133); - width: 44px; - background: url("../../images/style/small-arrow.svg") no-repeat; - background-position: center right 12px; - padding-right: 24px !important; -} -.frm-style-component .frm-slider { - display: block; - width: calc(100% - 5px); - height: 4px; - background: rgb(234, 236, 240); - border-radius: 200px; - cursor: pointer; -} - -.frm-slider-component .frm-independent-slider-field { - margin-top: 10px; -} -.frm-slider-component.frm-disabled .frm-slider-container { - pointer-events: none; - opacity: 0.5; -} -.frm-slider-component.frm-disabled .frm-slider-value input[type=text] { - width: 28px; -} -.frm-slider-component.frm-disabled .frm-slider-value select { - width: 56px; -} -.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text] { - width: 56px; -} -.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select { - width: 28px; -} - -.frm-style-component .frm-slider-component.frm-has-multiple-values { - margin-bottom: 10px; -} - -/** - * Tabs component styles - */ -.frm-tabs-wrapper { - position: relative; - overflow: hidden; -} -.frm-tabs-wrapper .frm-tabs-navigator { - margin: 0; - padding: 0; - display: flex; - gap: var(--gap-xs); - justify-content: space-between; - align-items: center; - background: rgb(242, 244, 247); - border-radius: var(--small-radius); - box-sizing: border-box; - height: 44px; - position: relative; - z-index: 2; -} -.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item { - flex: 1; - text-align: center; - cursor: pointer; -} -.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background { - display: block; - height: 100%; - background: white; - position: absolute; - top: 0; - left: 0; - z-index: 1; -} - -.frm-style-tabs-wrapper { - position: relative; -} -.frm-style-tabs-wrapper .frm-tabs-navs { - padding: 0; - min-height: 44px; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul { - margin: 0; - height: var(--h-md); - position: relative; - justify-content: space-between; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li, -.frm-style-tabs-wrapper .frm-tabs-navs ul li a { - color: var(--grey-500); - font-weight: 500; - font-size: var(--text-sm); - line-height: 28px; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li { - flex: 1; - height: 28px; - text-align: center; - margin-top: var(--gap-xs); - margin-bottom: 0; - cursor: pointer; -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active, .frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a { - color: var(--grey-900); -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { - margin-left: var(--gap-xs); -} -.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { - margin-right: var(--gap-xs); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter { - position: absolute; - top: 0; - left: 0; - width: 100%; - background: rgb(242, 244, 247); - height: 44px; - margin: 0; - border-radius: var(--small-radius); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline { - height: 28px; - background: white; - position: absolute; - left: 0; - bottom: 8px; - width: 45px; - transition: 0.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); - border-radius: var(--small-radius); - box-shadow: var(--button-shadow); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first { - left: var(--gap-xs); -} -.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last { - left: calc(-1 * var(--gap-xs)); -} - -.frm-tabs-container { - position: relative; - overflow: hidden; - margin-top: var(--gap-md); - height: 100%; -} - -.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track { - transition: 0.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94); -} -.frm-style-tabs-wrapper .frm-tabs-slide-track > div { - flex: 0 0 100%; - opacity: 0; - transition: 0.25s opacity linear; - position: relative; - height: auto; - max-height: unset; - overflow: hidden; - box-sizing: border-box; -} -.frm-style-tabs-wrapper .frm-tabs-slide-track > div > div { - overflow: auto; - position: relative; - width: 100%; - padding: 0; - box-sizing: border-box; -} - -.frm-tabs-slide-track > div > div:first-child { - height: 100%; -} -.frm-tabs-slide-track > div.frm-active { - opacity: 1; - transition: 0.35s opacity linear; -} - -/** - * Miscellaneous settings component styles - */ -.frm-style-component .frm_toggle_slider { - background: rgb(242, 244, 247); -} - -.frm-style-component label.frm-copy-text { - line-height: 32px; - cursor: pointer; - white-space: nowrap; -} - -.frm-style-component .wp-picker-holder { - right: 0; -} - -.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading { - font-weight: 500; - font-size: var(--text-md); - color: var(--grey-900); -} - -.frm-unit-input { - position: relative; - display: flex; - align-items: center; -} -.frm-unit-input input[type=number]::-webkit-outer-spin-button, -.frm-unit-input input[type=number]::-webkit-inner-spin-button { - -webkit-appearance: none; - appearance: none; -} -.frm-unit-input .frm-input-group-suffix { - position: absolute; - top: 1px; - right: 1px; - display: flex; - align-items: center; - height: calc(100% - 2px); - padding-right: var(--gap-xs); -} -.frm-unit-input .frm-input-group-suffix select { - width: fit-content; - height: 100%; - min-height: unset; - font-size: var(--text-sm); - text-align: right; - color: var(--grey-500) !important; - background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%; - padding-left: var(--gap-2xs); - padding-right: 21px !important; - border: transparent; -} -.frm-unit-input .frm-input-group-suffix select:focus-visible { - outline: 1px solid var(--primary-500); - outline-offset: -2px; -} - -/*# sourceMappingURL=frm-settings-components.css.map*/ \ No newline at end of file +.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} diff --git a/css/font_icons.css b/css/font_icons.css index c25d12cac0..b21fe208ed 100644 --- a/css/font_icons.css +++ b/css/font_icons.css @@ -1,853 +1 @@ -/*!****************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/font_icons.scss ***! - \****************************************************************************************************************************************************************************************************************************/ -@charset "UTF-8"; -/** - * Font Icons - */ -@font-face { - font-family: "s11-fp"; - src: url("../fonts/s11-fp.woff?v=7") format("woff"); - font-weight: 400; - font-style: normal; -} -.frm-submenu-highlight { - background: #1da867; -} - -.frm-submenu-highlight a span { - color: #fff; - font-weight: 600; -} - -.frmfont, -.frm_icon_font { - text-decoration: none; - text-shadow: none; - font-weight: 400; - display: inline-block; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: auto; - line-height: 1.5; - transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; - font-size: 18px; -} - -i.frmfont, -i.frm_icon_font { - font-style: normal; - font-variant: normal; - speak: none; -} - -.frmfont::before, -select.frmfont, -.frm_icon_font::before, -select.frm_icon_font { - font-family: "s11-fp" !important; - text-align: center; -} - -.frmfont, -a.frmfont, -.frmfont:hover, -a.frmfont:hover .frm_icon_font, -a.frm_icon_font, -.frm_icon_font:hover, -a.frm_icon_font:hover { - text-decoration: none !important; - box-shadow: none; -} - -.frmfont:focus, -.frm_icon_font:focus { - box-shadow: none; -} - -.frmfont:active, -.frm_icon_font:active { - outline: none; -} - -.frm_trigger .frm_icon_font { - padding: 0 5px; -} - -.frm_logo_icon::before { - content: "\e601"; -} - -.frm_required_icon::before { - content: "\e612"; -} - -.frm_delete_icon::before { - content: "\e610" !important; -} - -.frm_move_icon::before { - content: "\e61a"; -} - -.frm_drag_icon::before { - content: "\e93b"; -} - -.frm_clear_icon::before { - content: "\e60a"; -} - -.frm_noclear_icon::before { - content: "\e60b"; -} - -.frm_duplicate_icon::before { - content: "\e61b"; -} - -.frm_copy_icon::before { - content: "\f0c5"; -} - -.frm_clone_icon::before { - content: "\f24d"; -} - -.frm_tooltip_icon::before { - content: "\e611"; -} - -.frm_tooltip_solid_icon::before { - content: "\e907"; -} - -.frm_forbid_icon::before { - content: "\e636"; -} - -.frm_checkmark_icon::before { - content: "\e90a"; -} - -.frm_check_icon::before { - content: "\e605"; -} - -.frm_check1_icon::before { - content: "\e606"; -} - -.frm_plus_icon::before { - content: "\e62f"; -} - -.frm_plus1_icon::before { - content: "\e602"; -} - -.frm_plus2_icon::before { - content: "\e603"; -} - -.frm_plus3_icon::before { - content: "\e632"; -} - -.frm_plus4_icon::before { - content: "\e60f"; -} - -.frm_minus_icon::before { - content: "\e62e"; -} - -.frm_minus1_icon::before { - content: "\e600"; -} - -.frm_minus2_icon::before { - content: "\e604"; -} - -.frm_minus3_icon::before { - content: "\e633"; -} - -.frm_minus4_icon::before { - content: "\e613"; -} - -.frm_cancel_icon::before { - content: "\e607"; -} - -.frm_cancel1_icon::before { - content: "\e608"; -} - -.frm_close_icon::before { - content: "\e928"; -} - -.frm_report_problem_solid_icon::before { - content: "\e914"; -} - -.frm_report_problem_icon::before { - content: "\e915"; -} - -.frm_arrowup_icon::before { - content: "\e60d"; -} - -.frm_arrowup1_icon::before { - content: "\e60e"; -} - -.frm_arrowup2_icon::before { - content: "\e630"; -} - -.frm_arrowup3_icon::before { - content: "\e62b"; -} - -.frm_arrowup4_icon::before { - content: "\e62c"; -} - -.frm_arrowup5_icon::before { - content: "\e635"; -} - -.frm_arrowup5_solid_icon::before { - content: "\e9d"; -} - -.frm_arrowup7_icon::before { - content: "\e908"; -} - -.frm_arrowup6_icon::before { - content: "\e62d"; -} - -.frm_arrowdown_icon::before { - content: "\e609"; -} - -.frm_arrowdown1_icon::before { - content: "\e60c"; -} - -.frm_arrowdown2_icon::before { - content: "\e631"; -} - -.frm_arrowdown3_icon::before { - content: "\e628"; -} - -.frm_arrowdown4_icon::before { - content: "\e629"; -} - -.frm_arrowdown5_icon::before { - content: "\e634"; -} - -.frm_arrowdown5_solid_icon::before { - content: "\e905"; -} - -.frm_arrowdown7_icon::before { - content: "\e90b"; -} - -.frm_arrowdown6_icon::before { - content: "\e62a"; -} - -.frm_arrow_left_icon::before { - content: "\e912"; -} - -.frm_arrow_right_icon::before { - content: "\e913"; -} - -.frm_filter_icon::before { - content: "\e90c"; -} - -.frm_download_icon::before { - content: "\e615"; -} - -.frm_upload2_icon::before { - content: "\f093"; -} - -.frm_upload_icon::before { - content: "\e616"; -} - -.frm_download2_icon::before { - content: "\f019"; -} - -.frm_hard_drive_icon::before { - content: "\e916"; -} - -.frm_pencil_solid_icon::before { - content: "\e901"; -} - -.frm_pencil_icon::before { - content: "\e61d"; -} - -.frm_signature_icon::before { - content: "\e919"; -} - -.frm_user_icon::before { - content: "\e7ff"; -} - -.frm_register_icon::before { - content: "\e637"; -} - -.frm_account_circle_solid_icon::before { - content: "\e853"; -} - -.frm_account_circle_icon::before { - content: "\e921"; -} - -.frm_address_card_icon::before { - content: "\e996"; -} - -.frm_paragraph_icon::before { - content: "\f1dd"; -} - -.frm_checkbox_unchecked_icon::before { - content: "\e91e"; -} - -.frm_checkbox_icon::before { - content: "\e922"; -} - -.frm_checkbox_solid_icon::before { - content: "\e91f"; -} - -.frm_dropdown_icon::before { - content: "\e909"; -} - -.frm_caret_square_down_icon::before { - content: "\f150"; -} - -.frm_check_square_icon::before { - content: "\f14a"; -} - -.frm_radio_unchecked_icon::before { - content: "\e971"; -} - -.frm_radio_checked_icon::before { - content: "\ea54"; -} - -.frm_scrubber_icon::before { - content: "\f2f8"; -} - -.frm_location_solid_icon::before { - content: "\e955"; -} - -.frm_location_icon::before { - content: "\e947"; -} - -.frm_toggle_on_icon::before { - content: "\f205"; -} - -.frm_toggle_off_icon::before { - content: "\f204"; -} - -.frm_shield_check_icon::before { - content: "\f2f7"; -} - -.frm_shield_check_solid_icon::before { - content: "\e97d"; -} - -.frm_clock_icon::before { - content: "\e929"; -} - -.frm_clock_solid_icon::before { - content: "\e985"; -} - -.frm_link_icon::before { - content: "\f0c1"; -} - -.frm_email_icon::before { - content: "\e626"; -} - -.frm_email_solid_icon::before { - content: "\f0e0"; -} - -.frm_mail_bulk_icon::before { - content: "\e95c"; -} - -.frm_phone_icon::before { - content: "\e942"; -} - -.frm_calendar_icon::before { - content: "\f073"; -} - -.frm_code_icon::before { - content: "\e90d"; -} - -.frm_tag_icon::before { - content: "\e98b"; -} - -.frm_tag_solid_icon::before { - content: "\e989"; -} - -.frm_price_tags_icon::before { - content: "\e936"; -} - -.frm_search_icon::before { - content: "\e978"; -} - -.frm_sitemap_icon::before { - content: "\f0e8"; -} - -.frm_file_icon::before { - content: "\f15b"; -} - -.frm_file_text_solid_icon::before { - content: "\f15c"; -} - -.frm_file_text_icon::before { - content: "\e923"; -} - -.frm-option-icon::before, -.frm_option_icon::before { - content: "\e904"; -} - -.frm_option_solid_icon::before { - content: "\e906"; -} - -.frm_more_horiz_icon::before { - content: "\e5d3"; -} - -.frm_more_vert_icon::before { - content: "\e5d4"; -} - -.frm_more_horiz_solid_icon { - font-size: 28px !important; - font-weight: 700; - line-height: 18px; -} - -.frm_more_horiz_solid_icon::before { - content: "···"; -} - -.frm_more_vert_solid_icon::before { - content: "\f142"; -} - -.frm_calculator_icon::before { - content: "\f1ec"; -} - -.frm_keyboard_icon::before { - content: "\e924"; -} - -.frm_eye_icon::before { - content: "\f06e"; -} - -.frm_eye_solid_icon::before { - content: "\e945"; -} - -.frm_eye_slash_icon::before { - content: "\f070"; -} - -.frm_eye_slash_solid_icon::before { - content: "\e949"; -} - -.frm_page_break_icon::before { - content: "\e8e9"; -} - -.frm_view_day_icon::before { - content: "\e8ed"; -} - -.frm_attach_file_icon::before { - content: "\e226"; -} - -.frm_printer_icon::before { - content: "\e926"; -} - -.frm_header_icon::before { - content: "\f1dc"; -} - -.frm_h1_icon::before { - content: "\e94c"; -} - -.frm_repeat_icon::before { - content: "\f363"; -} - -.frm_repeater_icon::before { - content: "\e974"; -} - -.frm_hashtag_icon::before { - content: "\e292"; -} - -.frm_save_icon::before { - content: "\e927"; -} - -.frm_sliders_icon::before { - content: "\f1de"; -} - -.frm_code_commit_icon::before { - content: "\f386"; -} - -.frm_star_icon::before { - content: "\e9d7"; -} - -.frm_star_full_icon::before { - content: "\e9d9"; -} - -.frm_star_half_icon::before { - content: "\e9d8"; -} - -.frm_linear_scale_icon::before { - content: "\e260"; -} - -.frm_pie_chart_icon::before { - content: "\e99a"; -} - -.frm_stats_bars_icon::before { - content: "\e99c"; -} - -.frm_sms_icon::before { - content: "\e61c"; -} - -.frm_highrise_icon::before { - content: "\e617"; -} - -.frm_mailchimp_icon::before { - content: "\e622"; -} - -.frm_feed_icon::before { - content: "\e624"; -} - -.frm_align_right_icon::before { - content: "\e90f"; -} - -.frm_align_left_icon::before { - content: "\e910"; -} - -.frm_button_icon::before { - content: "\e911"; -} - -.frm_browser_icon::before { - content: "\e925"; -} - -.frm_cloud_upload_solid_icon::before { - content: "\e92c"; -} - -.frm_shuffle_icon::before { - content: "\e917"; -} - -.frm_swap_icon::before { - content: "\e918"; -} - -.frm_pallet_icon::before { - content: "\e96d"; -} - -.frm_fingerprint_icon::before { - content: "\e94a"; -} - -.frm_ghost_icon::before { - content: "\e94b"; -} - -.frm_heart_solid_icon::before { - content: "\e94d"; -} - -.frm_heart_icon::before { - content: "\e94e"; -} - -.frm_history_icon::before { - content: "\e94f"; -} - -.frm_import_icon::before { - content: "\e91a"; -} - -.frm_export_icon::before { - content: "\e91b"; -} - -.frm_label_solid_icon::before { - content: "\e952"; -} - -.frm_label_icon::before { - content: "\e953"; -} - -.frm_lock_open_icon::before { - content: "\e957"; -} - -.frm_lock_icon::before { - content: "\e959"; -} - -.frm_dollar_sign_icon::before { - content: "\e91c"; -} - -.frm_percent_icon::before { - content: "\e939"; -} - -.frm_external_link_icon::before { - content: "\e966"; -} - -.frm_pageview_solid_icon::before { - content: "\e96a"; -} - -.frm_pageview_icon::before { - content: "\e96b"; -} - -.frm_settings_icon::before { - content: "\e97a"; -} - -.frm_stamp_icon::before { - content: "\e980"; -} - -.frm_support_icon::before { - content: "\f1cd"; -} - -.frm_text_icon::before { - content: "\e98d"; -} - -.frm_text2_icon::before { - content: "\f031"; -} - -.frm_white_label_icon::before { - content: "\e91d" !important; -} - -.frm_authorize_icon::before { - content: "\e903"; -} - -.frm_icon_font.frm_activecampaign_icon { - background-image: none; -} - -.frm_activecampaign_icon::before { - content: "\e930"; -} - -.frm_aweber_icon::before { - content: "\e627"; -} - -.frm_campaignmonitor_icon::before { - content: "\e946"; -} - -.frm_constant_contact_icon::before { - content: "\e931"; -} - -.frm_getresponse_icon::before { - content: "\e932"; -} - -.frm_googlesheets_icon::before { - content: "\e944"; -} - -.frm_building_icon::before { - content: "\e93f"; -} - -.frm_hubspot_icon::before { - content: "\e933"; -} - -.frm_icontact_icon::before { - content: "\e940"; -} - -.frm_icon_font.frm_mailpoet_icon::before { - content: "\e934"; -} - -.frm_paypal_icon::before { - content: "\e61f"; -} - -.frm_sendinblue_icon::before { - content: "\e943"; -} - -.frm_sendy_icon::before { - content: "\e941"; -} - -.frm_salesforce_icon::before { - content: "\e935"; -} - -.frm_salesforcealt_icon::before { - content: "\e937"; -} - -.frm_stripe_icon::before { - content: "\e902"; -} - -.frm_stripealt_icon::before { - content: "\e93d"; -} - -.frm_twilio_icon::before { - content: "\e620"; -} - -.frm_woocommerce_icon::before { - content: "\e90e"; -} - -.frm_wordpress_icon::before { - content: "\f19a"; -} - -.frm_credit_card_icon::before { - content: "\e938"; -} - -.frm_credit-card-alt_icon::before, -.frm_credit_card_alt_icon::before { - content: "\f283"; -} - -.frm_cc_amex_icon::before { - content: "\f1f3"; -} - -.frm_cc_discover_icon::before { - content: "\f1f2"; -} - -.frm_cc_mastercard_icon::before { - content: "\f1f1"; -} - -.frm_cc_visa_icon::before { - content: "\f1f0"; -} - -.frm_cc_paypal_icon::before { - content: "\f1f4"; -} - -.frm_cc_stripe_icon::before { - content: "\f1f5"; -} - -/*# sourceMappingURL=font_icons.css.map*/ \ No newline at end of file +@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"} diff --git a/css/frm_admin.css b/css/frm_admin.css index 2b58e78394..34c5fa9d6a 100644 --- a/css/frm_admin.css +++ b/css/frm_admin.css @@ -1,12415 +1,3 @@ -/*!*********************************************************************************************************************************************************************************************************************************!*\ - !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-unicode-loader/index.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./resources/scss/admin/frm_admin.scss ***! - \*********************************************************************************************************************************************************************************************************************************/ -@charset "UTF-8"; -/** - * Formidable Admin Styles - * - * Note: Do not modify the import order unless the change is part of a deliberate refactor. - */ -/** - * Base & Foundation - * - * Core variables, typography, and essential base styles - */ -/** - * Font Icons - */ -@font-face { - font-family: "s11-fp"; - src: url("../fonts/s11-fp.woff?v=7") format("woff"); - font-weight: 400; - font-style: normal; -} -.frm-submenu-highlight { - background: #1da867; -} - -.frm-submenu-highlight a span { - color: #fff; - font-weight: 600; -} - -.frmfont, -.frm_icon_font { - text-decoration: none; - text-shadow: none; - font-weight: 400; - display: inline-block; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: auto; - line-height: 1.5; - transition: color 0.1s ease-in-out, opacity 0.1s ease-in-out; - font-size: 18px; -} - -i.frmfont, -i.frm_icon_font { - font-style: normal; - font-variant: normal; - speak: none; -} - -.frmfont::before, -select.frmfont, -.frm_icon_font::before, -select.frm_icon_font { - font-family: "s11-fp" !important; - text-align: center; -} - -.frmfont, -a.frmfont, -.frmfont:hover, -a.frmfont:hover .frm_icon_font, -a.frm_icon_font, -.frm_icon_font:hover, -a.frm_icon_font:hover { - text-decoration: none !important; - box-shadow: none; -} - -.frmfont:focus, -.frm_icon_font:focus { - box-shadow: none; -} - -.frmfont:active, -.frm_icon_font:active { - outline: none; -} - -.frm_trigger .frm_icon_font { - padding: 0 5px; -} - -.frm_logo_icon::before { - content: "\e601"; -} - -.frm_required_icon::before { - content: "\e612"; -} - -.frm_delete_icon::before { - content: "\e610" !important; -} - -.frm_move_icon::before { - content: "\e61a"; -} - -.frm_drag_icon::before { - content: "\e93b"; -} - -.frm_clear_icon::before { - content: "\e60a"; -} - -.frm_noclear_icon::before { - content: "\e60b"; -} - -.frm_duplicate_icon::before { - content: "\e61b"; -} - -.frm_copy_icon::before { - content: "\f0c5"; -} - -.frm_clone_icon::before { - content: "\f24d"; -} - -.frm_tooltip_icon::before { - content: "\e611"; -} - -.frm_tooltip_solid_icon::before { - content: "\e907"; -} - -.frm_forbid_icon::before { - content: "\e636"; -} - -.frm_checkmark_icon::before { - content: "\e90a"; -} - -.frm_check_icon::before { - content: "\e605"; -} - -.frm_check1_icon::before { - content: "\e606"; -} - -.frm_plus_icon::before { - content: "\e62f"; -} - -.frm_plus1_icon::before { - content: "\e602"; -} - -.frm_plus2_icon::before { - content: "\e603"; -} - -.frm_plus3_icon::before { - content: "\e632"; -} - -.frm_plus4_icon::before { - content: "\e60f"; -} - -.frm_minus_icon::before { - content: "\e62e"; -} - -.frm_minus1_icon::before { - content: "\e600"; -} - -.frm_minus2_icon::before { - content: "\e604"; -} - -.frm_minus3_icon::before { - content: "\e633"; -} - -.frm_minus4_icon::before { - content: "\e613"; -} - -.frm_cancel_icon::before { - content: "\e607"; -} - -.frm_cancel1_icon::before { - content: "\e608"; -} - -.frm_close_icon::before { - content: "\e928"; -} - -.frm_report_problem_solid_icon::before { - content: "\e914"; -} - -.frm_report_problem_icon::before { - content: "\e915"; -} - -.frm_arrowup_icon::before { - content: "\e60d"; -} - -.frm_arrowup1_icon::before { - content: "\e60e"; -} - -.frm_arrowup2_icon::before { - content: "\e630"; -} - -.frm_arrowup3_icon::before { - content: "\e62b"; -} - -.frm_arrowup4_icon::before { - content: "\e62c"; -} - -.frm_arrowup5_icon::before { - content: "\e635"; -} - -.frm_arrowup5_solid_icon::before { - content: "\e9d"; -} - -.frm_arrowup7_icon::before { - content: "\e908"; -} - -.frm_arrowup6_icon::before { - content: "\e62d"; -} - -.frm_arrowdown_icon::before { - content: "\e609"; -} - -.frm_arrowdown1_icon::before { - content: "\e60c"; -} - -.frm_arrowdown2_icon::before { - content: "\e631"; -} - -.frm_arrowdown3_icon::before { - content: "\e628"; -} - -.frm_arrowdown4_icon::before { - content: "\e629"; -} - -.frm_arrowdown5_icon::before { - content: "\e634"; -} - -.frm_arrowdown5_solid_icon::before { - content: "\e905"; -} - -.frm_arrowdown7_icon::before { - content: "\e90b"; -} - -.frm_arrowdown6_icon::before { - content: "\e62a"; -} - -.frm_arrow_left_icon::before { - content: "\e912"; -} - -.frm_arrow_right_icon::before { - content: "\e913"; -} - -.frm_filter_icon::before { - content: "\e90c"; -} - -.frm_download_icon::before { - content: "\e615"; -} - -.frm_upload2_icon::before { - content: "\f093"; -} - -.frm_upload_icon::before { - content: "\e616"; -} - -.frm_download2_icon::before { - content: "\f019"; -} - -.frm_hard_drive_icon::before { - content: "\e916"; -} - -.frm_pencil_solid_icon::before { - content: "\e901"; -} - -.frm_pencil_icon::before { - content: "\e61d"; -} - -.frm_signature_icon::before { - content: "\e919"; -} - -.frm_user_icon::before { - content: "\e7ff"; -} - -.frm_register_icon::before { - content: "\e637"; -} - -.frm_account_circle_solid_icon::before { - content: "\e853"; -} - -.frm_account_circle_icon::before { - content: "\e921"; -} - -.frm_address_card_icon::before { - content: "\e996"; -} - -.frm_paragraph_icon::before { - content: "\f1dd"; -} - -.frm_checkbox_unchecked_icon::before { - content: "\e91e"; -} - -.frm_checkbox_icon::before { - content: "\e922"; -} - -.frm_checkbox_solid_icon::before { - content: "\e91f"; -} - -.frm_dropdown_icon::before { - content: "\e909"; -} - -.frm_caret_square_down_icon::before { - content: "\f150"; -} - -.frm_check_square_icon::before { - content: "\f14a"; -} - -.frm_radio_unchecked_icon::before { - content: "\e971"; -} - -.frm_radio_checked_icon::before { - content: "\ea54"; -} - -.frm_scrubber_icon::before { - content: "\f2f8"; -} - -.frm_location_solid_icon::before { - content: "\e955"; -} - -.frm_location_icon::before { - content: "\e947"; -} - -.frm_toggle_on_icon::before { - content: "\f205"; -} - -.frm_toggle_off_icon::before { - content: "\f204"; -} - -.frm_shield_check_icon::before { - content: "\f2f7"; -} - -.frm_shield_check_solid_icon::before { - content: "\e97d"; -} - -.frm_clock_icon::before { - content: "\e929"; -} - -.frm_clock_solid_icon::before { - content: "\e985"; -} - -.frm_link_icon::before { - content: "\f0c1"; -} - -.frm_email_icon::before { - content: "\e626"; -} - -.frm_email_solid_icon::before { - content: "\f0e0"; -} - -.frm_mail_bulk_icon::before { - content: "\e95c"; -} - -.frm_phone_icon::before { - content: "\e942"; -} - -.frm_calendar_icon::before { - content: "\f073"; -} - -.frm_code_icon::before { - content: "\e90d"; -} - -.frm_tag_icon::before { - content: "\e98b"; -} - -.frm_tag_solid_icon::before { - content: "\e989"; -} - -.frm_price_tags_icon::before { - content: "\e936"; -} - -.frm_search_icon::before { - content: "\e978"; -} - -.frm_sitemap_icon::before { - content: "\f0e8"; -} - -.frm_file_icon::before { - content: "\f15b"; -} - -.frm_file_text_solid_icon::before { - content: "\f15c"; -} - -.frm_file_text_icon::before { - content: "\e923"; -} - -.frm-option-icon::before, -.frm_option_icon::before { - content: "\e904"; -} - -.frm_option_solid_icon::before { - content: "\e906"; -} - -.frm_more_horiz_icon::before { - content: "\e5d3"; -} - -.frm_more_vert_icon::before { - content: "\e5d4"; -} - -.frm_more_horiz_solid_icon { - font-size: 28px !important; - font-weight: 700; - line-height: 18px; -} - -.frm_more_horiz_solid_icon::before { - content: "···"; -} - -.frm_more_vert_solid_icon::before { - content: "\f142"; -} - -.frm_calculator_icon::before { - content: "\f1ec"; -} - -.frm_keyboard_icon::before { - content: "\e924"; -} - -.frm_eye_icon::before { - content: "\f06e"; -} - -.frm_eye_solid_icon::before { - content: "\e945"; -} - -.frm_eye_slash_icon::before { - content: "\f070"; -} - -.frm_eye_slash_solid_icon::before { - content: "\e949"; -} - -.frm_page_break_icon::before { - content: "\e8e9"; -} - -.frm_view_day_icon::before { - content: "\e8ed"; -} - -.frm_attach_file_icon::before { - content: "\e226"; -} - -.frm_printer_icon::before { - content: "\e926"; -} - -.frm_header_icon::before { - content: "\f1dc"; -} - -.frm_h1_icon::before { - content: "\e94c"; -} - -.frm_repeat_icon::before { - content: "\f363"; -} - -.frm_repeater_icon::before { - content: "\e974"; -} - -.frm_hashtag_icon::before { - content: "\e292"; -} - -.frm_save_icon::before { - content: "\e927"; -} - -.frm_sliders_icon::before { - content: "\f1de"; -} - -.frm_code_commit_icon::before { - content: "\f386"; -} - -.frm_star_icon::before { - content: "\e9d7"; -} - -.frm_star_full_icon::before { - content: "\e9d9"; -} - -.frm_star_half_icon::before { - content: "\e9d8"; -} - -.frm_linear_scale_icon::before { - content: "\e260"; -} - -.frm_pie_chart_icon::before { - content: "\e99a"; -} - -.frm_stats_bars_icon::before { - content: "\e99c"; -} - -.frm_sms_icon::before { - content: "\e61c"; -} - -.frm_highrise_icon::before { - content: "\e617"; -} - -.frm_mailchimp_icon::before { - content: "\e622"; -} - -.frm_feed_icon::before { - content: "\e624"; -} - -.frm_align_right_icon::before { - content: "\e90f"; -} - -.frm_align_left_icon::before { - content: "\e910"; -} - -.frm_button_icon::before { - content: "\e911"; -} - -.frm_browser_icon::before { - content: "\e925"; -} - -.frm_cloud_upload_solid_icon::before { - content: "\e92c"; -} - -.frm_shuffle_icon::before { - content: "\e917"; -} - -.frm_swap_icon::before { - content: "\e918"; -} - -.frm_pallet_icon::before { - content: "\e96d"; -} - -.frm_fingerprint_icon::before { - content: "\e94a"; -} - -.frm_ghost_icon::before { - content: "\e94b"; -} - -.frm_heart_solid_icon::before { - content: "\e94d"; -} - -.frm_heart_icon::before { - content: "\e94e"; -} - -.frm_history_icon::before { - content: "\e94f"; -} - -.frm_import_icon::before { - content: "\e91a"; -} - -.frm_export_icon::before { - content: "\e91b"; -} - -.frm_label_solid_icon::before { - content: "\e952"; -} - -.frm_label_icon::before { - content: "\e953"; -} - -.frm_lock_open_icon::before { - content: "\e957"; -} - -.frm_lock_icon::before { - content: "\e959"; -} - -.frm_dollar_sign_icon::before { - content: "\e91c"; -} - -.frm_percent_icon::before { - content: "\e939"; -} - -.frm_external_link_icon::before { - content: "\e966"; -} - -.frm_pageview_solid_icon::before { - content: "\e96a"; -} - -.frm_pageview_icon::before { - content: "\e96b"; -} - -.frm_settings_icon::before { - content: "\e97a"; -} - -.frm_stamp_icon::before { - content: "\e980"; -} - -.frm_support_icon::before { - content: "\f1cd"; -} - -.frm_text_icon::before { - content: "\e98d"; -} - -.frm_text2_icon::before { - content: "\f031"; -} - -.frm_white_label_icon::before { - content: "\e91d" !important; -} - -.frm_authorize_icon::before { - content: "\e903"; -} - -.frm_icon_font.frm_activecampaign_icon { - background-image: none; -} - -.frm_activecampaign_icon::before { - content: "\e930"; -} - -.frm_aweber_icon::before { - content: "\e627"; -} - -.frm_campaignmonitor_icon::before { - content: "\e946"; -} - -.frm_constant_contact_icon::before { - content: "\e931"; -} - -.frm_getresponse_icon::before { - content: "\e932"; -} - -.frm_googlesheets_icon::before { - content: "\e944"; -} - -.frm_building_icon::before { - content: "\e93f"; -} - -.frm_hubspot_icon::before { - content: "\e933"; -} - -.frm_icontact_icon::before { - content: "\e940"; -} - -.frm_icon_font.frm_mailpoet_icon::before { - content: "\e934"; -} - -.frm_paypal_icon::before { - content: "\e61f"; -} - -.frm_sendinblue_icon::before { - content: "\e943"; -} - -.frm_sendy_icon::before { - content: "\e941"; -} - -.frm_salesforce_icon::before { - content: "\e935"; -} - -.frm_salesforcealt_icon::before { - content: "\e937"; -} - -.frm_stripe_icon::before { - content: "\e902"; -} - -.frm_stripealt_icon::before { - content: "\e93d"; -} - -.frm_twilio_icon::before { - content: "\e620"; -} - -.frm_woocommerce_icon::before { - content: "\e90e"; -} - -.frm_wordpress_icon::before { - content: "\f19a"; -} - -.frm_credit_card_icon::before { - content: "\e938"; -} - -.frm_credit-card-alt_icon::before, -.frm_credit_card_alt_icon::before { - content: "\f283"; -} - -.frm_cc_amex_icon::before { - content: "\f1f3"; -} - -.frm_cc_discover_icon::before { - content: "\f1f2"; -} - -.frm_cc_mastercard_icon::before { - content: "\f1f1"; -} - -.frm_cc_visa_icon::before { - content: "\f1f0"; -} - -.frm_cc_paypal_icon::before { - content: "\f1f4"; -} - -.frm_cc_stripe_icon::before { - content: "\f1f5"; -} - -/** - * Base - Variables - */ -:root, -.frm-white-body, -.frm_wrap { - --grey-900: #101828; - --grey-800: #1D2939; - --grey-700: #344054; - --grey-600: #475467; - --grey-500: #667085; /* Roughly 65% opacity */ - --grey-400: #98A2B3; - --grey-300: #D0D5DD; - --grey-200: #EAECF0; - --grey-100: #F2F4F7; - --grey-50: #F9FAFB; - --grey-25: #FCFCFD; - --dark-grey: var(--grey-700); /* Deprecated */ - --medium-grey: rgba(40, 47, 54, .65); - --grey: var(--grey-500); /* Deprecated */ - --grey-border: var(--grey-300); /* Deprecated */ - --lightest-grey: rgb(250, 250, 250); - --sidebar-color: var(--grey-50); - --sidebar-hover: var(--grey-200); - --primary-700: #2B66A9; - --primary-500: #4199FD; - --primary-300: #80BBFE; - --primary-200: #C0DDFE; - --primary-50: #ECF5FF; - --primary-25: #F5FAFF; - --primary-color: var(--primary-500); /* Deprecated */ - --primary-hover: var(--primary-700); /* Deprecated */ - --light-blue: var(--primary-25); /* Deprecated */ - --blue-border: rgb(188, 224, 253); - --error-700: #B42318; - --error-500: #F04438; - --error-300: #FECDCA; - --error-100: #FEE4E2; - --error-25: #FFF5F4; - --green: rgb(63, 172, 37); - --orange: #F15A24; - --warning-500: #F79009; - --pink: rgb(226, 42, 110); - --purple: rgb(141, 53, 245); - --success-900: #054F31; - --success-800: #065F46; - --success-500: #12b76a; - --success-100: #D1FAE5; - --success-200: #A6F4C5; - --success-50: #ECFDF3; - --success-25: #f6fef9; - --border-radius: 35px; - --small-radius: 8px; - --medium-radius: 16px; - --small-sidebar: 275px; - --medium-sidebar: 350px; - --big-sidebar: 390px; - --biggest-sidebar: 450px; - --text-xs: 12px; - --text-sm: 14px; - --text-md: 16px; - --text-lg: 18px; - --text-xl: 20px; - --h-xs: 24px; - --h-sm: 30px; - --h-md: 36px; - --leading: 1.5; - --gap-2xs: 4px; - --gap-xs: 8px; - --gap-sm: 16px; - --gap-md: 24px; - --gap-lg: 32px; - --gap-xl: 40px; - --gap-2xl: 48px; - --box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05); - --box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); - --box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06); - --box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06); - --box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03); - --box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18); - --button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1); - /* Override front-end CSS */ - --check-label-color: var(--grey-700); -} - -/** - * Base - Font - */ -@font-face { - font-family: "Inter"; - src: url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype"); -} -.with_frm_style, -.frm-white-body .wpbody-content, -.frm_wrap { - font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; -} - -/* Safari 11+ */ -@media not all and (min-resolution: 0.001dpcm) { - @supports (-webkit-appearance: none) and (stroke-color: transparent) { - .with_frm_style, - .frm-white-body .wpbody-content, - .frm_wrap { - -webkit-font-smoothing: antialiased; - } - } -} -/** - * Utilities - Z-index - */ -.frm-sm-z-index { - z-index: 1; -} - -.frm-md-z-index { - z-index: 5; -} - -/** - * Base - Text - */ -.frm-white-body, -.frm-white-body p, -.frm_wrap, -.frm_wrap p, -.frm-modal, -.frm-white-body .postbox .inside { - font-size: var(--text-sm); - color: var(--grey-500); - line-height: var(--leading); -} - -.frm-white-body p, -.frm_wrap p { - margin: var(--gap-sm) 0; -} - -body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields > fieldset { - --fieldset-padding: 15px 0; -} - -a, -.widget .widget-top, -.stuffbox h3, -.frm-collapsed { - cursor: pointer; - text-decoration: none; -} - -/** - * Layout & Primary Components - * - * Core structure and primary UI elements - */ -/** - * Layout - Wrap - */ -.post-type-frm_display .wrap > #posts-filter, -.wrap.frm-with-margin, -.frm_wrap > .wrap { - margin: var(--gap-sm) var(--gap-md) var(--gap-md); -} - -#frm_top_bar + .wrap { - margin: var(--gap-xl); -} - -.frm-full-screen #wpbody-content > .wrap { - margin: 0; -} - -.post-type-frm_display .wrap { - margin: 0; -} - -.toplevel_page_formidable #post-body-content { - overflow-x: visible; -} - -/** - * Components - Full Screen - */ -.frm-full-screen { - height: 100%; - overflow: hidden; -} - -.frm-full-screen.frm-admin-page-reports, -.frm-full-screen.frm-admin-page-entries, -.frm-full-screen.post-type-frm_display { - overflow: auto; -} - -.frm-full-screen #wpadminbar, -.frm-full-screen #adminmenumain, -.frm-full-screen .wp-header-end { - display: none; -} - -body.frm-white-body:not(.frm-full-screen) .mce-fullscreen { - top: 32px; - left: 160px; -} - -.frm-full-screen #wpbody-content, -.frm-full-screen #wpbody, -.frm-full-screen #wpcontent { - padding: 0; - overflow: hidden; - margin: 0 !important; -} - -/** - * Layout - Screen Meta - */ -.frm-white-body #wpbody-content { - position: relative; /* For screen meta links */ - padding-bottom: 0; -} - -.post-new-php.post-type-frm_display #screen-meta-links, -.post-php.post-type-frm_display #screen-meta-links { - display: none; -} - -.frm-white-body #screen-meta-links { - position: fixed; - bottom: 0; - right: 20px; -} - -.frm-full-screen #screen-meta-links .screen-meta-toggle { - right: 55px; -} - -.frm-white-body #screen-meta-links .show-settings { - border-radius: var(--small-radius) var(--small-radius) 0 0; - border: 1px solid var(--grey-300); - border-bottom: none; -} - -.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle { - right: 125px; /* Don't cover the lite upgrade button */ -} - -.frm-white-body #screen-meta { - margin: 0; -} - -.frm-white-body #screen-meta-links .show-settings::after { - color: var(--grey); -} - -/** - * Layout - Columns - */ -.frm-white-body .columns-2 { - border-bottom: 1px solid var(--grey-300); -} - -.frm-full-screen .columns-2 { - border: none; -} - -/** - * Layout - Body - */ -body.post-type-frm_display.edit-php, -body.frm-white-body { - background: #fff; -} - -body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after, -body.frm-white-body ul#adminmenu > li.current > a.current::after { - border-right-color: #fff; -} - -.frm-white-body #wpcontent { - padding-left: 0; - padding-right: 0; -} - -.frm-white-body .wrap #post-body { - padding: 0 20px; -} - -.frm-grey-body #wpbody { - background: var(--grey-100); -} - -.frm-grey-body #frm_top_bar { - background: #fff; -} - -/** - * Components - Table Nav - */ -.post-type-frm_display .tablenav, -.frm_wrap .tablenav { - margin-bottom: 10px; -} - -.frm-white-body .tablenav .actions select, -.wp-admin .frm_wrap .tablenav select { - margin-right: var(--gap-xs); -} - -.tablenav .actions .button { - margin-top: 1px; -} - -/** - * Components - Table Widefat - */ -.frm-white-body table.widefat { - background: var(--lightest-grey); - border-width: 0; - box-shadow: none; - margin: 20px 0; -} - -.frm-white-body table.widefat tfoot, -.frm-white-body table.widefat thead { - background: #fff; -} - -.frm-white-body table.widefat th { - font-size: var(--text-md); -} - -.frm-white-body table.widefat th a { - color: var(--grey-700); -} - -.frm-white-body table.widefat strong a { - color: var(--primary-700); -} - -/** - * Components - Scroll Box - */ -.frm-scroll-box { - clear: both; - overflow: auto; - max-height: 405px; - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); -} - -.frm_form_field.frm_scroll_box .frm_opt_container { - height: 100px; - overflow: auto; - border: 1px solid var(--grey-300); -} - -.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + p, -.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + div, -.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden) + span { - grid-column: span 6/span 6; - align-content: center; -} - -.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + p, -.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + div, -.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden) + span { - grid-column: span 12/span 12 !important; - align-content: center; -} - -.frm_form_field.frm-phone-type ~ [id*=frm-field-format-custom-] > label, -.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] > label { - opacity: 0; /* Hide the label for the format input in the phone field. */ -} - -.frm_form_field.frm-format-dropdown ~ [id*=frm-field-format-custom-] { - grid-column: span 6/span 6; -} - -/* Adjust "CSS Layout Classes" to full width when the "Format" setting is present. */ -.frm-single-settings.frm-type-textarea > .frm_grid_container [id*=frm-field-format-custom-] + p { - grid-column: span 12/span 12; -} - -.frm-single-settings .frm_grid_container { - column-gap: var(--gap-sm); -} - -.frm-content-center { - align-content: center; -} - -.frm-self-end { - align-self: end; -} - -/** - * Components - Short List - */ -.frm-short-list { - overflow: auto; - max-height: 190px; -} - -/** - * Components - Table Elements - */ -.frm-white-body table.frm-border td { - font-size: var(--text-sm); -} - -.frm-white-body .striped > tbody > :nth-child(odd) { - background-color: #fff; -} - -.frm_wrap td.column-title strong { - display: inline; -} - -td.column-title .frm_actions_dropdown { - float: right; -} - -/** - * Layout - Top Bar - */ -#frm_top_bar { - display: flex; - gap: var(--gap-sm); - width: 100%; - height: 72px; - margin: 0; - box-sizing: border-box; - text-align: center; - padding: 0 var(--gap-md); -} - -#frm_top_bar > .frm-full-close:last-child, -#frm_top_bar > #frm-publishing:last-child { - margin-left: auto; -} - -#frm_top_bar { - border-bottom: 1px solid var(--grey-300); - padding: 0 var(--gap-md); - overflow: visible; -} - -/** - * Base - Headings - */ -.frm-white-body h1, -.frm-white-body h2, -.frm-white-body h3, -.frm-white-body h4 { - color: var(--grey-900); - font-weight: 400; - line-height: var(--leading) !important; -} - -.frm-white-body .wrap h1, -.frm-white-body h1 { - font-size: var(--text-xl); -} - -.frm-white-body .wrap h2, -.frm-white-body h2 { - font-size: var(--text-lg); - font-weight: 500; -} - -.frm-white-body .wrap h3, -.frm-white-body h3 { - font-size: var(--text-md); -} - -.frm-white-body .wrap h4, -.frm-white-body h4 { - font-size: var(--text-sm); - font-weight: 500; -} - -/** - * Components - Error Modal - */ -#frm_error_modal .frm_lock_simple { - padding: 20px; - border-radius: 50%; - background-color: var(--primary-25); - display: inline-block; -} - -#frm_error_modal #frm_lock_simple { - color: var(--primary-500); -} - -#frm_error_modal .frm-modal-title { - display: block; -} - -#frm_error_modal .frm-modal-title h2 { - font-weight: 600; - font-size: var(--text-xl); - margin: 0; -} - -#frm_error_modal .frm_modal_content { - padding: var(--gap-md); - color: var(--grey-900); -} - -/** - * Layout - Editor Overrides - */ -/* Override CSS in Views plugin. */ -.frm-views-editor-body .frm_page_container #frm_top_bar h1 { - padding: 0 !important; - color: var(--grey-900); - font-size: var(--text-xl) !important; -} - -.post-type-frm_display .frm_top_left { - padding-bottom: 0 !important; -} - -.frm-new-table-view-option.frm-selected-table-view-option { - border-radius: var(--small-radius); - background: var(--primary-25); -} - -.frm-views-editor-body #frm_adv_info .tabs-panel { /* Views sidebar */ - padding-left: 4px; - padding-right: 4px; -} - -#frm_edit_box_content_modal .frm_modal_footer { - padding-top: var(--gap-sm); - border-top: 1px solid var(--grey-300); -} - -#frm_edit_box_content_modal .frm_modal_footer > div { - display: flex; - justify-content: space-between; -} - -#frm_edit_box_content_modal #frm_modal_box_select_area, -#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper, -#frm_edit_box_content_modal .frm_modal_content { - max-height: calc(100vh - 176px) !important; -} - -#frm_edit_box_content_modal #frm_modal_box_select_area { - height: calc(100vh - 176px) !important; -} - -#frm_edit_box_content_modal #wp-content-editor-tools { - padding-top: 0; -} - -#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title + div:last-child { - right: var(--gap-md); -} - -.frm_code_list.frm-full-hover .frm-dropdown-view a { - flex-direction: row-reverse; /* Switch in the HTML */ -} - -#frm_view_editor_left.frm-right-panel .accordion-section-title::before { - content: "" !important; - margin: 0; -} - -/** End Temporary View CSS */ -/** - * Components - Upgrade Bar - */ -.frm-gradient, -.frm-upgrade-bar { - background: linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important; - color: #fff !important; - border: 0 !important; -} - -.frm-gradient.frm-button-primary:not([disabled]), -.frm-gradient.frm-button-primary:not([disabled]):hover, -.frm-gradient.frm-button-primary:not([disabled]):focus { - background: linear-gradient(90deg, #1961D5, #816CFA) !important; -} - -.frm-upgrade-bar, -.frm-gradient { - position: relative; -} - -.frm-upgrade-bar::before, -.frm-gradient::before { - content: ""; - display: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba(255, 255, 255, 0.1); - z-index: 0; -} - -.frm-upgrade-bar:hover::before, -.frm-gradient:hover::before, -.frm-gradient:focus::before { - display: block; -} - -.frm-upgrade-bar-inner, -.frm-gradient > * { - position: relative; - z-index: 1; -} - -.frm-upgrade-bar { - border-bottom: 1px solid var(--sidebar-hover); - padding: 9px 0; - font-size: 12px; - text-align: center; -} - -.frm-upgrade-bar a { - color: currentColor !important; - text-decoration: underline; -} - -.frm-upgrade-bar a:focus { - outline: 1px dotted var(--sidebar-hover); -} - -.frm-upgrade-bar span { - opacity: 0.9; -} - -/** - * Components - Links - */ -a h1 .frmsvg { - color: var(--grey-400); - vertical-align: middle; - min-width: var(--text-sm); -} - -a .frmsvg { - color: currentColor; -} - -.frm_wrap .view-switch a.current::before, -.frm-white-body a, -.frm_wrap a, -.frm_wrap a i { - color: var(--primary-color); -} - -.frm_wrap a:active, -.frm_wrap a:hover { - color: var(--primary-700); - box-shadow: none; -} - -.post-type-frm_display a:focus, -.frm_wrap a:focus { - box-shadow: none; -} - -/** - * Layout - Top Bar - Navigation - */ -.frm_top_left { - text-align: left; - float: left; - white-space: nowrap; - max-width: 250px; - overflow: hidden; - text-overflow: ellipsis; - align-self: center; -} - -.post-type-frm_display .frm_top_left, -.frm_top_left.frm_top_wide { - max-width: 100%; -} - -.post-type-frm_display .frm_nav_bar .frm-header-logo, -.frm_nav_bar .frm-header-logo { - margin: 18px 0 10px; -} - -#frm_top_bar .frm_form_nav { - flex: 1; -} - -ul.frm_form_nav { - margin: 0 auto; - padding-top: 18px; - display: block; - min-width: 240px; -} - -.nav-tab-wrapper.frm_form_nav { - padding: 0 25px; -} - -ul.frm_form_nav > li { - margin: 0 min(3.5%, 32px) 0 0; - display: inline-block; -} - -.post-type-frm_display #advanced-sortables h2.hndle, -.post-type-frm_display #side-sortables h2.hndle, -.post-type-frm_display #normal-sortables h2.hndle, -.post-type-frm_display .frm_form_nav .nav-tab-active, -.frm_form_nav > li > a { - font-size: 1.3em; - text-decoration: none; - display: block; - padding: 6px 2px 4px; - font-weight: 500; - color: var(--grey-700); - border-bottom: 2px solid transparent; -} - -.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before { - margin-top: 10px; -} - -.frm-nav-tabs a:focus, -.frm-nav-tabs a:active, -.frm_form_nav a:active, -.frm_form_nav a:focus { - outline: none; - box-shadow: none; -} - -.frm_form_nav > li > a { - font-size: var(--text-md); - font-weight: 400; - color: var(--grey-500); -} - -.frm_form_nav > li > a:hover { - border-color: var(--primary-700); -} - -.frm_form_nav .frm-dropdown-menu a:hover { - background-color: #eaf2fa; -} - -.post-type-frm_display .frm_form_nav .nav-tab-active, -.post-type-frm_display .frm_form_nav .nav-tab-active:hover, -.frm_form_nav > li a.current_page { - color: var(--primary-500); - border-color: var(--primary-500); - background: transparent; - opacity: 1; - font-weight: 600; -} - -/** - * Components - Full Close - */ -.frm-full-close { - display: none; - padding-left: var(--gap-md); - border: 0 solid var(--grey-300); - border-left-width: 1px; /* Make RTL a bit less maintenance */ - height: 100%; - box-sizing: border-box; -} - -.frm-full-screen .frm-full-close { - display: flex; - align-items: center; -} - -.frm-full-close a { - display: block; -} - -.frm-full-close .frmsvg { - font-size: 20px; - width: 20px; - height: 20px; - color: var(--grey-500); -} - -/** - * Layout - Top Bar - Elements - */ -#frm_top_bar h1 { - font-weight: 400; - padding: 0; - margin: 0; - color: var(--grey-900); - display: inline-flex; - gap: var(--gap-sm); - align-items: center; - text-align: left; - min-width: 200px; -} - -#frm_top_bar h1 span { - max-width: 175px; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: inline-block; - vertical-align: bottom; -} - -#frm_top_bar ul.frm_form_nav, -#frm_top_bar .frm-header-logo, -#frm_top_bar #frm_bs_dropdown { - align-self: center; - margin-top: 0; - margin-bottom: 0; - padding-top: 0; -} - -#frm_top_bar .frm-header-logo { - display: flex; /* Get rid of extra padding below logo */ -} - -#frm_top_bar h2 { - float: left; - margin: 0 0 0 var(--gap-sm); - padding: 2px 0 2px var(--gap-sm); - font-weight: 400; - border-left: 2px solid var(--grey); -} - -.frm_wrap > #frm_top_bar #frm-publishing { - margin-top: 0; -} - -#frm-publishing { - min-width: 225px; - align-self: center; - align-items: center; - display: flex; - flex-direction: row-reverse; - gap: 0 var(--gap-sm); - flex-wrap: wrap; -} - -/** - * Layout - Postbox - */ -.frm_wrap .postbox { - border-color: var(--grey-300); - border-radius: 6px; - box-shadow: none; -} - -.frm_wrap .postbox h3.hndle { - cursor: default; - padding: 10px 20px; - margin: 0; - line-height: 1.4em; - border-color: var(--grey-300); -} - -.frm-pre-hndle { - font-size: 15px; - padding: 5px; - margin: 9px 15px; -} - -/** - * Components - Table - Row - */ -.frm-empty-row { - display: none; -} - -.frm-child-row { - box-shadow: 5px 0 0 0 inset var(--sidebar-hover); -} - -/** - * Utilities - Effects - Animate - */ -.frm_animate_bg { - transition: background 200ms linear, color 200ms linear; -} - -/** - * Components - List - Subsubsub - */ -.wrap > .subsubsub { - clear: both; - margin: 0; -} - -.frm_wrap .subsubsub a { - line-height: var(--leading); - font-size: var(--text-sm); -} - -/** - * Layout - Container - */ -.frm-admin-page-styles .frm_page_container, -.frm_wrap .frm_page_container { /* Use .frm_wrap to avoid messing up Views editor layout */ - height: calc(100vh - 32px); - display: flex; - flex-direction: column; - overflow: hidden; - padding-top: 0; - position: fixed; - top: 32px; - bottom: 0; - left: 0; - right: 0; -} - -.frm-admin-page-translate .frm_wrap .frm_page_container, .frm-admin-page-update_translations .frm_wrap .frm_page_container { - position: static; -} - -.auto-fold.frm-admin-page-styles .frm_page_container, -.auto-fold .frm_wrap .frm_page_container, -.frm-unfold.frm-admin-page-styles .frm_page_container, -.frm-unfold .frm_wrap .frm_page_container { - left: 160px; -} - -.folded.frm-admin-page-styles .frm_page_container, -.folded .frm_wrap .frm_page_container { - left: 38px; -} - -.frm-full-screen.frm-admin-page-styles .frm_page_container, -.frm-full-screen .frm_wrap .frm_page_container { - height: 100vh; - top: 0; - left: 0; -} - -.frm-full-screen.frm-admin-page-entries .frm_page_container, -.frm-new-entry .frm_page_container, -.frm-admin-page-reports .frm_page_container, -.frm_list_entry_page .frm_page_container { - height: auto; - display: block; -} - -/** - * Layout - Container - Columns Elements - */ -.frm-new-entry .columns-2 { - border: none; -} - -.frm-white-body #frm_top_bar, -.frm-white-body .columns-2 { - flex: 0 0 auto; -} - -.columns-2 .frm-right-panel + div { - padding-bottom: var(--gap-md); - border-left: 1px solid var(--grey-300); -} - -.columns-2 .frm-right-panel + div, -.frm_wrap #post-body-content { - padding-bottom: 0; - padding-top: var(--gap-sm); - margin-bottom: 0; - background: #fff; - width: auto; - float: none; - flex: 2; -} - -.frm-white-body .columns-2 { - flex: 1; - display: flex; - overflow: hidden; -} - -.frm-white-body .columns-2 > div { - overflow-y: auto; - box-sizing: border-box; -} - -.frm_wrap .columns-2 .frm-right-panel, -.frm-right-panel { - flex: 0 0 var(--biggest-sidebar); - float: none; - width: var(--biggest-sidebar); - min-width: var(--biggest-sidebar); - background-color: var(--sidebar-color); - margin: 0; - box-shadow: none; - border: none; - padding-bottom: 25px; -} - -.frm-right-panel .frm_field_list, -.frm_wrap .frm-right-panel #frm_adv_info, -.frm_wrap #postbox-container-1 #frm_adv_info { - box-shadow: none; - border: none; - margin-bottom: 26px; -} - -/** - * Components - Settings - Has Shortcodes - */ -#new_fields, -.frm-has-modal, -p.frm_has_shortcodes { - position: relative; -} - -.frm-inline-modal.postbox { - background: #fff; - border-color: var(--grey-100); - border-radius: var(--small-radius); - box-shadow: var(--box-shadow-lg); -} - -.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg), -.frm_has_shortcodes i:not([class*=mce-]) { - position: absolute; - color: var(--primary-500); - border-radius: 50%; - border: 1px solid transparent; - z-index: 100; - text-align: center; -} - -.frm_has_shortcodes .frmsvg.frm-show-box { - border-radius: 6px !important; -} - -.frm_has_shortcodes input, -.frm_has_shortcodes textarea { - padding-left: 18px; - box-sizing: border-box; -} - -/** - * Components - Settings - Adv Info - */ -#form_settings_page #frm_adv_info, #frm_builder_page #frm_adv_info { - display: none; - top: 0; - width: 310px; - max-height: 315px; - min-height: 200px; - overflow-y: scroll; - z-index: 100; -} - -#form_global_settings .columns-2 > div { - overflow: auto; - height: calc(100vh - 32px); -} - -#form_global_settings .columns-2 .frm-right-panel, -#form_settings_page .columns-2 .frm-right-panel, -#wpbody-content .frm-page-skeleton .frm-right-panel { - flex: 0 0 var(--small-sidebar); - width: var(--small-sidebar); - min-width: var(--small-sidebar); -} - -#form_global_settings .frm_grid_container { - gap: 0 var(--gap-md); -} - -.frm-inner-content { - padding: var(--gap-md); -} - -.post-type-frm_display #poststuff { - padding: 0 0 10px 40px; -} - -#postbox-container-2 .postbox .inside { - padding: 15px 25px; -} - -#postbox-container-2 #frm_advanced .inside h3 { - margin: 15px -25px; - font-weight: 600; -} - -#form_settings_page .frm-inner-content { - padding-top: 0; - padding-bottom: 150px; - position: relative; -} - -.frm_wrap #submitdiv { - margin-bottom: 0; - border-width: 0 0 1px; - width: 100%; - min-width: unset; -} - -.frm_wrap #frm_adv_info .handlediv, -.frm_wrap #frm_adv_info .hndle { - display: none; -} - -.frm_wrap .menu-settings { - /* for add-on reverse compatibility */ - border: none; - margin-top: 0; -} - -.nodrag a { - cursor: pointer; -} - -.frm_wrap #frm_adv_info .inside { - margin: 0; -} - -#frm_adv_info > .inside { - padding: 0; -} -#frm_adv_info ul.subsubsub { - padding-bottom: var(--gap-xs) !important; -} -#frm_adv_info ul.subsubsub a { - font-weight: 500; -} -#frm_adv_info ul.subsubsub .frm-vertical-separator { - display: inline-block; - width: 1px; - height: 8px; - background-color: var(--grey-300); -} -#frm_adv_info #frm-insert-condition { - background-color: var(--primary-50); -} -#frm_adv_info #frm-insert-condition:hover { - background-color: var(--primary-25); -} - -#frm_builder_page #frm_adv_info { - width: 322px; - max-height: 356px; - border-radius: var(--small-radius); - overflow: hidden; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory { - height: 356px; - overflow: hidden; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div { - max-height: 286px; - padding: 0; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > * { - padding-bottom: var(--gap-sm); - max-height: unset; -} -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div > *:last-child { - padding-bottom: var(--gap-xs); -} -#frm_builder_page #frm_adv_info #frm-nav-tabs { - display: flex; - gap: var(--gap-xs); - background-color: var(--grey-100); - border-radius: var(--small-radius); - border: 0; - padding: var(--gap-xs); - margin: var(--gap-xs) var(--gap-2xs) var(--gap-sm); -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li { - flex: 1; - text-align: center; -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li a { - font-weight: 500; - line-height: 1; - color: var(--grey-500); - border-radius: var(--small-radius); - border: 0; - padding: var(--gap-xs); - margin: 0; -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li a:hover { - background-color: rgb(234, 236, 240); - color: var(--grey-500) !important; - box-shadow: var(--box-shadow-sm); -} -#frm_builder_page #frm_adv_info #frm-nav-tabs > li.frm-tabs a { - background-color: #fff; - color: var(--grey-900) !important; - box-shadow: var(--box-shadow-sm); -} -#frm_builder_page #frm_adv_info .frm-search, -#frm_builder_page #frm_adv_info .frm-with-search { - padding-top: 0; - margin: 0; -} - -/** - * Components - Modal - Inline Modal - */ -.frm-right-panel .frm-inline-modal.postbox .inside { - margin: 0; - padding: 0 14px 14px; -} -.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line, -.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4 { - margin-left: -14px; - margin-right: -14px; -} - -.frm-right-panel .frm-inline-modal .inside p:not(.howto), -.frm-right-panel .frm-inline-modal .inside a { - font-size: 15px; -} - -.frm-inline-modal .inside a.frm_icon_font { - font-size: 18px; -} - -/** - * Components - Nav Tabs - */ -.frm-nav-tabs { - margin: 10px 0 20px; - padding: 0 var(--gap-sm); - display: block; - border-bottom: 1px solid var(--grey-300); -} - -#frm-nav-tabs { - position: -webkit-sticky; - position: sticky; - top: 0; - background-color: var(--sidebar-color); - z-index: 98; /* must be < 99 */ - margin-top: 0; - padding-top: 5px; -} - -.frm_form_settings #frm_adv_info #frm-nav-tabs { - background-color: #fff; - margin: 0 -4px; -} - -.frm_form_settings span.frm-with-right-icon, -#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden) { - display: block; -} - -.frm-inline-modal .frm-nav-tabs, -#frm_adv_info .frm-nav-tabs { - margin: 5px 0 0; -} - -#frm_adv_info .frm-nav-tabs.frm-compact-nav { - padding-right: 0; - padding-left: 20px; -} - -.frm-nav-tabs li { - display: inline-block; - margin: 0; -} - -.frm-nav-tabs a { - color: var(--grey-700); - padding: 10px 1px; - margin: 0 9px; - border-bottom: 2px solid transparent; -} - -.frm_form_settings #frm_adv_info .frm-nav-tabs a { - padding: 5px 1px; - color: var(--grey-500); -} - -.frm-nav-tabs.frm-compact-nav a { - margin: 0 5px; -} - -.frm-nav-tabs a { - display: block; - opacity: 0.9; -} - -#frm_adv_info .frm-nav-tabs a { - color: var(--grey-700); -} - -.frm-nav-tabs a:hover, -.frm-nav-tabs .frm-tabs a { - color: var(--primary-500) !important; - border-color: var(--primary-500); -} - -.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a { - font-weight: 500; -} - -/** - * Components - Modal - Bulk Modal - */ -#frm-bulk-modal .howto, -#frm-bulk-modal h3 { - font-size: var(--text-sm); - font-weight: 400; - margin: 5px 0 10px; - color: var(--grey); -} - -#frm-bulk-modal h3 { - margin-left: 20px; -} - -/** - * Layout - Sidebar - */ -.frm-right-panel a.frm_add_logic_link, -.frm-right-panel h3 { - color: var(--grey-700); - font-size: var(--text-lg); - font-weight: 400; - margin: 0; -} -.frm-right-panel h3 i { - color: var(--grey-700); - float: right; - width: 16px; - cursor: pointer; -} - -.frm-settings-panel { - /* Right padding reduced to compensate for scrollbar width (~8px) */ - padding: var(--gap-sm); - padding-right: var(--gap-xs); -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter { - top: var(--gap-xs); - left: var(--gap-xs); - width: calc(100% - var(--gap-sm)); -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs { - padding: var(--gap-xs) var(--gap-xs) 0; -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div { - max-height: 0; - visibility: hidden; -} -.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track > div.frm-active { - max-height: unset; - visibility: visible; -} -.frm-settings-panel .frm-embed-field-placeholder { - height: unset; -} -.frm-settings-panel .frm-embed-field-placeholder img { - height: 100px; -} -.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - gap: var(--gap-sm); - max-width: unset; - color: var(--grey-800); - padding: var(--gap-lg); - border: 0; - box-shadow: var(--box-shadow-sm); - margin: 1px; -} - -.frm-single-settings .frm-default-value-wrapper > p { - margin-bottom: 0; -} -.frm-single-settings .frm-default-value-wrapper + p:empty { - display: none; -} -.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p { - margin-top: 0 !important; -} -.frm-single-settings .frm_single_option[id^=frm_watch_lookup_] { - margin-bottom: var(--gap-xs) !important; -} -.frm-single-settings > h3:first-of-type { - position: relative; - background-color: transparent !important; - border-top: none; - padding-top: 0 !important; - margin-top: 0 !important; -} -.frm-single-settings > h3:first-of-type::after { - content: ""; - position: absolute; - left: var(--gap-sm); - right: var(--gap-sm); - bottom: 0; - height: 1px; - background-color: var(--sidebar-hover); -} - -.frm-flex-justify, -.frm-right-panel .frm-single-settings h3 { - display: flex; - justify-content: space-between; - align-items: center; -} - -/* right sidebar */ -#post-body-content + .frm-right-panel { - flex: 0 0 var(--medium-sidebar); - width: var(--medium-sidebar); - min-width: var(--medium-sidebar); - border-left: 1px solid var(--sidebar-hover); -} - -.frm-new-entry #post-body-content + .frm-right-panel, -.frm-new-entry .frm-right-panel { - background: none; - border: none; -} - -#post-body-content + .frm-right-panel h3 { - padding: 20px 20px 0; - font-size: 17px; -} -#post-body-content + .frm-right-panel .frm_with_icons:first-of-type h3 { - border: none; -} - -#frm-insert-fields h3 { - color: var(--grey); - font-size: 15px; - font-weight: 400; - border-top: none; - border-bottom: 1px solid var(--sidebar-hover); - margin: 0; - padding: 10px 10px 10px 25px; -} - -.frm_wrap #frm_adv_info ul.category-tabs { - margin: 0; - padding: 10px 0 9px; - font-size: 15px; - background: transparent; -} -.frm_wrap #frm_adv_info ul.category-tabs li { - padding: 10px; - background-color: transparent !important; -} -.frm_wrap #frm_adv_info ul.category-tabs li:first-child { - border: none; -} - -.frm_wrap #frm_adv_info .categorydiv div.tabs-panel { - border: none; - background: transparent; -} -.frm_wrap #frm-categorydiv { - border-right: none; -} - -#frm_adv_info #frm-conditionals { - padding-top: var(--gap-sm); -} - -#postbox-container-1 #taxonomy-linkcategory #frm-html-tags { - display: none; - max-height: none; -} -#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown { - position: relative; -} - -/** - * Components - Admin Footer - */ -.frm-white-body #footer-upgrade { - display: none; -} - -.frm-admin-footer-links, -.frm-admin-footer-links-nav, -.frm-admin-footer-links-socials { - display: flex; - justify-content: center; -} - -.frm-admin-footer-links { - gap: var(--gap-2xs); - flex-direction: column; - text-align: center; - padding: var(--gap-xl) 0 var(--gap-lg); - font-size: var(--text-xs); - color: var(--grey-400); -} - -body.frm-hidden-overflow { - height: 100%; - overflow: hidden; -} - -.frm-admin-footer-links-nav { - gap: var(--gap-2xs); - margin-bottom: var(--gap-xs); -} - -.frm-admin-footer-links-socials { - gap: var(--gap-xs); -} - -.frm-admin-footer-links-socials a { - color: var(--grey-400); -} - -/** - * Layout - List Entry Page - */ -.frm_list_entry_page h2 { - float: left; -} - -.frm_list_entry_page h2 + .error { - clear: both; -} - -/** - * Layout - Sidebar - Elements - */ -.frm_sidebar select { - width: 100%; - margin-left: 0; - margin-right: 0; -} - -.frm_sidebar #search-submit { - float: right; -} - -/** - * Layout - Single Entry Page - */ -.frm_single_entry_page #submitdiv { - margin: 0; -} - -.frm_single_entry_page .hndle a { - font-size: 13px; -} - -/** - * Components - Publish Actions - */ -.frm-right-panel #publishing-action { - float: none; -} - -.frm-right-panel #major-publishing-actions { - border-top: none; - height: 32px; - background: transparent; -} - -#major-publishing-actions .frm_submit_form { - float: right; - margin-left: 5px; -} - -/** - * Components - Button - */ -.frm_orange_button, -.frm_reverse_button { - font-size: 12px; - border: 1px solid var(--orange); - color: var(--orange); - font-weight: 600; - padding: 1px 4px; - border-radius: 4px; - background: transparent; -} - -.frm_reverse_button:hover, -.frm_reverse_button:active, -.frm_reverse_button:focus { - color: #fff; - background: var(--orange); - border: 1px solid var(--orange); -} - -.frm_reverse_button { - font-size: 1em; - transition: all 0.2s ease; -} - -.frm-button-primary, -.wp-core-ui .button-primary.frm-button-primary, -.wp-core-ui .button.frm-button-primary, -.frm-button-secondary, -.wp-core-ui .button-secondary.frm-button-secondary, -.wp-core-ui .button.frm-button-secondary, -.frm-white-body .frm-search .button, -.frm-white-body .search-box .button, -.frm-white-body .tablenav .button, -.frm_orange_button, -.toplevel_page_formidable #frm_upgrade_modal .button-primary, -.wp-core-ui.frm-white-body .button-primary, -.wp-core-ui.frm-white-body .button-secondary, -.frm-white-body .button-primary, -.frm-white-body .button-secondary, -#frm-form-button button, -.frm-form-button button, -.frm-preview-buttons button, -.frm-button-red, -.frm-button-tertiary { - text-shadow: none; - box-shadow: none; - border-radius: 30px; - border: 1px solid var(--primary-500); - font-size: var(--text-sm); - transition: all 0.2s ease; - padding: 7px 16px; - height: auto; - min-height: 28px; - outline: none; - line-height: var(--leading); - box-sizing: border-box; - font-weight: 500; - margin-bottom: 0; - display: inline-block; -} - -.frm-button-primary.frm-sharp, -.frm-button-secondary.frm-sharp { - border-radius: 12px !important; -} - -#wpcontent .frm-button-secondary.frm-button-gradient { - position: relative; - border-color: transparent !important; - background-clip: padding-box !important; -} -#wpcontent .frm-button-secondary.frm-button-gradient::before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - margin: -1px; - border-radius: inherit; - background: linear-gradient(90deg, #129EFD 0%, #A334FD 100%); - transition: opacity 150ms ease-out; -} -#wpcontent .frm-button-secondary:hover::before { - opacity: 0.5; -} - -.no-js.wp-core-ui .frm-search .button.hide-if-no-js, -.js.wp-core-ui .frm-search .button.hide-if-js { - display: none; -} - -.frm-button-tertiary { - border-color: transparent; - color: var(--primary-500); -} - -.frm-button-tertiary:focus { - outline: none; -} - -.frm-button-tertiary.frm_loading_button::before { - border-right-color: var(--grey); - border-bottom-color: var(--grey); -} - -.frm-button-red, -.frm-button-red:focus { - --primary-color: var(--error-500); - --primary-500: var(--error-500); - --primary-700: var(--error-700); -} - -.frm-button-red:not(.frm-button-tertiary), -.frm-button-red:not(.frm-button-tertiary):focus { - color: #fff !important; -} - -.frm-white-body h2 .button, -.post-type-frm_display h2 .frm-button-primary, -.frm-white-body .tablenav .button, -.frm-button-primary.frm-button-sm, -.frm-button-secondary.frm-button-sm, -.frm-button-tertiary.frm-button-sm, -.frm-button-red.frm-button-sm { - padding: 4px 12px !important; - font-size: var(--text-xs) !important; -} - -.frm_no_style_button { - background: transparent; -} - -.frm-with-icon { - display: flex; - gap: var(--gap-xs); - align-items: center; -} - -.frm-with-icon svg { - opacity: 0.65; /* Get close to grey-500 without overriding hover colors */ -} - -.frm-with-icon.button svg { - height: var(--text-sm); - width: var(--text-sm); -} - -.frm-with-icon.frm-button-sm svg { - height: var(--text-xs); - width: var(--text-xs); -} - -.frm-white-body .button.add_media { - /* Media buttons above RTE */ - padding-left: 12px !important; - padding-right: 12px !important; - font-size: var(--text-xs); - border-radius: var(--border-radius); -} - -.wp-core-ui.frm-white-body #post-query-submit.button, -.wp-core-ui.frm-white-body .button.tablenav-pages-navspan, -.wp-core-ui.frm-white-body .button.first-page, -.wp-core-ui.frm-white-body .button.prev-page, -.wp-core-ui.frm-white-body .button.next-page, -.wp-core-ui.frm-white-body .button.last-page, -.wp-core-ui.frm-white-body .button.action { - background-color: transparent; - border-color: var(--grey-300); - color: var(--grey-700); - border-radius: var(--border-radius); -} - -.post-type-frm_display.wp-core-ui .button-primary, -.frm-button-primary, -.wp-core-ui .button-primary.frm-button-primary, -.frm_single_entry_page #frm-publishing .button-primary { - background-color: var(--primary-500) !important; - color: #fff !important; -} - -.frm-button-primary.frm_large, -.frm-button-secondary.frm_large { - height: auto !important; - padding: 12px 16px !important; -} - -.frm-button-secondary.frm-small, -.frm-button-primary.frm-small { - font-size: var(--text-xs) !important; - height: auto !important; - padding: var(--gap-2xs) 12px !important; -} - -.frm-button-primary i::before { - color: #fff; -} - -.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover, -.frm-button-primary:not([disabled]):hover { - background: var(--primary-700) !important; - border-color: var(--primary-700) !important; -} - -.wp-core-ui .button-primary.frm-button-primary:active { - vertical-align: inherit; -} - -.frm-white-body #search-submit, -#frm-form-button .frm_button_submit, -.frm-form-button .frm_button_submit, -.frm-white-body .frm-preview-buttons button, -.frm-white-body .button:not(.frm-button-primary), -.wp-core-ui.frm-white-body .button-secondary, -.wp-core-ui .button-secondary.frm-button-secondary, -.wp-core-ui .button.frm-button-secondary, -.frm-white-body .frm-button-secondary, -.frm-button-secondary { - color: var(--grey-800); - border-color: var(--grey-300); - background-color: #fff; -} - -#wp-content-media-buttons button, -#wp-content-media-buttons a.button { - border-color: var(--grey-300); -} - -.frm_orange_button { - border-color: #da791d !important; - background: var(--orange); - color: #fff; -} - -.frm-white-body .button:not(.frm-button-primary):focus, -.frm-white-body .button:not(.frm-button-primary):active, -.frm-white-body .frm-button-secondary:hover, -.wp-core-ui.frm-white-body .frm-button-secondary:hover, -.wp-core-ui.frm-white-body .button-secondary:hover, -.wp-core-ui.frm-white-body .button-secondary:focus, -.wp-core-ui.frm-white-body .tablenav .button:hover, -.frm_wrap .preview > .button:hover, -.frm-white-body #search-submit:hover { - border-color: var(--grey-300) !important; - color: var(--grey-800); - background: var(--grey-50) !important; - box-shadow: none !important; - outline: none !important; -} - -.frm-button-primary .frmsvg { - color: #fff; -} - -.frm_wrap .preview i { - font-size: inherit; -} - -.frm-white-body .frm-button-primary:focus, -.frm-white-body .frm-button-primary:active, -#frm-addons-page .button-primary:focus, -#form_global_settings .button-primary:focus, -#frm_upgrade_modal .button:focus { - border-color: var(--primary-700) !important; - background-color: var(--primary-700) !important; - box-shadow: none !important; - outline: none !important; -} - -.frm_wrap .preview > .button:focus, -.frm_orange_button:hover, -.frm_orange_button:focus, -.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover, -.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus, -.toplevel_page_formidable .frm_wrap button.button-primary:hover, -.toplevel_page_formidable .frm_wrap button.button-primary:focus { - outline: none; -} - -.frm_orange_button:hover, -.frm_orange_button:focus { - border-color: var(--orange) !important; - background: transparent; - color: var(--orange); - opacity: 1; -} - -.major-publishing-actions.frm_create_form_header { - padding: 8px 0; -} - -.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner { - font-size: 15px; - background: transparent; -} - -.frm-menu-boxes .frm_blank_form_text { - padding-bottom: 26px; -} - -input.frm_insert_in_template { - font-size: 10px; - width: 98%; - font-weight: 400; -} - -.frm-dismissible a.dismiss:focus { - box-shadow: none; -} - -.frm-dismissible a.dismiss { - top: 10px; - right: 10px; - position: absolute; -} - -.frm-dismissible a.dismiss svg { - color: var(--grey-800); -} - -/** - * Components - Review Request - */ -.wp-admin .frm-review-notice { - position: fixed !important; - bottom: var(--gap-2xl); - right: var(--gap-lg); - width: 380px; - text-align: center; - border-color: var(--grey-100); - padding: var(--gap-lg); - border-radius: var(--medium-radius); - box-shadow: var(--box-shadow-lg) !important; - z-index: 999; - box-sizing: border-box; - --gap-sm: 16px; - --gap-md: 24px; - --gap-2xl: 48px; -} - -.wp-admin .frm-review-notice * { - box-sizing: border-box; -} - -.frm-review-notice-icon { - display: inline-flex; - margin-bottom: var(--gap-sm); -} - -.wp-admin .frm-review-notice-title { - font-weight: 600; - margin-top: 0; - margin-bottom: var(--gap-xs); -} - -.wp-admin .frm-review-notice-text { - margin-top: 0; - margin-bottom: var(--gap-md); -} - -.frm-review-notice-signature { - text-align: left; - margin: var(--gap-md) 0; -} - -.frm-review-notice-signature img { - width: 40px; - height: 40px; - padding: 3px; - box-shadow: var(--box-shadow-md); - border-radius: 100%; -} - -#wpwrap .frm-dismiss-review-notice { - top: 16px; - right: 19px; -} - -.frm-review-notice #frmapi-feedback [class^=frm__] { - display: none; -} - -.frm-review-notice #frmapi-feedback input, -.frm-review-notice #frmapi-feedback textarea { - border-color: var(--grey-300); - border-radius: var(--small-radius); -} - -.frm-review-notice #frmapi-feedback input { - min-height: unset; - max-height: 36px; -} - -.frm-review-notice #frmapi-feedback textarea { - max-height: 80px; - padding-top: var(--gap-xs); -} - -.frm-review-notice #frmapi-feedback .frm_message { - color: var(--success-900); - background-color: var(--success-25); - border: 1px solid var(--success-200); - padding: var(--gap-sm) var(--gap-md); - margin: 0; -} - -.frm-review-notice #frmapi-feedback .frm_message p { - margin: 0; -} - -.frm-review-notice #frmapi-feedback .frm_button_submit { - background-color: var(--primary-500); - border-color: var(--primary-500) !important; - cursor: pointer; -} - -.frm-review-notice #frmapi-feedback .frm_button_submit:hover, -.frm-review-notice #frmapi-feedback .frm_button_submit:focus { - color: #fff; - background-color: var(--primary-700); - border-color: var(--primary-700) !important; -} - -.frm-review-notice .frm_error, -.frm-review-notice label { - color: #444; - text-align: left; -} - -.frm-review-notice label { - font-size: var(--text-sm); -} - -.frm-floating-success-message { - position: fixed; - z-index: 999; - border-radius: 4px; - right: 10px; - bottom: 10px; -} - -/** - * Utility Classes - * - * Reusable helper classes for spacing, typography, effects, etc. - */ -/** - * Utilities - Box Shadow - */ -.frm-box-shadow-xxl { - box-shadow: var(--box-shadow-xxl) !important; -} - -/** - * Utilities - Text Color - */ -.frm-text-primary-500 { - color: var(--primary-500); -} - -.frm-text-grey-400 { - color: var(--grey-400) !important; -} - -.frm-text-grey-500 { - color: var(--grey-500) !important; -} - -.frm-text-grey-600 { - color: var(--grey-600) !important; -} - -.frm-text-grey-700 { - color: var(--grey-700); -} - -.frm-text-grey-900 { - color: var(--grey-900); -} - -.frm-text-success-500 { - color: var(--success-500); -} - -.frm-text-warning-500 { - color: var(--warning-500); -} - -/** - * Utilities - Margin - */ -.frm_no_margin, -.frm-m-0 { - margin: 0 !important; -} - -.frm-m-12 { - margin: var(--gap-2xl); -} - -.frm-m-2xs { - margin: var(--gap-2xs) !important; -} - -.frm_no_top_margin, -.frm-mt-0 { - margin-top: 0 !important; -} - -.frm-mt-2xs { - margin-top: var(--gap-2xs) !important; -} - -.-frm-mt-2xs { - margin-top: calc(-1 * var(--gap-2xs)) !important; -} - -.frm-mt-xs { - margin-top: var(--gap-xs) !important; -} - -.frm-mt-sm { - margin-top: var(--gap-sm) !important; -} - -.frm-mt-md { - margin-top: var(--gap-md) !important; -} - -.frm-mt-lg { - margin-top: var(--gap-lg) !important; -} - -.frm-mt-2xl { - margin-top: var(--gap-2xl) !important; -} - -.frm-mt-auto { - margin-top: auto !important; -} - -.frm_no_bottom_margin, -.frm-mb-0 { - margin-bottom: 0 !important; -} - -.frm-mb-2xs { - margin-bottom: var(--gap-2xs) !important; -} - -.frm-mb-6 { - margin-bottom: 6px !important; -} - -.frm-mb-sm { - margin-bottom: var(--gap-sm) !important; -} - -.frm-mb-12 { - margin-bottom: 12px !important; -} - -.frm-mb-xs { - margin-bottom: var(--gap-xs) !important; -} - -.frm-mb-md { - margin-bottom: var(--gap-md) !important; -} - -.frm-mb-lg { - margin-bottom: var(--gap-lg) !important; -} - -.frm-ml-2xs { - margin-left: var(--gap-2xs) !important; -} - -.frm-ml-xs { - margin-left: var(--gap-xs) !important; -} - -.frm-ml-auto { - margin-left: auto; -} - -.-frm-ml-2xs { - margin-left: calc(-1 * var(--gap-2xs)) !important; -} - -.frm-mr-auto { - margin-right: auto; -} - -.frm-force-mr-auto { - margin-right: auto !important; -} - -.frm-mr-2xs { - margin-right: var(--gap-2xs) !important; -} - -.frm-mr-xs { - margin-right: var(--gap-xs) !important; -} - -.frm-mr-2 { - margin-right: 2px !important; -} - -.frm-mx-0 { - margin-left: 0 !important; - margin-right: 0 !important; -} - -.frm-mx-xs { - margin-left: var(--gap-xs) !important; - margin-right: var(--gap-xs) !important; -} - -.frm-mx-sm { - margin-left: var(--gap-sm) !important; - margin-right: var(--gap-sm) !important; -} - -.frm-my-sm { - margin-top: var(--gap-sm) !important; - margin-bottom: var(--gap-sm) !important; -} - -.frm-my-xs { - margin-top: var(--gap-xs) !important; - margin-bottom: var(--gap-xs) !important; -} - -/** - * Utilities - Padding - */ -.frm-p-0 { - padding: 0 !important; -} - -.frm-p-1, -.frm-p-2xs { - padding: var(--gap-2xs); -} - -.frm-p-sm, -.frm-p-4 { - padding: var(--gap-sm) !important; -} - -.frm-p-sm { - padding: var(--gap-sm) !important; -} - -.frm-p-6, -.frm-p-md { - padding: var(--gap-md) !important; -} - -.frm-p-xl { - padding: var(--gap-xl) !important; -} - -.frm-px-0 { - padding-left: 0 !important; - padding-right: 0 !important; -} - -.frm-py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.frm-py-2xs { - padding-top: var(--gap-2xs) !important; - padding-bottom: var(--gap-2xs) !important; -} - -.frm-py-sm { - padding-top: var(--gap-sm) !important; - padding-bottom: var(--gap-sm) !important; -} - -.frm-pt-0 { - padding-top: 0 !important; -} - -.frm-pt-2xs { - padding-top: var(--gap-2xs) !important; -} - -.frm-pt-xs { - padding-top: var(--gap-xs) !important; -} - -.frm-pt-sm { - padding-top: var(--gap-sm) !important; -} - -.frm-pt-md { - padding-top: var(--gap-md) !important; -} - -.frm-pt-xl { - padding-top: var(--gap-xl) !important; -} - -.frm-pr-lg { - padding-right: var(--gap-lg) !important; -} - -.frm-pb-md { - padding-bottom: var(--gap-md) !important; -} - -.frm-pb-sm { - padding-bottom: var(--gap-sm) !important; -} - -.frm-pb-xs { - padding-bottom: var(--gap-xs) !important; -} - -.frm-pb-2xs { - padding-bottom: var(--gap-2xs) !important; -} - -.frm-pb-0 { - padding-bottom: 0 !important; -} - -.frm-px-sm { - padding-right: var(--gap-sm) !important; - padding-left: var(--gap-sm) !important; -} - -.frm-px-xs { - padding-right: var(--gap-xs) !important; - padding-left: var(--gap-xs) !important; -} - -.frm-px-md { - padding-right: var(--gap-md) !important; - padding-left: var(--gap-md) !important; -} - -/** - * Utilities - Font Size - */ -.frm-text-xs { - font-size: var(--text-xs) !important; -} - -.frm-text-sm { - font-size: var(--text-sm) !important; -} - -.frm-text-md { - font-size: var(--text-md) !important; -} - -.frm-text-lg { - font-size: var(--text-lg) !important; -} - -.frm-text-xl { - font-size: var(--text-xl) !important; -} - -.frm-leading-none { - line-height: 1; -} - -.frm-italic { - font-style: italic; -} - -.frm-no-italic { - font-style: normal; -} - -/** - * Utilities - Text Transform - */ -.frm-capitalize { - text-transform: capitalize; -} - -/** - * Utilities - Font Weight - */ -.frm-font-normal { - font-weight: 400 !important; -} - -.frm-font-medium { - font-weight: 500 !important; -} - -.frm-font-semibold { - font-weight: 600 !important; -} - -/** - * Utilities - Text Overflow - */ -.frm-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -[class*=frm-line-clamp-] { - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; -} - -.frm-line-clamp-2 { - -webkit-line-clamp: 2; -} - -.frm-white-space-nowrap { - white-space: nowrap; -} - -/** - * Utilities - Border Radius - */ -.frm-rounded-sm { - border-radius: var(--small-radius) !important; -} - -.frm-rounded-6 { - border-radius: 6px !important; -} - -/** - * Utilities - Width - */ -.frm-w-auto { - width: auto !important; -} - -.frm-w-full { - width: 100% !important; -} - -.frm-w-half { - width: 50% !important; -} - -.frm-w-fit { - width: fit-content !important; -} - -.frm-max-w-fit { - max-width: fit-content; -} - -.frm-h-auto { - height: auto !important; -} - -/** - * Utilities - Display - */ -#wpwrap .frm-force-hidden { - display: none !important; -} - -.frm_block, -.frm-block { - display: block; -} - -.frm_inline { - display: inline; -} - -.frm-force-inline { - display: inline !important; -} - -.frm_inline_block { - display: inline-block !important; -} - -/** - * Utilities - Flex - */ -.frm-inline-flex, -#wpbody-content .frm-inline-flex { - display: inline-flex; -} - -.frm-flex { - display: flex; -} - -.frm-force-flex { - display: flex !important; -} - -.frm_hidden, -.js .frm-hide-js { - display: none; -} - -.frm-flex-box { - display: flex; - gap: var(--gap-sm); -} - -.frm-flex-col { - display: flex; - flex-direction: column; -} - -.frm-flex-full { - flex: 1; -} - -.frm-force-flex-center, .frm-flex-center { - justify-content: center; - align-items: center; -} - -.frm-flex-center { - display: flex; -} - -.frm-force-flex-center { - display: flex !important; -} - -.frm-shrink-0 { - flex-shrink: 0; -} - -.frm-gap-0 { - gap: 0 !important; -} - -.frm-gap-2xs { - gap: var(--gap-2xs); -} - -.frm-gap-xs { - gap: var(--gap-xs); -} - -.frm-gap-sm { - gap: var(--gap-sm); -} - -.frm-gap-md { - gap: var(--gap-md); -} - -.frm-gap-xl { - gap: var(--gap-xl); -} - -.frm-justify-start { - justify-content: start !important; -} - -.frm-justify-center { - justify-content: center !important; -} - -.frm-justify-between { - justify-content: space-between; -} - -.frm-justify-end { - justify-content: end; -} - -.frm-items-start { - align-items: flex-start; -} - -.frm-items-center { - align-items: center; -} - -.frm-items-stretch { - align-items: stretch; -} - -#wpbody-content .frm-flex-wrap { - flex-wrap: wrap; -} - -.frm-grow { - flex-grow: 1; -} - -.frm-order-first { - order: -9999; -} - -.frm-order-last { - order: 9999; -} - -.frm-order-none { - order: 0; -} - -.frm-h-stack-sm, .frm-h-stack-xs, .frm-h-stack { - display: flex !important; - align-items: center; -} -.frm-h-stack-sm > input[type=checkbox], .frm-h-stack-xs > input[type=checkbox], .frm-h-stack > input[type=checkbox], -.frm-h-stack-sm > input[type=radio], -.frm-h-stack-xs > input[type=radio], -.frm-h-stack > input[type=radio] { - margin: 0 !important; -} - -.frm-h-stack { - gap: var(--gap-2xs); -} - -.frm-h-stack-xs { - gap: var(--gap-xs); -} - -.frm-h-stack-sm { - gap: var(--gap-sm); -} - -/** - * Utilities - Transition - */ -.frm-transition-ease { - transition: all 0.2s ease; -} - -/** - * Utilities - Visibility - */ -.frm_invisible { - visibility: hidden; - transition: all 0.2s ease; -} - -.frm_disabled { - opacity: 0.5; - cursor: default; - pointer-events: none; -} -.frm_disabled .frm-show-inline-modal { - pointer-events: none !important; -} - -/** - * Utilities - Float - */ -.frm_no_float { - float: none; -} - -/** - * Utilities - Text Align - */ -.frm-text-right { - text-align: right; -} - -.frm-text-left { - text-align: left; -} - -/** - * Utilities - Border - */ -.frm-border-b { - border-bottom: 1px solid var(--grey-300); -} - -.frm-no-border { - border: none !important; -} - -.frm-hr { - display: block; - height: 1px; - background-color: var(--grey-200); - margin: var(--gap-xs) 0; -} - -/** - * Utilities - Opacity - */ -.frm-opacity-100 { - opacity: 1; -} - -/** - * Utilities - Z-index Helpers - */ -.frm-on-bottom { - z-index: -1; -} - -/** - * Utilities - Transform - */ -.frm-rotate-90 { - transform: rotate(90deg); -} - -/** - * Utilities - Cursor - */ -.frm-cursor-pointer { - cursor: pointer; -} - -/** - * Utilities - Vertical Align - */ -.frm-align-baseline { - vertical-align: baseline !important; -} - -/** - * Utilities - Generic Classes - */ -.frm-fields p > label.frm_hidden, -#wpbody-content label.frm_hidden, -.frm-lookup-modal .dismiss, -.frm-right-panel .inside a.frm_hidden, -#form_global_settings .frm_hidden, -ul.frm_form_nav > li.frm_hidden, -a.frm_hidden, -.button.frm_hidden, -.wp-core-ui .button.frm_hidden { - display: none; -} - -.postbox .inside > p.frm_no_bottom_margin:last-child { - margin-bottom: 0 !important; -} - -.frm_no_section_fields.frm_block { - display: block; -} - -.actions.frm_visible_overflow { - overflow: visible !important; -} - -.frm_full_opacity, -.frm_submit .frm_full_opacity, -.frm_submit .frm-opacity-100 { - opacity: 1; -} - -.frm-dropdown-menu.frm-on-top { - z-index: 99999; -} - -/** - * Utilities - Helper Classes - */ -.frm-vertical-line { - display: inline-block; - width: 1px; - height: 12px; - background-color: var(--grey-300); -} - -.frm-admin-full-screen #adminmenumain, -.frm-admin-full-screen #wpadminbar, -.frm-admin-full-screen #adminmenuback, -.frm-admin-full-screen #adminmenuwrap, -.frm-admin-full-screen #wpfooter { - display: none; -} - -.frm-admin-full-screen #wpcontent, -.frm-admin-full-screen.auto-fold #wpcontent { - margin: 0; - padding: 0; -} - -.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content { - padding: 0; -} - -/** - * Forms & UI Components - * - * Form elements, inputs, fields, modals and interactive components - */ -/** - * Components - General Form Styles - */ -.frm_forms.with_frm_style { - max-width: 100%; -} - -.post-type-frm_display .wrap > .subsubsub, -.post-type-frm_display .wrap > .icl_subsubsub, -.frm_form_settings > p { - margin: 6px var(--gap-md); - padding: 0; -} - -.frm-entry-container { - margin: 0 40px 40px; - padding: 0; -} - -#form_reports_page .frm-inner-content { - width: calc(100% - 40px); - max-width: 900px; - margin: 20px auto; - padding: 20px; -} - -.frm_inner_field_container > .frm_form_fields { - clear: both; -} - -.post-type-frm_display h2, -.frm_wrap h2 { - margin-top: 0 !important; - font-size: var(--text-lg); - line-height: var(--leading); -} - -.post-type-frm_display .wrap > h2:first-child, -.frm_wrap .wrap > h2:first-child { - padding-top: 0; - margin-top: 0 !important; - font-size: var(--text-lg); -} - -#frm_form_editor_container { - position: relative; - margin-top: 28px; -} - -/** - * Components - Form Field - */ -.form-field p { - /* for conflicts */ - background: none; - border: none; -} - -.form-field label.frm_primary_label { - display: block; - float: none; - width: auto; -} - -#frm_view_editor_left label, -#frm_view_editor_left .frm_primary_label, -.frm-dialog .frm-sub-label, -.frm-dialog label, -.dropdown .frm_primary_label, -.accordion-container label, -.frm-fields td > label, -.frm-fields td > div > label, -.frm_form_field > label:first-child, -.frm-fields p > label, -.frm_on_submit_type > label, -.post-type-frm_display .frm_form_field > label, -#new_fields .frm_primary_label, -#form_global_settings .frm_primary_label, -#frm_form_editor_container .frm_primary_label, -#permissions_settings_settings .frm_primary_label { - color: var(--grey-700); - margin: 0 0 6px; - padding: 0; - width: auto; - font-size: var(--text-sm); - display: block; - line-height: var(--leading); -} - -#frm_form_editor_container #frm-show-fields .frm_primary_label { - min-height: 21px; -} - -.frm-fields td input + label { - display: inline; -} - -#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label, -#frm_form_editor_container .edit_field_type_break .frm_primary_label { - display: none; -} - -form .frm_primary_label input { - font-size: 12px; -} - -.with_frm_style form .form-field { - margin-bottom: 20px; -} - -#frm_builder_page .with_frm_style form .frm_combo_inputs_container > .form-field { - margin-bottom: 0; -} - -.frm_description, -.with_frm_style form div.description, -.frm_error, -.with_frm_style form div.description textarea { - padding: 0; - font-size: 11px; -} - -.with_frm_style .description { - color: inherit; -} - -#frm_form_editor_container .divider_section_only .frm_primary_label { - display: flex; - align-items: center; - gap: var(--gap-xs); - font-size: 20px; -} - -#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label { - padding: 0; -} - -/** - * Token Input Component - * - * Displays space-separated values as selectable tokens - */ -.frm-token-container { - position: relative; - display: block; - direction: ltr; -} -.frm-token-container .frm-tokens { - position: absolute; - top: 0; - left: 0; - max-width: calc(100% - var(--gap-xl)); - display: flex; - align-items: center; - flex-wrap: wrap; - gap: var(--gap-2xs); - padding: 6px var(--gap-xs); - margin: 0; -} -.frm-token-container .frm-token { - position: relative; - display: flex; - align-items: center; - gap: var(--gap-xs); - min-height: 24px; - height: auto; - color: var(--grey-900); - background: var(--grey-100); - border-radius: 4px; - padding: 0 var(--gap-xs); - font-size: var(--text-md); - margin: 0; - z-index: 2; -} -.frm-token-container .frm-token .frm-token-value { - line-height: var(--leading); - white-space: normal; - word-break: break-word; -} -.frm-token-container .frm-token .frm-token-remove { - display: flex; - flex-shrink: 0; - cursor: pointer; -} -.frm-token-container .frm-token .frm-token-remove .frmsvg { - color: var(--grey-900); - position: static; - width: 12px; - height: 12px; - padding: 0; -} -.frm-token-container .frm-token .frm-token-remove:hover .frmsvg { - color: var(--error-500); -} -.frm-token-container .frm-show-inline-modal { - z-index: 3 !important; -} -.frm-token-container .frm-token-proxy-input { - position: relative; - z-index: 1; - padding-right: var(--gap-xl) !important; -} - -/** - * Components - Field Loading - */ -form .form-field.frm_field_loading { - margin-bottom: 0; - min-height: 0; - padding: 0; - text-align: center; -} - -.frm_sorting > .frm_field_loading .frm_visible_spinner.frm-wait { - margin-bottom: 10px; -} - -.frm_sorting > .frm_field_loading ~ .frm_field_loading .frm_visible_spinner.frm-wait { - margin-bottom: 0; - display: none; -} - -/** - * Components - Form Error - */ -.frm_description, -.with_frm_style form div.description, -.frm_error { - margin: 0; -} - -.frm_error { - color: #F04438; -} - -form .frm_blank_field input, -form .frm_blank_field textarea, -form .frm_blank_field select, -form .frm_blank_field .frm-g-recaptcha iframe, -form .frm_blank_field .g-recaptcha iframe { - border-color: #F04438; -} - -form .frm_blank_field label { - color: #F04438; -} - -.frm_required { - color: #F04438; -} - -/** - * Components - MCE Styles - */ -.with_frm_style .wp-editor-container textarea, -.postbox .wp-editor-container textarea, -.frm_remove_border { - border: none; -} - -.with_frm_style .mceIframeContainer, -.postbox .mceIframeContainer { - background-color: #fff; -} - -/** - * Components - License - */ -.frm_pro_license_msg { - clear: left; - margin-top: 10px; -} - -.frm-license-input { - position: relative; -} - -.frm-license-input span { - font-size: var(--text-sm); -} - -.frm-license-input .frmsvg { - width: 20px; - height: 20px; - margin-left: 5px; - vertical-align: text-top; -} - -.frm-license-input .frmsvg, -.frm-license-input span, -.frm-license-input i { - color: rgb(0, 131, 26); -} - -/** - * Components - Upgrade to Pro - */ -.upgrade_to_pro { - padding: 10px 25px 25px; - max-width: 700px; - margin: 20px auto !important; -} - -.upgrade_to_pro .error { - display: none; -} - -/** - * Components - Message Styles - */ -.toplevel_page_formidable #wpbody-content > .error { - margin: 1px; - padding: 5px 12px; -} - -.frm_error_style, -.frm_warning_style, -.frm_note_style2, -.frm_note_style, -.frm_message, -#post-body-content .frm_updated_message, -div.frm_updated_message { - border-radius: var(--small-radius); - background-color: #D5F2DC; - color: #1E561F; - padding: var(--gap-sm) var(--gap-md); - font-size: var(--text-sm); - margin: var(--gap-sm) 0; - text-align: left; -} - -.frm_note_style2 { - background: linear-gradient(90deg, #e9effa, #fcf6fe) padding-box, linear-gradient(90deg, #1961D5, #E8ABEF) border-box; - border: 1px solid transparent; -} - -#frm_top_bar + .wrap > .frm_updated_message, #frm_top_bar + .wrap > .frm_warning_style { - display: inline-block; - width: 100%; - box-sizing: border-box; -} - -#post-body-content > .frm_updated_message { - margin: 5px 65px; -} - -#form_global_settings #post-body-content > .frm_updated_message, -#form_global_settings #post-body-content > .frm_warning_style { - margin: 5px 25px; -} - -.frm_error_style { - color: #973937; - background-color: #EBCCCC; - clear: both; -} - -.frm_error_style a { - text-decoration: underline; - font-weight: 600; -} - -.frm_error_style svg { - opacity: 0.7; -} - -.frm_warning_style { - color: #7A4D05; - background-color: #FFF2D2; -} - -.frm_warning_heading { - font-weight: 700; - margin-bottom: 4px; -} - -/* Warning message dismiss */ -.frm_warning_style { - position: relative; - padding-right: calc(var(--gap-md) + 15px); -} - -body.rtl .frm_warning_style { - padding-right: var(--gap-md); - padding-left: calc(var(--gap-md) + 15px); -} - -.frm-warning-dismiss { - position: absolute; - top: 10px; - right: 10px; - display: flex; - cursor: pointer; - transition: opacity 0.2s ease-out; -} - -body.rtl .frm-warning-dismiss { - left: 10px; - right: auto; -} - -.frm-warning-dismiss:hover { - opacity: 0.8; -} - -.frm-warning-dismiss.frmsvg, -.frm-warning-dismiss.frmsvg svg { - width: 15px; - height: 15px; -} - -.frm_note_style { - background: rgba(188, 224, 253, 0.23); - color: var(--grey-700); -} - -.frm-banner-alert { - text-align: left; - margin: 0; - border-radius: 0; - padding: 10px 0 10px 40px; -} - -.frm-banner-alert a { - color: var(--primary-500); - font-weight: 400; - text-decoration: none; -} - -.frm_updated_message ul, -.frm_updated_message li, -.frm_warning_style ul, -.frm_warning_style li, -.frm_error_style ul, -.frm_error_style li { - margin: 0; -} - -.frm-inline-message { - border: 1px solid var(--primary-700); - border-radius: var(--small-radius); - color: var(--primary-700); - background: #fff; - text-align: center; - padding: 20px; - font-size: var(--text-sm); - line-height: var(--leading); -} - -.frm-inline-message a { - text-decoration: underline; - font-weight: 600; - color: var(--primary-700); -} - -.frm_pro_heading span { - margin-top: 10px; -} - -.frm_pro_heading .alignright { - text-align: right; -} - -.frm-yes { - color: var(--green); - font-size: var(--text-xl); -} - -.frm-nope { - color: var(--grey-400); - font-size: var(--text-xl); -} - -/** - * Components - Upgrade Bar Elements - */ -.upgrade_to_pro a { - color: var(--orange); -} - -.upgrade_to_pro table .frmsvg { - height: var(--text-xl); - width: var(--text-xl); -} - -.upgrade_to_pro table.widefat { - background-color: #fff; - border-collapse: collapse; -} - -.frm-white-body .upgrade_to_pro table th, -.upgrade_to_pro table td { - padding: 10px 15px; - border: 1px solid var(--grey-300); - line-height: var(--leading); - font-size: var(--text-sm); -} - -.upgrade_to_pro table th.frmcenter { - text-align: center; -} - -/** - * Components - Table Styles - */ -.widefat th.frm_table_break { - background-color: var(--sidebar-color); -} - -/** - * Base - Howto - */ -h2.frm-h2 + .howto { - color: var(--medium-grey); - max-width: 850px; - margin: 5px 0 20px; -} - -/** - * Components - Card - */ -.frm-card { - width: 100%; - border-radius: 10px; - border: 1px solid var(--grey-300); - opacity: 1; - transition: opacity 1s; -} - -.frm-card-box { - max-width: 524px; - background-color: #fff; - border-radius: var(--medium-radius); - padding: var(--gap-xl); - border: 1px solid var(--grey-200); - box-shadow: var(--box-shadow-md); -} - -.frm-card-box.frm-has-progress-bar { - position: relative; - overflow: hidden; - border-radius: var(--medium-radius); -} - -.frm-card-box-progress-bar { - position: absolute; - top: 0; - left: 0; - right: 0; - height: var(--gap-xs); - background-color: var(--primary-25); -} - -.frm-card-box-progress-bar > span { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 33%; - background-color: var(--primary-500); -} - -.frm-card-box-header { - display: flex; - justify-content: center; - margin-bottom: var(--gap-sm); -} - -.frm-card-box.frm-has-progress-bar .frm-card-box-header { - margin-top: var(--gap-xs); -} - -.frm-card-box-content > :last-child { - margin-bottom: 0; -} - -.frm-card-box-footer { - display: flex; - justify-content: end; - gap: var(--gap-sm); - margin-top: var(--gap-lg); -} - -.frm-card-box-title { - font-size: var(--text-xl) !important; - font-weight: 600 !important; - margin-bottom: var(--gap-xs); -} - -.frm-card-box-text { - font-size: var(--text-md) !important; - color: var(--grey-600) !important; - margin-top: 0 !important; -} - -/** - * Utilities - Fade - */ -.frm-fade { - opacity: 0; - transition: all 1s; -} - -/** - * Components - Add-on Tiles - */ -.frm-addons .frm-card.frm-addon-not-installed { - position: relative; -} - -.frm-addons .plugin-card-top { - min-height: 155px; - padding-top: var(--gap-lg); - overflow: hidden; -} - -.frm-addons .plugin-card-top h2 { - margin-top: 0; - font-weight: 400; -} - -.frm-template-row p, -.frm-addons .plugin-card-top p { - opacity: 0.8; -} - -.frm-addons .plugin-card-top > :not(p):not(h2) { - /* Hide notices from third party plugins */ - display: none; -} - -.frm-addons .plugin-card-bottom { - padding: 5px 20px 20px; - text-align: center; - background: transparent; - border-top: none; -} - -.frm-addons .plugin-card-bottom, -.frm-addons .plugin-card-bottom .button { - font-size: 15px; -} - -.frm-addons .button, -.frm-addons .frm-button-tertiary { - float: right; -} - -.frm-addons .addon-status { - float: left; - padding-top: 4px; -} - -.frm-addon-not-installed .frm-activate-addon, -.frm-addon-not-installed .frm-deactivate-addon, -.frm-addon-not-installed .frm-uninstall-addon, -.frm-addon-installed .frm-install-addon, -.frm-addon-installed .frm-deactivate-addon, -.frm-addon-active .frm-activate-addon, -.frm-addon-active .frm-install-addon, -.frm-addon-active .frm-uninstall-addon, -.plugin-card-pro.frm-addon-active .button, -.plugin-card-pro.frm-addon-active .frm-button-tertiary { - display: none !important; -} - -.frm-save-and-reload-options { - margin-top: 10px; - font-size: 13px; -} - -.frm-save-and-reload, -.frm-save-and-reload + .frm-button-secondary { - visibility: visible !important; -} - -.addon-status-label { - opacity: 0.7; -} - -.frm-addon-active .addon-status-label { - color: var(--green); - opacity: 1; -} - -.frm-addon-error { - position: absolute; - top: 55px; - left: 10px; - right: 10px; - font-weight: 700; - text-align: center; -} - -/** - * Components - Form Templates - */ -.frm-new-template.plugin-card-bottom { - overflow: visible; -} - -#frm-new-template p:first-child { - margin-top: 0; -} - -/** - * Layout - Admin Page - */ -.frm-admin-page-formidableedit #wpbody-content > *:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack), -#wpbody-content > .updated, -#wpbody-content > #update-nag, -#wpbody-content > .update-nag, -#wpbody-content > .notice, -#wpbody-content > .error:not(.frm_previous_install), -.frm-white-body .updated, -.frm-white-body .notice, -.frm_wrap > .wrap > .notice, -.frm-white-body .error:not(.frm_previous_install) { - display: none; -} - -.frm-admin-page-formidableedit #frm_builder_page { - display: block !important; -} - -.frm-white-body .updated, -.frm-white-body .error { - margin: 0; - padding: 10px 20px; -} - -/** - * Components - Modal - */ -.frm-modal:not(#frm-dismissable-cta) .postbox { - max-height: 600px; - overflow: hidden; - margin-bottom: 0; -} - -.frm-modal .postbox .frm_modal_top, -.frm-dialog .frm_common_modal .postbox > div:first-child, -.frm-error-modal .frm_modal_top { - padding: var(--gap-md) var(--gap-md) 0; - position: relative; -} - -.frm-modal h2, -.frm-modal .postbox .inside h2, -.frm-modal .postbox .frm-modal-title, -.frm-dialog .frm_common_modal .postbox > div:first-child > div:first-child, -.frm-error-modal .frm-modal-title { - display: inline-block; - font-size: var(--text-lg); - color: var(--grey-900); - font-weight: 600; - margin: 0; - padding: 0; -} - -.frm-modal h3 { - font-weight: 500; -} - -/* Dismiss icon button */ -.frm-inline-modal > a.dismiss, -.frm-modal .postbox > a.dismiss, -.frm-modal .postbox .frm-modal-title + div:last-child, -.frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { - position: absolute; - top: 19px; - right: 19px; - display: flex; - z-index: 2; -} - -body.rtl .frm-inline-modal > a.dismiss, -body.rtl .frm-modal .postbox > a.dismiss, -body.rtl .frm-modal .postbox .frm-modal-title + div:last-child, -body.rtl .frm-dialog .frm_common_modal .postbox > div:first-child > div:last-child { - right: unset; - left: 30px; -} - -.frm-info-modal .postbox > a.dismiss, -.frm-inline-modal > a.dismiss { - right: 13px; - top: 13px; -} - -.frm-modal .postbox .frm-modal-title + div:last-child a, -.frm-modal a.dismiss .frmsvg, -.frm_common_modal .frm_modal_top a .frmsvg { - color: var(--grey-500); -} - -.frm-modal .postbox .frm-modal-title + div:last-child a:hover, -.frm-modal a.dismiss .frmsvg:hover, -.frm_common_modal .frm_modal_top a .frmsvg:hover { - color: var(--grey-700); -} - -.frm-modal .frm_modal_content > div.inside, -.frm_common_modal .frm_modal_content > div.inside { - padding: var(--gap-md); - margin: 0; - font-size: var(--text-sm); - color: var(--grey-700); -} - -.frm-modal p { - color: var(--grey-900); -} - -.frm_common_modal .postbox { - display: flex; - flex-direction: column; -} - -.frm-modal .postbox > div.inside .cta-inside { - overflow-y: auto; - height: auto; -} - -.frm_modal_footer { - padding: 0 var(--gap-md) var(--gap-sm); - text-align: right; -} - -body.frm-body-with-open-modal { - overflow-y: hidden; -} - -/** - * Components - Template List - */ -/* These template list styles are still used to list the View types in the New View modal. */ -.frm-templates-list { - margin-top: 0; -} - -.frm-templates-list.frm_grid_container li { - margin-bottom: 0; -} - -.frm-templates-list li { - vertical-align: top; - position: relative; - box-sizing: border-box; - border-radius: 6px; - border: 1px solid transparent; - text-align: left; -} - -.frm-templates-list li:not(.frm_hidden) { - display: inline-block; -} - -.frm-templates-list.frm-categories-list li { - width: 100%; -} - -.frm-templates-list li.frm-selectable { - cursor: pointer; -} - -.frm-templates-list li.frm-selectable:hover { - background: var(--light-blue); - border-color: rgba(65, 153, 253, 0.5); -} - -.frm-templates-list li.frm-selectable:hover h3, -.frm-templates-list li.frm-selectable:hover p { - max-width: calc(100% - 65px); -} - -.frm-templates-list .frm-featured-form { - display: flex; - width: 100%; -} - -.frm-templates-list li .frm-featured-form { - padding: 7px 5px; -} - -.frm-templates-list li li > div { - padding-left: 0; -} - -.frm-templates-list li > div > div { - vertical-align: middle; -} - -.frm-category-icon, -.frm-icon-wrapper { - background: var(--primary-500); - border-radius: var(--small-radius); - color: #fff; - width: 32px; - height: 32px; - font-size: 18px; - box-sizing: border-box; - align-self: center; - justify-content: center; - align-items: center; - display: inline-flex; -} - -.frm-templates-list li .frm-category-icon { - overflow: hidden; -} - -.frm-templates-list li h3, -.frm-templates-list li p { - text-align: left; - margin: 0; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} - -.frm-templates-list li h3, -.frm-templates-list .frm-install-template h3 { - font-size: var(--text-sm) !important; -} - -.frm-templates-list .frm-install-template div { - text-align: left; -} - -#frm_leave_email, -#frm_code_from_email { - width: 480px; - max-width: 100%; -} - -.frm-templates-list.frm-categories-list li > div > div:last-child { - padding-left: 0; -} - -.frm-hover-icons { - position: absolute; - right: 0; - top: 17px; /* Template item height - borders - icon height */ - max-width: 91px; - height: 100%; - box-sizing: border-box; - padding: 0 10px 0 5px !important; - border-radius: var(--small-radius); - text-align: right; - display: flex; - gap: 5px; -} - -.frm-ready-made-solution .frm-hover-icons { - visibility: hidden; -} - -.frm-ready-made-solution:hover .frm-hover-icons { - visibility: visible; -} - -.frm-hover-icons a { - width: 22px; - height: 22px; - font-size: var(--text-md); - display: inline-flex; - align-items: center; - justify-content: center; - border-radius: 50%; - box-sizing: border-box; - line-height: var(--leading); - text-align: center; -} - -.frm-hover-icons > .frm-preview-form, -.frm-hover-icons > .frm-delete-form { - border: 1px solid var(--primary-500); -} - -.frm-hover-icons > .frm-create-form, -.frm-ready-made-solution .frm-hover-icons a { - background-color: var(--primary-500); -} - -.frm-hover-icons > a .frmsvg { - width: 14px; - height: 14px; - vertical-align: baseline; -} - -.frm-hover-icons > .frm-preview-form .frmsvg, -.frm-hover-icons > .frm-delete-form .frmsvg { - color: var(--primary-500); -} - -.frm-hover-icons > .frm-unlock-form { - background-color: var(--primary-500); -} - -.frm-hover-icons > .frm-unlock-form .frmsvg { - background-color: var(--primary-500); -} - -.frm-ready-made-solution .frmsvg { - width: 14px; - height: 14px; -} - -.frm-hover-icons .frm-create-form svg, -.frm-ready-made-solution .frm-hover-icons svg { - color: #fff; -} - -.frm-hover-icons .frm-create-form:hover, -.frm-ready-made-solution .frm-hover-icons a:hover, -.frm-hover-icons > .frm-unlock-form:hover, -.frm-hover-icons > .frm-unlock-form:hover .frmsvg { - background-color: var(--primary-700) !important; -} - -.frm-hover-icons .frm-preview-form:hover, -.frm-hover-icons .frm-delete-form:hover { - border: 1px solid var(--primary-700) !important; -} - -.frm-hover-icons .frm-preview-form:hover .frmsvg, -.frm-hover-icons .frm-delete-form:hover .frmsvg { - color: var(--primary-700) !important; -} - -.frm-application-card h4 .frmsvg, -.frm-locked-template h3 .frmsvg { - height: var(--text-sm); - width: var(--text-sm); - vertical-align: text-top; - color: var(--grey-500); -} - -/** - * Components - Modal Actions - */ -.frm-modal-back { - cursor: pointer; - margin-right: 4px; -} - -.frm-modal-cancel { - float: left; -} - -/** - * Components - Meta Tag - */ -.frm-meta-tag, -.frm-meta-tag:hover { - padding: var(--gap-2xs) var(--gap-xs); - border-radius: var(--small-radius); - font-weight: 600; - display: inline-flex; - background-color: #D9EBFF; - gap: 2px; -} - -.frm-meta-tag.frm-grey-tag, -.frm-meta-tag.frm-grey-tag:hover { - background-color: var(--sidebar-hover); - color: var(--grey-900); -} - -.frm-meta-tag.frm-red-tag, -.frm-meta-tag.frm-red-tag:hover { - background: var(--error-100); - color: var(--error-700); -} - -.frm-meta-tag.frm-orange-tag, -.frm-meta-tag.frm-orange-tag:hover { - background-color: #FEF7F4; - color: var(--orange); -} - -.frm-meta-tag.frm-green-tag, -.frm-meta-tag.frm-green-tag:hover { - background-color: var(--success-500); - color: #fff; -} - -.frm-entry-status-0, -.frm-meta-tag.frm-lt-green-tag, -.frm-meta-tag.frm-lt-green-tag:hover { - background-color: var(--success-100); - color: var(--success-800); -} - -.frm-meta-tag.frm-new-pill { - background-color: var(--success-500); - vertical-align: text-bottom; -} - -.frm_add_field span + .frm-meta-tag { - margin-left: 0; -} - -/** - * Components - Upgrade List - */ -/* Start entry statuses */ -.frm-entry-status { - font-weight: 500; -} - -.frm-entry-status-1 { - color: #7A4D05; - background: #FFF2D2; -} - -/* End entry statuses */ -#frm-create-footer { - padding: 15px 20px; -} - -li .frm-hover-icons .frm-preview-form, -.frm-hover-icons .frm-unlock-form, -.frm-locked-template .frm-hover-icons .frm-create-form, -.frm-modal-back { - display: none; -} - -.frm-locked-template .frm-hover-icons .frm-unlock-form, -li[data-preview] .frm-hover-icons .frm-preview-form { - display: inline-flex; -} - -.frm-modal-back svg { - color: #7F7F7F; -} - -#frm-upgrade-body-list-wrapper > div { - display: inline-block; - width: 33.3333333333%; - vertical-align: top; - text-align: left; - margin-bottom: 10px; -} - -#frm-upgrade-body-list-wrapper ul { - padding-left: 40px; -} - -#frm-upgrade-body-list-wrapper ul li::before { - content: "\2022"; - color: var(--primary-500); - display: inline-block; - width: 1em; - margin-left: -1em; -} - -/** - * Components - Embed Modal - */ -.frm-embed-modal-content { - padding: var(--gap-md); -} - -.frm-embed-modal-content.frm-loading-page-options { - display: flex; - justify-content: center; -} - -#frm_embed_modal .frm_embed_example { - background: var(--sidebar-color); - border: 1px solid var(--sidebar-hover); - border-radius: var(--small-radius); - color: var(--grey-900); - font-size: var(--text-sm); - padding-right: var(--gap-lg); - width: 100%; - height: auto !important; - resize: none; -} - -#frm_embed_modal textarea.frm_embed_example { - padding-bottom: 0; -} - -.frm-embed-modal-content > div a { - position: absolute; - right: 0; - top: 0; -} - -.frm-embed-modal-content > div { - position: relative; - margin-bottom: var(--gap-sm); -} - -.frm-embed-modal-content > div:last-child { - margin-bottom: 0; -} - -.frm-embed-modal-content svg[id^=frm_copy_embed_] { - position: absolute; - bottom: 10px; /* Input height - SVG height */ - right: 10px; - cursor: pointer; - opacity: 0.5; -} - -.frm-border-info-box, -.frm-embed-modal-option { - border-radius: var(--small-radius); - border: 1px solid var(--grey-300); - padding: var(--gap-sm); - cursor: pointer; - display: flex; - gap: var(--gap-sm); - font-size: var(--text-sm); -} - -.frm-embed-modal-option + .frm-embed-modal-option { - margin-top: var(--gap-sm); -} - -.caret.rotate-270, -.frm-embed-modal-option .caret { - align-self: center; - margin-left: auto; - transform: rotate(-90deg); -} - -#frm_embed_modal .frm_modal_footer { - display: none; -} - -#frm_embed_modal.frm-on-page-2 .frm_modal_footer { - display: block; -} - -.frm-embed-modal-content ul { - max-height: 300px; - overflow-y: scroll; -} - -.frm-embed-modal-wrapper.frm-dialog { - overflow: visible; -} - -/** - * Components - Bulk Options - */ -#frm-bulk-modal .frm_grid_container { - grid-template-columns: repeat(12, 8.33%); - grid-gap: 0; -} - -#frm-bulk-modal .frm8 { - border-right: 1px solid var(--grey-300); - padding: 10px 20px 10px var(--gap-lg); -} - -#frm-bulk-modal .frm4 { - padding: 10px 0; -} - -.frm-inline-modal .howto { - margin: 5px 0 10px; - color: var(--grey); -} - -.frm-inline-modal .frm_code_list + .howto { - margin-bottom: 0; -} - -#frm_bulk_options { - height: 240px; - width: 100%; - border: none; - box-shadow: none; - padding: 0; -} - -.frm-bulk-edit-link { - display: flex; - align-items: center; - justify-content: flex-end; - gap: var(--gap-2xs); - font-size: var(--text-sm); - margin: 12px 0 12px auto; -} -.frm-bulk-edit-link .frm-bulk-edit-link { - margin: 0; -} - -/** - * Components - Small Add - */ -.frm-small-add { - font-size: var(--text-sm) !important; -} - -.frm-small-add span { - color: var(--primary-500); - font-size: 12px; - height: 12px; - width: 12px; -} - -/** - * Components - Image From URL - */ -.frm_no_captcha_text { - font-weight: 700; - color: #A00; -} - -.frm_image_from_url { - height: 50px; -} - -/** - * Components - Dropdown - */ -/*Switch form dropdown*/ -h1 .fa-caret-down { - font-size: 18px; -} - -.caret { - display: inline-block; - width: 19px; - height: 9px; - margin-right: -8px; - vertical-align: middle; -} - -.caret, -.wp-admin .frm_wrap select, -.frm_wrap .frm_form_builder select, -.frm_wrap .ui-autocomplete-input { - background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%; - padding-right: var(--gap-lg) !important; -} - -.caret { - padding-right: var(--gap-xs) !important; - background-position-x: 5px; -} - -.frm-btn-group .caret { - float: right; - margin-top: calc(var(--text-md) / 2); -} - -.dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} - -.frm_wrap .ui-autocomplete, -#frm_adv_info.frm-dropdown-menu, -.frm-dropdown-menu { - /* Copied from .dropdown-menu rules from Bootstrap */ - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - padding-left: 4px; - padding-right: 4px; - margin: var(--gap-xs) 0 0; - text-align: left; - list-style: none; - background: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid var(--grey-100); - border-radius: 0.25rem; - box-shadow: var(--box-shadow-lg); - /* Custom rules */ - max-height: 200px; - overflow-y: auto; - overflow-x: hidden; - font-size: var(--text-md); - width: auto; - min-width: 160px; -} - -.frm6 .frm-dropdown-menu { - min-width: 100px; - max-width: 99%; -} - -#frm_bs_dropdown .frm-dropdown-menu { - max-width: 400px; -} - -.field_type_list .frm-dropdown-menu { - min-width: 150px !important; -} - -#frm_field_group_controls .frm-dropdown-menu, -.frm-field-action-icons .frm-dropdown-menu { - min-width: 180px !important; -} - -.frm-field-action-icons .frm-dropdown-toggle svg { - color: #9EA9B8; -} - -.multiselect-container.frm-dropdown-menu, -#search-submit .frm-dropdown-menu { - min-width: 200px !important; -} - -.preview .frm-dropdown-menu { - min-width: 230px !important; -} - -.frm-dropdown-menu.dropdown-menu-right { - right: 0; - left: auto; -} - -.frm-dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.frm-dropdown-menu > .dropdown-item { - margin: 0; -} - -.frm-select-list-item, -.frm_wrap .ui-autocomplete li > div, -.multiselect-container button.multiselect-option, -.frm-dropdown-menu > .dropdown-item > a, -.frm-dropdown-menu .frm_dropdown_li { - clear: both; - font-weight: 400; - white-space: nowrap; - text-decoration: none; - border-radius: var(--small-radius); -} - -.frm-dropdown-menu > .active > a, -.frm-dropdown-menu > .active > a:hover, -.frm-dropdown-menu > .active > a:focus { - text-decoration: none; - outline: 0; -} - -.frm-select-list-item.disabled, -.frm-dropdown-menu > .disabled > a, .frm-dropdown-menu > .disabled > a:hover, .frm-dropdown-menu > .disabled > a:focus { - color: #999; -} - -.frm-select-list-item.disabled:hover, -.frm-dropdown-menu > .disabled > a:hover, -.frm-dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - cursor: not-allowed; -} - -.open > .frm-dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-header { - display: block; - padding: 3px 10px; - font-size: var(--text-xs); - color: var(--grey-400); -} - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} - -.dropdown-menu-right > .frm-dropdown-menu, -.pull-right > .frm-dropdown-menu { - right: 0; - left: auto; -} - -.navbar-fixed-bottom .dropdown .caret { - border-top: 0 dotted; - border-bottom: 4px solid #000; - content: ""; -} - -.navbar-fixed-bottom .dropdown .frm-dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.btn { - border: 1px solid #ddd; - background: #fff; - height: 28px; - line-height: var(--leading); -} - -a.frm_option_icon::before { - color: var(--primary-500); - font-size: 22px; - width: 22px; - height: 22px; -} - -a.frm_option_icon:focus::before, -a.frm_option_icon:hover::before { - color: var(--primary-700); -} - -.frm_top_left .frm-dropdown-toggle { - color: #999; -} - -.frm-card ol { - margin-left: 15px; -} - -.frm-dropdown-toggle { - text-decoration: none; -} - -.frm-card .frm-dropdown-toggle { - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); - font-size: 13px; - color: var(--grey-700); - padding: 7px 20px; -} - -.frm_actions_dropdown .frm-dropdown-menu { - font-size: var(--text-sm); - color: #5F6C72; -} - -.frm-dropdown-menu .frm_icon_font { - vertical-align: middle; - color: #5F6C72; - margin-right: 3px; -} - -/* BS Multiselect */ -.multiselect-container.frm-dropdown-menu { - top: auto; - left: auto; - font-size: var(--text-sm); - padding: 4px; - margin-bottom: 3px; -} - -/** - * Accordion - */ -#post-body-content + .frm-right-panel h3.accordion-section-title { - padding: 7px 10px 8px 14px; - font-size: var(--text-md); - color: var(--grey-700); -} - -.frm-with-line, -.accordion-section-content h4 { - font-size: var(--text-md); - font-weight: 400; - margin: 20px -20px 10px; - padding: 0 20px; - color: var(--grey-700); - position: relative; - border: none !important; -} - -.frm-with-line span, -.accordion-section-content h4 span { - background: #fff; - padding: 0 var(--gap-xs); - position: relative; - display: inline-block; - z-index: 2; -} - -.accordion-section-content h4 span { - background: var(--sidebar-color); -} - -.frm-right-panel .frm-with-line span { - background: var(--sidebar-color) !important; - margin-left: -4px; -} - -.frm-right-panel .frm-inline-modal .frm-with-line span { - background: #fff !important; -} - -.frm-with-line::before, -.accordion-section-content h4::before { - content: ""; - display: block; - position: absolute; - border-bottom: 1px solid var(--grey-300); - left: 0; - width: 100%; - top: 50%; -} - -.control-section .accordion-section-title::after, -.customize-pane-child .accordion-section-title::after { - top: 15px; -} - -.accordion-container .frm-dropdown-menu { - min-width: 40px; -} - -.frm-btn-group .multiselect.dropdown-toggle { - box-sizing: border-box; - min-height: unset; - cursor: pointer; -} - -.accordion-container .frm-dropdown-menu::before, -.accordion-container .multiselect.dropdown-toggle::before { - font-family: "s11-fp" !important; -} - -/** - * Components - Multiselect - */ -.multiselect-container { - position: absolute; - list-style-type: none; - margin: 0; - padding: 0; - width: 100%; - max-width: 250px; -} - -.multiselect-container button.multiselect-option { - width: 100%; - text-align: left; - border: none; - margin-bottom: 4px; -} - -.multiselect-container button.multiselect-option label { - margin-left: 5px; -} - -.accordion-container .multiselect-container label { - padding: 3px 19px 3px 7px; -} - -.frm-btn-group.btn-group > .btn-group:nth-child(2) > .multiselect.btn { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -.frm-btn-group.btn-group, .frm-btn-group.btn-group-vertical { - display: block; -} - -.multiselect-option label { - max-width: calc(100% - 22px); - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -/** - * Components - Fields - */ -.frm_scale { - text-align: center; - float: left; - margin-right: 10px; -} - -.frm_scale input { - display: block; - margin: 5px; -} - -.frm_multi_fields_container { - float: left; -} - -.frm_multi_fields_container, -.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range], -.frm_form_builder .frm_form_fields input[type=text] { - width: 100%; - height: auto; -} - -.frm_form_builder .frm_time_wrap .frm_time_sep { - vertical-align: sub; - vertical-align: -webkit-baseline-middle; -} - -.frm_form_builder input[type=range]::-webkit-slider-runnable-track { - background-color: var(--blue-border); -} - -.frm_form_builder input[type=range]::-moz-range-track { - background-color: var(--blue-border); -} - -.frm_form_builder input[type=range]::-ms-fill-lower { - background-color: var(--blue-border); -} - -.frm_form_builder input[type=range]::-ms-fill-upper { - background-color: var(--blue-border); -} - -.frm-embed-field-placeholder { - text-align: center; - height: 145px; - display: flex; - align-items: center; - justify-content: center; -} - -.frm-fake-field { - display: block; - height: 25px; - background-color: var(--light-blue); - border: 1px solid var(--grey-300); - margin: 10px 0; - border-radius: var(--small-radius); -} - -.frm-embed-message { - position: absolute; - background: #fff; - border: 1px solid var(--grey-300); - color: var(--grey-700); - padding: var(--gap-md); - font-size: var(--text-lg); - max-width: 200px; - min-width: 50%; - margin: 0 var(--gap-md); - overflow: hidden; - text-overflow: ellipsis; -} - -.frm-summary-message { - top: 50%; - left: 50%; - padding: 15px 0; - font-size: var(--text-md); - transform: translate(-50%, -50%); -} - -.frm-summary-learn-more { - font-size: inherit !important; -} - -.frm-single-settings .frm-embed-message { - width: 100%; - position: static; - border-radius: var(--small-radius); -} - -#new_fields input[type=text], -#new_fields input[type=number], -.frm_field_box .frm_form_fields > textarea, -.frm_form_fields .frm_form_field > textarea, -.frm_form_fields .frm_form_field > input[type=email], -.frm_form_fields .frm_form_field > input[type=url], -.frm_form_fields .frm_form_field > input[type=number], -.frm_form_fields .frm_form_field > input[type=tel], -.frm_form_fields .frm_form_field > input[type=text], -.frm_form_fields .frm_form_field > input[type=range] { - width: 100%; -} - -.frm_form_fields textarea.wp-editor-area { - width: 100%; - border: none; -} - -.frm_form_fields input[type=file], .frm_form_fields input[type=file]:disabled { - background: transparent; - border: none; - box-shadow: none; - width: auto; -} - -.frm_form_fields select { - width: auto; - max-width: 100%; -} - -input[type=radio], -input[type=checkbox] { - width: 16px; - padding: 0; -} - -.frm_grid_container > p, -.frm_grid_container > p.frm_form_field, -.frm_grid_container > div.frm_form_field, -#new_fields .frm_grid_container > p { - margin-top: 8px; - margin-bottom: 8px; - margin-right: 0; -} -.frm_grid_container > p > label:only-child, -.frm_grid_container > p.frm_form_field > label:only-child, -.frm_grid_container > div.frm_form_field > label:only-child, -#new_fields .frm_grid_container > p > label:only-child { - margin-bottom: 0; -} - -.frm_grid_container > .frm-has-modal > p:only-child { - margin-bottom: var(--gap-xs); -} - -#new_fields div.frm_grid_container > .frm_primary_label { - margin-top: 8px; -} - -#new_fields .frm_primary_label + p, -#new_fields .frm_primary_label + .frm6 + .frm6, -#new_fields .frm_primary_label + .frm6 + .frm-inline-modal + .frm6 { - margin-top: 0; -} - -.frm_catlevel_2, .frm_catlevel_3, .frm_catlevel_4, .frm_catlevel_5 { - margin-left: 18px; -} - -.frm_wrap .frm-fields .auto_width, -.frm_form_fields input.auto_width, .frm_form_fields select.auto_width, .frm_form_fields textarea.auto_width { - width: auto !important; -} - -.frm_form_fields select.auto_width { - min-width: 60px; -} - -.frm_form_fields input:focus, .frm_form_fields select:focus, -.frm_form_fields textarea:focus, .frm_focus_field input { - background-color: #fff; - border-color: #ddd; -} - -.frm_form_builder .frm_radio, -.frm_form_builder .frm_checkbox { - display: block; - margin-bottom: 2px; -} - -.frm_form_builder .frm_radio label, -.frm_form_builder .frm_checkbox label { - font-size: var(--text-sm); -} - -/** - * Components - Copied Frontend - */ -.horizontal_radio .frm_radio, -.horizontal_radio .frm_checkbox { - margin-right: 5px; - display: inline-block; -} - -.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label, -.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label { - display: flex; - align-items: center; - gap: 9px; - white-space: normal; -} - -.frm_form_field.frm_two_col .frm_opt_container, -.frm_form_field.frm_three_col .frm_opt_container, -.frm_form_field.frm_four_col .frm_opt_container { - display: grid; - grid-template-columns: repeat(2, 1fr); - grid-auto-rows: max-content; - grid-gap: 0 2.5%; -} - -.frm_form_field.frm_three_col .frm_opt_container { - grid-template-columns: repeat(3, 1fr); -} - -.frm_form_field.frm_four_col .frm_opt_container { - grid-template-columns: repeat(4, 1fr); -} - -.frm_form_field.frm_two_col .frm_radio, -.frm_form_field.frm_two_col .frm_checkbox, -.frm_form_field.frm_three_col .frm_radio, -.frm_form_field.frm_three_col .frm_checkbox, -.frm_form_field.frm_four_col .frm_radio, -.frm_form_field.frm_four_col .frm_checkbox { - grid-column-end: span 1; -} - -/** - * Components - Fields Part 2 - */ -.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], -.frm_wrap .with_frm_style .frm_radio input[type=radio], -.frm_wrap input[type=checkbox], -.frm-white-body input[type=checkbox], -.field-group input[type=checkbox], -.frm_scale input[type=radio], -.frm_radio input[type=radio], -.frm_checkbox input[type=checkbox] { - width: 15px; - min-width: 15px; - height: 15px; - border: 1px solid var(--grey-300); - box-shadow: var(--box-shadow-sm); - -webkit-appearance: none; -} - -.frm_wrap input[type=radio] { - border-color: var(--grey-300); - box-shadow: var(--box-shadow-sm); -} -.frm_wrap input[type=radio]:checked::before { - background-color: var(--primary-500); -} - -.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox], -.frm_wrap input[type=checkbox], -.frm-white-body input[type=checkbox], -.field-group input[type=checkbox], -.frm_checkbox input[type=checkbox] { - border-radius: 4px; -} - -.frm-white-body input[type=checkbox]:checked, -.frm_wrap input[type=checkbox]:checked { - background-color: var(--border-color-active, var(--primary-500)) !important; - border-color: var(--border-color-active, var(--primary-500)) !important; -} - -.frm-white-body input[type=checkbox]:checked:focus, -.frm_wrap input[type=checkbox]:checked:focus { - border-color: var(--border-color-active, var(--primary-500)); -} - -.frm-white-body input[type=checkbox]:checked::before, -.frm_wrap input[type=checkbox]:checked::before { - content: ""; - display: block; - width: 100% !important; - height: 100% !important; - background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important; - background-size: 8px !important; - background-repeat: no-repeat !important; - background-position: center !important; - margin: 0; -} - -.frm_radio input[type=radio], -.frm_checkbox input[type=checkbox] { - margin-right: 5px; -} - -.frm_inner_field_container { - margin-bottom: 10px; -} - -.frm_conf_inline .frm_inner_field_container, -.frm_conf_inline .frm_inner_conf_container { - width: 49%; - float: left; -} - -.frm_conf_inline .frm_inner_field_container { - margin-right: 2%; - clear: both; -} - -.frm_inner_field_container > label { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > label, -.frm_field_box .divider_section_only:hover > .frm_inner_field_container > label, -li.ui-state-default.selected > .frm_inner_field_container > label { - max-width: calc(100% - 100px); -} - -.frm-drag-fade { - background-color: var(--lightest-grey) !important; - border-radius: 4px; -} - -.frm-drag-fade * { - opacity: 0; -} - -.frm-dragging .divider_section_only, -.frm-dragging .frm_field_box { - pointer-events: none; -} - -.frm_form_settings #op-popup, -.frm_form_settings com-1password-op-button, -.frm_conf_below .frm_conf_field_container .frm_primary_label, -.frm_conf_inline .frm_inner_field_container .frm-show-click a, -.frm_conf_below .frm_conf_field_container .frm-show-click a { - display: none !important; -} - -.frm_conf_inline .frm_inner_field_container .frm-field-action-icons { - position: absolute; - right: 5px; -} - -.frm_conf_below .frm_conf_field_container { - margin-top: 10px; -} - -.frm_calc_dec { - width: 50px; -} - -.frm_ext_sc { - display: none; -} - -.frm_long_input { - width: 100% !important; - box-sizing: border-box; -} - -/** - * Utilities - Text Align - Part 2 - */ -.frmcenter { - text-align: center; -} - -/** - * Components - Image Help - */ -img.frm_help { - margin-left: 2px; - vertical-align: middle; - padding-bottom: 2px; -} - -/** - * Components - Loading - */ -.frm_spinner.frm-wait, -.frm_spinner.spinner { - float: left; - visibility: hidden; - margin: 0 10px; -} - -.frm_visible_spinner.frm-wait, -.frm_visible_spinner.spinner { - visibility: visible; - float: none; -} - -.frm_form_action_settings .frm_spinner.frm-wait, -.frm_form_action_settings .frm_spinner.spinner { - visibility: visible; - float: none; - vertical-align: bottom; -} - -.frm_form_action_settings .frm_loading { - font-size: 15px; - text-align: center; -} - -.frm_ajax_settings_tab .frm-wait, -.frm_ajax_settings_tab .spinner { - visibility: visible; - float: none; - margin-top: 20px; -} - -.wp-core-ui .frm_loading_button.button-primary.frm-button-primary, -.frm_loading_button, -.frm_loading_form.frm_button_submit { - position: relative !important; - opacity: 0.8; - color: transparent !important; - text-shadow: none !important; -} - -.frm_loading_button:hover, -.frm_loading_button:active, -.frm_loading_button:focus, -.frm_loading_form.frm_button_submit:hover, -.frm_loading_form.frm_button_submit:active, -.frm_loading_form.frm_button_submit:focus { - cursor: not-allowed; - color: transparent !important; - outline: none !important; - box-shadow: none; -} - -.frm-wait { - margin: 20px; - width: 20px; - height: 20px; - position: relative; - display: inline-block; -} - -#frm-show-fields .frm-wait:only-child { - position: absolute; - left: 50px; - top: 30px; -} - -.frm-wait::before, -.frm_loading_button::before, -.frm_loading_form.frm_button_submit::before { - content: ""; - display: inline-block; - position: absolute; - background: transparent; - border: 1px solid #fff; - border-top-color: transparent; - border-left-color: transparent; - border-radius: 50%; - box-sizing: border-box; - top: 50%; - left: 50%; - margin-top: -10px; - margin-left: -10px; - width: 20px; - height: 20px; - animation: spin 2s linear infinite; -} - -.frm-wait::before { - border-bottom-color: var(--primary-700); - border-right-color: var(--primary-700); -} - -.frm_loading_button.frm-button-secondary::before { - border-bottom-color: var(--primary-500); - border-right-color: var(--primary-500); -} - -input[type=submit]:focus { - outline: none !important; -} - -/* Effects */ -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -/** - * Components - Fields Part 3 - */ -label input[type=checkbox], label input[type=radio] { - vertical-align: inherit; -} - -#editorcontainer #dyncontent { - margin: 0; - width: 100%; - padding: 6px; - line-height: var(--leading); - border: 0 none; - outline: none; - box-sizing: border-box; -} - -/*ICONS*/ -.frm_postbox_icon { - margin: -6px 0 0 -10px; -} - -.frm_form_builder a:hover { - text-decoration: underline; -} - -.frm_form_builder .widget-title h4 { - padding: 10px 15px; -} - -.frm_form_builder .widget-top a.widget-action::after { - margin: 7px 12px 0; -} - -.frmbutton.frm_tgateway { - display: none !important; -} - -.frm_html_legend pre { - display: inline; -} - -#ed_fullscreen { - display: none !important; -} - -.frm_posttax_opt_list { - overflow: auto; - max-height: 200px; - background-color: #fff; -} - -.frm_posttax_opt_list p.howto { - font-size: 12px; -} - -.frm_border_bottom { - border-bottom: 1px solid var(--grey-300); - margin-bottom: 10px; - padding-bottom: 10px; -} - -.frm_posttax_opt_list .frm_border_bottom span.howto { - padding-right: 10px; -} - -.frm_posttax_opt_list .frm_border_bottom input { - margin-right: 1px; -} - -.frm_add_remove div.frm_form_field { - padding-bottom: 5px; -} - -.frm_field_opts_list { - max-height: 260px; - overflow: auto; -} - -/** - * Utilities - Background - */ -.frm_white_bg { - background-color: #fff; -} - -/** - * Utilities - Border - Light - */ -.frm_border_light { - border: solid 1px #ddd; -} - -/** - * Components - Form Input Styles - */ -#new_fields .form-table input[type=text], -#new_fields .form-table select, -.form-table .form-field input, -.form-table .form-field .quicktags-toolbar input, -.form-field input, .form-field .quicktags-toolbar input { - width: auto; -} - -/** - * Components - Affiliate Link - */ -.frm_aff_link { - float: right; -} - -/** - * Component: Select Box - */ -.frm_select_box { - text-align: center; - font-weight: 700; - width: 100%; - background-color: transparent !important; -} - -.wp-list-table input.frm_select_box { - text-align: left; - font-weight: 400; - font-size: inherit !important; - border: none; - padding: 0 !important; - background-color: transparent !important; -} - -.wp-list-table input.frm_select_box:focus { - outline: none; - box-shadow: none; -} - -.wp-list-table .frm_no_items.frm_select_box { - text-align: center; - font-weight: 700; - width: 500px; - max-width: 100%; - font-size: inherit; -} - -/** - * Component: Options Panel - */ -#frm-options-panel { - padding: 0 var(--gap-sm); - color: var(--grey-900); - overflow: hidden; -} - -.frm-right-panel a.frm_add_logic_link, -#frm-options-panel h3 { - font-size: var(--text-md); - font-weight: 500; - background-color: #fff; - border-radius: var(--small-radius); - padding: 18px var(--gap-sm); - margin: 2px calc(-1 * var(--gap-sm)); - transition: background-color 200ms ease-out, box-shadow 200ms ease-out, color 200ms ease-out; -} -.frm-right-panel a.frm_add_logic_link .frmsvg, -#frm-options-panel h3 .frmsvg { - width: 13px; - height: 13px; - color: var(--grey-500); - transition: transform 300ms ease-in; -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type), .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child, -#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type), -#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child { - color: var(--grey-700); - box-shadow: var(--box-shadow-sm); -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg, .frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg, -#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg, -#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg { - transform: rotate(-180deg); -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div, -#frm-options-panel h3:not(.frm-collapsed) + div { - padding-top: 6px; - padding-bottom: 6px; -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container, -#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container { - padding-bottom: 14px; -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child, -#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child { - margin-top: var(--gap-sm); -} -.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6, -#frm-options-panel h3:not(.frm-collapsed) + div.frm_grid_container > p:first-child.frm6 + .frm6 { - margin-top: var(--gap-sm); -} -.frm-right-panel a.frm_add_logic_link.frm-collapsed, -#frm-options-panel h3.frm-collapsed { - color: var(--grey-500); - background-color: transparent; -} -.frm-right-panel a.frm_add_logic_link:hover, -#frm-options-panel h3:hover { - color: var(--grey-700); - background-color: #fff; - box-shadow: var(--box-shadow-sm); -} -.frm-right-panel a.frm_add_logic_link:focus-visible, -#frm-options-panel h3:focus-visible { - outline: 1px solid var(--primary-500) !important; - outline-offset: -1px; -} - -.frm-right-panel a.frm_add_logic_link:focus { - outline: auto; -} - -/** - * Component: Field Key - */ -.frm_field_key { - background-color: #F7F7F7; -} - -/** - * Component: Form Editor - */ -#frm_form_editor_container #edit-slug-box { - padding: 0; -} - -/** - * Component: Alt Table - */ -.frm-alt-table { - position: relative; - width: 100%; - border-collapse: collapse; - margin-top: 0.5em; - font-size: 15px; -} - -/* Before `applyZebraStriping` is executed, an empty space is displayed */ -#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #fff; -} - -.frm-alt-table th { - width: 200px; -} - -.frm-alt-table tr, -.frm-alt-table tr.frm-odd { - background-color: transparent; -} - -.frm-alt-table tr.frm-even { - background-color: var(--sidebar-color); -} - -.frm-alt-table th, -.frm-alt-table td { - background-color: transparent; - vertical-align: top; - text-align: left; - padding: 20px; -} - -.frm-alt-table h3 { - margin-bottom: 0; -} - -/** - * Component: Checkbox Button - */ -.form-field .frm_cb_button { - height: 22px; - line-height: 20px; - margin-bottom: 10px; - margin-right: 5px; -} - -/** - * Option Label - */ -.edit_field_type_select .frm_option_val_label { - margin-left: 12px; -} - -/** - * Components - Rich Text Editor - */ -.frm_rte { - background: url(../images/rte.png) no-repeat; -} - -.frm_rte .howto { - margin: 10px 0 46px; -} - -/** - * Component: Subform Section - */ -.subform_section { - margin: 25px; -} - -.subform_section, -.subform_section label, -.subform_section input { - opacity: 80; -} - -.subform_section .frm_sortable_field_opts { - display: none; -} - -#frm_form_editor_container .subform_section .frm_primary_label { - display: block; -} - -.subform_section.subform_break { - border-top: 1px dashed #ccc; -} - -/** - * Component: HTML Field - */ -.button-secondary.frm_html_field { - background-color: #ededed; - padding: 10px 20px; - line-height: inherit; - width: auto; - height: auto !important; - border-radius: 0; - box-sizing: content-box; -} - -.frm_html_field_placeholder { - margin-bottom: 10px; - text-align: center; -} - -.recaptcha_placeholder { - border: 1px solid #d3d3d3; - width: 300px; -} - -.turnstile_placeholder { - width: 300px; -} - -/** - * Component: RTE Textarea - */ -.frm_sorting .frm_rte textarea { - width: 653px; - background: #fff; - margin: 1px 0 0; - border: 1px solid #dfdfdf; - border-top: none; - border-radius: 0; - float: none !important; -} - -.frm_full_rte textarea { - width: 98%; - padding: 0; -} - -/** - * Component: Field Box - */ -.frm_field_box { - padding: 5px; - min-height: 20px; - margin: 10px 0; -} - -/** - * Components - Indent Options - */ -.frm_indent_opt, td.frm_indent_opt { - padding-left: 25px; -} - -/** - * Components - Charts - */ -.frm_charts object { - background: transparent; -} - -.frm_charts h2 { - height: 34px; -} - -/** - * Component: Sortable Placeholder - */ -.frm_single_option.ui-sortable-placeholder, -li.sortable-placeholder { - border: none; - margin: 0; - visibility: visible !important; - box-shadow: 2px -10px 0 2px var(--primary-500); -} - -#frm_form_editor_container > ul > .frm_single_option.ui-sortable-placeholder, -#frm_form_editor_container > ul > li.sortable-placeholder { - width: calc(100% - 5px) !important; - height: 0 !important; -} - -#frm_form_editor_container > ul > li > ul { - position: relative; -} - -#frm_form_editor_container > ul > li > ul > li.sortable-placeholder, -#frm_form_editor_container ul.start_divider > li > ul > li.sortable-placeholder { - position: absolute; - top: 20px; - bottom: 0; -} - -.edit_field_type_divider + li.sortable-placeholder { - box-shadow: 2px 5px 0 2px var(--primary-500); -} - -.start_divider li.sortable-placeholder { - box-shadow: 2px -5px 0 2px var(--primary-500); -} - -.frm-is-collapsed + .sortable-placeholder { - box-shadow: 2px 15px 0 2px var(--primary-500); -} - -.frm_single_option.ui-sortable-placeholder { - box-shadow: 0 0 1px 1px var(--primary-500); -} - -/** - * Component: Sorting Display - */ -.frm_sorting > li.edit_field_type_end_divider:first-child, -.frm-show-click, -li.ui-state-default.edit_field_type_divider .frm-show-click { - display: none; -} - -.frm_form_field.ui-sortable-helper .frm-field-action-icons, -.frm_form_field.ui-sortable-helper .frm_form_fields, -.frm_form_field.ui-sortable-helper .frm_description, -.frm_form_field.ui-sortable-helper .description { - display: none; -} - -.frm_form_field.ui-sortable-helper .frm_primary_label, -.frm_form_field.ui-sortable-helper .frm_inner_field_container { - margin: 0 !important; -} - -.frm-single-settings .frm-show-click { - display: block !important; -} - -.frm-show-hover, -.frm_single_visible_hover, -li.ui-state-default.edit_field_type_divider .frm-show-hover { - opacity: 0; - transition: opacity 0.15s ease-in-out; -} - -#frm-show-fields .frm-field-settings-open .frm-show-hover { - opacity: 1; -} - -.frm_sortable_field_opts { - margin-top: 5px; -} - -/** - * Component: Single Option - */ -.frm_single_option { - clear: both; - margin: 0 !important; - padding-bottom: 5px; -} -.frm_single_option input[type=radio], -.frm_single_option input[type=checkbox] { - margin-top: 0; -} -.frm_single_option .frm-with-right-icon input[type=text] + .frmsvg { - position: relative; - right: 27px; - width: 14px; - height: 14px; - padding: 0; - margin: var(--gap-2xs) 0 0; -} - -.frm_product_price_wrapper, -.frm_image_preview_wrapper, -#new_fields .frm_single_option select, -#new_fields .frm_single_option input[type=text] { - width: calc(100% - 106px) !important; - flex-grow: 1; -} - -.frm-right-panel .frm_single_option a.frm_remove_tag, -.frm_single_option a { - padding-left: 7px; -} - -.frm_single_option:hover .frm_single_visible_hover { - opacity: 100; -} - -.frm_single_option .frm-drag { - font-size: 23px; - width: 24px; - height: 24px; - margin-left: -6px; - margin-right: var(--gap-xs); - color: var(--grey-500); -} - -.frm_single_option .frm-drag::before { - vertical-align: middle; -} - -.frm-drag, -.frm_single_option.ui-sortable-helper { - cursor: move; -} - -.frm_single_option .frm_option_key { - margin-left: 19px !important; -} - -.frm_option_key input[type=text] { - margin-top: var(--gap-xs) !important; - margin-left: 11px !important; -} -.frm_option_key input[type=checkbox] + input[type=text], -.frm_option_key input[type=radio] + input[type=text] { - margin-left: 30px !important; -} - -li.ui-state-default.selected .frm-show-click, -li.ui-state-default.selected.edit_field_type_divider .frm-show-click { - display: inline; - vertical-align: top; -} - -.frm_field_box:not(.edit_field_type_divider):hover > .frm_inner_field_container > .frm-show-hover, -.frm_field_box .divider_section_only:hover > .frm_inner_field_container > .frm-show-hover, -li.ui-state-default.selected > .frm_inner_field_container > .frm-show-hover, -li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { - opacity: 100; -} - -li.frm_field_box > ul.frm_grid_container { - position: relative; -} - -/** - * Component: UI Icon - */ -.frm_sorting span.ui-icon { - width: 16px; -} - -/** - * Component: Entry Page - */ -body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container { - --field-border-width: 1px; - --border-color: var(--grey-300); - --border-color-active: var(--primary-500); - --border-radius: var(--small-radius); -} - -#form_show_entry_page .frm_file_link, -#form_show_entry_page .frm_image_option_container { - display: inline-flex; - flex-wrap: nowrap; - flex-direction: column; - text-align: center; - align-items: center; - width: 150px; - margin-right: 10px; - margin-bottom: 10px; -} - -#form_show_entry_page .frm_image_option_container img { - width: 150px; - height: 150px; - object-fit: cover; -} - -#form_show_entry_page .frm_file_link img { - max-width: 150px; - height: auto; -} - -#form_show_entry_page .frm_file_link ~ br { - display: none; -} - -#form_show_entry_page .frm_upload_label { - padding: 10px; -} - -#form_show_entry_page.frm_wrap .postbox { - overflow: hidden; -} - -.frm_image_option_container .frm_image_placeholder_icon svg { - height: 150px; -} - -.frm_list_entry_page .frm_file_link, -.frm_list_entry_page .frm_image_option_container.frm_label_with_image { - display: block; - text-align: center; -} - -.frm_list_entry_page .frm_image_option_container img { - width: 75px; - height: 75px; - object-fit: cover; -} - -.frm_list_entry_page img { - max-width: 100%; - height: auto; -} - -.frm_image_option_container .frm_empty_url { - background-color: var(--sidebar-color); -} - -.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image { - display: block; - padding: 5px 0 10px; -} - -.frm_list_entry_page .frm_upload_label, -.frm-summary-page-wrapper .frm_text_label_for_image { - display: block; -} - -/** - * Welcome and Global Settings Image Options - */ -#frm-welcome .frm_image_options .frm_image_option_container, -#form_global_settings .frm_image_options .frm_image_option_container { - background: var(--sidebar-color); -} - -#frm-welcome .frm_image_option_container svg, -#form_global_settings .frm_image_option_container svg { - max-width: calc(100% - 20px); -} - -/** - * Component: Option Templates - */ -/* Style image option container for Directory add on. */ -#frm-new-template .frm_image_option_container svg { - height: 50px; - margin: 10px auto 0; -} - -/* Show an icon on top */ -.frm_image_option_container { - position: relative; -} - -.frm_text_label_for_image > svg { - width: 30px; - position: absolute; - top: 5px; - right: calc(50% - 15px); -} - -/* End show an icon on top */ -.frm_single_option .frm_option_key { - margin-top: 17px; -} -.frm_single_option .frm_option_key.frm_image_preview_wrapper { - margin-top: var(--gap-xs); -} - -/** - * Component: Image - */ -.frm_image_data { - margin-left: var(--gap-sm); - display: flex; - flex-direction: column; - font-size: var(--text-sm); - justify-content: space-around; - min-width: 0; /* Allows flex items to shrink below content size */ -} - -.frm_image_styling_frame { - display: flex; - align-items: stretch; - margin-left: 36px; - margin-bottom: var(--gap-xs); - width: 100%; -} -.frm_image_styling_frame img { - height: 54px; - width: 54px; - min-width: auto; - min-height: auto; - border-radius: 3px; - object-fit: cover; - object-position: center; -} -.frm_image_styling_frame .frm_email_attachment_icon img { - height: auto; - width: auto; - max-width: 54px; -} - -.frm_image_preview_title { - color: var(--grey-500); - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - min-width: 0; /* Critical for text truncation in flex */ - flex: 1 1 auto; /* Better flex behavior */ -} - -.frm_wrap .frm_choose_image_box { - cursor: pointer; - color: var(--primary-500); - background-color: #fff; - margin-left: 32px; - text-align: center; - width: 100%; -} - -.frm-type-ranking .frm_option_key .frm_choose_image_box { - margin-left: 11px !important; -} - -.frm_wrap .frm_choose_image_box:hover { - background: #fff; -} - -a.frm_remove_image_option, -.frm_remove_image_option { - color: var(--grey-400); - cursor: pointer; -} - -a.frm_remove_image_option:hover .frmsvg, -a.frm_remove_image_option:hover, -.frm_remove_image_option:hover { - color: rgba(40, 47, 54, 0.8); -} - -/** - * Component: Settings and Panel - */ -/* Form Settings Tabs */ -.frm-form-setting-tabs { - margin-top: var(--gap-sm) !important; -} - -.frm-right-panel > .postbox { - background-color: transparent; - border: none; - box-shadow: none; - margin: 0; -} - -.frm-right-panel .postbox.frm_with_icons .inside, -.frm-right-panel .postbox .inside, -.frm-right-panel .inside { - font-size: var(--text-md); - padding: 15px 20px 20px; - color: var(--grey-700); -} - -.frm-right-panel .misc-pub-section { - padding: var(--gap-xs) 0; - position: relative; -} - -.frm-right-panel .inside a, -.frm-form-setting-tabs a { - font-size: var(--text-md); - color: var(--grey-700); - padding: var(--gap-sm); - display: block; -} - -.frm-form-setting-tabs a { - color: var(--grey-900); - padding: var(--gap-sm) var(--gap-md); -} - -.frm-right-panel .inside a { - padding: 0; - color: var(--primary-500); - display: inline-block; -} - -.frm-right-panel .inside a:hover { - color: var(--primary-700); -} - -.frm-form-setting-tabs a:hover { - background: var(--sidebar-hover); - color: var(--grey-900); -} - -.frm-right-panel .inside i, -.frm-form-setting-tabs a i, -.frm-form-setting-tabs a .frmsvg { - margin: 0 5px; - display: inline-block; - width: 20px; - height: 20px; - color: var(--grey-500); -} - -.frm-form-setting-tabs a .frmsvg { - margin: 0; -} - -.frm-right-panel .inside a:hover i, -.frm-right-panel .inside a:hover .frmsvg, -.frm-form-setting-tabs a:hover .frmsvg, -.frm-form-setting-tabs a:hover span { - color: var(--grey-700); -} - -.frm_settings_form .tabs-panel { - padding: 0 25px; -} - -#form_settings_page .tabs-panel, -.frm_settings_form .tabs-panel { - max-height: initial !important; - min-height: 50px !important; -} - -#frm_adv_info .tabs-panel { - min-height: 0 !important; - overflow-x: hidden; - padding: 0; - border: none; - background: transparent; -} - -select.frm_cancelnew, input.frm_enternew { - width: 175px; -} - -.frm_posttax_opt_list { - border: 1px solid var(--grey-300); - padding: var(--gap-md); - border-radius: var(--small-radius); - margin: 5px 0 5px var(--gap-md); -} - -/* Color picker CSS */ -.frm_settings_form .wp-picker-open + .wp-picker-input-wrap, -.frm-right-panel .wp-picker-open + .wp-picker-input-wrap { - position: absolute; - margin-left: calc((100% - 35px) * -1); - margin-top: 1px; - width: calc(100% - 36px); -} -.frm_settings_form .wp-picker-container input[type=text].wp-color-picker, -.frm-right-panel .wp-picker-container input[type=text].wp-color-picker { - border: none; - padding: 5px 8px; - font-family: inherit; - color: var(--grey-700); - font-size: var(--text-md); - width: 100%; - line-height: var(--leading); -} -.frm_settings_form .wp-picker-input-wrap .wp-picker-clear, -.frm-right-panel .wp-picker-input-wrap .wp-picker-clear { - display: none !important; -} -.frm_settings_form .wp-picker-holder, -.frm-right-panel .wp-picker-holder { - position: absolute; - z-index: 999; -} -.frm_settings_form .wp-picker-input-wrap label, -.frm-right-panel .wp-picker-input-wrap label { - margin-bottom: 0; -} -.frm_settings_form .wp-picker-container .wp-color-result.button, -.frm-right-panel .wp-picker-container .wp-color-result.button { - width: 100%; - overflow: hidden; - margin: 0 !important; - height: var(--h-md) !important; - padding: 0 0 0 var(--gap-lg) !important; - border-radius: var(--small-radius); - border-color: var(--grey-300); -} -.frm_settings_form .wp-color-result-text, -.frm-right-panel .wp-color-result-text { - line-height: var(--leading) !important; - font-size: var(--text-md); - background: #fff !important; - color: var(--grey-900); - padding: 5px 8px; - border-color: var(--grey-300); - text-align: left; -} -.frm_settings_form .color-alpha, -.frm-right-panel .color-alpha { - width: var(--gap-lg) !important; -} - -.frm_grid_container .wp-picker-container { - width: 100%; - position: relative; -} - -.wp-picker-container button.wp-color-result { - border: 1px solid var(--grey-300) !important; -} - -.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker { - max-width: 100%; - position: relative; -} - -.frm_end .wp-picker-holder { - margin-left: -145px; -} - -.frm_end.frm6 .wp-picker-holder { - margin-left: -86px; -} - -/* End of color picker CSS */ -/** - * Toggle Components - * - * These are the styles for the "Enable Formidable styling" toggle in the visual styler. - * To use this element, you can call the FrmHtmlHelper::toggle function. - */ -.frm_toggle_opt { - padding: 0; - white-space: normal; - display: inline; - vertical-align: middle; - font-weight: 400; -} - -.frm_on_label, -.frm_off_label { - color: var(--grey-700); -} - -.frm_toggle { - position: relative; - display: inline-block; - width: 40px; - height: var(--h-xs); - vertical-align: middle; -} - -.frm_toggle_block { - display: inline-flex !important; - gap: var(--gap-xs); - align-items: center; -} - -.frm_toggle input, -.frm_toggle_block input { - display: none !important; -} - -.frm_toggle_slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--grey-200); - transition: 0.4s; - border-radius: 30px; -} - -.frm_toggle_slider::before { - box-sizing: border-box; - content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E"); - position: absolute; - left: 2px; - bottom: 2px; - display: flex; - align-items: center; - justify-content: center; - width: 20px; - height: 20px; - font-size: 20px; - line-height: 20px; - background-color: #fff; - border-radius: 50%; - transition: 0.4s; - box-shadow: var(--box-shadow-md); -} - -input:checked + .frm_toggle .frm_toggle_slider { - background-color: var(--primary-500); -} - -input:focus + .frm_toggle .frm_toggle_slider { - box-shadow: var(--box-shadow-md); -} - -input:checked + .frm_toggle .frm_toggle_slider::before { - transform: translateX(16px); - content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E"); -} - -input[disabled] + .frm_toggle_slider, -input[disabled] + .frm_toggle .frm_toggle_slider { - pointer-events: none; - cursor: text; - opacity: 0.5; -} - -.frm_toggle_opt ~ .frm_toggle .frm_toggle_slider::before { - content: "" !important; /* Don't show x/check if off label included or on builder page */ -} - -.rtl .frm_toggle_opt { - padding: 0 8px; -} - -.rtl .frm_toggle_slider::before { - left: 17px; -} - -.rtl input:checked + .frm_toggle .frm_toggle_slider::before { - transform: none !important; - left: 1px; -} - -/* Deprecated admin toggle */ -.frm_toggle_off, -.frm_toggle_on { - display: none; - color: #fff; - z-index: 999; - position: absolute; - font-size: 10px; - line-height: 20px; - left: 6px; -} - -.frm_toggle_off { - display: inline; - left: auto; - right: 5px; - color: var(--dark-grey); -} - -.frm_toggle_long { - width: 80% !important; - height: 28px; - display: inline-block !important; -} - -.frm_toggle_long .frm_toggle_slider { - background: var(--primary-700); - box-shadow: 0 0 0 2px var(--primary-700); -} - -.frm_toggle_long .frm_toggle_off, -.frm_toggle_long .frm_toggle_on { - width: 50%; - text-align: center; - font-size: 13px; - line-height: 28px; -} - -.frm_toggle_long .frm_toggle_on { - left: 0; -} - -.frm_toggle_long .frm_toggle_off { - right: 0; -} - -.frm_toggle_long .frm_toggle_slider::before { - width: 50%; - left: 0; - top: 0; - border-radius: var(--border-radius) 0 0 var(--border-radius); - height: 100%; - background-color: #fff; - color: var(--primary-color); - content: "" !important; -} - -.frm_toggle_long input:checked + .frm_toggle_slider::before { - transform: translateX(101%); - border-radius: 0 var(--border-radius) var(--border-radius) 0; -} - -input:checked + .frm_toggle_slider + .frm_toggle_on { - display: inline; -} - -input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { - display: none; -} - -.frm_toggle_long .frm_toggle_on, -.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on + .frm_toggle_off { - display: inline; - color: var(--primary-500); - font-weight: 400; -} - -.frm_toggle_long .frm_toggle_off, -.frm_toggle_long input:checked + .frm_toggle_slider + .frm_toggle_on { - color: #fff; - font-weight: 700; -} - -/* End toggle styling */ -/** - * Global Settings - */ -.tabs-panel { - height: auto !important; - min-height: 260px; -} - -.tabs-panel.panel_secondary { - min-height: 20px; - margin-top: 10px; - margin-left: 150px; -} - -label.frm-example-icon { - margin-right: 20px !important; - display: inline-block !important; -} - -#frm_stripe_icon { - border-radius: 5px; -} - -#captcha_settings .frm_primary_label { - margin-top: var(--gap-sm); -} - -.frm-long-icon-buttons { - display: flex; - gap: var(--gap-md); -} - -.frm-long-icon-buttons > label { - border: 1px solid var(--grey-300); - color: var(--grey-700); - border-radius: var(--small-radius); - display: flex; - padding: var(--gap-sm); - gap: var(--gap-sm); - justify-content: center; - align-items: center; - width: calc(33% - var(--gap-sm)); - box-sizing: border-box; -} - -.frm-long-icon-buttons > label:hover { - color: var(--primary-500); -} - -.frm-long-icon-buttons input[type=radio] { - display: none; -} - -.frm-long-icon-buttons input[type=radio]:checked + label { - border-color: var(--primary-500); - box-shadow: 0 0 0 1px var(--primary-color); -} - -.frm-long-icon-buttons label > svg { - height: 21px; -} - -.frm-example-icon .frmsvg, -.frm-example-icon i { - height: 20px; - width: 20px; - font-size: 20px; - color: var(--grey-700); -} - -.frm_license_msg { - margin-top: 0; -} - -.frm_authorized_box .frm-show-unauthorized, -.frm_unauthorized_box .frm-show-authorized { - display: none; -} - -.edd_frm_status_icon.frmsvg { - margin: 0 5px; -} - -.edd_frm_license_row .frm_action_success .frmsvg { - color: green; -} - -.edd_frm_license_row .frm_action_error .frmsvg { - color: #D54E21; -} - -/* Hide the install steps for solutions */ -#form_global_settings .tabs-panel .num svg { - display: none; -} - -/* Empty List */ -.frm_no_items { - margin: 0 auto 50px; - text-align: center; - color: var(--grey-700); - max-width: 500px; -} - -.frm-subscribe { - margin: var(--gap-lg) 0; -} - -.frm_inbox_count { - color: #fff; - border-radius: 50%; - display: inline-block; - margin-right: 8px; - font-size: 11px; - text-align: center; - min-width: 18px; - height: 18px; - margin-left: 2px; - vertical-align: text-bottom; -} - -/** - * Global Payment Settings - */ -#payments_settings .frm_payments_section .form-table td { - padding-left: 0; - padding-right: 0; -} - -#payments_settings .frm_payments_section .form-table { - margin-top: 0; -} - -#frm_authnet_general_settings > tr:first-of-type > td:first-of-type { - padding-top: 0; -} - -#frm_authnet_general_settings h3 { - margin-bottom: 0; -} - -.frm_payment_settings_tab .frmsvg { - height: 22px; -} - -.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg { - width: 83px; -} - -.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg { - width: 99px; -} - -.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg { - width: 89px; -} - -.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg { - width: 53px; -} - -.frm-email-style { - float: left; - margin-right: var(--gap-md); -} -.frm-email-style:last-of-type { - margin-right: 0; -} -.frm-email-style__card { - position: relative; -} -.frm-email-style__name { - margin-top: var(--gap-xs); - padding-top: var(--gap-2xs); - text-align: center; -} -.frm-email-style__name .frmsvg { - vertical-align: sub; -} -.frm-email-style__click { - display: block; - border-radius: 12px; - border: 1px solid var(--grey-200); - box-shadow: 0px 0.47px 0.94px 0px rgba(16, 24, 40, 0.0588235294); -} -.frm-email-style__click:focus, .frm-email-style--selected .frm-email-style__click { - border-color: var(--primary-500); - outline: 1px solid var(--primary-500); -} -.frm-email-style__click img { - width: 160px; - display: block; -} -.frm-email-style--disabled .frm-email-style__click:after { - content: ""; - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: var(--grey-100); - opacity: 0.5; -} -.frm-email-style__buttons { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 100; - display: none; - flex-direction: column; - justify-content: center; - align-items: center; - gap: 12px; -} -.frm-email-style__button { - cursor: pointer; - display: block; -} -.frm-email-style__button:disabled { - cursor: not-allowed; - display: none; - background: var(--primary-700) !important; - border-color: var(--primary-700) !important; -} -.frm-email-style--selected .frm-email-style__button:disabled { - display: block; -} -.frm-email-style--selected .frm-email-style__button[data-action=choose] { - display: none; -} -.frm-email-style--disabled .frm-email-style__button[data-action=choose] { - display: none; -} -.frm-email-style:hover .frm-email-style__buttons, .frm-email-style__click:focus + .frm-email-style__buttons, .frm-email-style:focus-within .frm-email-style__buttons { - display: flex; -} - -#frm-send-test-email, -.frm-upload-image-btn, -.frm-remove-image-btn, -.frm-reset-colors-btn { - cursor: pointer; -} - -#frm-send-test-email-modal .postbox { - padding: var(--gap-sm) var(--gap-md); -} -#frm-send-test-email-modal .postbox * { - box-sizing: border-box; -} -#frm-send-test-email-modal .inside { - margin: 0; - padding: 0; -} - -/** - * Import/Export - */ -.frm-lite .xml_opts .frm-export-xml-items { - display: none; -} - -.csv_opts #frm_csv_col_sep { - width: 45px; -} - -#frm_advanced td.frm_left_label { - width: 20%; - padding-right: 2px; -} - -/** - * Component: Where Options - */ -#frm_where_options select { - max-width: 200px; -} - -#frm_where_options select.frm_insert_where_options { - width: 30%; -} - -#frm_where_options select.frm_where_is_options { - width: 20%; -} - -#frm_where_options span.frm_where_val { - width: 32%; - display: inline-block; - position: relative; -} - -#frm_where_options span.frm_where_val .frm_tooltip_icon, -#frm_where_options span.frm_where_val .frm_help { - left: -4px; - position: absolute; -} - -#frm_where_options span.frm_where_val.frm_hidden { - display: none; -} - -#frm_where_options span.frm_where_val input, #frm_where_options span.frm_where_val select { - width: 90%; - margin-left: 10px; -} - -#frm_where_options { - min-height: 31px; -} - -/** - * Component: Tabs Panel - */ -.tabs-panel.active .tabs-panel, -.frm_settings_form .tabs-panel .tabs-panel { - border: none; - padding: 0; -} - -/** - * Component: Feature Banner - */ -.frm-feature-banner { - background: var(--grey-700); - color: #fff; - border-radius: var(--small-radius); - padding: 20px; - margin: 10px 0; -} - -.frm-feature-banner p { - font-size: var(--text-sm); -} - -.frm-feature-banner .dismiss { - margin-top: -10px; - margin-right: -10px; -} - -.frm-feature-banner .dismiss svg { - color: #fff; -} - -.frm-feature-banner .frm-big-icon { - padding-right: 20px; - float: left; - min-height: 60px; -} - -.frm-big-icon svg { - height: 60px; - width: 60px; -} - -.frm-feature-banner p { - margin-top: 0; -} - -/** - * Add-on Backward Compatibility - */ -/*for add-on reverse compatibility */ -.frm_98_width { - width: 100% !important; -} - -/** - * Form Settings Tab styles - */ -h2.frm-h2, -.frm_form_settings h2 { - border-bottom: 1px solid var(--grey-300); - color: var(--grey-900); - font-weight: 400 !important; - padding: 9px 0 5px; - margin: 0; -} - -.frm_settings_form h3, -.frm_form_settings h3, -.frm_form_settings span.frm_add_logic_link { - font-size: var(--text-md); - border-top: 1px solid var(--grey-300); - padding-top: var(--gap-sm); - margin: var(--gap-sm) 0; - font-weight: 400; - text-transform: uppercase; - color: var(--medium-grey); - display: block; -} - -.frm_form_settings .howto { - color: var(--grey-500); - font-size: var(--text-sm); - margin-top: 8px; -} - -.frm_form_settings .advanced_settings .form-table { - margin-top: 0; -} - -.frm_form_settings td.frm_175_width { - width: 175px; -} - -.frm_form_settings #success_url { - width: 95%; -} - -.frm_wrap .ui-autocomplete { - padding: 3px 0; - max-height: 310px; -} - -.frm_wrap .ui-widget { - font-family: inherit; -} - -.frm_wrap .ui-autocomplete li { - padding: 2px 4px; - background: none; - color: var(--grey-700); - border: none; - font-weight: 400; -} - -.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active { - border: none; - font-weight: inherit; -} - -.frm_select_with_label { - margin: 7px 0 0; -} - -/** - * Customization Panel styles - */ -/* Customization Panel */ -#frm-insert-fields-box, #frm-conditionals { - max-height: none; -} - -#frm-conditionals, #frm-adv-info-tab { - display: none; - max-height: 355px; -} - -#frm-insert-fields-box ul.subsubsub, -#frm-conditionals ul.subsubsub { - float: right; - margin: 0; -} - -#frm-insert-fields-box ul.alignleft, -#frm-conditionals ul.alignleft { - margin: 4px 0 0; -} - -#frm_adv_info ul.frm_code_list.frm-full-hover { - clear: both; - max-height: 215px; - overflow: auto; -} - -#frm-insert-fields-box ul.frm_code_list li.clear.frm_block { - height: 10px; -} - -#frm_adv_info .frm_noallow { - display: none; -} - -#frm_adv_info #frm-conditionals .frm_noallow { - display: block; -} - -/** - * Customize HTML Tab styles - */ -/* Customize HTML Tab */ -#frm_html_tab.frm_hidden { - display: none; -} - -#frm_html_tab.active { - display: inline; -} - -/** - * Form Actions Tab styles - */ -.frm_email_reply_container select, -.frm_email_reply_container input, -.form-table td.frm_150_width { - width: 170px; -} - -#frm_notification_settings .frm_no_top_padding { - padding-top: 0; -} - -.frm_email_settings.frm_email_settings.widgets-holder-wrap { - overflow: auto; - box-shadow: none; -} - -#frm_notification_settings .widget-top .widget-action, -#frm_form_editor_container .widget-top .widget-action { - border: 0; - margin: 0; - padding: 8px; - background: 0 0; - cursor: pointer; - outline: 0; -} - -#frm_notification_settings .widget-top .widget-action { - padding-top: 13.5px; -} - -#frm_email_addon_menu { - border: 1px solid var(--grey-300); - padding: var(--gap-sm); - border-radius: 4px; - margin: var(--gap-md) 0 var(--gap-sm); -} - -#frm_email_addon_menu .frm-search { - float: right; - margin: 0; -} - -#frm_email_addon_menu h3.frm-no-border { - clear: none; - padding-top: 7px; -} - -.frm_email_settings .widget .widget-top { - background-color: var(--sidebar-color); -} - -.frm_email_settings .widget .widget-top, -.frm_email_settings .widget .widget-top h3 { - cursor: pointer !important; -} - -.frm_email_settings .widget { - margin-bottom: var(--gap-sm); -} - -.frm_form_action_settings .widget-top { - box-shadow: none; - border-color: var(--grey-300); - border-radius: var(--small-radius); - background: var(--lightest-grey); - color: var(--grey-700); -} - -.frm_form_action_settings:hover .widget-top { - border-color: var(--grey); -} - -.frm_form_action_settings.open .widget-top { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom: none; -} - -.frm_form_action_settings.open:hover .widget-top { - border-color: var(--grey-300); -} - -.frm_form_action_settings > .widget-inside { - display: none; -} - -.frm_form_action_settings.open > .widget-inside { - display: block; -} - -.frm_form_action_settings .widget-inside { - min-height: 25px; - padding: 15px; - border-color: var(--grey-300); - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} - -.frm_form_action_settings .widget-title h4, -.frm_form_action_settings .widget-title h3 { - display: inline-block; - border-bottom: none; - padding: 10px 10px 5px; - font-size: var(--text-md); - font-weight: 500; -} - -#frm_email_addon_menu h3 { - margin: 0 0 var(--gap-sm); - clear: both; -} - -.frm_single_api_settings p > label { - display: inline; -} - -.frm_form_action_icon { - margin-right: 5px; -} - -.frm_actions_list { - margin: 0; - display: inline; -} - -.frm_actions_list li { - float: left; - width: 15.6%; - margin: 10px 0.5% 15px; - height: 100px; - text-align: center; -} - -.frm-limited-actions .frm-group-heading, -.frm-limited-actions #frm-hide-groups, -.frm-all-actions #frm-show-groups, -.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show) { - display: none; -} - -label.frm_action_events { - padding-left: 15px; -} - -#frm-hide-groups, -#frm-show-groups { - font-size: var(--text-md); - float: right; -} - -.frm_actions_list a:active, .frm_actions_list a:focus { - outline: none; -} - -.frm_actions_list a { - font-size: var(--text-sm); - color: var(--grey-700); - word-break: break-word; -} - -.frm_actions_list span.frm-outer-circle { - /* 50px total with 30px content */ - background-color: var(--grey-100); - padding: 10px; - text-align: center; - border-radius: 50%; - display: block; - width: 30px; - height: 30px; - margin: 0 auto 15px; - line-height: 1; -} - -.frm_email_settings .widget-title h4 { - color: var(--grey-700); -} - -.frm_disabled_action .widget-title h4 { - color: var(--grey); -} - -.frm_actions_list a .frmsvg, -.frm_actions_list a i { - height: 18px; - width: 18px; - font-size: 18px; - padding: 2px; - color: var(--lightest-grey); -} - -span.frm-inner-circle, -.frm_email_settings .widget-title .frm_form_action_icon { - background-color: var(--grey-400); - border-radius: 50%; - display: inline-block; - text-align: center; - line-height: 1; -} - -span.frm-inner-circle { - background-color: var(--primary-700); - height: 22px; - width: 22px; - padding: 4px; - color: #fff; -} - -.frm-inner-circle svg { - fill: currentColor; -} - -.frm_email_settings .widget-title .frm_form_action_icon { - height: 15px; - width: 15px; - padding: 5px; - color: #fff; - vertical-align: middle; -} - -.frm_actions_list .frmsvg, -.frm_actions_list i::before, -.frm_email_settings .widget-title .frm_form_action_icon i, -.frm_email_settings .widget-title .frm_form_action_icon .frmsvg { - height: 15px; - width: 15px; - vertical-align: text-top; -} - -.frm_actions_list i::before { - vertical-align: middle; -} - -.frm_email_settings .widget-title:hover .frm_form_action_icon { - background-color: var(--grey); -} - -span.frm-inner-circle.frm-inverse { - background-color: transparent; - color: var(--primary-700); - padding: 0; - height: 30px; - width: 100%; -} - -.frm_actions_list span.frm-inverse i, -.frm_actions_list span.frm-inverse .frmsvg { - color: var(--primary-700); - height: 30px; - width: 30px; - font-size: 30px; - padding: 0; -} - -.frm_actions_list i.frm-inverse::before { - height: 30px; - width: 100%; - font-size: 30px; -} - -.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse { - background: #fff; - padding: 0; - height: 24px; - width: 24px; -} - -.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg, -.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before { - color: var(--grey-400); - height: 24px; - width: 24px; - font-size: 24px; -} - -.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg, -.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before { - color: var(--grey-500); -} - -.frm_email_icons { - padding: 10px 0 5px 6px; - font-size: 20px; -} - -.frm_email_icons a { - margin-left: 8px; - color: var(--grey); - opacity: 0; - transition: all 0.2s ease; -} - -.frm_email_icons a .frmsvg { - color: var(--grey); -} - -.frm_email_icons a:hover, -.widget-top:hover .frm_email_icons a { - opacity: 1; -} - -.frm_actions_list a.frm_inactive_action { - color: var(--grey); -} - -.frm_inactive_action .frm-inner-circle, -.frm_actions_list .frm_inactive_action i { - opacity: 0.4; -} - -/** - * Component: Notification Settings - */ -table td, .form-table tr td { - vertical-align: top; -} - -#new_fields .form-table tr td { - display: block; - padding: 7px 0 0; -} - -#new_fields .form-table tr td:first-child { - margin: 0; -} - -#new_fields .form-table tr td:last-child { - margin-bottom: 9px; -} - -.form-table #list-table th { - text-align: center; -} - -#form_settings_page th, -#form_settings_page td, -.frm_settings_form td, -#frm_notification_settings .frm_form_action_settings td p { - padding: 7px 0; -} - -#permissions_settings_settings .frm_grid_container { - align-items: center; -} - -#frm_notification_settings .form-table > tbody > tr > th { - width: 150px; - font-weight: 400; - padding-right: 10px; -} - -#frm_notification_settings .frm_single_email_settings .form-table > tbody > tr > th { - width: 80px; -} - -#frm_notification_settings table tr td:first-child { - padding-left: 0; -} - -#frm_notification_settings table tr td:last-child { - padding-right: 0; -} - -#frm_notification_settings .frm_left_label { - float: none; /* For add-ons that haven't been updated for 4.0 */ - width: auto !important; -} - -.frm-fields .frm_autoresponder_rows select { - width: auto; -} - -#frm_notification_settings .frm_with_left_label, -#frm_notification_settings .frm_left_label + textarea, -#frm_notification_settings .frm_left_label + select, -#frm_notification_settings .frm_left_label + input[type=text] { - width: 100%; -} - -#frm_notification_settings .frm_email_buttons { - padding: var(--gap-2xs); - background: var(--light-blue); - color: var(--primary-700); - border-radius: var(--small-radius); - border-color: var(--blue-border); - line-height: 1; - height: auto; - min-height: 12px; - font-size: var(--text-xs); - box-shadow: none; -} - -p.frm_bcc_cc_container, -p.frm_reply_to_container { - float: right; - z-index: 1; - position: relative; -} - -p.frm_bcc_cc_container { - margin: 14px 0 0; -} - -p.frm_reply_to_container { - margin: -4px 0 0; -} - -.frm_email_row .frm_cancel1_icon::before { - vertical-align: bottom; -} - -.frm_cc_row.frm_email_row .frm-with-right-icon, -.frm_bcc_row.frm_email_row .frm-with-right-icon, -.frm_reply_to_row.frm_email_row .frm-with-right-icon { - width: calc(100% - 20px); - display: inline-block; -} - -.frm_email_row .frm_remove_field .frm_close_icon { - position: relative; - fill: var(--grey-500); - vertical-align: middle; -} - -/** - * Component: Logic Fields - */ -.frm-inline-select, -p.frm-inline-select, -.frm_logic_rows .frm-collapse-me { - line-height: var(--h-md) !important; -} - -.frm_logic_row { - padding: var(--gap-xs) 0 0; -} - -.frm-single-settings ul.frm_sortable_field_opts { - border-bottom: 1px solid var(--grey-200); - padding-bottom: var(--gap-xs); - margin-bottom: var(--gap-xs); -} - -.frm-single-settings .frm-add-other svg.frm_add_tag { - position: relative; - top: 5px; - margin-right: 4px; -} - -.frm-single-settings .frm_single_option .frm_remove_tag::before { - content: ""; -} - -.frm-single-settings input[type=checkbox][readonly] { - opacity: 0.5; - pointer-events: none; -} - -.advanced_settings .frm_logic_row { - margin: 14px 0; -} - -.advanced_settings .frm_logic_row select, -.advanced_settings .frm_logic_row input { - max-width: 30% !important; -} - -.frm_form_action_settings .frm_logic_row p { - margin-top: 0; - margin-bottom: 0; - padding: 0; -} - -/** - * Component: Form Settings Widget - */ -#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside { - padding-bottom: 0; -} - -#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside { - padding-left: 15px; - padding-right: 15px; -} - -#form_global_settings h3 { - font-size: var(--text-sm); - margin-top: 25px; -} - -#form_global_settings .tabs-panel + h3 { - margin-top: 0; - border: none; -} - -#poststuff .frm_form_settings .widget-inside h3, -#poststuff .frm_form_settings .advanced_settings h3, -#poststuff .frm_settings_form h3, -#frm_advanced .inside h3 { - border-top: 1px solid #eee; - border-bottom: none; - margin: 15px -15px 0; - padding: 8px 15px; - font-size: var(--text-sm); -} - -#poststuff .frm_form_settings h3.frm_first_h3, -#poststuff h3.frm_first_h3 { - border: none; - margin-top: 0; -} - -h3.frm_add_logic_link { - margin-bottom: 0 !important; -} - -a.frm_add_logic_link.frm_hidden { - display: none; -} -a.frm_add_logic_link.frm_hidden + .frm_logic_rows { - height: auto; -} - -/** - * Icon Font styles - */ -.frm_icon_font { - color: #A0A0A0; - color: var(--grey); -} - -.frm-fields label .frm_icon_font { - font-size: inherit; -} - -.misc-pub-revisions.frm_icon_font, -.misc-pub-revisions.frm_icon_font:hover { - color: inherit; -} - -.postbox.frm_with_icons .inside { - padding: 0; - margin: 0; -} - -.frm_add_tag::before { - content: "\e602"; -} - -.frm_remove_tag::before { - content: "\e600"; -} - -.frm_logic_row .frm1 > .frm_remove_tag { - padding: 0; -} - -.frm_tooltip_icon::before { - font-size: 13px; - vertical-align: top; -} - -.frm_help svg, -.frm_help .frmsvg { - height: 13px; - width: 13px; - vertical-align: top; - color: var(--grey-400); -} - -.form-field input[type=text].frm_other_input { - width: 30%; - margin-left: 10px; -} - -.frm-add-other { - text-align: right; -} - -.frm-add-other .frm_add_tag { - vertical-align: 20%; -} - -.frm_action_icon { - margin: 5px 0 0 5px; -} - -span.frm_action_icon { - margin: 0 4px 0 0; -} - -.frm_action_icon:active { - outline: none; -} - -a.frm_action_icon:hover { - text-decoration: none; -} - -.frm_action_icon.frm_error_icon::before { - content: "\e608"; -} - -.frm_inactive_icon.frm_action_icon.frm_error_icon::before { - content: "\e606"; -} - -.frm-field-action-icons { - text-align: right; - position: absolute; - top: 2px; - right: 2px; - max-width: 100%; -} - -.frm-field-action-icons .frm-field-id { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 80px; - max-width: calc(100% - 50px); - position: relative; - top: 2px; -} - -.frm-field-action-icons > a { - font-size: var(--text-md); - width: 17px; -} - -.frm-field-action-icons a:hover { - text-decoration: none; -} - -.frm-field-action-icons .dropdown { - display: inline-block; -} - -.frm-field-action-icons > a .frmsvg { - color: var(--grey-500) !important; - font-size: 17px; - width: 17px; - height: 17px; -} - -.frm-field-action-icons > a .frmsvg, -.frm-field-action-icons > div > a .frmsvg { - vertical-align: baseline; -} - -.edit_field_type_end_divider .frm-field-action-icons { - display: none !important; -} - -.frm-move { - cursor: grab; -} - -/** - * Extended Howto styles - */ -span.howto { - display: inline; -} - -.frm_import_message { - margin: 15px 0; - line-height: 2.5; -} - -/** - * Form Widget styles - */ -.frm_sorting .form-field .widget input[type=text], -.frm_sorting .form-field .widget input[type=number], -.frm_sorting .form-field .widget select, -#wpcontent .frm_sorting .form-field .widget select, -.frm_sorting .form-field .widget textarea { - width: auto; -} - -/** - * Tag Checklist styles - */ -.tagchecklist span.no_taglist { - display: inline; - float: none; - line-height: 15px; - margin-right: 0; - font-size: inherit; -} - -.tagchecklist .frm_exclude_cat_list span { - display: inline; -} - -.tagchecklist span a::before { - line-height: 23px; - text-align: start; -} - -.frm_form_action_settings .frm_email_row .frm_tooltip_icon { - position: relative; - bottom: 2px; -} - -/** - * No Entries Page styles - */ -.frm_no_entries_form { - padding: 60px 0; -} - -.frm_no_entries_form .frm_no_entries_header { - font-size: 20px; - margin-bottom: 10px; -} - -.frm_no_entries_form .frm_no_entries_text { - line-height: var(--leading); -} - -#form_entries_page #the-list .no-items { - height: 240px; /* Equals to the max height of search dropdown */ -} - -/** - * Reports Page styles - */ -#form_reports_page img.frm_no_reports { - max-width: 100%; -} - -.frm_wrap .google-visualization-table .gradient, -.frm_wrap .google-visualization-table-tr-head, -.frm_wrap .google-visualization-table-tr-odd, -.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over { - background: var(--lightest-grey); -} - -.frm_wrap .google-visualization-table-tr-over { - background: #fff; -} - -.frm_wrap .google-visualization-table-table th, -.frm_wrap .google-visualization-table-table td { - border-right-width: 0; - padding: 10px !important; -} - -.frm_wrap .google-visualization-table-tr-head, -.frm_wrap .google-visualization-table-tr-head th { - white-space: pre-wrap; - font-size: var(--text-md); - font-weight: 400 !important; - text-align: left; -} - -.frm_wrap .google-visualization-table-td-number { - text-align: inherit; -} - -#form_reports_page .postbox { - text-align: center; - float: none; - display: inline-block; - margin-right: 2%; - width: 20%; - min-width: 175px; -} - -/** - * Views Page styles - */ -#form_views_page img.frm_no_views { - max-width: 100%; -} - -/** - * Component: Field Options Popup - */ -.frm_field_opts_popup { - min-width: 300px; - background-color: #fff; -} - -.frm_field_opts_popup #wpadminbar { - display: none; -} - -.frm_prepop { - width: 100%; - list-style: none; - overflow: auto; - margin: 0; - max-height: 295px; -} - -.frm_prepop li { - margin: 0; -} - -.frm_prepop li a { - display: block; - text-decoration: none; - cursor: pointer; - padding: 5px 20px; -} - -.frm_prepop li a:hover { - background: var(--sidebar-color); -} - -/** - * Form Editor Container - */ -#frm_form_editor_container #frm_form_key_box { - width: 13em; - max-width: 30%; -} - -#frm_form_editor_container #frm_form_desc { - width: 70%; -} - -#frm_form_editor_container .ui-widget-content { - display: none; - padding: 15px; -} - -#frm_form_editor_container .ui-widget-content label { - float: left; - width: 170px; - text-align: right; - padding-right: 5px; - clear: both; -} - -#frm_form_editor_container .ui-widget-content label.nofloat { - clear: none; - float: none; - margin-left: 10px; -} - -#frm_form_editor_container .ui-state-default { - color: #333 !important; -} - -.frm_green { - color: var(--green) !important; -} - -#frm_form_editor_container .ui-state-default a.frm_orange, .frm-right-panel a.frm_orange, #postbox-container-1 a.frm_orange { - color: #D54E21; -} - -#styling_settings input[type=checkbox], #styling_settings input[type=radio] { - border: solid 1px #bbb; -} - -#styling_settings .widget .widget-top, #frm_form_editor_container .widget .widget-top { - cursor: pointer; -} - -/** - * Widget Sorting - */ -.frm_sorting .widget, .frm_settings_page .widget { - background: #fff; -} - -.frm_sorting .widget-title h4 { - font-weight: 400; -} - -.frm_sorting .widget, #postbox-container-1 .widget, .frm-right-panel .widget, .frm_settings_page .widget { - margin-bottom: 0; -} - -.frm_settings_page .widget-inside { - padding: 0 5px 5px; -} - -.frm_sorting .widget, -.widget-inside, -.frm_sorting .form-field .widget { - display: none; -} - -#frm-show-fields { - min-height: 350px; - padding: 0 0 35px; - margin: 0; - position: relative; -} - -.frm-has-fields #frm-show-fields { - min-height: 50px; -} - -#frm_builder_page .frm-lite-credit-card-element, -body.frm-admin-page-styles .frm-lite-credit-card-element { - position: relative; -} - -#frm_builder_page .frm-lite-credit-card-element > div, -body.frm-admin-page-styles .frm-lite-credit-card-element > div { - position: absolute; - top: calc(50% - 1px); - transform: translateY(-50%); - right: 10px; - color: #d0d4dd; -} - -#frm_builder_page #frm_field_group_controls { - position: absolute; - padding: 5px; - border-radius: 4px 4px 0 0; - text-align: right; - box-sizing: border-box; - right: 0; - top: -28px; - height: 28px; - z-index: 3; /* section dividers use z-index: 2; position above that to avoid it taking over hover control. */ -} - -.frm-field-group-hover-target, -.frm-has-open-field-group-popup, -#frm_builder_page #frm_field_group_controls, -.frm-selected-field-group { - background: rgba(65, 153, 253, 0.04); -} - -.frm-selected-field-group { - position: relative; -} - -#frm_builder_page #frm_field_group_controls > span:first-child { - margin-right: 5px; -} - -#frm_builder_page #frm_field_group_controls svg { - pointer-events: none; -} - -#frm_field_group_controls { - visibility: hidden; -} - -.frm-field-group-hover-target #frm_field_group_controls { - visibility: visible; -} - -#frm_field_group_controls .dropdown-item a span { - color: var(--grey-700); -} - -#frm_field_group_controls .dropdown-item a:hover { - text-decoration: none; -} - -/** - * Field Sorting - */ -.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider { - display: none !important; -} - -.frm-right-panel .ui-state-default, -#postbox-container-1 .ui-state-default, -.frm_sorting > li.ui-state-default, -.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { - border: 1px solid transparent; - font-weight: 400 !important; - background-color: transparent; - background-image: none; - padding: 5px; - margin: 0; - box-shadow: none; - display: block; - text-align: inherit !important; - overflow: visible; - position: relative; -} - -#frm-show-fields li.frm_cancel_sort { - /* If a section gets dropped into a section, hide it */ - display: none; -} - -.divider_drop { - text-align: center; -} - -.divider_drop .howto .frm_icon_font { - font-style: normal; -} - -.show_repeat_sec { - display: none; -} - -.repeat_section .show_repeat_sec { - display: inline-block; - margin: 5px 0 0; -} - -.repeat_section tr.show_repeat_sec { - display: table-row; -} - -.repeat_format .frm_repeat_label, -.repeat_formattext .frmsvg, -.repeat_formattext i { - display: none; -} - -/** - * Frm Button - */ -.frm_button { - text-decoration: none; - border: 1px solid #eee; - padding: 5px; - color: #444; - vertical-align: middle; - box-shadow: none !important; -} - -a.frm_button:hover { - text-decoration: none !important; -} - -.frm_button, -.frm_button .frm_icon_font::before { - font-size: 13px; - vertical-align: middle; -} - -.frm_button .frmsvg { - width: 13px; - height: 13px; -} - -/** - * Components - Divider - */ -.frm-right-panel .ui-state-default, -#postbox-container-1 .ui-state-default { - padding: 0; - margin: 0; -} - -ul.start_divider { - padding: 8px 13px 0 8px; - min-height: 115px; - transition: all 0.4s linear; -} - -.frm-section-collapsed .frm_no_section_fields, -.frm-section-collapsed ul.start_divider { - height: 0; - min-height: 0 !important; -} - -.frm-section-collapsed ul.start_divider { - overflow: hidden; -} - -.frm-section-collapsed .frm_no_section_fields { - overflow: hidden; - padding: 0; - opacity: 0; -} - -.frm-section-collapsed .divider_section_only .frm-collapsed-label { - display: inline; -} - -.frm-page-collapsed .frm_clone_icon, -.frm-page-collapsed .frm_delete_field, -.frm-page-collapsed .frm_clone_field, -.frm-section-collapsed .frm_clone_icon { - opacity: 0.5; - cursor: not-allowed; -} - -/* Hide the Duplicate summary option because we are missing the logic that also adds a new page */ -.edit_field_type_summary .frm_more_options_li:nth-child(2) { - display: none !important; -} - -.edit_field_type_submit .frm_more_options_li:not(:last-child) { - display: none !important; -} - -.frm_no_section_fields:not(.frm_block) + ul.start_divider { - padding: 0; - min-height: 132px; -} - -.frm_sorting li.ui-state-default .divider_section_only { - padding: 6px; - margin-top: -10px; - border: 2px solid transparent; - border-radius: var(--small-radius); - z-index: 2; - position: relative; -} - -.divider_section_only > .frm_inner_field_container { - padding: 5px 0; - margin: 0; -} - -.frm-collapsed-label, -.divider_section_only > .frm_inner_field_container .frm_form_fields { - display: none; -} - -.frm-section-collapsed .divider_section_only::after, -.divider_section_only::before { - content: ""; - display: block; - padding: 2px 0; - line-height: 1px; - border-top: 2px solid var(--grey-300); - top: -2px; - position: absolute; - width: 100%; - transition: 0.5s border-color ease-in-out; -} - -.frm-section-collapsed .divider_section_only::after { - top: auto; - bottom: -6px; -} - -.frm-section-collapsed .divider_section_only:hover::after, -li.selected.frm-section-collapsed .divider_section_only::before, -li.selected.frm-section-collapsed .divider_section_only::after, -.divider_section_only:hover::before, -li.selected .divider_section_only::before { - border-color: transparent; -} - -.frm_sorting li.ui-state-default.edit_field_type_divider { - overflow: visible; - position: relative; - padding: 0 0 0 20px; - margin: 25px 0 0 -5px; - border-left: 1px solid var(--primary-700); - transition: border 0.7s ease-out; -} - -.frm-section-collapsed { - border-left-color: transparent !important; -} - -.frm_sorting li.edit_field_type_end_divider, -.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover { - margin: 0 0 var(--gap-sm); -} - -.frm-first-page .frm_prev_page { - display: none; -} - -/** - * Components - Form Rows - */ -#frm_builder_page .frm_remove_form_row.frm_button, -#frm_builder_page .frm_add_form_row.frm_button { - border-radius: var(--small-radius); - border: 1px solid var(--blue-border); -} - -#frm_builder_page .frm_remove_form_row .frmsvg, -#frm_builder_page .frm_remove_form_row i::before, -#frm_builder_page .frm_add_form_row .frmsvg, -#frm_builder_page .frm_add_form_row i::before { - color: var(--primary-700); -} - -.frm-preview-buttons .frm_button_submit { - margin: 0 5px; -} - -.frm-page-break { - border-top: 1px dashed var(--primary-700); - margin-top: var(--gap-lg); - position: relative; -} - -.frm-page-break::before, -.frm-page-break::after { - content: ""; - position: absolute; - background-color: #fff; - border-radius: 50%; - border: 1px solid var(--primary-700); - text-rendering: auto; - -webkit-font-smoothing: antialiased; -} - -/** - * Components - Divider Icons - */ -.edit_field_type_divider .frm-divider-icon.frmsvg { - padding: 2px; - position: absolute; - left: -12px; - color: #fff; - background-color: var(--primary-700); - border-radius: 50%; -} - -.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg { - height: 8px; - width: 8px; - padding: 0; - bottom: -4px; - left: -24.5px; - color: var(--primary-700); - background-color: #fff; -} - -.edit_field_type_divider.selected .frm-divider-icon.frmsvg, -.edit_field_type_divider:hover .frm-divider-icon.frmsvg { - background: var(--primary-500); -} - -.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg, -.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg { - background-color: #fff; - color: var(--primary-500); -} - -.frm-page-break::before, -.frm-page-break::after { - width: 8px; - height: 8px; - top: -6px; - border-color: var(--grey); -} - -.frm-page-break::after { - right: 0; -} - -#frm-fake-page .frm-page-break { - border-color: var(--grey); -} - -#frm-fake-page { - padding: 0 5px; -} - -.frm_sorting li.edit_field_type_divider:hover, -.frm_sorting li.edit_field_type_divider.selected { - border-left-color: var(--primary-500); -} - -/** - * Component: Page Collapsed - */ -.frm-section-collapsed::after { - border-color: transparent !important; - color: transparent; -} - -.frm-page-break .frm-collapse-page.button { - margin-left: 46%; - margin-top: -16px; - padding: 6px 12px !important; -} - -#frm-fake-page.frm-page-collapsed { - margin-bottom: 0; -} - -.frm-page-collapsed { - position: relative; - overflow: visible !important; - margin-bottom: var(--gap-lg); -} - -.frm-collapse-page .frmsvg, -.frm-collapse-page .frm_arrowdown6_icon { - width: var(--text-sm); - height: var(--text-sm); - font-size: var(--text-sm); - text-align: center; - margin-left: 2px; - color: currentColor; - transition: transform 300ms ease-in-out; -} - -.frm-page-collapsed .frm-collapse-page .frmsvg { - transform: rotate(180deg); -} - -#frm-fake-page .frm_arrowdown6_icon { - color: currentColor; -} - -.frm-collapsed i::before, -.frm-page-collapsed .frm_arrowdown6_icon::before { - content: "\e913"; -} - -.frm-collapse-section svg { - fill: var(--primary-color); - transition: transform 0.2s ease-out, fill 0.2s ease-out; -} - -.frm-collapse-section:hover svg { - fill: var(--primary-700); -} - -.frm-section-collapsed .frm-collapse-section svg { - transform: rotate(-90deg); -} - -.open .widget-top .widget-title-action button .frmsvg { - transform: rotate(90deg); -} - -.widget-top .widget-title-action button .frmsvg use { - color: var(--grey); -} - -.frm-collapsed + .frm-collapse-me { - overflow: hidden !important; -} - -.frm-collapse-me { - padding-bottom: 10px; -} - -.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect) { - position: relative; - z-index: 1; -} - -.frm-collapsed + div { - height: 0; - padding: 0; -} -.frm-collapsed + div.frm-collapse-me { - display: none; -} - -.frm-collapsible { - display: flex; - justify-content: space-between; - align-items: center; - font-weight: 700; - padding: var(--gap-xs) 0; - margin: 0; - cursor: pointer; - /* prevent text selection */ - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.frm-collapsible.frm-collapsed { - font-weight: 400; -} -.frm-collapsible:not(.frm-collapsed) .frmsvg { - transform: rotate(-180deg); -} -h4.frm-collapsible { - font-size: var(--text-md); -} - -.frm-collapsible + .frm-collapse-me { - padding-bottom: 0; -} -.frm-collapsible:focus-visible { - outline: 1px solid var(--primary-500); -} - -/** - * Divider Labels - */ -.frm_sorting .divider_section_only > .frm_ipe_field_label { - font-size: 116%; -} - -#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button { - width: 150px; - text-align: center; - margin-bottom: 3px; - display: block; -} - -tr.frm_options_heading td { - padding-bottom: 0; -} - -.frm_sorting .widget-inside .form-table td p, -.frm_sorting .widget-inside .form-wrap label { - padding: 10px 0; -} - -/** - * Empty Fields - */ -.frm_no_fields, -.frm_no_section_fields { - text-align: center; - position: absolute; - color: var(--medium-grey); - font-size: var(--text-md); - box-sizing: border-box; - border: 1px dashed var(--grey-300); - outline: 2px solid transparent; -} - -.frm-over-droppable + .frm_no_fields { - border-style: solid; - border-color: var(--primary-500); - outline-color: var(--primary-500); -} - -.frm_no_section_fields { - display: none; - margin: 0; - padding: 20px 0 0; - width: calc(100% - 20px); - height: 121px; - transition: all 0.4s linear; -} - -.frm-empty-fields .frm_updated_message ~ .frm_no_fields { - top: 60px; -} - -#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields > .frm_field_box:last-child { - visibility: hidden; -} - -.frm-has-fields .frm_no_fields { - display: none; -} - -#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder { - display: none; -} - -#frm-form-button { - display: none; - margin: 0 7px 25px; -} - -.frm-has-fields #frm-form-button { - display: block; -} - -.frm-large-plus.frmsvg { - color: var(--primary-700); - height: 45px; - width: 45px; -} - -.frm_no_section_fields p { - color: var(--grey); - font-size: 15px; -} - -.frm_no_fields { - top: 0; - width: calc(100% - 24px); - min-height: 320px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - gap: var(--gap-md); - padding: var(--gap-md); - border: 0; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); - border-radius: var(--medium-radius); - margin: var(--gap-sm) 12px; -} -.frm_no_fields img { - margin-left: calc(-1 * var(--gap-lg)); -} -.frm_no_fields .frm_drag_inst { - font-size: 20px; - font-weight: 600; - margin: 0 0 12px; -} -.frm_no_fields p { - color: var(--grey-600); - font-size: var(--text-md); - margin: 0; -} - -/** - * Product Fields - */ -.frm_product_price_wrapper { - display: inline-block; - vertical-align: middle; -} - -.frm_prod_type_single .frm_product_price_wrapper { - width: 100%; -} - -#new_fields .frm_product_price_wrapper input:first-child { - width: 60% !important; - float: left; -} - -#new_fields .frm_product_price_wrapper input:nth-child(2) { - width: 37% !important; - float: right; -} - -/** - * Field Choices - */ -li.frm_single_option { - padding-bottom: var(--gap-sm); - border-bottom: 0; -} - -.frm_prod_type_single input[type=radio], -.frm_prod_type_single .frm_drag_icon, -.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3), -.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag, -.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product), -.frm_prod_type_single .frm-bulk-edit-link, -.frm_prod_type_user_def.frm_grid_container, -.frm_prod_options_heading.frm_prod_user_def { - display: none; -} - -.frm_prod_type_single .frm-ai-generate-options-modal-trigger { - display: none !important; -} - -.frm_prod_type_single .frm_option_key { - margin-left: 0 !important; -} -.frm_prod_type_single .frm_option_key input[type=checkbox] + input[type=text], -.frm_prod_type_single .frm_option_key input[type=radio] + input[type=text] { - margin-left: 0 !important; -} - -.plugin-card-bottom .frm-trash { - color: #a00; -} - -/** - * Field Labels - */ -.frm-fields p > .frm_inline_label, -.frm_inline_label { - padding-left: 3px; - margin-right: 12px; - display: inline-block; -} - -.frm_left_label { - clear: both; - float: left; - width: 32% !important; - margin-right: 2% !important; - line-height: 2em; -} - -table td.frm_left_label { - float: none; - line-height: inherit; - padding: 5px 0 5px 2%; -} - -.frm_left_label.frm_alignright { - padding-right: 10px; - text-align: right; -} - -.frm-fields .frm_left_label + textarea, -.frm-fields .frm_left_label + select, -.frm-fields .frm_left_label + input[type=text], -.frm_with_left_label { - width: 66%; -} - -td.frm_left_label + td { - width: 66%; - padding-top: 0; -} - -#html_settings label { - display: block; -} - -#html_settings .frm_field_html_box { - width: 100%; -} - -.frm-has-required .frm-required { - color: var(--error-500); -} - -/** - * Category Tabs - */ -ul.frm-category-tabs { - margin-top: 2px; -} - -.frm-category-tabs > li a, -.frm-category-tabs > li a:active { - outline: none; - box-shadow: none; - display: flex; - gap: var(--gap-xs); - align-items: center; -} - -.frm-category-tabs > li.active .frmsvg, -.frm-category-tabs > li.active i, -.frm-category-tabs > li.active span, -.frm-category-tabs > li.active a { - color: var(--primary-500); -} - -.frm_wrap .manage-menus { - margin-top: 0; - border: none; - border-bottom: 1px solid var(--grey-300); - background: var(--lightest-grey); -} - -.general_settings .postbox .manage-menus { - border-top: none; - border-left: none; - border-right: none; -} - -.frm-postbox-no-h3 { - padding-top: 10px; -} - -/** - * Components : UI State Defaults - */ -.frm-right-panel .ui-state-default, #postbox-container-1 .ui-state-default { - color: var(--grey-900); -} - -.no_repeat_section .frm_sorting > li.ui-state-default.edit_field_type_end_divider:hover { - box-shadow: none; -} - -.frm-selected-field-group li.ui-state-default, -.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected, -.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover, -.frm_sorting li.ui-state-default.frm_not_divider:hover, -.frm_sorting li.ui-state-default.ui-sortable-helper, -.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover, -.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover, -.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only, -.frm_update_msg, -.frm_sorting li.ui-state-default.frm_not_divider.selected, -.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only { - border-color: var(--primary-500); - transition: 0.5s border-color ease-in-out; -} - -.frm_sorting li.ui-state-default.frm_not_divider.selected { - box-shadow: 0 0 1px 0 var(--primary-500); -} - -.frm_sorting li.ui-state-default { - transition: 0.7s box-shadow ease-in-out, 0.7s height linear; -} - -.frm_sorting li.ui-state-default.frm-newly-added { - box-shadow: inset 0 0 2px 1px var(--blue-border); -} - -.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover { - visibility: visible !important; - display: inline !important; -} - -.edit_field_type_end_divider > label { - display: none !important; -} - -/** - * Update Message - */ -.frm_email_actions.feature-filter { - font-weight: 700; - border: 1px solid #DFDFDF; - background-color: #EEE; - padding: 3px 5px 2px; - font-size: var(--text-md); - line-height: 20px; -} - -.frm_update_msg { - border-style: solid; - margin: 10px 0; - color: #21759B; - padding: 8px 15px; - border-radius: 4px; -} - -.frm_update_msg.wrap { - margin: 10px 20px 0 2px; -} - -#frm-insert-fields-box .frm_update_msg { - margin-right: 0.9em; -} - -.frm_update_msg a { - font-weight: 700; -} - -.widefat td { - width: auto; -} - -.widefat .column-id { - width: 3.7em; -} - -.widefat .column-show_count { - width: 5em; -} - -.widefat .column-shortcode { - width: 9em; -} - -/** - * Admin Columns - */ -.toplevel_page_formidable .column-shortcode div { - display: flex; - gap: var(--gap-xs); -} - -.widefat .column-entries, .widefat .column-link { - width: 10%; - text-align: center; -} - -.widefat .column-form_key, .widefat .column-created_at { - width: 10%; -} - -.frm-white-body .search-box, -.frm_wrap .frm-search { - float: right; - margin: 0; - clear: right; -} - -.frm-white-body .search-box, -.frm-search { - min-width: 32%; - position: relative; - display: flex; - gap: var(--gap-sm); - align-items: center; -} - -.frm-inline-modal .frm-search, -#frm_adv_info .frm-search { - float: none; - width: 100%; - clear: both; - margin: var(--gap-xs) 0; -} - -/** - * Button Group - */ -.frm-button-group a { - margin: 0 7px !important; -} - -/** - * Input Icons - */ -.frm_has_textarea .frm-with-right-icon { - display: block; -} - -.frm-with-left-icon, -.frm-with-right-icon { - position: relative; -} - -i.frm-show-box, -i.frm-show-inline-modal, -.frm-with-left-icon i, -.frm-with-right-icon i:not([class*=mce-]), -.frmsvg.frm-show-box, -.frmsvg.frm-show-inline-modal, -.frm-with-left-icon .frmsvg, -.frm-with-right-icon .frmsvg, -.frm-search > .frmsvg, -.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { - position: absolute; - padding: 0 14px; - pointer-events: none; - left: 0; - color: var(--grey-400); - font-size: var(--text-xs); -} - -.frm-search > .frmsvg, -.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select) { - padding-left: var(--gap-xs); - padding-right: var(--gap-xs); -} - -.frm-search > .frmsvg { - box-sizing: unset; -} - -.frm-with-right-icon .frmsvg, -.frm-with-right-icon i:not([class*=mce-]) { - right: 0; - top: -3px; - left: auto; - padding: 0 10px 0 5px; -} - -.frm_form_settings .frm-with-right-icon .frmsvg { - top: 0; -} - -.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg, -#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg { - top: auto; - bottom: var(--gap-sm); -} -.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg, -#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg { - bottom: var(--gap-lg); -} - -.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg { - top: auto; - bottom: 6px; -} - -.frmsvg.frm-show-box, -.frmsvg.frm-show-inline-modal, -i.frm-show-box, -i.frm-show-inline-modal { - top: auto; - background-color: var(--primary-50); - color: var(--primary-500); - border-radius: 6px; - padding: var(--gap-2xs); - margin: 5px; /* input height - svg / 2 */ - margin-bottom: 0; - z-index: 1; - cursor: pointer; - pointer-events: initial; -} -.frmsvg.frm-show-box:focus, -.frmsvg.frm-show-inline-modal:focus, -i.frm-show-box:focus, -i.frm-show-inline-modal:focus { - outline: 1px solid var(--primary-500); -} - -/** - * Inline Modals - */ -.frm-open + .frm-inline-modal { - top: -10px; - margin-bottom: 0; -} -.frm-open + .frm-inline-modal.frm-modal-no-dismiss .inside > .frm-search:first-child { - margin-top: var(--gap-sm); -} - -.frm_grid_container > .frm-open + .frm-inline-modal { - top: -4px; -} -.frm_grid_container > .frm-open + .frm-inline-modal.frm-modal-no-dismiss { - top: 0 !important; -} - -/** - * Input Positioning - */ -.frm-with-left-icon input { - padding-left: 37px !important; -} - -.frm_wrap .frm-with-right-icon textarea, -.frm_wrap .frm-with-right-icon input, -.frm_wrap .frm-with-right-icon input[type=text] { - padding-right: var(--gap-md); -} - -#frm-show-fields .frm-with-left-icon .frmsvg, -#frm-show-fields .frm-with-left-icon i { - padding-top: 10px; -} - -/** - * Search Inputs - */ -.frm-search input[name=s], -.frm-search .dropdown-toggle, -.frm-search input.frm-search-input { - color: var(--grey-800); - border-color: var(--grey-300); - border-radius: var(--small-radius); - box-shadow: var(--box-shadow-xs); -} -.frm-search input[type=search], -.frm-search input[type=text] { - padding-left: var(--gap-lg) !important; -} -.frm-search .dropdown-toggle { - width: 100%; - float: none; - max-width: 200px; - background: transparent; - padding: 7px; - padding-left: 33px !important; - min-height: 32px; - text-align: inherit; - overflow: hidden; - text-overflow: ellipsis; -} -.frm-search #search-submit a { - color: var(--grey-800); -} -.frm-search #search-submit .caret { - opacity: 0.7; -} - -.frm-white-body .search-box input[name=s], -#wpwrap .frm-search input[type=search] { - flex: 1; - font-size: var(--text-md); - line-height: var(--text-xl); - padding: var(--gap-xs); -} - -span.multiselect-selected-text { - white-space: nowrap; - display: inline-block; - max-width: calc(90% - var(--gap-xs)); - text-overflow: ellipsis; - overflow: hidden; -} - -/** - * Not Set Fields - */ -.frm-not-set input { - color: var(--primary-500) !important; - font-size: 13px; -} - -.frm-not-set .frmsvg, -.frm-not-set i { - color: var(--primary-700); - opacity: 1; -} - -/** - * Shortcode Select - */ -.post-type-frm_display select[name=m] + #post-query-submit, -select[name=m] { - display: none; -} - -.frm_shortcode_select optgroup option { - margin-left: 1em; -} - -.frm_shortcode_select optgroup { - padding-top: 5px; -} - -.frm_shortcode_select .frm_subopt { - margin-left: 2em; -} - -.misc-pub-section a.edit-frm_shortcode, .misc-pub-section a.edit-form-status { - float: none; - font-size: 13px; -} - -.frm-grid { - border-collapse: collapse; - border: none; - margin-right: 10px; -} - -.frm-grid td, .frm-grid th { - padding: 5px; - border: 1px solid black; -} - -/** - * View Page Admin - */ -.post-type-frm_display #poststuff #post-body.columns-2 { - margin-right: var(--big-sidebar); -} - -.post-type-frm_display #post-body.columns-2 #postbox-container-1 { - margin-right: calc(var(--big-sidebar) * -1); - width: calc(var(--big-sidebar) - 40px); -} - -.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables { - width: 100%; -} - -#frm_dyncontent .hndle, -#frm_dyncontent .handlediv { - display: none !important; -} - -.post-type-frm_display .meta-box-sortables .frm_form_nav > li > a, -.post-type-frm_display .frm_form_nav .nav-tab-active { - padding: 0 2px 5px; - line-height: 1.4; -} - -.post-type-frm_display #advanced-sortables h2.hndle, -.post-type-frm_display #side-sortables h2.hndle, -.post-type-frm_display #normal-sortables h2.hndle { - border-bottom: 1px solid var(--grey-300); - margin: 10px 0 0 !important; - padding: 0 25px 8px; -} - -.post-type-frm_display #side-sortables h2.hndle { - margin-top: 0 !important; - padding-top: 10px; -} - -.post-type-frm_display #post-body-content { - margin-top: var(--gap-lg); -} - -.post-type-frm_display.edit-php #wpbody-content > .wrap { - margin: 0; -} - -.post-type-frm_display .postbox .hndle, -.post-type-frm_display .postbox { - border-color: var(--grey-300); -} - -.post-type-frm_display #postbox-container-1 .postbox, -.post-type-frm_display #postbox-container-2 .postbox { - border-radius: var(--small-radius); - border-color: var(--grey-300); - box-shadow: none; -} - -.post-type-frm_display #side-sortables .postbox { - border-radius: 0; - border-top-width: 0; - margin-bottom: 0; -} - -.post-type-frm_display #side-sortables .misc-pub-section { - padding: 15px 20px 10px; -} - -/** - * View Page Admin Icons - */ -.post-type-frm_display .misc-pub-section .frmsvg, -.post-type-frm_display #post-body .misc-pub-post-status::before, -.post-type-frm_display #post-body #visibility::before, -.post-type-frm_display .curtime #timestamp::before, -.post-type-frm_display #post-body .misc-pub-revisions::before, -.post-type-frm_display span.wp-media-buttons-icon::before { - color: var(--grey); -} - -.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #publishing-action, -.post-type-frm_display #frm_top_bar + #poststuff #submitdiv #minor-publishing-actions, -.post-type-frm_display #frm_top_bar + #poststuff #edit-slug-box, -.post-type-frm_display .wrap h1.wp-heading-inline, -.post-type-frm_display .wrap > .page-title-action { - display: none; -} - -/** - * View Page Admin Tabs - */ -.post-type-frm_display #poststuff h2.nav-tab-wrapper { - padding-left: 10px; - margin-bottom: 0; - padding-bottom: 0; -} - -.post-type-frm_display .nav-menus-php .wrap { - margin: 10px 0 0; -} - -.post-type-frm_display .nav-menus-php .wrap p { - padding-left: 12px; - padding-right: 12px; -} - -.post-type-frm_display .nav-tab { - display: inline-block; - background-color: #f4f4f4; -} - -.post-type-frm_display .nav-tab.frm_hidden { - display: none; -} - -.post-type-frm_display .nav-tab:hover { - background-color: #e4e4e4; -} - -/** - * Order/Where Rows - */ -.frm_order_row, -.frm_where_row { - margin-bottom: 7px; - line-height: 30px; -} - -.frm-single-settings .frm_prod_field_opt_cont { - margin-top: initial; - margin-bottom: 20px; -} - -/** - * Editor Elements - */ -/*hide elements if js is avail*/ -select.texture { - display: none; -} - -.post-type-frm_display #wp-content-editor-tools, -#wp-content-editor-tools { - background-color: transparent; -} - -.post-type-frm_display #major-publishing-actions { - border-color: var(--grey-300); - background: var(--sidebar-color); -} - -/** - * Advanced Info Panel - */ -.post-type-frm_display #frm_adv_info { - width: calc(var(--big-sidebar) - 40px); - height: calc(100vh - 32px); - overflow: hidden; -} - -.post-type-frm_display #frm_adv_info:not(.frm_fixed) { - top: 0 !important; -} - -.post-type-frm_display #frm_adv_info.frm_fixed { - position: fixed; - z-index: 9999; - top: 32px; -} - -.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover { - max-height: calc(100vh - 180px); -} - -/** - * Column Layout - */ -.frm_col_one { - margin-right: 4%; - clear: both; -} - -ul .frm_col_one { - float: left; -} - -ul .frm_col_two { - float: right; -} - -ul.frm_two_col { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: var(--gap-sm); -} - -.frm_two_col li { - margin-bottom: 0; -} - -/** - * Component: Info Modals - */ -.frm-info-modal a, -.frm-info-modal ul, -.frm-info-modal p, -.frm-info-modal, -.settings-lite-cta a, -.settings-lite-cta ul, -.settings-lite-cta { - color: var(--grey-500); - font-size: var(--text-md); - box-shadow: none !important; -} - -.frm-info-modal h3, -.settings-lite-cta h3 { - font-size: 17px !important; -} - -.frm-green-icons .frmsvg { - color: var(--green); -} - -.frm-info-modal .postbox .inside, -.settings-lite-cta .postbox .inside { - padding: var(--gap-md); - margin: 0; -} - -.cta-inside a { - color: var(--orange); -} - -.info-modal-inside a.frm-standard-link { - color: var(--primary-500); -} - -.info-modal-inside a.frm-standard-link:hover { - color: var(--primary-700); -} - -.frm_no_p_margin > p { - margin: 0; -} - -/** - * Component: Code List - */ -.frm_code_list a.button { - display: block; - text-align: center; - font-size: 11px; - overflow: hidden; -} - -#frm-navbarDrop + .frm_code_list.frm-full-hover { - margin: var(--gap-xs) 0 0; - min-width: 300px; - max-height: 256px; -} - -.frm_code_list.frm-full-hover li { - margin: 0; -} - -.frm-select-list-item, -.frm_wrap .ui-autocomplete li > div, -.multiselect-container button.multiselect-option, -.frm-dropdown-menu > .dropdown-item > a, -.frm-dropdown-menu > .dropdown-item > a:visited, -.frm-dropdown-menu > .dropdown-item > a:link, -.frm-dropdown-menu .frm_dropdown_li, -.frm_code_list.frm-full-hover a { - display: flex; - color: var(--grey-700); - padding: 5px 10px; - font-size: var(--text-md); - gap: var(--gap-xs); - align-items: center; -} - -.multiselect-container button.multiselect-option.disabled { - opacity: 0.5; -} - -.frm_code_list.frm-full-hover a span { - max-width: 83px; - margin-right: var(--gap-xs); - margin-left: auto; -} - -.frm_code_list.frm-full-hover a { - border-radius: var(--small-radius); -} -.frm_code_list.frm-full-hover a:not(#frm-insert-condition), -.frm_code_list.frm-full-hover a span { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.frm_code_list.frm-full-hover a:focus span:last-child { - outline: 1px solid var(--primary-500); - outline-offset: var(--gap-2xs); -} - -.frm_code_list.frm-full-hover.frmcenter a { - display: block; -} - -#frm-layout-classes frm-full-hover a span { - max-width: 45%; -} - -.frm-select-list-item.active, -.frm-select-list-item:hover, -.frm_wrap .ui-autocomplete li div.ui-state-active, -.frm_wrap .ui-autocomplete li.ui-state-focus, -.multiselect-container button.multiselect-option.active, -.multiselect-container button.multiselect-option:hover, -.frm-dropdown-menu > .dropdown-item > a:hover, -.frm_code_list.frm-full-hover a:hover span, -.frm_code_list.frm-full-hover a:hover { - background: var(--primary-25); - color: var(--primary-500); -} - -.frm-select-list-item .frmsvg, -.frm-dropdown-menu > .dropdown-item > a .frmsvg { - opacity: 0.8; -} - -.frm-select-list-item:hover .frmsvg, -.frm-dropdown-menu > .dropdown-item > a:hover .frmsvg { - opacity: 1; -} - -.frm-dropdown-menu.frm_code_list > li > a { - padding: 3px 15px; - width: 300px; -} - -#frm_edit_box_content_modal .frm-with-search, -.frm-dropdown-menu .frm-with-search { - padding: var(--gap-xs) 10px 0; -} - -.frm-dropdown-menu .subsubsub { - padding: 0 10px; -} - -.frm_grid_container { - overflow: visible; -} - -.frm_code_list.frm_grid_container { - grid-gap: var(--gap-xs); -} - -.frm_code_list.frm_grid_container li { - width: auto; - margin: 0; -} - -.frm_code_list.frm_grid_container a { - display: block; - font-size: var(--text-md) !important; - font-weight: 500; - text-align: center; - color: var(--primary-500); - background-color: var(--light-blue); - border: 1px solid var(--primary-300); - border-radius: var(--small-radius); - padding: 10px 0; - box-shadow: var(--box-shadow-sm); -} -.frm_code_list.frm_grid_container a:hover { - background-color: var(--primary-500); - color: #fff; -} -.frm_code_list.frm_grid_container a:focus-visible { - outline: 2px solid var(--primary-500); - outline-offset: -1px; -} - -.frm-single-settings .frm_code_list.frm-full-hover, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { - padding: 0; - margin: var(--gap-xs) -10px 0; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a { - font-size: var(--text-md); - color: var(--grey-900); - padding: var(--gap-xs) 12px; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a span, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span { - margin: 0; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a span:first-child, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:first-child { - max-width: 130px; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a span:last-child, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a span:last-child { - max-width: 120px; - margin-left: auto; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover { - font-weight: 500; -} -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover, -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover .frmsvg, -.frm-single-settings .frm_code_list.frm-full-hover > li > a:hover span, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover .frmsvg, -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover > li > a:hover span { - color: var(--primary-500); -} - -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover { - margin: var(--gap-xs) 0 0; -} -#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg { - width: 20px; - height: 20px; -} - -/** - * Component: Insert Fields - */ -.frm_field_list #frm-insert-fields { - max-height: none; - font-size: var(--text-sm); -} -.frm_field_list #frm-insert-fields .button a { - display: block; - max-width: 95%; - overflow: hidden; -} - -#frm-insert-fields { - padding: 0 var(--gap-xs); - overflow: hidden; -} -#frm-insert-fields .frm-search { - float: none; - margin: 0 0 var(--gap-md); - width: auto; -} -#frm-insert-fields li { - /* Prevents advanced fields from always appearing in search results */ -} -#frm-insert-fields li, -#frm-insert-fields li a { - text-decoration: none; - font-weight: 500; - font-size: var(--text-md) !important; - color: var(--grey-900); -} -#frm-insert-fields li.frm_show_upgrade { - cursor: pointer; - opacity: 0.5; -} -#frm-insert-fields li span:not(.frm-new-pill) { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - text-align: left; -} -#frm-insert-fields li a.disabled:hover { - cursor: not-allowed; -} -#frm-insert-fields li.ui-draggable-disabled { - opacity: 0.5; -} -#frm-insert-fields li a:not(.disabled):hover .frmsvg, -#frm-insert-fields li a:not(.disabled):hover i { - color: var(--grey-600); -} -#frm-insert-fields li.frm_show_upgrade, -#frm-insert-fields li a { - text-decoration: none; - display: inline-flex !important; - gap: var(--gap-xs); - align-items: center; - border-radius: var(--small-radius) !important; - padding: 11px var(--gap-md) 11px var(--gap-xs) !important; - color: var(--grey-900) !important; -} -#frm-insert-fields li a { - display: flex !important; - transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out; -} -#frm-insert-fields li a:not(.disabled):hover { - background: #fff; - box-shadow: var(--box-shadow-md); -} -#frm-insert-fields li a:focus-visible { - outline: 1px solid var(--primary-500); -} -#frm-insert-fields li.frm_show_upgrade.frm_hidden { - display: none !important; -} -#frm-insert-fields .frm-with-line { - padding: 12px var(--gap-md); - font-weight: 500; - font-size: var(--text-sm); -} -#frm-insert-fields .frm-with-line::before { - margin-left: calc(-1 * var(--gap-sm)); - width: calc(100% + var(--gap-md)); -} - -.frm_code_list { - clear: both; -} -.frm_code_list.frm-full-hover a.frm_hidden, -.frm_code_list .frmkeys { - display: none; -} - -.frmsvg { - fill: currentColor; - width: 18px; - height: 18px; - vertical-align: middle; -} -.frmsvg svg { - pointer-events: none; -} -.frmsvg.frm_svg40 { - width: 40px; - height: 40px; -} -.frmsvg.frm_svg24 { - width: 24px; - height: 24px; -} -.frmsvg.frm_svg20 { - width: 20px; - height: 20px; -} -.frmsvg.frm_svg15 { - width: 15px; - height: 15px; -} -.frmsvg.frm_svg14 { - width: 14px !important; - height: 14px !important; -} -.frmsvg.frm_svg13 { - width: 13px; - height: 13px; -} -.frmsvg.frm_svg12 { - width: 12px; - height: 12px; -} -.frmsvg.frm_svg9 { - width: 9px; - height: 9px; -} - -input[disabled] { - pointer-events: none; -} - -.frmbutton.ui-sortable-helper .frmsvg, -.field_type_list li.frmbutton .frmsvg, -.frmbutton.ui-sortable-helper i, -.field_type_list li.frmbutton i, -.frm_code_list a .frmsvg, -.frm_code_list a i { - color: var(--grey-500); - display: inline-block; - vertical-align: middle; - width: var(--text-md); - font-size: var(--text-md); -} - -.field_type_list.frm_grid_container { - gap: 10px; - margin: 13px 0; -} -.field_type_list li { - margin: 0; - padding: 0; -} -.field_type_list li.frmbutton .frmsvg { - width: 24px; - height: 24px; - font-size: 24px; -} - -.frm_code_list i::before { - font-size: inherit; -} - -/* Icon while dragging */ -.frmbutton.ui-draggable-dragging { - pointer-events: none; -} -.frmbutton.ui-draggable-dragging a { - color: var(--grey-900) !important; - background: var(--grey-100); - text-decoration: none; - display: inline-flex !important; - gap: var(--gap-xs); - align-items: center; - border-radius: var(--small-radius) !important; - padding: 11px var(--gap-md) 11px var(--gap-xs) !important; - box-shadow: var(--box-shadow-md); -} - -/** - * Component: Field Dragging - */ -.frmbutton.ui-draggable-dragging a { - border: 1px solid var(--grey-300); - box-shadow: var(--box-shadow-md); -} - -.frmbutton.ui-draggable-dragging span { - font-size: 15px; -} - -#frm-show-fields .frmbutton.ui-sortable-helper i, -.frmbutton.ui-draggable-dragging i, -.frmbutton.ui-draggable-dragging .frmsvg { - color: #fff !important; -} - -.frmbutton.ui-draggable-dragging i, -.frmbutton.ui-draggable-dragging .frmsvg { - color: var(--grey-700) !important; -} - -.frm_sorting li.ui-state-default.ui-sortable-helper, -.frmbutton.ui-sortable-helper { - transition: opacity 0.2s; - opacity: 1; - position: fixed; - z-index: 99999; -} - -#frm-insert-fields .frmbutton.ui-sortable-helper a, -#frm-show-fields .frmbutton.ui-sortable-helper a { - min-width: 100px; -} - -/* End dragging */ -li.frm_noallow.button, -.frm_noallow { - opacity: 0.5; -} - -.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before, -li.frm_noallow.button.frm_show_upgrade { - cursor: pointer; -} - -.field_type_list li.frm_noallow.button.frm_show_upgrade:hover { - border-color: inherit; -} - -.frm_noallow a { - color: inherit; -} - -/** - * Component: Upgrade Modal - */ -#frm_upgrade_modal_image { - max-width: 200px; -} - -#frm_upgrade_modal .frm-upgrade-message img { - margin-top: 10px; - width: 100%; -} - -/** - * Layout: Reports Info - */ -.frm-tab-message { - max-width: 600px; - margin: 20px auto; - color: rgba(63, 75, 91, 0.8); -} - -.frm-settings-screenshot-toolbar { - min-height: 39px; - display: flex; -} - -.frm-settings-screenshot-toolbar .frm-minmax-icon { - height: 8px; - width: 8px; - border-radius: 50%; - align-self: center; - margin-left: 10px; -} - -.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type { - margin-left: 20px; -} - -.frm-settings-screenshot-toolbar img { - object-fit: contain; - align-self: flex-end; - margin-left: 25px; -} - -.frm-settings-screenshot-toolbar + div { - background: #fff; - padding-top: 25px; - border-radius: 0 0 16px 16px; -} - -.frm-settings-screenshot-toolbar + div img { - max-width: calc(100% - 40px); -} - -.frm-settings-screenshot-wrapper { - max-width: 700px; - margin: 50px auto 0; - box-shadow: 0 4px 4px rgba(189, 196, 205, 0.25), 0 12px 56px rgba(42, 57, 75, 0.25); - border-radius: 16px; - background: #EBECF1; -} - -/** - * Component: Dialog - */ -.frm-dialog { - z-index: 100; - padding: 0 !important; - border-radius: 16px; - border: none; - background-color: #fff; - max-width: 100% !important; -} - -.frm-dialog .postbox { - background: transparent; - box-shadow: none; - border: none; - line-height: var(--leading); -} - -.frm-dialog input[type=text], -.frm-dialog textarea { - font-size: var(--text-md); -} - -.frm-dialog textarea { - height: 75px; -} - -.frm-dialog button.frm-button-primary { - margin-right: 10px; -} - -.frm-dialog .frm-sub-label, -.frm-sub-label { - color: var(--grey); - text-transform: none; - padding-left: 8px; -} - -h2 .frm-sub-label { - font-size: var(--text-md); -} - -.frm-views-editor-body .ui-widget-overlay, -.frm-white-body .ui-widget-overlay, -.toplevel_page_formidable .ui-widget-overlay, -body[class*=formidable-payments] .ui-widget-overlay, -body.plugins-php .ui-widget-overlay { - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: var(--grey-500); - opacity: 0.5; - z-index: 2; -} - -/** - * Component: Circled Icons - */ -.frm-circled-icon { - width: 60px; - height: 60px; - border-radius: 50%; - background-color: var(--primary-25); -} - -.frm-circled-icon-large { - width: 80px; - height: 80px; -} - -.frm-circled-icon-green { - background-color: var(--success-50); -} - -.frm-circled-icon .frmsvg { - width: 21px; - height: 24px; -} - -.frm-circled-icon-large .frmsvg { - width: 24px; -} - -.frm-circled-icon .frmsvg use { - color: var(--primary-500); -} - -.frm-circled-icon-green .frmsvg use { - color: var(--success-500); -} - -.frm-border-icon { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; - border: 1px solid var(--grey-300); - border-radius: var(--small-radius); -} - -.frm-upgrade-message img { - max-width: 100%; -} - -/** - * Component: Link Styles - */ -a.frm-link-secondary { - color: #c4c4c4; - font-size: var(--text-sm); - text-decoration: underline; -} - -.field_type_list li.button.frm_noallow, -.field_type_list li.button.frm_noallow:hover, -.button.frm_noallow, -.button.frm_noallow:hover { - color: inherit; - border-color: #ccc; - background: inherit; -} - -iframe#dyncontent_ifr { - min-height: 150px; -} - -/*! +@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500) !important}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-text-left{text-align:left}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key{margin-left:19px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! * Bootstrap v4.6.1 - */ -.tooltip { - /* Copied from Bootstrap */ - position: absolute; - display: block; - margin: 0; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - opacity: 0; - /* Custom rules */ - z-index: 9999999; - pointer-events: none; -} - -.tooltip.show { - opacity: 0.9; -} - -.tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; - margin-left: 0 !important; -} - -.tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] { - padding: 0.4rem 0; -} - -.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow { - bottom: 0; -} - -.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; -} - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] { - padding: 0 0.4rem; -} - -.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] { - padding: 0.4rem 0; -} - -.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow { - top: 0; -} - -.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; -} - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] { - padding: 0 0.4rem; -} - -.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; -} - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; -} - -.frm-dropdown-menu.show { - display: block; -} - -.frm-single-settings .frm-dropdown-menu.show { - background: #fff; -} - -/* End Bootstrap */ -.preview.dropdown .dropdown-menu { - min-width: 205px; -} - -.frm_clear { - clear: both; -} - -.frm_clearfix::after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} - -.frm_clearfix { - display: block; -} - -.frm_admin_progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-radius: 4px; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.frm_admin_progress_bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - transition: width 0.6s ease; - background-color: #04A4CC; -} - -.tooltip.frm_tooltip { - position: fixed; - top: auto !important; - bottom: 0 !important; - left: 0 !important; - max-width: none; - width: 100% !important; - z-index: 99999; -} - -.tooltip.frm_tooltip.bottom { - padding: 0; -} - -.frm_tooltip .tooltip-inner { - max-width: none; - min-height: 40px !important; - text-align: left; - box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.5); - padding: 10px 40px; - border-top-color: #ccc; - background: var(--sidebar-color); - color: var(--grey-700); - border-radius: 0; - opacity: 1; - font-size: var(--text-sm); -} - -#frm_custom_css_box { - width: 100%; -} - -/** - * Component: Admin Inputs - */ -.frmdates_add_blackout_date_link, -.frmdates_add_exception_link, -.frm_form_field.frm_scroll_box .frm_opt_container, -.frm-white-body .wrap input[type=text], -.frm-white-body .wrap input[type=search], -.frm-white-body .wrap input[type=number], -.frm-white-body .wrap select, -#frm-form-templates-modal select, -.frm-white-body .wrap textarea, -button.frm_choose_image_box, -#titlediv input[type=text], -.frm-fields button.btn, -.frm_wrap textarea, -.frm_wrap input[type=tel], -.frm_wrap input[type=text], -.frm_wrap input[type=email] .frm_wrap input[type=search], -.frm_wrap input[type=number], -.frm_wrap input[type=date], -.frm_wrap select, -.wp-admin .frm_wrap select, -.field-group textarea, -.field-group input[type=text], -.field-group select, -.frm-fields .frm-input-field { - outline: 0; - box-shadow: var(--box-shadow-xs); - border-radius: var(--small-radius); - padding: 5px 14px; - border-color: var(--grey-300); - color: var(--grey-800); - font-size: var(--text-md); - margin: 0; - background-color: #fff; - line-height: var(--leading); -} - -.frm_input_with_suffix { - border-radius: var(--small-radius); - border: 1px solid var(--grey-300); - display: inline-block; - padding-right: 14px; -} - -.frm_input_with_suffix input { - border: 0 !important; - padding-right: 5px !important; -} - -.frm_wrap ::-webkit-datetime-edit { - line-height: var(--leading); -} - -.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus, -.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus, -.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus, -.frm_wrap input:focus, -.frm_wrap select:focus, -.wp-core-ui .frm_wrap select:focus, -#frm-form-templates-modal select:focus, -.frm-btn-group .multiselect.dropdown-toggle:focus, -.frm_wrap textarea:focus { - border-color: var(--primary-500) !important; - box-shadow: none !important; -} - -/* -Pages like Entries and Styles need the border-color and box-shadow properties without the !important flag. -To achieve this, we exclude them above and duplicate these rules specifically for those pages without using !important. -*/ -.wp-admin .frm_fields_container textarea:focus, -.wp-admin .frm_fields_container input:focus, -.wp-admin .frm_fields_container select:focus { - border-color: var(--primary-500); - box-shadow: none; -} - -#postbox-container-2 textarea, -.frm_wrap textarea, -.field-group textarea { - line-height: 2; -} - -.frm_wrap input[type=number] { - height: auto; -} - -.frm_wrap select { - padding: 2px; -} - -.wp-admin .frm_wrap select, -#frm-form-templates-modal select { - max-width: 100%; -} - -.frm_form_field.frm_scroll_box .frm_opt_container { - padding: 10px 12px; -} - -.frm_wrap input[disabled], -.frm_wrap select[disabled], -.frm_wrap textarea[disabled], -.frm_wrap input[readonly], -.frm_wrap select[readonly], -.frm_wrap textarea[readonly], -.frm_wrap input::placeholder { - color: var(--grey-500); -} - -textarea[id^=frm_calc_]::placeholder { - font-size: var(--text-sm); - line-height: var(--leading); - font-style: italic; - color: var(--grey-400); - padding-top: 5px; -} - -.frm_wrap .frm-button-primary.frm-disabled { - opacity: 0.5; - cursor: default; -} - -#postcustomstuff table td > div { - /* To override some inline css in add-on */ - padding-top: 0 !important; -} - -.wp-admin .frm_wrap .form-table select { - vertical-align: top; -} - -.frm_wrap .frm_form_builder select { - line-height: var(--leading); - height: var(--text-md); - width: 100%; -} - -#postbox-container-2 select, -.wp-admin .frm_wrap select, -.frm_wrap .frm_form_builder select, -#frm-form-templates-modal select { - height: auto; -} - -.frm-white-body .tablenav select, -.frm-white-body .tablenav input[type=text], -.wp-admin .frm_wrap .tablenav select, -.frm_wrap .tablenav input[type=date], -.frm_wrap .tablenav input[type=text] { - padding-top: 0; - padding-bottom: 0; - line-height: 1; -} - -.frm_wrap .tablenav ::-webkit-datetime-edit { - line-height: 1; -} - -.frm-fields button.btn, -.frm-fields textarea, -.frm-fields input[type=text], -.frm-fields select, -.field-group textarea, -.field-group input[type=text], -.field-group select, -.accordion-container input.hex, -.frm-fields .frm-input-field { - width: 100%; - outline: 0; -} - -.frm-fields button.btn { - height: var(--h-md); - text-align: inherit; -} - -.global-font .field-group input[type=text] { - width: auto; -} - -/** - * Component: Button Grey - */ -.wp-core-ui .frm_grey.frm-button-primary.disabled, -.wp-core-ui .frm_grey.frm-button-primary, -#frm-welcome .frm_grey { - opacity: 0.5; - background: #F6F6F6 !important; - border-color: #ddd !important; - color: #9FA5AA !important; -} - -/** - * Component: Scrollbars - */ -.windows::-webkit-scrollbar, -.windows ::-webkit-scrollbar { - width: 7px; - background: transparent; -} -.windows::-webkit-scrollbar-thumb, -.windows ::-webkit-scrollbar-thumb { - background: var(--grey-300); - -webkit-border-radius: var(--border-radius); - -webkit-box-shadow: none; -} -.windows::-webkit-scrollbar-corner, -.windows ::-webkit-scrollbar-corner { - background: transparent; -} - -.frm-scrollbar-wrapper, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list, -#frm_builder_page #frm_adv_info .frm_code_list, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div, -.frm-single-settings .frm_field_opts_list { - overflow-x: hidden; - overflow-y: auto !important; /* Enable scrolling */ - -ms-overflow-style: none; /* For IE and Edge */ - scrollbar-color: transparent transparent; /* Firefox Scrollbar - transparent by default and show on hover */ - scrollbar-width: thin; -} -.frm-scrollbar-wrapper:hover, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover, -#frm_builder_page #frm_adv_info .frm_code_list:hover, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover, -.frm-single-settings .frm_field_opts_list:hover { - scrollbar-color: var(--grey-300) transparent; /* Firefox Scrollbar - Show on hover with transparent background */ -} -.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div:hover::-webkit-scrollbar-thumb, -.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb { - background: var(--grey-300); /* Show scrollbar on hover */ -} -.frm-scrollbar-wrapper::-webkit-scrollbar, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar { - width: 3px; -} -.frm-scrollbar-wrapper::-webkit-scrollbar-track, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-track, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track { - background: transparent; /* Transparent background */ - border-radius: 100vw; /* Consistent radius with thumb */ -} -.frm-scrollbar-wrapper::-webkit-scrollbar-thumb, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 100vw; -} -.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover, -.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover, -#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover, -#frm_builder_page #frm_adv_info #taxonomy-linkcategory > div::-webkit-scrollbar-thumb:hover, -.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover { - background: var(--grey-300); /* Show scrollbar on hover */ -} - -/** - * Component: RTL - */ -.rtl h3 { - font-weight: inherit !important; -} - -.rtl.js .accordion-section-title::after { - left: 10px; - right: auto; -} - -.rtl #frm_top_bar #frm_bs_dropdown { - padding-left: 15px; -} - -.rtl .frm-full-close, -.rtl .frm_wrap .columns-2 .frm-right-panel + div, -.rtl .frm-right-panel { - border-left-width: 0; - border-right: 1px solid var(--grey-300); -} - -.rtl .frm-full-close { - padding-left: 0; - padding-right: var(--gap-md); -} - -.rtl .frm-text-right { - text-align: left; -} - -.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child { - border-left-width: 1px; -} - -.rtl .frm-dropdown-menu { - text-align: right; -} - -.rtl .frm_actions_dropdown .frm_icon_font { - float: right; - margin-right: 0; - margin-left: 3px; -} - -.rtl #frm-insert-fields-box, -.rtl #frm-conditionals { - padding-right: 0.9em; -} - -.rtl #html_settings .frm_field_html_box { - margin-right: 0; -} - -.rtl .frm_list_entry_page h2 { - float: right; -} - -.rtl .frm_scale { - float: right; - margin-left: 10px; - margin-right: 0; -} - -.rtl .frm-page-break .frm-collapse-page.button { - margin-left: 0; - margin-right: 46%; -} - -.rtl .frm-field-action-icons { - right: unset; - left: 2px; -} - -.rtl .frm_has_shortcodes > i { - right: auto; - left: 5px; -} - -.rtl p.frm_reply_to_container, -.rtl p.frm_bcc_cc_container { - float: left; -} - -.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg { - right: auto; - left: 0; -} - -.rtl .frm-inline-modal > a.dismiss { - left: 13px; - right: auto; -} - -.rtl.wp-admin .frm_wrap select { - padding-left: var(--gap-lg) !important; - padding-right: 5px !important; - background-position: left 11px top 55%; -} - -.rtl .frm_code_list.frm-full-hover a span { - margin-left: var(--gap-xs); -} - -.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child { - margin-left: unset; - margin-right: var(--gap-xs); -} -.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child { - margin-right: unset; - margin-left: var(--gap-xs); -} -.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline { - left: unset !important; - right: 0; -} -.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first { - right: var(--gap-xs); -} -.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last { - right: calc(-1 * var(--gap-xs)); -} - -.rtl .frm-unit-input .frm-input-group-suffix { - right: unset; - left: 1px; - padding-right: unset; - padding-left: var(--gap-xs); -} -.rtl .frm-unit-input .frm-input-group-suffix select { - text-align: left; - background-position: left 0 top 50%; - padding-left: 21px !important; -} - -/** - * Component: Clearfix - */ -span.clear { - display: block; -} - -.clearfix::after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - -.clearfix { - display: inline-block; -} - -/*Override styling from other plugins*/ -.frm_form_fields .clear { - height: auto; -} - -/* Hides from IE-mac \*/ -* html .clearfix { - height: 1%; -} - -.clearfix { - display: block; -} - -#frm_small_device_message_container { - display: none; -} - -/* End hide from IE-mac */ -/** - * Responsive Styles - * - * Media queries for desktop, tablet, and mobile devices - */ -@media only screen and (max-width: 1200px) { - .frm-addons { - grid-template-columns: 1fr 1fr; - } - #frm_top_bar h1 { - min-width: 0; /* Reset the min-width to prevent menu items from stacking vertically */ - } -} -@media only screen and (max-width: 1050px) { - .frm-white-body, - .frm_wrap { - --biggest-sidebar: 390px; - } - #form_settings_page .columns-2 { - margin: 0; - } - .frm_actions_list { - margin-left: 0; - } - #frm_bs_dropdown .frm_bstooltip { - /* There isn't enough room for the title on a screen this size so just hide it. */ - display: none !important; - } -} -@media only screen and (max-width: 960px) { - .frm-white-body, - .frm_wrap { - --gap-sm: 8px; - --gap-md: 16px; - --gap-2xl: 24px; - } - /* Revert settings panel gap variables to default */ - .frm-settings-panel { - --gap-sm: 16px; - --gap-md: 24px; - --gap-2xl: 32px; - } - .auto-fold #adminmenuwrap { - width: 36px; - } - .frm_wrap #postbox-container-1 #frm_adv_info { - min-width: 220px; - } - p.howto { - display: inline-block; - } - /* Fix: Issue where the admin page content had extra white space to the left on small screens */ - .auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container, - .auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container { - left: 36px; - } -} -@media only screen and (max-width: 850px) { - .frm-white-body, - .frm_wrap { - --biggest-sidebar: 350px; - --big-sidebar: 350px; - } - .frm_col_one { - clear: none; - } - .frm-fields p > .frm_inline_label, - .frm_inline_label { - display: block; - margin: 5px 0; - } - #frm_top_bar h1 { - width: auto; - max-width: 200px; - } - #frm-publishing { - width: auto; - } - #frm_form_editor_container, - .frm-entry-container { - margin: 0 20px; - } - .frm_wrap .frm-search { - float: none !important; - width: auto; - clear: both; - } - .post-type-frm_display #frm_adv_info { - top: auto !important; - position: static; - width: auto; - } - .frm_wrap .frm-right-panel #frm_adv_info, - .frm_wrap #postbox-container-1 #frm_adv_info { - min-width: 275px; - } - .frm_wrap #frm_adv_info ul.category-tabs li, - .frm_wrap #frm_adv_info ul.category-tabs li.tabs { - border: none; - } - .frm_wrap #frm_adv_info ul.category-tabs li:first-child { - margin-left: 12px; - } - .frm_wrap #frm_adv_info ul.category-tabs li.tabs { - border-bottom: 2px solid #5b9dd9; - padding-bottom: 8px; - } - .post-type-frm_display #poststuff { - padding: 10px 25px; - } - .post-type-frm_display #side-sortables .postbox { - margin-bottom: 20px; - border-radius: var(--small-radius); - border-top-width: 1px; - } - #frm_top_bar .frm_form_nav { - box-shadow: 0 -0.47px 10px 0 rgba(16, 24, 40, 0.0588235294); - } - #frm_top_bar ul.frm_form_nav { - padding: 1em 0; - position: fixed; - bottom: 0; - width: 100%; - background: white; - z-index: 99; - transform: translate(-50%, 0); - left: 50%; - } - .frm_page_container > .columns-2, - #frm_styler_wrapper { - padding-bottom: 64px; - } - #frm_style_preview .frm_floating_style_button:not(.frm_hidden) { - position: static; - display: inline-block; - } - .frm_wrap .columns-2 .frm-right-panel { - padding-bottom: 0; - } - #frm-publishing { - margin-left: auto; - } - #frm_top_bar > .frm-full-close:last-child { - margin-left: 0; - } - #frm_bs_dropdown { - display: block; - } - #frm_bs_dropdown .frm_bstooltip { - display: block !important; - } -} -@media only screen and (max-width: 782px) { - .frm-white-body, - .frm_wrap { - --small-sidebar: 20%; - --medium-sidebar: 35% ; - } - #form_settings_page .advanced_settings .form-table td, .form-table th { - display: table-cell; - width: auto !important; - } - .frm-white-body #publishing-action, - .frm_wrap #publishing-action { - line-height: normal; - } - .frm-white-body #screen-meta-links { - display: none; - } - .frm_wrap .misc-pub-section { - padding: 6px 0; - } - .frm_wrap .misc-pub-section > a { - float: none; - white-space: nowrap; - } - .frm-form-setting-tabs a { - position: relative; - padding: 10px 5px 10px 40px; - } - .frm-form-setting-tabs a .frmsvg, - .frm-form-setting-tabs a i { - position: absolute; - left: 13px; - top: calc(50% - 10px); - margin: 0; - } - #frm-insert-fields .button, - #frm-insert-fields .button a, - .frmbutton.ui-sortable-helper a { - line-height: 26px; - max-height: 28px; - } - a.frm_add_logic_link { - margin-left: 0; - margin-right: 0; - width: 100%; - box-sizing: border-box; - } - a.frm_add_logic_link:not([id^=logic_]) .frmsvg, - a.frm_add_logic_link i { - display: none; - } - #new_fields .frm_single_option select, - #new_fields .frm_single_option input[type=text] { - width: calc(100% - 83px); - } - .frm_single_entry_page .frm_form_fields input[type=text], - .frm_single_entry_page .frm_form_fields select, - .frm_single_entry_page .frm_form_fields textarea { - width: 100%; - } - .with_frm_style .frm_radio input[type=radio], - .with_frm_style .frm_checkbox input[type=checkbox] { - width: 25px !important; - } - .frm_single_entry_page .with_frm_style .frm_radio input[type=radio], - .frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox] { - width: 18px !important; - } - .wp-list-table.toplevel_page_formidable .column-entries, - .wp-list-table.toplevel_page_formidable .column-form_key, - .wp-list-table.toplevel_page_formidable .column-shortcode, - .wp-list-table.toplevel_page_formidable .column-created_at { - display: none !important; - } - .wp-list-table.toplevel_page_formidable td.column-entries, - .wp-list-table.toplevel_page_formidable td.column-form_key, - .wp-list-table.toplevel_page_formidable td.column-shortcode, - .wp-list-table.toplevel_page_formidable td.column-created_at { - padding: 3px 8px 3px 35%; - text-align: left; - } - #form_entries_page .wp-list-table th.frm_hidden, - #form_entries_page .wp-list-table td.frm_hidden { - display: none !important; - } - .frm-white-body.auto-fold #wpcontent { - padding-left: 0; - } - .frm_right_addon .frm_remove_field { - bottom: 11px; - } - .frm-addons { - grid-template-columns: 1fr; - } - .frm-admin-page-styles .frm_page_container, - .frm_wrap .frm_page_container { - left: 0 !important; - } - .frm_single_entry_page.frm_wrap .columns-2 { - display: block; - border-bottom: none; - } - .frm_single_entry_page .wrap.frm-with-margin { - margin: 10px 20px; - } - .frm_single_entry_page #post-body-content + .frm-right-panel { - width: auto; - margin: 0 20px; - border: 1px solid var(--sidebar-hover); - border-radius: 6px; - } - #wp-content-media-buttons a.frm_insert_form { - padding: 0 var(--gap-sm); - } - .frm-white-body input[type=checkbox]:checked::before, - .frm_wrap input[type=checkbox]:checked::before { - width: 1.2rem; - height: 1.2rem; - } -} -@media only screen and (max-width: 700px) { - .frm-white-body, - .frm_wrap { - --biggest-sidebar: 50%; - --big-sidebar: 50%; - } -} -@media only screen and (max-width: 600px) { - .frm-white-body, - .frm_wrap { - --small-sidebar: 45px; - } - .frm-form-setting-tabs a { - visibility: collapse; - font-size: 0; - padding: 0 var(--gap-sm); - } - .frm-form-setting-tabs a .frmsvg, - .frm-form-setting-tabs a i { - visibility: visible; - position: initial; - font-size: 18px; - } - #frm_builder_page #frm-insert-fields { - padding: 0; - } - .frm_wrap #frm_adv_info ul.category-tabs li { - display: inline-block; - padding: 0; - margin: 2px 0; - border-bottom: 2px solid transparent; - } - .frm_wrap #frm_adv_info ul.category-tabs li.tabs, - .frm_wrap #frm_adv_info ul.category-tabs li:first-child { - margin-left: 0; - padding: 0; - } - .field_type_list li { - text-align: center; - } - #frm-insert-fields li a { - padding: 5px; - } - #frm_form_editor_container .frm_primary_label { - clear: both; - } - #frm_builder_page .frm_code_list a.button { - padding: 2px; - } - #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { - right: 0; - left: auto; - } - .frm-right-panel h3.accordion-section-title { - padding-right: 10px; - padding-left: 10px; - font-size: 20px; - white-space: nowrap; - overflow: hidden; - } - .frm-right-panel .accordion-section-title::before { - margin-left: 0; - margin-right: 3px; - } - .rtl #frm_builder_page .frm_actions_dropdown > .frm-dropdown-menu { - right: auto; - left: 0; - } - .frm_on_submit_type svg { - display: none; - } -} -@media only screen and (max-width: 475px) { - #frm_bs_dropdown { - float: none; - } - #frm-nav-tabs { - padding: 0; - white-space: nowrap; - } - #frm-nav-tabs a { - margin-right: 0; - } - #frm_small_device_message_container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - position: fixed; - top: 0; - width: 100%; - height: 100%; - z-index: 999999; - background: var(--primary-500); - } - #frm_small_device_message { - text-align: center; - display: flex; - flex-direction: column; - align-items: center; - width: 80%; - padding: 1rem; - background: #fff; - border: solid 1px #fff; - border-radius: var(--medium-radius); - } - #frm_small_device_message::before { - content: ""; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-78%, -65%); - width: 900px; - height: 900px; - background-color: #0D7DFC; - border-radius: 50%; - z-index: -1; - opacity: 0.3; - } - #frm_small_device_message > svg { - padding-bottom: 1rem; - } - .toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter, - .post-type-frm_display:has(#frm_small_device_message_container) #posts-filter { - display: none; - } -} -@media print { - a, .misc-pub-section a { - color: #000 !important; - } - .add-new-h2, #frm_top_bar, .dashicons, - #adminmenuwrap, #adminmenuback, #wphead, #button_bar, #submitdiv, .button-secondary, - #screen-metas, #screen-meta-links, #footer, #wpfooter, .inner-sidebar, .frm_form_nav, - .frm_flash_graph, .frm_no_print, object, .error { - visibility: hidden; - display: none !important; - } - .widget, .postbox, .stuffbox, .postbox h3 { - border-width: 0 !important; - border-color: #fff; - } - .postbox { - background: #fff !important; - border: none; - position: static; - } - .postbox h3, .postbox h4 { - background: #fff !important; - } - #wpbody-content { - float: none; - } - #wpcontent, #post-body-content, - .has-right-sidebar #post-body, - #poststuff .columns-2 { - margin: 0 !important; - } - .frm_wrap #poststuff .columns-2 { - display: block; - } - #post-body-content + .frm-right-panel, - .frm_wrap .columns-2 .frm-right-panel, - .frm-right-panel { - border: none; - width: auto; - display: block; - padding: 20px; - } - .frm_wrap .columns-2, - .frm_wrap .frm_page_container { - height: auto; - display: block; - } - .misc-pub-section > span { - padding: 0; - } - .frm-right-panel .postbox .inside { - padding-left: 12px; - padding-right: 12px; - } - .curtime #timestamp::before { - display: none; - content: none !important; - } - .frm_charts .alignleft { - float: none; - } - .pg_odd, .pg_even { - page-break-inside: avoid; - max-width: 600px; - } - .form-table td, .form-table th { - padding: 0; - } - .frm_file_container a { - display: block; - width: 100%; - } -} -/** - * Extended Components - * - * Additional components loaded after the main layout - */ -/** - * Layout: Publishing - */ -.frm-admin-page-styles #frm-publishing #save_menu_header, -.frm-admin-page-styles2 #frm-publishing #save_menu_header { - display: inline-block; -} - -/* Change the order of subfields of the Name field in the backend */ -.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first { - order: 2; -} - -.frm-video-wrapper iframe { - width: 100%; - max-width: 843px; - border-radius: var(--border-radius); -} - -/** - * Field group popup and related functionality - */ -#frm_field_group_popup { - position: absolute; - top: 0; - right: 0; - width: 366px; - max-height: 231px; - border-radius: 8px; - background: #fff; - box-shadow: 0 20px 48px rgba(40, 47, 54, 0.15); - z-index: 3; - box-sizing: border-box; - padding: 24px 0; - text-align: left; -} - -.rtl #frm_field_group_popup { - text-align: right; -} - -.frm-merge-fields-into-row #frm_field_group_popup { - top: unset; - bottom: 50px; - height: 196px; -} - -#frm_field_group_popup > hr { - margin: 12px 0; -} - -#frm_field_group_popup .frm-cancel-custom-field-group-layout, -#frm_field_group_popup .frm-save-custom-field-group-layout { - padding: 4px 18px; -} - -#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover { - border-color: var(--primary-500) !important; - color: var(--primary-500); - background-color: transparent !important; -} - -.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group { - display: none; -} - -.frm-merge-fields-into-row > a { - color: rgba(40, 47, 54, 0.85); - position: relative; - top: 2px; -} - -.frm-row-layout-title { - font-weight: 600; - font-size: 11px; - line-height: 15px; - text-transform: uppercase; - color: rgba(40, 47, 54, 0.45); - margin-bottom: 27px; -} - -.frm-row-layout-option { - background: #F6F7FB; - box-sizing: border-box; - border-radius: 2px; - padding: 15px 10px; -} - -#frm_field_group_popup .frm-row-layout-option .frm_grid_container { - grid-gap: 0 5%; - grid-template-columns: repeat(12, auto); -} - -#frm_field_group_popup .frm-row-layout-option { - cursor: pointer; - border: 2px solid transparent; -} - -#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout, -#frm_field_group_popup .frm-row-layout-option:hover { - border-color: var(--primary-500); -} - -.frm-custom-field-group-layout, -.frm-break-field-group { - padding: 4px 24px; - cursor: pointer; - font-size: var(--text-sm); - line-height: 19px; - color: rgb(72, 78, 84); -} - -.frm-custom-field-group-layout:hover, -.frm-break-field-group:hover { - background-color: rgba(245, 245, 245, 0.9607843137); -} - -.frm-custom-field-group-layout svg, -.frm-break-field-group svg { - margin-right: 5px; -} - -/** - * Field multiselect popup - */ -#frm_field_multiselect_popup { - background: white; - height: 48px; - position: fixed; - border-radius: 4px; - box-shadow: 0 8px 24px rgba(40, 47, 54, 0.15); - color: rgba(40, 47, 54, 0.85); - font-size: 13px; - right: 30px; - bottom: 10px; - z-index: 2; -} - -#frm_field_multiselect_popup > div { - display: inline-block; - line-height: 48px; - vertical-align: top; -} - -#frm_field_multiselect_popup.frm-unmergable > .frm-merge-fields-into-row, -#frm_field_multiselect_popup.frm-unmergable > .frm-multiselect-popup-separator { - display: none; -} - -#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator) { - padding: 0 20px; - cursor: pointer; -} - -#frm_field_multiselect_popup > div:not(.frm-multiselect-popup-separator):hover { - background: rgba(245, 245, 245, 0.9607843137); -} - -.frm-builder-popup-heading { - font-weight: 600; - font-size: 11px; - line-height: 15px; - text-transform: uppercase; - color: rgba(40, 47, 54, 0.45); - margin-bottom: 7px; -} - -.frm-builder-popup-subheading { - font-size: 12px; - line-height: 16px; - color: rgba(40, 47, 54, 0.45); -} - -#frm_field_group_popup input[type=text] { - height: 30px; - border-radius: 3px; - font-size: 14px; - padding: 8px; - color: rgb(84, 95, 110); - border-color: rgba(40, 47, 54, 0.2); -} - -.frm-multiselect-popup-separator { - height: 36px; - width: 1px; - position: relative; - top: 6px; - background: #C4C4C4; -} - -.frm-sortable-helper, -.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider) { - pointer-events: none; -} - -.frm-sortable-helper { - /* Make sure the item being dragged appears above other form builder fields */ - z-index: 99; -} - -/** - * Component: Banner Notification - */ -#frm_banner { - width: 100%; - color: #fff; - background: var(--primary-500); - height: 40px; - line-height: 40px; - text-align: center; - position: relative; -} - -.frm-banner-emoji { - font-size: 19px; -} - -.frm-banner-emoji, -.frm-banner-title { - margin-right: 5px; - vertical-align: top; -} - -.frm-banner-cta a { - text-decoration: underline !important; -} - -#frm_banner .frm-banner-cta a.frm_inbox_dismiss { - display: none; -} - -.frm-banner-dismiss { - cursor: pointer; - position: absolute; - right: 10px; - top: 50%; - transform: translateY(-50%); -} - -.frm-banner-dismiss .frmsvg { - vertical-align: top; -} - -/** - * Ready-made solution styles - */ -.frm-ready-made-solution:not(.frm-search-result) { - display: none !important; -} - -#frm_leave_email_wrapper .frmsvg { - top: 0; -} - -#frm-add-my-email-address { - margin-top: 30px; -} - -.frm-ready-made-solution h3 ~ a { - color: var(--primary-500); -} - -.frm-ready-made-solution img { - max-width: 100%; - display: block; - box-shadow: var(--box-shadow-lg); -} - -/** - * Component: On Submit Action - */ -.frm_single_on_submit_settings .frm_form_field { - margin: 22px 0; -} - -.frm_on_submit_type_setting { - padding: 8px 0; -} - -.frm_on_submit_type label { - display: flex; - border: 1px solid var(--grey-border); - border-radius: var(--small-radius); - gap: 16px; - padding: 16px; - align-items: center; - justify-content: center; -} - -.frm_on_submit_type input { - opacity: 0 !important; - position: absolute; - z-index: -1; -} - -.frm_on_submit_type input[type=radio]:checked + label { - border-color: var(--primary-color); - box-shadow: 0 0 0 1px var(--primary-color); -} - -#form_settings_page .frm_on_submit_type label:hover, -.frm_on_submit_type input[type=radio]:checked + label svg { - color: var(--primary-color); -} - -/** - * Component: Call-to-Action - */ -.frm_pro_tip, -.frm-cta { - justify-content: space-between; - align-items: center; - gap: var(--gap-2xl); - padding: var(--gap-xs) var(--gap-sm); - border-radius: var(--small-radius); - background: var(--primary-25); -} - -.frm-cta.frm-cta-border { - border: 1px solid var(--primary-200); -} - -.frm-cta.frm-cta-border .frm-cta-footer { - background-color: #fff; - padding: 12px var(--gap-sm); - border-top: 1px solid var(--primary-200); - border-bottom-left-radius: var(--small-radius); - border-bottom-right-radius: var(--small-radius); - margin-top: 12px; - margin-bottom: calc(-1 * var(--gap-sm)); - margin-left: calc(-1 * var(--gap-sm)); - margin-right: calc(-1 * var(--gap-sm)); -} - -.frm-cta h4 { - font-weight: 600; - margin-top: 0; - margin-bottom: var(--gap-2xs); -} - -.frm-cta-green { - background-color: var(--success-25); -} - -.frm-cta-green .frm-banner-title { - gap: calc(var(--gap-2xs) + 1px); - color: var(--grey-700); -} - -.frm-cta-green.frm-cta-border { - border-color: var(--success-100); -} - -.frm-cta-green.frm-cta-border .frm-cta-footer { - border-color: var(--success-100); -} - -.frm-cta-red { - background-color: var(--error-25); -} - -.frm-cta-red.frm-cta-border { - border-color: var(--error-100); -} - -.frm-cta-icon { - padding: 3px 15px 3px 0; - border-right: 1px solid currentColor; -} - -#frm-upgrade-banner { - gap: 0; -} - -#frm-upgrade-banner .frm-cta-icon + .frm-cta-content { - margin-right: auto; - padding-left: 15px; -} - -#frm-upgrade-banner.frm-gradient h4, -#frm-upgrade-banner.frm-gradient p { - color: currentColor; -} - -#frm-upgrade-banner.frm-gradient h4 { - font-size: 16px; - font-weight: 600; -} - -#frm-upgrade-banner.frm-gradient p { - font-size: 14px; -} - -.frm-right-panel .inside .frm_pro_tip, -.frm_pro_tip { - color: var(--grey-700); - background: #FFE7DE; - margin: 0 auto; - display: flex; - gap: var(--gap-xs); -} - -.frm_field_list .frm_pro_tip { - margin: 10px 15px; - position: relative; - width: calc(100% - 30px); - box-sizing: border-box; - font-size: 14px; -} - -.frm_pro_tip .frmsvg, -.frm_pro_tip i { - color: var(--orange); -} - -.frm-tip-info { - flex: 1; - text-align: left; -} - -.frm-tip-cta { - color: var(--orange); -} - -.frm-gradient .frm-tip-cta, -.frm-light-tip .frm-gradient .frm-tip-cta { - color: currentColor; - font-weight: 700; -} - -.frm-tip-badge { - font-size: 9px; - font-weight: 700; - text-transform: uppercase; - color: #1E63D5; - background-color: #fff; - line-height: 1; - border-radius: 4px; - padding: 3px 4px; -} - -.frm-light-tip .frm_pro_tip { - background: var(--primary-25); -} - -.frm-light-tip .frm_pro_tip .frmsvg, -.frm-light-tip .frm_pro_tip i, -.frm-light-tip .frm-tip-cta { - color: var(--primary-500); -} - -.nav-tab-wrapper .frm_pro_tip { - float: right; -} - -/** - * Component: Form Templates Modal - */ -/* Start confirm and form templates modals */ -#frm-form-templates-modal textarea { - height: 108px; -} - -#frm-form-templates-modal .frm-fields button.btn { - border-color: var(--grey-300); - color: var(--grey-900); - cursor: pointer; -} - -#frm-form-templates-modal .frm-fields button.btn .frmsvg { - color: var(--grey-400); - width: 14px; - height: 14px; -} - -#frm-form-templates-modal .frm-form-templates-modal-fieldset { - position: relative; -} - -#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg { - padding: 0; - top: 0; - left: 13px; -} - -/* Fixes pro issue #3508, prevent a conflict that hides the postbox in modal */ -#frm-form-templates-modal .postbox { - display: block !important; -} - -/* Leave email modal */ -#frm_empty_inbox #frm-leave-email-modal { - margin-top: var(--gap-2xl); -} - -/* Name your form modal */ -#frm-name-your-form-modal .frm_modal_top { - padding-top: var(--gap-sm); -} - -/* End confirm and form templates modals */ -/** - * Component: Field Group Message - */ -#frm-field-group-message { - position: absolute; - bottom: 32px; - right: calc(50% - var(--biggest-sidebar)); - padding: var(--gap-xs) var(--gap-sm); - border-radius: 100px; - background-color: var(--primary-25); -} - -#frm-field-group-message .frm-field-group-message-text { - gap: 10px; - color: var(--grey-800); -} - -#frm-field-group-message-dismiss { - margin-left: var(--gap-xs); -} - -#frm-field-group-message-dismiss .frmsvg { - color: var(--grey-800); - width: 15px; - height: 15px; - cursor: pointer; - transition: color 300ms ease-in-out; -} - -#frm-field-group-message-dismiss .frmsvg:hover { - color: var(--grey-500); -} - -/** - * Component - Card Item - */ -.frm-card-item { - display: flex; - border: 1px solid var(--grey-200); - border-radius: var(--small-radius); - padding: var(--gap-sm); - box-shadow: var(--box-shadow-xs); - background: #FFF; -} - -.frm-card-item:not(.frm-counter-card) { - gap: 10px; -} - -.frm-compact-card-item { - padding: var(--gap-sm) 35px 10px 35px; -} - -.frm-card-bottom { - background-color: var(--grey-50); - margin-left: calc(var(--gap-sm) * -1); - margin-bottom: calc(var(--gap-sm) * -1); - margin-right: calc(var(--gap-sm) * -1); - padding: var(--gap-sm); - border-radius: 0 0 var(--small-radius) var(--small-radius); -} - -/** - * Component: Pirate Forms Importer - */ -#welcome-panel:has(#frm_form_pf_importer) { - background-color: #fff; - margin: var(--gap-sm) var(--gap-md) var(--gap-md); - line-height: 2; -} - -#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content { - text-align: start !important; - min-height: unset; - display: block; -} - -#frm_form_pf_importer div { - margin: 10px 0 !important; -} - -#frm_form_pf_importer button { - border: 1px solid var(--primary-500); - padding: 7px 16px; - min-height: 28px; - line-height: var(--leading); - margin-bottom: 0; - background: var(--primary-500); - color: #fff !important; -} - -#frm_form_pf_importer button:hover { - background: #135e96; - border-color: #135e96; -} - -/** - * Component: Option Box - */ -.frm-option-box { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 14px; - font-weight: 500; - background-color: #fff; - padding: 12px var(--gap-sm); - border: 1px solid var(--grey-200); - border-radius: var(--small-radius); - margin-bottom: var(--gap-xs); - transition: background-color 100ms ease-out; - cursor: pointer; -} - -.frm-option-box:hover { - background-color: var(--grey-25); -} - -.frm-option-box.frm-checked { - background-color: var(--primary-25); - border-color: var(--primary-200); -} - -.frm-option-box.frm-disabled { - cursor: default; -} - -.frm-option-box input[type=checkbox] { - margin: 0; -} - -.frm-option-box.frm-disabled input[type=checkbox] { - opacity: 0.5; -} - -.frm-option-box .frm_help .frmsvg { - width: 12px; - height: 12px; -} - -/** - * Component: Validation Error - */ -.frm-validation-error:not(.frm_hidden) { - display: flex; -} - -.frm-validation-error { - gap: calc(var(--gap-xs) + var(--gap-2xs)); -} - -.frm-validation-error span { - color: var(--error-500); -} - -.frm-validation-error span[frm-error] { - display: none; -} - -.frm-validation-error[frm-error=empty] span[frm-error=empty], -.frm-validation-error[frm-error=invalid] span[frm-error=invalid], -.frm-validation-error[frm-error=custom] span[frm-error=custom] { - display: inline-block; -} - -/** - * Utility: Box - */ -.frm-box { - padding: var(--gap-sm); - border: 1px solid var(--grey-200); - border-radius: var(--small-radius); -} - -/** - * External Link styles - */ -.frm-link-with-external-icon { - display: flex; - align-items: center; - gap: var(--gap-2xs); - font-size: var(--text-xs); -} - -.frm-link-with-external-icon .frmsvg { - width: 16px; - height: 16px; - transform: rotate(45deg); -} - -/** - * Page Skeleton - * - * Manages the layout and appearance of the page's content area. - */ -/* Core Styles for the Page */ -#wpbody-content .frm-page-skeleton { - /* Sidebar Styles */ - /* Scrollbar */ - /* Search */ -} -#wpbody-content .frm-page-skeleton ul, -#wpbody-content .frm-page-skeleton li { - margin: 0; -} -#wpbody-content .frm-page-skeleton .frm-right-panel { - padding: 2px; - overflow-y: initial; -} -#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper { - padding: var(--gap-md) var(--gap-sm); -} -#wpbody-content .frm-page-skeleton .frm-search { - float: none; - padding: 0 var(--gap-2xs); -} -#wpbody-content .frm-page-skeleton .frm-search > svg { - left: var(--gap-2xs); -} -#wpbody-content .frm-page-skeleton .frm-search > input { - width: 100%; -} - -/* Categories */ -.frm-page-skeleton-cat { - cursor: pointer; - padding: var(--gap-xs); - border-radius: var(--small-radius); - background-color: transparent; - transition: background-color 250ms ease-out; -} -.frm-page-skeleton-cat:hover { - background-color: var(--grey-100); -} -.frm-page-skeleton-cat > * { - z-index: 2; -} - -.frm-page-skeleton-cat-text { - color: var(--grey-900); - text-transform: capitalize; -} - -.frm-page-skeleton-cat-count { - color: var(--grey-400); -} - -.frm-current .frm-page-skeleton-cat-text, -.frm-current .frm-page-skeleton-cat-count { - color: var(--primary-500); -} - -/* Page Content Styles */ -.frm-list-grid-layout { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(303px, 1fr)); - grid-auto-rows: max-content; - gap: var(--gap-sm); -} -.frm-list-grid-layout > * { - grid-column: span 1; -} - -/* Empty State Styles */ -#frm-page-skeleton-empty-state { - height: 100%; - margin-top: calc(-1 * var(--gap-md)); -} -#frm-page-skeleton-empty-state .frm-page-skeleton-text { - max-width: 420px; -} - -/* Helper Classes */ -.frm-page-skeleton-divider { - border-top: 1px solid var(--grey-200); - margin: 0; -} - -/** - * Submit field styles - */ -.field_type_list .frm_tsubmit { - display: none !important; -} - -/** - * Component: Accordion Title - */ -#frm_style_sidebar .accordion-section-title::after, -#frm_view_editor_left .accordion-section-title::after { - content: ""; -} - -a[href="#square_settings"] svg.frmsvg { - width: 23px !important; - height: 22px !important; -} - -#frm_square_test_setup_modal a:focus { - box-shadow: none !important; -} - -@media only screen and (max-width: 900px) { - #square_settings .frm_grid_container:has(.frm-card-item) { - grid-template-columns: repeat(1, 1fr); - } - #square_settings .frm-card-item + .frm-card-item { - margin-top: var(--gap-sm); - } -} -#frm_sale_banner { - display: flex; - height: 90px; - flex-direction: row; - align-items: center; - gap: var(--gap-sm); - cursor: pointer; - position: relative; -} -#frm_sale_banner > div:first-child { - align-self: flex-end; - width: 150px; - height: 100%; - display: flex; - justify-content: center; -} -#frm_sale_banner > div:first-child img { - align-self: center; -} -#frm_sale_banner > div:nth-child(3) { - margin-left: auto; - margin-right: 50px; -} -#frm_sale_banner > div:nth-child(2) > div:last-child { - opacity: 0.8; -} -#frm_sale_banner a:not(.dismiss) { - text-shadow: none; - border-radius: 30px; - border: 1px transparent; - font-size: var(--text-sm); - padding: 7px 16px; - height: auto; - min-height: 28px; - outline: none; - line-height: var(--leading); - box-sizing: border-box; - margin-bottom: 0; - display: inline-block; - font-weight: 700; - background-color: #fff; - color: #000; -} -#frm_sale_banner .dismiss { - position: absolute; - color: #fff; - opacity: 0.6; - right: 15px; - top: 10px; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"] { - background-color: #F0F0F0 !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"] { - background-color: #E6470F !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"] { - background-color: #ED1D34 !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"] { - background-color: #3E041A !important; -} -#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"] { - background-color: #362630 !important; -} - -.frm-get-free-templates-banner { - flex-grow: 1; -} -.frm-get-free-templates-banner .frm-banner-image-wrapper { - display: flex; - justify-content: center; - align-items: flex-end; - background-color: var(--primary-25); - padding: 19px 14px 0; - border-radius: var(--small-radius); -} -.frm-get-free-templates-banner[data-direction=vertical] { - flex-direction: column; - align-items: stretch; - gap: 12px; -} -.frm-get-free-templates-banner[data-direction=vertical] .frm-banner-content { - align-items: center; - text-align: center; -} - -/** - * Backwards Compatibility - */ -.frm-lookup-box-label { - display: none; -} - -.frm-inline-modal[id^=frm-lookup-box] { - background-color: transparent; - border: 0; - box-shadow: none; -} -.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs, -.frm-inline-modal[id^=frm-lookup-box] .dismiss { - display: none; -} - -.frm_single_option a.frm_remove_tag svg, -.frm_single_option a.frm_add_opt svg { - width: 15px; - height: 15px; -} - -#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame { - margin-left: 12px; -} - -/*# sourceMappingURL=frm_admin.css.map*/ \ No newline at end of file + */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.wp-core-ui .frm_grey.frm-button-primary.disabled,.wp-core-ui .frm_grey.frm-button-primary,#frm-welcome .frm_grey{opacity:.5;background:#f6f6f6 !important;border-color:#ddd !important;color:#9fa5aa !important}.windows::-webkit-scrollbar,.windows ::-webkit-scrollbar{width:7px;background:rgba(0,0,0,0)}.windows::-webkit-scrollbar-thumb,.windows ::-webkit-scrollbar-thumb{background:var(--grey-300);-webkit-border-radius:var(--border-radius);-webkit-box-shadow:none}.windows::-webkit-scrollbar-corner,.windows ::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.frm-scrollbar-wrapper,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list,#frm_builder_page #frm_adv_info .frm_code_list,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div,.frm-single-settings .frm_field_opts_list{overflow-x:hidden;overflow-y:auto !important;-ms-overflow-style:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.frm-scrollbar-wrapper:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover,#frm_builder_page #frm_adv_info .frm_code_list:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover,.frm-single-settings .frm_field_opts_list:hover{scrollbar-color:var(--grey-300) rgba(0,0,0,0)}.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb{background:var(--grey-300)}.frm-scrollbar-wrapper::-webkit-scrollbar,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar{width:3px}.frm-scrollbar-wrapper::-webkit-scrollbar-track,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-track,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover{background:var(--grey-300)}.rtl h3{font-weight:inherit !important}.rtl.js .accordion-section-title::after{left:10px;right:auto}.rtl #frm_top_bar #frm_bs_dropdown{padding-left:15px}.rtl .frm-full-close,.rtl .frm_wrap .columns-2 .frm-right-panel+div,.rtl .frm-right-panel{border-left-width:0;border-right:1px solid var(--grey-300)}.rtl .frm-full-close{padding-left:0;padding-right:var(--gap-md)}.rtl .frm-text-right{text-align:left}.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child{border-left-width:1px}.rtl .frm-dropdown-menu{text-align:right}.rtl .frm_actions_dropdown .frm_icon_font{float:right;margin-right:0;margin-left:3px}.rtl #frm-insert-fields-box,.rtl #frm-conditionals{padding-right:.9em}.rtl #html_settings .frm_field_html_box{margin-right:0}.rtl .frm_list_entry_page h2{float:right}.rtl .frm_scale{float:right;margin-left:10px;margin-right:0}.rtl .frm-page-break .frm-collapse-page.button{margin-left:0;margin-right:46%}.rtl .frm-field-action-icons{right:unset;left:2px}.rtl .frm_has_shortcodes>i{right:auto;left:5px}.rtl p.frm_reply_to_container,.rtl p.frm_bcc_cc_container{float:left}.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg{right:auto;left:0}.rtl .frm-inline-modal>a.dismiss{left:13px;right:auto}.rtl.wp-admin .frm_wrap select{padding-left:var(--gap-lg) !important;padding-right:5px !important;background-position:left 11px top 55%}.rtl .frm_code_list.frm-full-hover a span{margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:unset;margin-right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:unset;margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline{left:unset !important;right:0}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first{right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last{right:calc(-1*var(--gap-xs))}.rtl .frm-unit-input .frm-input-group-suffix{right:unset;left:1px;padding-right:unset;padding-left:var(--gap-xs)}.rtl .frm-unit-input .frm-input-group-suffix select{text-align:left;background-position:left 0 top 50%;padding-left:21px !important}span.clear{display:block}.clearfix::after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:inline-block}.frm_form_fields .clear{height:auto}* html .clearfix{height:1%}.clearfix{display:block}#frm_small_device_message_container{display:none}@media only screen and (max-width: 1200px){.frm-addons{grid-template-columns:1fr 1fr}#frm_top_bar h1{min-width:0}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin:0}.frm_actions_list{margin-left:0}#frm_bs_dropdown .frm_bstooltip{display:none !important}}@media only screen and (max-width: 960px){.frm-white-body,.frm_wrap{--gap-sm: 8px;--gap-md: 16px;--gap-2xl: 24px}.frm-settings-panel{--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 32px}.auto-fold #adminmenuwrap{width:36px}.frm_wrap #postbox-container-1 #frm_adv_info{min-width:220px}p.howto{display:inline-block}.auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container,.auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container{left:36px}}@media only screen and (max-width: 850px){.frm-white-body,.frm_wrap{--biggest-sidebar: 350px;--big-sidebar: 350px}.frm_col_one{clear:none}.frm-fields p>.frm_inline_label,.frm_inline_label{display:block;margin:5px 0}#frm_top_bar h1{width:auto;max-width:200px}#frm-publishing{width:auto}#frm_form_editor_container,.frm-entry-container{margin:0 20px}.frm_wrap .frm-search{float:none !important;width:auto;clear:both}.post-type-frm_display #frm_adv_info{top:auto !important;position:static;width:auto}.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{min-width:275px}.frm_wrap #frm_adv_info ul.category-tabs li,.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border:none}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:12px}.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border-bottom:2px solid #5b9dd9;padding-bottom:8px}.post-type-frm_display #poststuff{padding:10px 25px}.post-type-frm_display #side-sortables .postbox{margin-bottom:20px;border-radius:var(--small-radius);border-top-width:1px}#frm_top_bar .frm_form_nav{box-shadow:0 -0.47px 10px 0 rgba(16,24,40,.0588235294)}#frm_top_bar ul.frm_form_nav{padding:1em 0;position:fixed;bottom:0;width:100%;background:#fff;z-index:99;transform:translate(-50%, 0);left:50%}.frm_page_container>.columns-2,#frm_styler_wrapper{padding-bottom:64px}#frm_style_preview .frm_floating_style_button:not(.frm_hidden){position:static;display:inline-block}.frm_wrap .columns-2 .frm-right-panel{padding-bottom:0}#frm-publishing{margin-left:auto}#frm_top_bar>.frm-full-close:last-child{margin-left:0}#frm_bs_dropdown{display:block}#frm_bs_dropdown .frm_bstooltip{display:block !important}}@media only screen and (max-width: 782px){.frm-white-body,.frm_wrap{--small-sidebar: 20%;--medium-sidebar: 35% }#form_settings_page .advanced_settings .form-table td,.form-table th{display:table-cell;width:auto !important}.frm-white-body #publishing-action,.frm_wrap #publishing-action{line-height:normal}.frm-white-body #screen-meta-links{display:none}.frm_wrap .misc-pub-section{padding:6px 0}.frm_wrap .misc-pub-section>a{float:none;white-space:nowrap}.frm-form-setting-tabs a{position:relative;padding:10px 5px 10px 40px}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{position:absolute;left:13px;top:calc(50% - 10px);margin:0}#frm-insert-fields .button,#frm-insert-fields .button a,.frmbutton.ui-sortable-helper a{line-height:26px;max-height:28px}a.frm_add_logic_link{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}a.frm_add_logic_link:not([id^=logic_]) .frmsvg,a.frm_add_logic_link i{display:none}#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 83px)}.frm_single_entry_page .frm_form_fields input[type=text],.frm_single_entry_page .frm_form_fields select,.frm_single_entry_page .frm_form_fields textarea{width:100%}.with_frm_style .frm_radio input[type=radio],.with_frm_style .frm_checkbox input[type=checkbox]{width:25px !important}.frm_single_entry_page .with_frm_style .frm_radio input[type=radio],.frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox]{width:18px !important}.wp-list-table.toplevel_page_formidable .column-entries,.wp-list-table.toplevel_page_formidable .column-form_key,.wp-list-table.toplevel_page_formidable .column-shortcode,.wp-list-table.toplevel_page_formidable .column-created_at{display:none !important}.wp-list-table.toplevel_page_formidable td.column-entries,.wp-list-table.toplevel_page_formidable td.column-form_key,.wp-list-table.toplevel_page_formidable td.column-shortcode,.wp-list-table.toplevel_page_formidable td.column-created_at{padding:3px 8px 3px 35%;text-align:left}#form_entries_page .wp-list-table th.frm_hidden,#form_entries_page .wp-list-table td.frm_hidden{display:none !important}.frm-white-body.auto-fold #wpcontent{padding-left:0}.frm_right_addon .frm_remove_field{bottom:11px}.frm-addons{grid-template-columns:1fr}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{left:0 !important}.frm_single_entry_page.frm_wrap .columns-2{display:block;border-bottom:none}.frm_single_entry_page .wrap.frm-with-margin{margin:10px 20px}.frm_single_entry_page #post-body-content+.frm-right-panel{width:auto;margin:0 20px;border:1px solid var(--sidebar-hover);border-radius:6px}#wp-content-media-buttons a.frm_insert_form{padding:0 var(--gap-sm)}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{width:1.2rem;height:1.2rem}}@media only screen and (max-width: 700px){.frm-white-body,.frm_wrap{--biggest-sidebar: 50%;--big-sidebar: 50%}}@media only screen and (max-width: 600px){.frm-white-body,.frm_wrap{--small-sidebar: 45px}.frm-form-setting-tabs a{visibility:collapse;font-size:0;padding:0 var(--gap-sm)}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{visibility:visible;position:initial;font-size:18px}#frm_builder_page #frm-insert-fields{padding:0}.frm_wrap #frm_adv_info ul.category-tabs li{display:inline-block;padding:0;margin:2px 0;border-bottom:2px solid rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li.tabs,.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:0;padding:0}.field_type_list li{text-align:center}#frm-insert-fields li a{padding:5px}#frm_form_editor_container .frm_primary_label{clear:both}#frm_builder_page .frm_code_list a.button{padding:2px}#frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:0;left:auto}.frm-right-panel h3.accordion-section-title{padding-right:10px;padding-left:10px;font-size:20px;white-space:nowrap;overflow:hidden}.frm-right-panel .accordion-section-title::before{margin-left:0;margin-right:3px}.rtl #frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:auto;left:0}.frm_on_submit_type svg{display:none}}@media only screen and (max-width: 475px){#frm_bs_dropdown{float:none}#frm-nav-tabs{padding:0;white-space:nowrap}#frm-nav-tabs a{margin-right:0}#frm_small_device_message_container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;width:100%;height:100%;z-index:999999;background:var(--primary-500)}#frm_small_device_message{text-align:center;display:flex;flex-direction:column;align-items:center;width:80%;padding:1rem;background:#fff;border:solid 1px #fff;border-radius:var(--medium-radius)}#frm_small_device_message::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-78%, -65%);width:900px;height:900px;background-color:#0d7dfc;border-radius:50%;z-index:-1;opacity:.3}#frm_small_device_message>svg{padding-bottom:1rem}.toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter,.post-type-frm_display:has(#frm_small_device_message_container) #posts-filter{display:none}}@media print{a,.misc-pub-section a{color:#000 !important}.add-new-h2,#frm_top_bar,.dashicons,#adminmenuwrap,#adminmenuback,#wphead,#button_bar,#submitdiv,.button-secondary,#screen-metas,#screen-meta-links,#footer,#wpfooter,.inner-sidebar,.frm_form_nav,.frm_flash_graph,.frm_no_print,object,.error{visibility:hidden;display:none !important}.widget,.postbox,.stuffbox,.postbox h3{border-width:0 !important;border-color:#fff}.postbox{background:#fff !important;border:none;position:static}.postbox h3,.postbox h4{background:#fff !important}#wpbody-content{float:none}#wpcontent,#post-body-content,.has-right-sidebar #post-body,#poststuff .columns-2{margin:0 !important}.frm_wrap #poststuff .columns-2{display:block}#post-body-content+.frm-right-panel,.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{border:none;width:auto;display:block;padding:20px}.frm_wrap .columns-2,.frm_wrap .frm_page_container{height:auto;display:block}.misc-pub-section>span{padding:0}.frm-right-panel .postbox .inside{padding-left:12px;padding-right:12px}.curtime #timestamp::before{display:none;content:none !important}.frm_charts .alignleft{float:none}.pg_odd,.pg_even{page-break-inside:avoid;max-width:600px}.form-table td,.form-table th{padding:0}.frm_file_container a{display:block;width:100%}}.frm-admin-page-styles #frm-publishing #save_menu_header,.frm-admin-page-styles2 #frm-publishing #save_menu_header{display:inline-block}.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first{order:2}.frm-video-wrapper iframe{width:100%;max-width:843px;border-radius:var(--border-radius)}#frm_field_group_popup{position:absolute;top:0;right:0;width:366px;max-height:231px;border-radius:8px;background:#fff;box-shadow:0 20px 48px rgba(40,47,54,.15);z-index:3;box-sizing:border-box;padding:24px 0;text-align:left}.rtl #frm_field_group_popup{text-align:right}.frm-merge-fields-into-row #frm_field_group_popup{top:unset;bottom:50px;height:196px}#frm_field_group_popup>hr{margin:12px 0}#frm_field_group_popup .frm-cancel-custom-field-group-layout,#frm_field_group_popup .frm-save-custom-field-group-layout{padding:4px 18px}#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover{border-color:var(--primary-500) !important;color:var(--primary-500);background-color:rgba(0,0,0,0) !important}.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group{display:none}.frm-merge-fields-into-row>a{color:rgba(40,47,54,.85);position:relative;top:2px}.frm-row-layout-title{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:27px}.frm-row-layout-option{background:#f6f7fb;box-sizing:border-box;border-radius:2px;padding:15px 10px}#frm_field_group_popup .frm-row-layout-option .frm_grid_container{grid-gap:0 5%;grid-template-columns:repeat(12, auto)}#frm_field_group_popup .frm-row-layout-option{cursor:pointer;border:2px solid rgba(0,0,0,0)}#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,#frm_field_group_popup .frm-row-layout-option:hover{border-color:var(--primary-500)}.frm-custom-field-group-layout,.frm-break-field-group{padding:4px 24px;cursor:pointer;font-size:var(--text-sm);line-height:19px;color:#484e54}.frm-custom-field-group-layout:hover,.frm-break-field-group:hover{background-color:rgba(245,245,245,.9607843137)}.frm-custom-field-group-layout svg,.frm-break-field-group svg{margin-right:5px}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}#frm_banner{width:100%;color:#fff;background:var(--primary-500);height:40px;line-height:40px;text-align:center;position:relative}.frm-banner-emoji{font-size:19px}.frm-banner-emoji,.frm-banner-title{margin-right:5px;vertical-align:top}.frm-banner-cta a{text-decoration:underline !important}#frm_banner .frm-banner-cta a.frm_inbox_dismiss{display:none}.frm-banner-dismiss{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.frm-banner-dismiss .frmsvg{vertical-align:top}.frm-ready-made-solution:not(.frm-search-result){display:none !important}#frm_leave_email_wrapper .frmsvg{top:0}#frm-add-my-email-address{margin-top:30px}.frm-ready-made-solution h3~a{color:var(--primary-500)}.frm-ready-made-solution img{max-width:100%;display:block;box-shadow:var(--box-shadow-lg)}.frm_single_on_submit_settings .frm_form_field{margin:22px 0}.frm_on_submit_type_setting{padding:8px 0}.frm_on_submit_type label{display:flex;border:1px solid var(--grey-border);border-radius:var(--small-radius);gap:16px;padding:16px;align-items:center;justify-content:center}.frm_on_submit_type input{opacity:0 !important;position:absolute;z-index:-1}.frm_on_submit_type input[type=radio]:checked+label{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}#form_settings_page .frm_on_submit_type label:hover,.frm_on_submit_type input[type=radio]:checked+label svg{color:var(--primary-color)}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}#frm-form-templates-modal textarea{height:108px}#frm-form-templates-modal .frm-fields button.btn{border-color:var(--grey-300);color:var(--grey-900);cursor:pointer}#frm-form-templates-modal .frm-fields button.btn .frmsvg{color:var(--grey-400);width:14px;height:14px}#frm-form-templates-modal .frm-form-templates-modal-fieldset{position:relative}#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg{padding:0;top:0;left:13px}#frm-form-templates-modal .postbox{display:block !important}#frm_empty_inbox #frm-leave-email-modal{margin-top:var(--gap-2xl)}#frm-name-your-form-modal .frm_modal_top{padding-top:var(--gap-sm)}#frm-field-group-message{position:absolute;bottom:32px;right:calc(50% - var(--biggest-sidebar));padding:var(--gap-xs) var(--gap-sm);border-radius:100px;background-color:var(--primary-25)}#frm-field-group-message .frm-field-group-message-text{gap:10px;color:var(--grey-800)}#frm-field-group-message-dismiss{margin-left:var(--gap-xs)}#frm-field-group-message-dismiss .frmsvg{color:var(--grey-800);width:15px;height:15px;cursor:pointer;transition:color 300ms ease-in-out}#frm-field-group-message-dismiss .frmsvg:hover{color:var(--grey-500)}.frm-card-item{display:flex;border:1px solid var(--grey-200);border-radius:var(--small-radius);padding:var(--gap-sm);box-shadow:var(--box-shadow-xs);background:#fff}.frm-card-item:not(.frm-counter-card){gap:10px}.frm-compact-card-item{padding:var(--gap-sm) 35px 10px 35px}.frm-card-bottom{background-color:var(--grey-50);margin-left:calc(var(--gap-sm)*-1);margin-bottom:calc(var(--gap-sm)*-1);margin-right:calc(var(--gap-sm)*-1);padding:var(--gap-sm);border-radius:0 0 var(--small-radius) var(--small-radius)}#welcome-panel:has(#frm_form_pf_importer){background-color:#fff;margin:var(--gap-sm) var(--gap-md) var(--gap-md);line-height:2}#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content{text-align:start !important;min-height:unset;display:block}#frm_form_pf_importer div{margin:10px 0 !important}#frm_form_pf_importer button{border:1px solid var(--primary-500);padding:7px 16px;min-height:28px;line-height:var(--leading);margin-bottom:0;background:var(--primary-500);color:#fff !important}#frm_form_pf_importer button:hover{background:#135e96;border-color:#135e96}.frm-option-box{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;background-color:#fff;padding:12px var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius);margin-bottom:var(--gap-xs);transition:background-color 100ms ease-out;cursor:pointer}.frm-option-box:hover{background-color:var(--grey-25)}.frm-option-box.frm-checked{background-color:var(--primary-25);border-color:var(--primary-200)}.frm-option-box.frm-disabled{cursor:default}.frm-option-box input[type=checkbox]{margin:0}.frm-option-box.frm-disabled input[type=checkbox]{opacity:.5}.frm-option-box .frm_help .frmsvg{width:12px;height:12px}.frm-validation-error:not(.frm_hidden){display:flex}.frm-validation-error{gap:calc(var(--gap-xs) + var(--gap-2xs))}.frm-validation-error span{color:var(--error-500)}.frm-validation-error span[frm-error]{display:none}.frm-validation-error[frm-error=empty] span[frm-error=empty],.frm-validation-error[frm-error=invalid] span[frm-error=invalid],.frm-validation-error[frm-error=custom] span[frm-error=custom]{display:inline-block}.frm-box{padding:var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius)}.frm-link-with-external-icon{display:flex;align-items:center;gap:var(--gap-2xs);font-size:var(--text-xs)}.frm-link-with-external-icon .frmsvg{width:16px;height:16px;transform:rotate(45deg)}#wpbody-content .frm-page-skeleton ul,#wpbody-content .frm-page-skeleton li{margin:0}#wpbody-content .frm-page-skeleton .frm-right-panel{padding:2px;overflow-y:initial}#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper{padding:var(--gap-md) var(--gap-sm)}#wpbody-content .frm-page-skeleton .frm-search{float:none;padding:0 var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>svg{left:var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>input{width:100%}.frm-page-skeleton-cat{cursor:pointer;padding:var(--gap-xs);border-radius:var(--small-radius);background-color:rgba(0,0,0,0);transition:background-color 250ms ease-out}.frm-page-skeleton-cat:hover{background-color:var(--grey-100)}.frm-page-skeleton-cat>*{z-index:2}.frm-page-skeleton-cat-text{color:var(--grey-900);text-transform:capitalize}.frm-page-skeleton-cat-count{color:var(--grey-400)}.frm-current .frm-page-skeleton-cat-text,.frm-current .frm-page-skeleton-cat-count{color:var(--primary-500)}.frm-list-grid-layout{display:grid;grid-template-columns:repeat(auto-fill, minmax(303px, 1fr));grid-auto-rows:max-content;gap:var(--gap-sm)}.frm-list-grid-layout>*{grid-column:span 1}#frm-page-skeleton-empty-state{height:100%;margin-top:calc(-1*var(--gap-md))}#frm-page-skeleton-empty-state .frm-page-skeleton-text{max-width:420px}.frm-page-skeleton-divider{border-top:1px solid var(--grey-200);margin:0}.field_type_list .frm_tsubmit{display:none !important}#frm_style_sidebar .accordion-section-title::after,#frm_view_editor_left .accordion-section-title::after{content:""}a[href="#square_settings"] svg.frmsvg{width:23px !important;height:22px !important}#frm_square_test_setup_modal a:focus{box-shadow:none !important}@media only screen and (max-width: 900px){#square_settings .frm_grid_container:has(.frm-card-item){grid-template-columns:repeat(1, 1fr)}#square_settings .frm-card-item+.frm-card-item{margin-top:var(--gap-sm)}}#frm_sale_banner{display:flex;height:90px;flex-direction:row;align-items:center;gap:var(--gap-sm);cursor:pointer;position:relative}#frm_sale_banner>div:first-child{align-self:flex-end;width:150px;height:100%;display:flex;justify-content:center}#frm_sale_banner>div:first-child img{align-self:center}#frm_sale_banner>div:nth-child(3){margin-left:auto;margin-right:50px}#frm_sale_banner>div:nth-child(2)>div:last-child{opacity:.8}#frm_sale_banner a:not(.dismiss){text-shadow:none;border-radius:30px;border:1px rgba(0,0,0,0);font-size:var(--text-sm);padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;margin-bottom:0;display:inline-block;font-weight:700;background-color:#fff;color:#000}#frm_sale_banner .dismiss{position:absolute;color:#fff;opacity:.6;right:15px;top:10px}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"]{background-color:#f0f0f0 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"]{background-color:#e6470f !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"]{background-color:#ed1d34 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"]{background-color:#3e041a !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"]{background-color:#362630 !important}.frm-get-free-templates-banner{flex-grow:1}.frm-get-free-templates-banner .frm-banner-image-wrapper{display:flex;justify-content:center;align-items:flex-end;background-color:var(--primary-25);padding:19px 14px 0;border-radius:var(--small-radius)}.frm-get-free-templates-banner[data-direction=vertical]{flex-direction:column;align-items:stretch;gap:12px}.frm-get-free-templates-banner[data-direction=vertical] .frm-banner-content{align-items:center;text-align:center}.frm-lookup-box-label{display:none}.frm-inline-modal[id^=frm-lookup-box]{background-color:rgba(0,0,0,0);border:0;box-shadow:none}.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs,.frm-inline-modal[id^=frm-lookup-box] .dismiss{display:none}.frm_single_option a.frm_remove_tag svg,.frm_single_option a.frm_add_opt svg{width:15px;height:15px}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px} diff --git a/js/addons-page.js b/js/addons-page.js index b7ec44212a..c3de805933 100644 --- a/js/addons-page.js +++ b/js/addons-page.js @@ -1,4799 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@tannin/compile/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/compile/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ compile) -/* harmony export */ }); -/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); -/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); - - - -/** - * Given a C expression, returns a function which can be called to evaluate its - * result. - * - * @example - * - * ```js - * import compile from '@tannin/compile'; - * - * const evaluate = compile( 'n > 1' ); - * - * evaluate( { n: 2 } ); - * // ⇒ true - * ``` - * - * @param {string} expression C expression. - * - * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. - */ -function compile( expression ) { - var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( variables ) { - return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/evaluate/index.js": -/*!************************************************!*\ - !*** ./node_modules/@tannin/evaluate/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ evaluate) -/* harmony export */ }); -/** - * Operator callback functions. - * - * @type {Object} - */ -var OPERATORS = { - '!': function( a ) { - return ! a; - }, - '*': function( a, b ) { - return a * b; - }, - '/': function( a, b ) { - return a / b; - }, - '%': function( a, b ) { - return a % b; - }, - '+': function( a, b ) { - return a + b; - }, - '-': function( a, b ) { - return a - b; - }, - '<': function( a, b ) { - return a < b; - }, - '<=': function( a, b ) { - return a <= b; - }, - '>': function( a, b ) { - return a > b; - }, - '>=': function( a, b ) { - return a >= b; - }, - '==': function( a, b ) { - return a === b; - }, - '!=': function( a, b ) { - return a !== b; - }, - '&&': function( a, b ) { - return a && b; - }, - '||': function( a, b ) { - return a || b; - }, - '?:': function( a, b, c ) { - if ( a ) { - throw b; - } - - return c; - }, -}; - -/** - * Given an array of postfix terms and operand variables, returns the result of - * the postfix evaluation. - * - * @example - * - * ```js - * import evaluate from '@tannin/evaluate'; - * - * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' - * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; - * - * evaluate( terms, {} ); - * // ⇒ 6.333333333333334 - * ``` - * - * @param {string[]} postfix Postfix terms. - * @param {Object} variables Operand variables. - * - * @return {*} Result of evaluation. - */ -function evaluate( postfix, variables ) { - var stack = [], - i, j, args, getOperatorResult, term, value; - - for ( i = 0; i < postfix.length; i++ ) { - term = postfix[ i ]; - - getOperatorResult = OPERATORS[ term ]; - if ( getOperatorResult ) { - // Pop from stack by number of function arguments. - j = getOperatorResult.length; - args = Array( j ); - while ( j-- ) { - args[ j ] = stack.pop(); - } - - try { - value = getOperatorResult.apply( null, args ); - } catch ( earlyReturn ) { - return earlyReturn; - } - } else if ( variables.hasOwnProperty( term ) ) { - value = variables[ term ]; - } else { - value = +term; - } - - stack.push( value ); - } - - return stack[ 0 ]; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/plural-forms/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@tannin/plural-forms/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pluralForms) -/* harmony export */ }); -/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); - - -/** - * Given a C expression, returns a function which, when called with a value, - * evaluates the result with the value assumed to be the "n" variable of the - * expression. The result will be coerced to its numeric equivalent. - * - * @param {string} expression C expression. - * - * @return {Function} Evaluator function. - */ -function pluralForms( expression ) { - var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( n ) { - return +evaluate( { n: n } ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/postfix/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/postfix/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ postfix) -/* harmony export */ }); -var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; - -/** - * Operator precedence mapping. - * - * @type {Object} - */ -PRECEDENCE = { - '(': 9, - '!': 8, - '*': 7, - '/': 7, - '%': 7, - '+': 6, - '-': 6, - '<': 5, - '<=': 5, - '>': 5, - '>=': 5, - '==': 4, - '!=': 4, - '&&': 3, - '||': 2, - '?': 1, - '?:': 1, -}; - -/** - * Characters which signal pair opening, to be terminated by terminators. - * - * @type {string[]} - */ -OPENERS = [ '(', '?' ]; - -/** - * Characters which signal pair termination, the value an array with the - * opener as its first member. The second member is an optional operator - * replacement to push to the stack. - * - * @type {string[]} - */ -TERMINATORS = { - ')': [ '(' ], - ':': [ '?', '?:' ], -}; - -/** - * Pattern matching operators and openers. - * - * @type {RegExp} - */ -PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; - -/** - * Given a C expression, returns the equivalent postfix (Reverse Polish) - * notation terms as an array. - * - * If a postfix string is desired, simply `.join( ' ' )` the result. - * - * @example - * - * ```js - * import postfix from '@tannin/postfix'; - * - * postfix( 'n > 1' ); - * // ⇒ [ 'n', '1', '>' ] - * ``` - * - * @param {string} expression C expression. - * - * @return {string[]} Postfix terms. - */ -function postfix( expression ) { - var terms = [], - stack = [], - match, operator, term, element; - - while ( ( match = expression.match( PATTERN ) ) ) { - operator = match[ 0 ]; - - // Term is the string preceding the operator match. It may contain - // whitespace, and may be empty (if operator is at beginning). - term = expression.substr( 0, match.index ).trim(); - if ( term ) { - terms.push( term ); - } - - while ( ( element = stack.pop() ) ) { - if ( TERMINATORS[ operator ] ) { - if ( TERMINATORS[ operator ][ 0 ] === element ) { - // Substitution works here under assumption that because - // the assigned operator will no longer be a terminator, it - // will be pushed to the stack during the condition below. - operator = TERMINATORS[ operator ][ 1 ] || operator; - break; - } - } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { - // Push to stack if either an opener or when pop reveals an - // element of lower precedence. - stack.push( element ); - break; - } - - // For each popped from stack, push to terms. - terms.push( element ); - } - - if ( ! TERMINATORS[ operator ] ) { - stack.push( operator ); - } - - // Slice matched fragment from expression to continue match. - expression = expression.substr( match.index + operator.length ); - } - - // Push remainder of operand, if exists, to terms. - expression = expression.trim(); - if ( expression ) { - terms.push( expression ); - } - - // Pop remaining items from stack into terms. - return terms.concat( stack.reverse() ); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback AddHook - * - * Adds the hook to the appropriate hooks container. - * - * @param {string} hookName Name of hook to add - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. - * @param {import('.').Callback} callback Function to call when the hook is run - * @param {number} [priority=10] Priority of this hook - */ - -/** - * Returns a function which, when invoked, will add a hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {AddHook} Function that adds a new hook. - */ - -function createAddHook(hooks, storeKey) { - return function addHook(hookName, namespace, callback) { - var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } - - if ('function' !== typeof callback) { - // eslint-disable-next-line no-console - console.error('The hook callback must be a function.'); - return; - } // Validate numeric priority - - - if ('number' !== typeof priority) { - // eslint-disable-next-line no-console - console.error('If specified, the hook priority must be a number.'); - return; - } - - var handler = { - callback: callback, - priority: priority, - namespace: namespace - }; - - if (hooksStore[hookName]) { - // Find the correct insert index of the new hook. - var handlers = hooksStore[hookName].handlers; - /** @type {number} */ - - var i; - - for (i = handlers.length; i > 0; i--) { - if (priority >= handlers[i - 1].priority) { - break; - } - } - - if (i === handlers.length) { - // If append, operate via direct assignment. - handlers[i] = handler; - } else { - // Otherwise, insert before index via splice. - handlers.splice(i, 0, handler); - } // We may also be currently executing this hook. If the callback - // we're adding would come after the current callback, there's no - // problem; otherwise we need to increase the execution index of - // any other runs by 1 to account for the added element. - - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex++; - } - }); - } else { - // This is the first hook of its type. - hooksStore[hookName] = { - handlers: [handler], - runs: 0 - }; - } - - if (hookName !== 'hookAdded') { - hooks.doAction('hookAdded', hookName, namespace, callback, priority); - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); -//# sourceMappingURL=createAddHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Returns a function which, when invoked, will return the name of the - * currently running hook, or `null` if no hook of the given type is currently - * running. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {() => string | null} Function that returns the current hook name or null. - */ -function createCurrentHook(hooks, storeKey) { - return function currentHook() { - var _hooksStore$__current, _hooksStore$__current2; - - var hooksStore = hooks[storeKey]; - 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; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); -//# sourceMappingURL=createCurrentHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - -/** - * @callback DidHook - * - * Returns the number of times an action has been fired. - * - * @param {string} hookName The hook name to check. - * - * @return {number | undefined} The number of times the hook has run. - */ - -/** - * Returns a function which, when invoked, will return the number of times a - * hook has been called. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DidHook} Function that returns a hook's call count. - */ - -function createDidHook(hooks, storeKey) { - return function didHook(hookName) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { - return; - } - - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); -//# sourceMappingURL=createDidHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback DoingHook - * Returns whether a hook is currently being executed. - * - * @param {string} [hookName] The name of the hook to check for. If - * omitted, will check for any hook being executed. - * - * @return {boolean} Whether the hook is being executed. - */ - -/** - * Returns a function which, when invoked, will return whether a hook is - * currently being executed. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DoingHook} Function that returns whether a hook is currently - * being executed. - */ -function createDoingHook(hooks, storeKey) { - return function doingHook(hookName) { - var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. - - if ('undefined' === typeof hookName) { - return 'undefined' !== typeof hooksStore.__current[0]; - } // Return the __current hook. - - - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); -//# sourceMappingURL=createDoingHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback HasHook - * - * Returns whether any handlers are attached for the given hookName and optional namespace. - * - * @param {string} hookName The name of the hook to check for. - * @param {string} [namespace] Optional. The unique namespace identifying the callback - * in the form `vendor/plugin/function`. - * - * @return {boolean} Whether there are handlers that are attached to the given hook. - */ - -/** - * Returns a function which, when invoked, will return whether any handlers are - * attached to a particular hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {HasHook} Function that returns whether any handlers are - * attached to a particular hook and optional namespace. - */ -function createHasHook(hooks, storeKey) { - return function hasHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; // Use the namespace if provided. - - if ('undefined' !== typeof namespace) { - return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { - return hook.namespace === namespace; - }); - } - - return hookName in hooksStore; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); -//# sourceMappingURL=createHasHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ _Hooks: () => (/* binding */ _Hooks), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); -/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); -/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); -/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); -/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); -/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); -/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Internal class for constructing hooks. Use `createHooks()` function - * - * Note, it is necessary to expose this class to make its type public. - * - * @private - */ - -var _Hooks = function _Hooks() { - (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); - - /** @type {import('.').Store} actions */ - this.actions = Object.create(null); - this.actions.__current = []; - /** @type {import('.').Store} filters */ - - this.filters = Object.create(null); - this.filters.__current = []; - this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); - this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); - this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); - this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); - this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); - this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); - this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); - this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); - this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); - this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); - this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); - this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); - this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); - this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); - this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); - this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); -}; -/** @typedef {_Hooks} Hooks */ - -/** - * Returns an instance of the hooks object. - * - * @return {Hooks} A Hooks instance. - */ - -function createHooks() { - return new _Hooks(); -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); -//# sourceMappingURL=createHooks.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback RemoveHook - * Removes the specified callback (or all callbacks) from the hook with a given hookName - * and namespace. - * - * @param {string} hookName The name of the hook to modify. - * @param {string} namespace The unique namespace identifying the callback in the - * form `vendor/plugin/function`. - * - * @return {number | undefined} The number of callbacks removed. - */ - -/** - * Returns a function which, when invoked, will remove a specified hook or all - * hooks by the given name. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, - * without regard to namespace. Used to create - * `removeAll*` functions. - * - * @return {RemoveHook} Function that removes hooks. - */ - -function createRemoveHook(hooks, storeKey) { - var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function removeHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } // Bail if no hooks exist by this name - - - if (!hooksStore[hookName]) { - return 0; - } - - var handlersRemoved = 0; - - if (removeAll) { - handlersRemoved = hooksStore[hookName].handlers.length; - hooksStore[hookName] = { - runs: hooksStore[hookName].runs, - handlers: [] - }; - } else { - // Try to find the specified callback to remove. - var handlers = hooksStore[hookName].handlers; - - var _loop = function _loop(i) { - if (handlers[i].namespace === namespace) { - handlers.splice(i, 1); - handlersRemoved++; // This callback may also be part of a hook that is - // currently executing. If the callback we're removing - // comes after the current callback, there's no problem; - // otherwise we need to decrease the execution index of any - // other runs by 1 to account for the removed element. - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex--; - } - }); - } - }; - - for (var i = handlers.length - 1; i >= 0; i--) { - _loop(i); - } - } - - if (hookName !== 'hookRemoved') { - hooks.doAction('hookRemoved', hookName, namespace); - } - - return handlersRemoved; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); -//# sourceMappingURL=createRemoveHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); - - -/** - * Returns a function which, when invoked, will execute all callbacks - * registered to a hook of the specified type, optionally returning the final - * value of the call chain. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to - * return its first argument. - * - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. - */ -function createRunHook(hooks, storeKey) { - var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function runHooks(hookName) { - var hooksStore = hooks[storeKey]; - - if (!hooksStore[hookName]) { - hooksStore[hookName] = { - handlers: [], - runs: 0 - }; - } - - hooksStore[hookName].runs++; - var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. - - if (true) { - // Handle any 'all' hooks registered. - if ('hookAdded' !== hookName && hooksStore.all) { - handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); - } - } - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (!handlers || !handlers.length) { - return returnFirstArg ? args[0] : undefined; - } - - var hookInfo = { - name: hookName, - currentIndex: 0 - }; - - hooksStore.__current.push(hookInfo); - - while (hookInfo.currentIndex < handlers.length) { - var handler = handlers[hookInfo.currentIndex]; - var result = handler.callback.apply(null, args); - - if (returnFirstArg) { - args[0] = result; - } - - hookInfo.currentIndex++; - } - - hooksStore.__current.pop(); - - if (returnFirstArg) { - return args[0]; - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); -//# sourceMappingURL=createRunHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actions: () => (/* binding */ actions), -/* harmony export */ addAction: () => (/* binding */ addAction), -/* harmony export */ addFilter: () => (/* binding */ addFilter), -/* harmony export */ applyFilters: () => (/* binding */ applyFilters), -/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ currentAction: () => (/* binding */ currentAction), -/* harmony export */ currentFilter: () => (/* binding */ currentFilter), -/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), -/* harmony export */ didAction: () => (/* binding */ didAction), -/* harmony export */ didFilter: () => (/* binding */ didFilter), -/* harmony export */ doAction: () => (/* binding */ doAction), -/* harmony export */ doingAction: () => (/* binding */ doingAction), -/* harmony export */ doingFilter: () => (/* binding */ doingFilter), -/* harmony export */ filters: () => (/* binding */ filters), -/* harmony export */ hasAction: () => (/* binding */ hasAction), -/* harmony export */ hasFilter: () => (/* binding */ hasFilter), -/* harmony export */ removeAction: () => (/* binding */ removeAction), -/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), -/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), -/* harmony export */ removeFilter: () => (/* binding */ removeFilter) -/* harmony export */ }); -/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); -/** - * Internal dependencies - */ - -/** @typedef {(...args: any[])=>any} Callback */ - -/** - * @typedef Handler - * @property {Callback} callback The callback - * @property {string} namespace The namespace - * @property {number} priority The namespace - */ - -/** - * @typedef Hook - * @property {Handler[]} handlers Array of handlers - * @property {number} runs Run counter - */ - -/** - * @typedef Current - * @property {string} name Hook name - * @property {number} currentIndex The index - */ - -/** - * @typedef {Record & {__current: Current[]}} Store - */ - -/** - * @typedef {'actions' | 'filters'} StoreKey - */ - -/** - * @typedef {import('./createHooks').Hooks} Hooks - */ - -var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); -var addAction = defaultHooks.addAction, - addFilter = defaultHooks.addFilter, - removeAction = defaultHooks.removeAction, - removeFilter = defaultHooks.removeFilter, - hasAction = defaultHooks.hasAction, - hasFilter = defaultHooks.hasFilter, - removeAllActions = defaultHooks.removeAllActions, - removeAllFilters = defaultHooks.removeAllFilters, - doAction = defaultHooks.doAction, - applyFilters = defaultHooks.applyFilters, - currentAction = defaultHooks.currentAction, - currentFilter = defaultHooks.currentFilter, - doingAction = defaultHooks.doingAction, - doingFilter = defaultHooks.doingFilter, - didAction = defaultHooks.didAction, - didFilter = defaultHooks.didFilter, - actions = defaultHooks.actions, - filters = defaultHooks.filters; - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a hookName string. - * - * @param {string} hookName The hook name to validate. Should be a non empty string containing - * only numbers, letters, dashes, periods and underscores. Also, - * the hook name cannot begin with `__`. - * - * @return {boolean} Whether the hook name is valid. - */ -function validateHookName(hookName) { - if ('string' !== typeof hookName || '' === hookName) { - // eslint-disable-next-line no-console - console.error('The hook name must be a non-empty string.'); - return false; - } - - if (/^__/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name cannot begin with `__`.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); -//# sourceMappingURL=validateHookName.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a namespace string. - * - * @param {string} namespace The namespace to validate - should take the form - * `vendor/plugin/function`. - * - * @return {boolean} Whether the namespace is valid. - */ -function validateNamespace(namespace) { - if ('string' !== typeof namespace || '' === namespace) { - // eslint-disable-next-line no-console - console.error('The namespace must be a non-empty string.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { - // eslint-disable-next-line no-console - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); -//# sourceMappingURL=validateNamespace.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": -/*!******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createI18n: () => (/* binding */ createI18n) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); - - -function 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; } - -function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } - -/** - * External dependencies - */ - -/** - * @typedef {Record} LocaleData - */ - -/** - * Default locale data to use for Tannin domain when not otherwise provided. - * Assumes an English plural forms expression. - * - * @type {LocaleData} - */ - -var DEFAULT_LOCALE_DATA = { - '': { - /** @param {number} n */ - plural_forms: function plural_forms(n) { - return n === 1 ? 0 : 1; - } - } -}; -/* - * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, - * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. - */ - -var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; -/** - * @typedef {(domain?: string) => LocaleData} GetLocaleData - * - * Returns locale data by domain in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData - * - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData - * - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** @typedef {() => void} SubscribeCallback */ - -/** @typedef {() => void} UnsubscribeCallback */ - -/** - * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe - * - * Subscribes to changes of locale data - */ - -/** - * @typedef {(domain?: string) => string} GetFilterDomain - * Retrieve the domain to use when calling domain-specific filters. - */ - -/** - * @typedef {(text: string, domain?: string) => string} __ - * - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - */ - -/** - * @typedef {(text: string, context: string, domain?: string) => string} _x - * - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n - * - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx - * - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - */ - -/** - * @typedef {() => boolean} IsRtl - * - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - */ - -/** - * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation - * - * Check if there is a translation for a given string in singular form. - */ - -/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ - -/** - * An i18n instance - * - * @typedef I18n - * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. - * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. - * @property {__} __ Retrieve the translation of text. - * @property {_x} _x Retrieve translated string with gettext context. - * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied - * number. - * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * @property {IsRtl} isRTL Check if current locale is RTL. - * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. - */ - -/** - * Create an i18n instance - * - * @param {LocaleData} [initialData] Locale data configuration. - * @param {string} [initialDomain] Domain for which configuration applies. - * @param {Hooks} [hooks] Hooks implementation. - * @return {I18n} I18n instance - */ - -var createI18n = function createI18n(initialData, initialDomain, hooks) { - /** - * The underlying instance of Tannin to which exported functions interface. - * - * @type {Tannin} - */ - var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); - var listeners = new Set(); - - var notifyListeners = function notifyListeners() { - listeners.forEach(function (listener) { - return listener(); - }); - }; - /** - * Subscribe to changes of locale data. - * - * @param {SubscribeCallback} callback Subscription callback. - * @return {UnsubscribeCallback} Unsubscribe callback. - */ - - - var subscribe = function subscribe(callback) { - listeners.add(callback); - return function () { - return listeners.delete(callback); - }; - }; - /** @type {GetLocaleData} */ - - - var getLocaleData = function getLocaleData() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return tannin.data[domain]; - }; - /** - * @param {LocaleData} [data] - * @param {string} [domain] - */ - - - var doSetLocaleData = function doSetLocaleData(data) { - var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits - // a plural forms expression). - - tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); - }; - /** @type {SetLocaleData} */ - - - var setLocaleData = function setLocaleData(data, domain) { - doSetLocaleData(data, domain); - notifyListeners(); - }; - /** @type {ResetLocaleData} */ - - - var resetLocaleData = function resetLocaleData(data, domain) { - // Reset all current Tannin locale data. - tannin.data = {}; // Reset cached plural forms functions cache. - - tannin.pluralForms = {}; - setLocaleData(data, domain); - }; - /** - * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not - * otherwise previously assigned. - * - * @param {string|undefined} domain Domain to retrieve the translated text. - * @param {string|undefined} context Context information for the translators. - * @param {string} single Text to translate if non-plural. Used as - * fallback return value on a caught error. - * @param {string} [plural] The text to be used if the number is - * plural. - * @param {number} [number] The number to compare against to use - * either the singular or plural form. - * - * @return {string} The translated string. - */ - - - var dcnpgettext = function dcnpgettext() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - var context = arguments.length > 1 ? arguments[1] : undefined; - var single = arguments.length > 2 ? arguments[2] : undefined; - var plural = arguments.length > 3 ? arguments[3] : undefined; - var number = arguments.length > 4 ? arguments[4] : undefined; - - if (!tannin.data[domain]) { - // use `doSetLocaleData` to set silently, without notifying listeners - doSetLocaleData(undefined, domain); - } - - return tannin.dcnpgettext(domain, context, single, plural, number); - }; - /** @type {GetFilterDomain} */ - - - var getFilterDomain = function getFilterDomain() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return domain; - }; - /** @type {__} */ - - - var __ = function __(text, domain) { - var translation = dcnpgettext(domain, undefined, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext', translation, text, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) - ); - }; - /** @type {_x} */ - - - var _x = function _x(text, context, domain) { - var translation = dcnpgettext(domain, context, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation based on context information. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) - ); - }; - /** @type {_n} */ - - - var _n = function _n(single, plural, number, domain) { - var translation = dcnpgettext(domain, undefined, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) - ); - }; - /** @type {_nx} */ - - - var _nx = function _nx(single, plural, number, context, domain) { - var translation = dcnpgettext(domain, context, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string with gettext context. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) - ); - }; - /** @type {IsRtl} */ - - - var isRTL = function isRTL() { - return 'rtl' === _x('ltr', 'text direction'); - }; - /** @type {HasTranslation} */ - - - var hasTranslation = function hasTranslation(single, context, domain) { - var _tannin$data, _tannin$data2; - - var key = context ? context + "\x04" + single : single; - 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]); - - if (hooks) { - /** - * Filters the presence of a translation in the locale data. - * - * @param {boolean} hasTranslation Whether the translation is present or not.. - * @param {string} single The singular form of the translated text (used as key in locale data) - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation', result, single, context, domain); - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); - } - - return result; - }; - - if (initialData) { - setLocaleData(initialData, initialDomain); - } - - if (hooks) { - /** - * @param {string} hookName - */ - var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { - if (I18N_HOOK_REGEXP.test(hookName)) { - notifyListeners(); - } - }; - - hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); - hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); - } - - return { - getLocaleData: getLocaleData, - setLocaleData: setLocaleData, - resetLocaleData: resetLocaleData, - subscribe: subscribe, - __: __, - _x: _x, - _n: _n, - _nx: _nx, - isRTL: isRTL, - hasTranslation: hasTranslation - }; -}; -//# sourceMappingURL=create-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* binding */ __), -/* harmony export */ _n: () => (/* binding */ _n), -/* harmony export */ _nx: () => (/* binding */ _nx), -/* harmony export */ _x: () => (/* binding */ _x), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), -/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), -/* harmony export */ isRTL: () => (/* binding */ isRTL), -/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), -/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), -/* harmony export */ subscribe: () => (/* binding */ subscribe) -/* harmony export */ }); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); -/** - * Internal dependencies - */ - -/** - * WordPress dependencies - */ - - -var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); -/** - * Default, singleton instance of `I18n`. - */ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); -/* - * Comments in this file are duplicated from ./i18n due to - * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 - */ - -/** - * @typedef {import('./create-i18n').LocaleData} LocaleData - * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback - * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback - */ - -/** - * Returns locale data by domain in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {string} [domain] Domain for which to get the data. - * @return {LocaleData} Locale data. - */ - -var getLocaleData = i18n.getLocaleData.bind(i18n); -/** - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var setLocaleData = i18n.setLocaleData.bind(i18n); -/** - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var resetLocaleData = i18n.resetLocaleData.bind(i18n); -/** - * Subscribes to changes of locale data - * - * @param {SubscribeCallback} callback Subscription callback - * @return {UnsubscribeCallback} Unsubscribe callback - */ - -var subscribe = i18n.subscribe.bind(i18n); -/** - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - * - * @param {string} text Text to translate. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated text. - */ - -var __ = i18n.__.bind(i18n); -/** - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - * - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated context string without pipe. - */ - -var _x = i18n._x.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _n = i18n._n.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _nx = i18n._nx.bind(i18n); -/** - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - * - * @return {boolean} Whether locale is RTL. - */ - -var isRTL = i18n.isRTL.bind(i18n); -/** - * Check if there is a translation for a given string (in singular form). - * - * @param {string} single Singular form of the string to look up. - * @param {string} [context] Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * @return {boolean} Whether the translation exists or not. - */ - -var hasTranslation = i18n.hasTranslation.bind(i18n); -//# sourceMappingURL=default-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), -/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), -/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), -/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), -/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), -/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), -/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), -/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), -/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), -/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), -/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), -/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) -/* harmony export */ }); -/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": -/*!**************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sprintf: () => (/* binding */ sprintf) -/* harmony export */ }); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * External dependencies - */ - - -/** - * Log to console, once per message; or more precisely, per referentially equal - * argument set. Because Jed throws errors, we log these to the console instead - * to avoid crashing the application. - * - * @param {...*} args Arguments to pass to `console.error` - */ - -var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console - -/** - * Returns a formatted string. If an error occurs in applying the format, the - * original format string is returned. - * - * @param {string} format The format of the string to generate. - * @param {...*} args Arguments to apply to the format. - * - * @see https://www.npmjs.com/package/sprintf-js - * - * @return {string} The formatted string. - */ - -function sprintf(format) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); - } catch (error) { - logErrorOnce('sprintf error: \n\n' + error.toString()); - return format; - } -} -//# sourceMappingURL=sprintf.js.map - -/***/ }), - -/***/ "./js/src/addons-page/addons/categorizeAddons.js": -/*!*******************************************************!*\ - !*** ./js/src/addons-page/addons/categorizeAddons.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedAddons: () => (/* binding */ buildCategorizedAddons), -/* harmony export */ categorizedAddons: () => (/* binding */ categorizedAddons) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * Internal dependencies - */ - - -var categorizedAddons = {}; -categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE] = []; -categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE] = []; - -/** - * Builds a categorized list of addons. - * - * @return {void} - */ -function buildCategorizedAddons() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - addons = _getElements.addons; - addons.forEach(function (addon) { - // Extract and split the categories from data attribute - var dataCategories = addon.getAttribute('data-categories'); - if (!dataCategories) { - return; - } - var categories = dataCategories.split(','); - categories.forEach(function (category) { - // Initialize the category array if not already done - if (!categorizedAddons[category]) { - categorizedAddons[category] = []; - } - - // Add the addon to the appropriate category - categorizedAddons[category].push(addon); - }); - }); -} - -/***/ }), - -/***/ "./js/src/addons-page/addons/index.js": -/*!********************************************!*\ - !*** ./js/src/addons-page/addons/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedAddons), -/* harmony export */ categorizedAddons: () => (/* reexport safe */ _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__.categorizedAddons) -/* harmony export */ }); -/* harmony import */ var _categorizeAddons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeAddons */ "./js/src/addons-page/addons/categorizeAddons.js"); - - -/***/ }), - -/***/ "./js/src/addons-page/constants.js": -/*!*****************************************!*\ - !*** ./js/src/addons-page/constants.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PLANS: () => (/* binding */ PLANS), -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ VIEWS: () => (/* binding */ VIEWS), -/* harmony export */ addonRequestURL: () => (/* binding */ addonRequestURL) -/* harmony export */ }); -var addonRequestURL = window.frmAddonsVars.addonRequestURL; - -var PREFIX = 'frm-addons'; -var VIEWS = { - AVAILABLE: 'available-addons', - ACTIVE: 'active-addons' -}; -var PLANS = { - BASIC: 'basic', - PLUS: 'plus', - BUSINESS: 'business', - ELITE: 'elite' -}; - -/***/ }), - -/***/ "./js/src/addons-page/elements/elements.js": -/*!*************************************************!*\ - !*** ./js/src/addons-page/elements/elements.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - bodyContent = _getElements.bodyContent, - sidebar = _getElements.sidebar; -bodyContent.querySelectorAll('.frm-card-item:not(.plugin-card-formidable-pro)').forEach(function (addon) { - var categories = addon.dataset.categories; - switch (true) { - case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS): - addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); - break; - case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS): - addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); - break; - case categories.includes(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC): - addon.setAttribute('data-categories', "".concat(categories, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, ",").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE)); - break; - } -}); -(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ - // Body elements - upgradeBanner: document.getElementById('frm-upgrade-banner'), - // Category elements - availableCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.AVAILABLE, "\"]")), - activeCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ACTIVE, "\"]")), - categoriesTopDivider: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-divider")), - basicPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BASIC, "\"]")), - plusPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.PLUS, "\"]")), - businessPlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.BUSINESS, "\"]")), - elitePlanCategory: sidebar.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PLANS.ELITE, "\"]")), - // Card elements - addonsList: document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")), - addons: bodyContent.querySelectorAll('.frm-card-item'), - availableAddons: bodyContent.querySelectorAll('.frm-card-item:not(.frm-locked-item)'), - addonsToggle: bodyContent.querySelectorAll('.frm_toggle_block'), - // Add children of the bodyContent to the elements object - bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children -}); - - -/***/ }), - -/***/ "./js/src/addons-page/elements/index.js": -/*!**********************************************!*\ - !*** ./js/src/addons-page/elements/index.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/addons-page/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/addons-page/events/addonToggleListener.js": -/*!**********************************************************!*\ - !*** ./js/src/addons-page/events/addonToggleListener.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui/ */ "./js/src/addons-page/ui/index.js"); -function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -/** - * Internal dependencies - */ - - -var targetButton; - -/** - * Manages event handling for addons toggle. - * - * @return {void} - */ -function addAddonToggleEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - addonsToggle = _getElements.addonsToggle; - addonsToggle.forEach(function (addonToggle) { - return addonToggle.addEventListener('click', onAddonToggleClick); - }); - wp.hooks.addAction('frm_update_addon_state', 'frmAddonPage', function () { - (0,_ui___WEBPACK_IMPORTED_MODULE_1__.setupActiveCategory)(); - }); -} - -/** - * Handles the click event on the addon toggle. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onAddonToggleClick = function onAddonToggleClick(event) { - var _targetButton; - if ((_targetButton = targetButton) !== null && _targetButton !== void 0 && _targetButton.classList.contains('frm_loading_button')) { - return; - } - var addonToggle = event.currentTarget; - var addon = addonToggle.closest('.frm-card-item'); - var actionMap = new Map([['frm-addon-not-installed', '.frm-install-addon'], ['frm-addon-installed', '.frm-activate-addon'], ['frm-addon-active', '.frm-deactivate-addon']]); - var _iterator = _createForOfIteratorHelper(actionMap.entries()), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _step$value = _slicedToArray(_step.value, 2), - className = _step$value[0], - selector = _step$value[1]; - if (addon.classList.contains(className)) { - targetButton = addon.querySelector(selector); - targetButton.click(); - break; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addAddonToggleEvents); - -/***/ }), - -/***/ "./js/src/addons-page/events/index.js": -/*!********************************************!*\ - !*** ./js/src/addons-page/events/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); -/* harmony import */ var _addonToggleListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addonToggleListener */ "./js/src/addons-page/events/addonToggleListener.js"); -/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./searchListener */ "./js/src/addons-page/events/searchListener.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Attaches event listeners for handling user interactions. - * - * @return {void} - */ -function addEventListeners() { - (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); - wp.hooks.addAction('frmPage.onCategoryClick', 'frmAddonsPage', function (selectedCategory) { - (0,_ui__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory)(selectedCategory); - }); - (0,_addonToggleListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); - (0,_searchListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - -/***/ }), - -/***/ "./js/src/addons-page/events/searchListener.js": -/*!*****************************************************!*\ - !*** ./js/src/addons-page/events/searchListener.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ "./js/src/addons-page/ui/index.js"); -/** - * Internal dependencies - */ - - - -var initSearch = window.frmDom.search.init; - -/** - * Adds search-related event listeners by calling the 'initSearch' function. - * - * @see frmDom.search method - * @return {void} - */ -function addSearchEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - searchInput = _getElements.searchInput; - initSearch(searchInput, 'frm-card-item', { - handleSearchResult: handleSearchResult - }); -} - -/** - * Manages UI state based on search results and input value. - * - * @private - * @param {Object} args Contains flags for search status. - * @param {boolean} args.foundSomething True if search yielded results. - * @param {boolean} args.notEmptySearchText True if search input is not empty. - * @param {Event} event The event object (input, search, or change event). - * @return {void} - */ -function handleSearchResult(_ref, event) { - var foundSomething = _ref.foundSomething, - notEmptySearchText = _ref.notEmptySearchText; - // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, - // triggering this method twice on 'x' button click. - if (event && event.type === 'search' && event.target.value === '') { - return; - } - var state = (0,_shared__WEBPACK_IMPORTED_MODULE_1__.getState)(); - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - allItemsCategory = _getElements2.allItemsCategory; - (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('notEmptySearchText', notEmptySearchText); - - // Revert to 'All Templates' if search and selected category are both empty - if (!state.notEmptySearchText && !state.selectedCategory) { - allItemsCategory.dispatchEvent(new Event('click', { - bubbles: true - })); - return; - } - - // Display search state if a category is selected - if (state.selectedCategory) { - (0,_ui__WEBPACK_IMPORTED_MODULE_2__.showSearchState)(notEmptySearchText); - - // Setting "selectedCategory" to an empty string as a flag for search state - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_1__.setSingleState)('selectedCategory', ''); - } - } - (0,_ui__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements)(foundSomething); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); - -/***/ }), - -/***/ "./js/src/addons-page/shared/index.js": -/*!********************************************!*\ - !*** ./js/src/addons-page/shared/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/addons-page/shared/pageState.js"); - - -/***/ }), - -/***/ "./js/src/addons-page/shared/pageState.js": -/*!************************************************!*\ - !*** ./js/src/addons-page/shared/pageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/** - * External dependencies - */ - - -// NOTE: -// Use setState() here to add new states on the Add-Ons page. -// Check the 'core/page-skeleton' package for shared states you can use. - - - -/***/ }), - -/***/ "./js/src/addons-page/ui/index.js": -/*!****************************************!*\ - !*** ./js/src/addons-page/ui/index.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.displaySearchElements), -/* harmony export */ setupActiveCategory: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupActiveCategory), -/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__.setupInitialView), -/* harmony export */ showEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_3__.showEmptyState), -/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_2__.showSearchState), -/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__.showSelectedCategory) -/* harmony export */ }); -/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/addons-page/ui/setupInitialView.js"); -/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/addons-page/ui/showSelectedCategory.js"); -/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./searchState */ "./js/src/addons-page/ui/searchState.js"); -/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/addons-page/ui/showEmptyState.js"); - - - - - -/***/ }), - -/***/ "./js/src/addons-page/ui/searchState.js": -/*!**********************************************!*\ - !*** ./js/src/addons-page/ui/searchState.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), -/* harmony export */ showSearchState: () => (/* binding */ showSearchState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Updates the UI to display the search state. - * - * @param {boolean} notEmptySearchText True if search input is not empty. - * @return {void} - */ -function showSearchState(notEmptySearchText) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - bodyContent = _getElements.bodyContent, - bodyContentChildren = _getElements.bodyContentChildren, - addonsList = _getElements.addonsList; - - // Remove highlighting from the currently selected category if the search text is not empty - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); - } - - // Hide non-relevant elements in the body content - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(addonsList); - - // Smoothly display the updated UI elements - new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent).fadeIn(); -} - -/** - * Displays search results based on search outcome. - * - * @param {boolean} foundSomething True if search yielded results. - * @return {void} - */ -function displaySearchElements(foundSomething) { - // Show empty state if no templates found - if (!foundSomething) { - (0,___WEBPACK_IMPORTED_MODULE_5__.showEmptyState)(); - return; - } - - // Hide empty state if currently displayed - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - emptyState = _getElements2.emptyState; - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); - } -} - -/***/ }), - -/***/ "./js/src/addons-page/ui/setupInitialView.js": -/*!***************************************************!*\ - !*** ./js/src/addons-page/ui/setupInitialView.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupActiveCategory: () => (/* binding */ setupActiveCategory), -/* harmony export */ setupInitialView: () => (/* binding */ setupInitialView) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * External dependencies - */ - - - - -/** - * Internal dependencies - */ - - - -var CAT_COUNT_CLASS = ".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-cat-count"); - -/** - * Sets up the initial view, performing any required - * DOM manipulations for proper element presentation. - * - * @return {void} - */ -function setupInitialView() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - sidebar = _getElements.sidebar, - searchInput = _getElements.searchInput, - bodyContent = _getElements.bodyContent; - var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); - searchInput.value = ''; - setupActiveCategory(); - setupAvailableCategory(); - setupAllAddonsCategory(); - setupPlansCategory(); - - // Smoothly display the updated UI elements - bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - bodyContentAnimate.fadeIn(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(sidebar); -} - -/** - * Sets up the "Active" category, updating the - * categorizedAddons object and the category count. - * - * @return {void} - */ -function setupActiveCategory() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - activeCategory = _getElements2.activeCategory, - availableCategory = _getElements2.availableCategory, - categoriesTopDivider = _getElements2.categoriesTopDivider; - var activeAddons = document.querySelectorAll('.frm-addon-active:not(.frm-locked-item)'); - if (activeAddons.length === 0) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([activeCategory, availableCategory, categoriesTopDivider]); - return; - } - _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.ACTIVE] = activeAddons; - - // Set "Active" category count - activeCategory.querySelector(CAT_COUNT_CLASS).textContent = activeAddons.length; -} - -/** - * Sets up the "Available" category, updating the - * categorizedAddons object and the category count. - * - * @private - * @return {void} - */ -function setupAvailableCategory() { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - bodyContent = _getElements3.bodyContent, - availableCategory = _getElements3.availableCategory, - availableAddons = _getElements3.availableAddons; - _addons__WEBPACK_IMPORTED_MODULE_4__.categorizedAddons[_constants__WEBPACK_IMPORTED_MODULE_5__.VIEWS.AVAILABLE] = availableAddons; - - // Set "Available" category count - if (availableCategory) { - availableCategory.querySelector(CAT_COUNT_CLASS).textContent = availableAddons.length; - var upgradeBannerAvailableCount = bodyContent.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_5__.PREFIX, "-available-count")); - if (upgradeBannerAvailableCount) { - upgradeBannerAvailableCount.textContent = availableAddons.length; - } - } -} - -/** - * Sets up the "All Add-Ons" category, updating the - * category count. - * - * @private - * @return {void} - */ -function setupAllAddonsCategory() { - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - allItemsCategory = _getElements4.allItemsCategory, - addons = _getElements4.addons; - - // Set "All Add-Ons" category count - allItemsCategory.querySelector(CAT_COUNT_CLASS).textContent = addons.length; -} - -/** - * Sets up the "All Add-Ons" category, updating the - * category count. - * - * @private - * @return {void} - */ -function setupPlansCategory() { - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - basicPlanCategory = _getElements5.basicPlanCategory, - plusPlanCategory = _getElements5.plusPlanCategory, - businessPlanCategory = _getElements5.businessPlanCategory, - elitePlanCategory = _getElements5.elitePlanCategory; - var getCount = function getCount(category) { - return parseInt(category.querySelector(CAT_COUNT_CLASS).textContent, 10) || 0; - }; - - // The "Formidable Pro" add-on is included in all plans, so we just consider that in the basicCount - var basicCount = getCount(basicPlanCategory); - var plusCount = getCount(plusPlanCategory) - 1; - var businessCount = getCount(businessPlanCategory) - 1; - var eliteCount = getCount(elitePlanCategory) - 1; - - // Update the text content for each category - plusPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount; - businessPlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount; - elitePlanCategory.querySelector(CAT_COUNT_CLASS).textContent = basicCount + plusCount + businessCount + eliteCount; -} - -/***/ }), - -/***/ "./js/src/addons-page/ui/showEmptyState.js": -/*!*************************************************!*\ - !*** ./js/src/addons-page/ui/showEmptyState.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showEmptyState: () => (/* binding */ showEmptyState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/addons-page/shared/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ "./js/src/addons-page/constants.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Display the search-empty state. - * - * @return {void} - */ -function showEmptyState() { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory; - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyState = _getElements.emptyState, - emptyStateButton = _getElements.emptyStateButton, - emptyStateTitle = _getElements.emptyStateTitle, - emptyStateText = _getElements.emptyStateText; - emptyState.setAttribute('data-view', selectedCategory); - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No add-ons found', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any add-ons that match your criteria.', 'formidable'); - emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request Add-On', 'formidable'); - emptyStateButton.href = _constants__WEBPACK_IMPORTED_MODULE_4__.addonRequestURL; - emptyStateButton.setAttribute('target', '_blank'); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); -} - -/***/ }), - -/***/ "./js/src/addons-page/ui/showSelectedCategory.js": -/*!*******************************************************!*\ - !*** ./js/src/addons-page/ui/showSelectedCategory.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/addons-page/elements/index.js"); -/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../addons */ "./js/src/addons-page/addons/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/addons-page/ui/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Show addons based on selected category. - * - * @param {string} selectedCategory The selected category to display addons for. - * @return {void} - */ -function showSelectedCategory(selectedCategory) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements.bodyContent, - addons = _getElements.addons, - emptyState = _getElements.emptyState, - upgradeBanner = _getElements.upgradeBanner; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(emptyState); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(upgradeBanner); - bodyContent.dataset.category = selectedCategory; - if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === selectedCategory) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(addons); - return; - } - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(addons); - if (_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory].length === 0) { - (0,___WEBPACK_IMPORTED_MODULE_4__.showEmptyState)(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(upgradeBanner); - } else { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(_addons__WEBPACK_IMPORTED_MODULE_3__.categorizedAddons[selectedCategory]); - } -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/factory/createPageElements.js": -/*!***************************************************!*\ - !*** ./js/src/core/factory/createPageElements.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* binding */ createPageElements) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page elements manager. - * - * @param {Object} [initialElements={}] An object containing initial DOM elements. - * @throws {Error} Throws an error if the `initialElements` is not an object. - * @return {Object} An object with methods to get and add elements. - */ -function createPageElements() { - var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialElements) !== 'object' || initialElements === null) { - throw new Error('createPageElements: initialElements must be a non-null object'); - } - var elements = initialElements; - - /** - * Retrieve the initialized essential DOM elements. - * - * @return {Object} The initialized elements object. - */ - function getElements() { - return elements; - } - - /** - * Add new elements to the elements object. - * - * @param {Object} newElements An object containing new elements to be added. - * @throws {Error} Throws an error if the `newElements` is not a non-null object. - * @return {void} Updates the elements object by merging the new elements into it. - */ - function addElements(newElements) { - if (_typeof(newElements) !== 'object' || newElements === null) { - throw new Error('addElements: newElements must be a non-null object'); - } - elements = _objectSpread(_objectSpread({}, elements), newElements); - } - return { - getElements: getElements, - addElements: addElements - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageState.js": -/*!************************************************!*\ - !*** ./js/src/core/factory/createPageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageState: () => (/* binding */ createPageState) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page state manager. - * - * @param {Object} [initialState={}] An object containing the initial state. - * @throws {Error} Throws an error if the `initialState` is not a plain object. - * @return {Object} An object with methods to initialize, get, and set the page state. - */ -function createPageState() { - var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialState) !== 'object' || initialState === null) { - throw new Error('createPageState: initialState must be a non-null object'); - } - var state = initialState; - - /** - * Returns the current page state. - * - * @return {Object|null} The current state of the page or null if not initialized. - */ - var getState = function getState() { - return state; - }; - - /** - * Returns a specific property from the current page state. - * - * @param {string} propertyName The name of the property to retrieve. - * @return {*} The value of the specified property, or null if it doesn't exist. - */ - var getSingleState = function getSingleState(propertyName) { - var value = Reflect.get(state, propertyName); - - // We convert `undefined` to `null` for a consistent API. - // This makes it easier for users to handle the results since all missing properties return `null`. - return value === undefined ? null : value; - }; - - /** - * Updates the page state with new values. - * - * @param {Object} newState The new values to update the state with. - * @throws {Error} Throws an error if `newState` is not a plain object. - * @return {void} - */ - var setState = function setState(newState) { - if (_typeof(newState) !== 'object' || newState === null) { - throw new Error('setState: newState must be a non-null object'); - } - state = _objectSpread(_objectSpread({}, state), newState); - }; - - /** - * Updates a specific property in the page state with a new value. - * - * @param {string} propertyName The name of the property to update. - * @param {*} value The new value to set for the property. - * @return {void} - */ - var setSingleState = function setSingleState(propertyName, value) { - if (Reflect.has(state, propertyName)) { - Reflect.set(state, propertyName, value); - } - }; - return { - getState: getState, - getSingleState: getSingleState, - setState: setState, - setSingleState: setSingleState - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/index.js": -/*!**************************************!*\ - !*** ./js/src/core/factory/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), -/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) -/* harmony export */ }); -/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); -/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/constants.js": -/*!************************************************!*\ - !*** ./js/src/core/page-skeleton/constants.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* binding */ VIEWS) -/* harmony export */ }); -var PREFIX = 'frm-page-skeleton'; -var SEARCH_RESULT_ITEM = 'frm-card-item'; -var VIEWS = { - ALL_ITEMS: 'all-items' -}; - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/elements.js": -/*!********************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/elements.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* binding */ addElements), -/* harmony export */ getElements: () => (/* binding */ getElements) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var bodyContent = document.getElementById('post-body-content'); -var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); - -// Append empty state elements to body content -var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); -bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); -var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); -var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ - bodyContent: bodyContent, - // Sidebar elements - sidebar: sidebar, - searchInput: sidebar.querySelector('.frm-search-input'), - categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), - allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) - }, emptyStateElements)), - getElements = _createPageElements.getElements, - addElements = _createPageElements.addElements; - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": -/*!*****************************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), -/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _window$frmDom = window.frmDom, - tag = _window$frmDom.tag, - div = _window$frmDom.div, - a = _window$frmDom.a, - img = _window$frmDom.img; - -/** - * Create and return the Empty State HTML element. - * - * @return {HTMLElement} The Empty State element. - */ -function createEmptyStateElement() { - var button = a({ - className: 'button button-primary frm-button-primary' - }); - button.setAttribute('role', 'button'); - return div({ - id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), - className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), - children: [img({ - src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), - alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') - }), div({ - className: 'frmcenter', - children: [tag('h2', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") - }), tag('p', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") - })] - }), button] - }); -} - -/** - * Return the elements related to the Empty State. - * - * @return {Object} Object containing Empty State related DOM elements. - */ -function getEmptyStateElements() { - var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); - return { - emptyState: emptyState, - emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), - emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), - emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') - }; -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/index.js": -/*!*****************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/categoryListener.js": -/*!**************************************************************!*\ - !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Manages event handling for sidebar category links. - * - * @return {void} - */ -function addCategoryEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - categoryItems = _getElements.categoryItems; - - // Attach click and keyboard event listeners to each sidebar category - categoryItems.forEach(function (category) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); - category.addEventListener('keydown', onCategoryKeydown); - }); -} - -/** - * Handles the click event on a category item. - * - * @private - * @param {Event} event The click event object. - */ -var onCategoryClick = function onCategoryClick(event) { - var clickedCategory = event.currentTarget; - var newSelectedCategory = clickedCategory.getAttribute('data-category'); - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory, - selectedCategoryEl = _getState.selectedCategoryEl, - notEmptySearchText = _getState.notEmptySearchText; - - // If the selected category hasn't changed, return early - if (selectedCategory === newSelectedCategory) { - return; - } - - /** - * Filter hook to modify the selected category. - * - * @param {string} selectedCategory The selected category - */ - selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); - - // Highlight the newly clicked category and update the application state - selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - selectedCategoryEl = clickedCategory; - selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ - selectedCategory: selectedCategory, - selectedCategoryEl: selectedCategoryEl - }); - - // Reset the search input if it contains text - if (notEmptySearchText) { - (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); - } - - /** - * Trigger custom action to update category content. - * - * @param {string} selectedCategory The selected category. - */ - wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); - - // Smoothly display the updated UI elements - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements2.bodyContent; - new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); -}; - -/** - * Handles the keyboard event on a category item. - * - * @param {KeyboardEvent} event The keyboard event object. - * @return {void} - */ -function onCategoryKeydown(event) { - // Only respond to 'Enter' or 'Space' key presses - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - onCategoryClick(event); - } -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/events/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), -/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); -/** - * Internal dependencies - */ - - -/** - * Resets the value of the search input and triggers an input event. - * - * @return {void} - */ -function resetSearchInput() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - searchInput = _getElements.searchInput; - searchInput.value = ''; - searchInput.dispatchEvent(new Event('input', { - bubbles: true - })); -} - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/index.js": -/*!********************************************!*\ - !*** ./js/src/core/page-skeleton/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), -/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), -/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), -/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); - - - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/pageState.js": -/*!*******************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/pageState.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* binding */ getSingleState), -/* harmony export */ getState: () => (/* binding */ getState), -/* harmony export */ setSingleState: () => (/* binding */ setSingleState), -/* harmony export */ setState: () => (/* binding */ setState) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - allItemsCategory = _getElements.allItemsCategory; -var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ - notEmptySearchText: false, - selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, - selectedCategoryEl: allItemsCategory - }), - getState = _createPageState.getState, - getSingleState = _createPageState.getSingleState, - setState = _createPageState.setState, - setSingleState = _createPageState.setSingleState; - - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/** - * Removes a query parameter and updates history with replaceState. - * - * @param {string} paramName The query parameter to remove. - * @return {void} - */ -var removeParamFromHistory = function removeParamFromHistory(paramName) { - return history.replaceState({}, '', removeQueryParam(paramName)); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./node_modules/memize/index.js": -/*!**************************************!*\ - !*** ./node_modules/memize/index.js ***! - \**************************************/ -/***/ ((module) => { - -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {Function} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {F & MemizeMemoizedFunction} Memoized function. - */ -function memize( fn, options ) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized( /* ...args */ ) { - var node = head, - len = arguments.length, - args, i; - - searchCache: while ( node ) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if ( node.args.length !== arguments.length ) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for ( i = 0; i < len; i++ ) { - if ( node.args[ i ] !== arguments[ i ] ) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== head ) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if ( node === tail ) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ ( head ).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply( null, args ), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( head ) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { - tail = /** @type {MemizeCacheNode} */ ( tail ).prev; - /** @type {MemizeCacheNode} */ ( tail ).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function() { - head = null; - tail = null; - size = 0; - }; - - if ( false ) {} - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - -module.exports = memize; - - -/***/ }), - -/***/ "./node_modules/sprintf-js/src/sprintf.js": -/*!************************************************!*\ - !*** ./node_modules/sprintf-js/src/sprintf.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[+-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } - - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line - - -/***/ }), - -/***/ "./node_modules/tannin/index.js": -/*!**************************************!*\ - !*** ./node_modules/tannin/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Tannin) -/* harmony export */ }); -/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); - - -/** - * Tannin constructor options. - * - * @typedef {Object} TanninOptions - * - * @property {string} [contextDelimiter] Joiner in string lookup with context. - * @property {Function} [onMissingKey] Callback to invoke when key missing. - */ - -/** - * Domain metadata. - * - * @typedef {Object} TanninDomainMetadata - * - * @property {string} [domain] Domain name. - * @property {string} [lang] Language code. - * @property {(string|Function)} [plural_forms] Plural forms expression or - * function evaluator. - */ - -/** - * Domain translation pair respectively representing the singular and plural - * translation. - * - * @typedef {[string,string]} TanninTranslation - */ - -/** - * Locale data domain. The key is used as reference for lookup, the value an - * array of two string entries respectively representing the singular and plural - * translation. - * - * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain - */ - -/** - * Jed-formatted locale data. - * - * @see http://messageformat.github.io/Jed/ - * - * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData - */ - -/** - * Default Tannin constructor options. - * - * @type {TanninOptions} - */ -var DEFAULT_OPTIONS = { - contextDelimiter: '\u0004', - onMissingKey: null, -}; - -/** - * Given a specific locale data's config `plural_forms` value, returns the - * expression. - * - * @example - * - * ``` - * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' - * ``` - * - * @param {string} pf Locale data plural forms. - * - * @return {string} Plural forms expression. - */ -function getPluralExpression( pf ) { - var parts, i, part; - - parts = pf.split( ';' ); - - for ( i = 0; i < parts.length; i++ ) { - part = parts[ i ].trim(); - if ( part.indexOf( 'plural=' ) === 0 ) { - return part.substr( 7 ); - } - } -} - -/** - * Tannin constructor. - * - * @class - * - * @param {TanninLocaleData} data Jed-formatted locale data. - * @param {TanninOptions} [options] Tannin options. - */ -function Tannin( data, options ) { - var key; - - /** - * Jed-formatted locale data. - * - * @name Tannin#data - * @type {TanninLocaleData} - */ - this.data = data; - - /** - * Plural forms function cache, keyed by plural forms string. - * - * @name Tannin#pluralForms - * @type {Object} - */ - this.pluralForms = {}; - - /** - * Effective options for instance, including defaults. - * - * @name Tannin#options - * @type {TanninOptions} - */ - this.options = {}; - - for ( key in DEFAULT_OPTIONS ) { - this.options[ key ] = options !== undefined && key in options - ? options[ key ] - : DEFAULT_OPTIONS[ key ]; - } -} - -/** - * Returns the plural form index for the given domain and value. - * - * @param {string} domain Domain on which to calculate plural form. - * @param {number} n Value for which plural form is to be calculated. - * - * @return {number} Plural form index. - */ -Tannin.prototype.getPluralForm = function( domain, n ) { - var getPluralForm = this.pluralForms[ domain ], - config, plural, pf; - - if ( ! getPluralForm ) { - config = this.data[ domain ][ '' ]; - - pf = ( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - if ( typeof pf !== 'function' ) { - plural = getPluralExpression( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); - } - - getPluralForm = this.pluralForms[ domain ] = pf; - } - - return getPluralForm( n ); -}; - -/** - * Translate a string. - * - * @param {string} domain Translation domain. - * @param {string|void} context Context distinguishing terms of the same name. - * @param {string} singular Primary key for translation lookup. - * @param {string=} plural Fallback value used for non-zero plural - * form index. - * @param {number=} n Value to use in calculating plural form. - * - * @return {string} Translated string. - */ -Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { - var index, key, entry; - - if ( n === undefined ) { - // Default to singular. - index = 0; - } else { - // Find index by evaluating plural form for value. - index = this.getPluralForm( domain, n ); - } - - key = singular; - - // If provided, context is prepended to key with delimiter. - if ( context ) { - key = context + this.options.contextDelimiter + singular; - } - - entry = this.data[ domain ][ key ]; - - // Verify not only that entry exists, but that the intended index is within - // range and non-empty. - if ( entry && entry[ index ] ) { - return entry[ index ]; - } - - if ( this.options.onMissingKey ) { - this.options.onMissingKey( singular, domain ); - } - - // If entry not found, fall back to singular vs. plural with zero index - // representing the singular value. - return index === 0 ? singular : plural; -}; - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArray) -/* harmony export */ }); -function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _toConsumableArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(r) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!*************************************!*\ - !*** ./js/src/addons-page/index.js ***! - \*************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/addons-page/ui/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/addons-page/events/index.js"); -/* harmony import */ var _addons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addons */ "./js/src/addons-page/addons/index.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_3__["default"])(function () { - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); - (0,_addons__WEBPACK_IMPORTED_MODULE_2__.buildCategorizedAddons)(); - (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); -}); -})(); - -/******/ })() -; -//# sourceMappingURL=addons-page.js.map \ No newline at end of file +(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return function(t,e){var n,r,a,c,l,s,u,f,d,p=1,y=t.length,m="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),s=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,l=c.width&&u>0?s.repeat(u):"",m+=c.align?d+n+l:"0"===s?d+l+n:l+d+n)}return m}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],l=e[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}var c=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.url,r=(t.nonce,"frm_hidden"),o="frm-hide-js",i="frm-current";function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},O=["(","?"],_={")":["("],":":["?","?:"]},j=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var T={contextDelimiter:"",onMissingKey:null};function F(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},T)this.options[n]=void 0!==e&&n in e?e[n]:T[n]}function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||x[o]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(N(n)&&R(r))if("function"==typeof o)if("number"==typeof i){var c={callback:o,priority:i,namespace:r};if(a[n]){var l,s=a[n].handlers;for(l=s.length;l>0&&!(i>=s[l-1].priority);l--);l===s.length?s[l]=c:s.splice(l,0,c),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++}))}else a[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},B=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var i=t[e];if(N(r)&&(n||R(o))){if(!i[r])return 0;var a=0;if(n)a=i[r].handlers.length,i[r]={runs:i[r].runs,handlers:[]};else for(var c=i[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),a++,i.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},s=c.length-1;s>=0;s--)l(s);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),a}}},M=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some((function(t){return t.namespace===r})):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,c=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},L),r.data[e]),t),r.data[e][""]=D(D({},L[""]),r.data[e][""])},c=function(t,e){a(t,e),i()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},s=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+s(r),o,t,e,r)):o};if(n){var f=function(t){q.test(t)&&i()};n.addAction("hookAdded","core/i18n",f),n.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+s(e),r,t,e)):r},_x:u,_n:function(t,e,r,o){var i=l(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+s(o),i,t,e,r,o)):i},_nx:function(t,e,r,o,i){var a=l(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+s(i),a,t,e,r,o,i)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(t,e,o){var i,a,c=e?e+""+t:t,l=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+s(o),l,t,e,o)),l}}}(0,0,V));G.getLocaleData.bind(G),G.setLocaleData.bind(G),G.resetLocaleData.bind(G),G.subscribe.bind(G);var J=G.__.bind(G),H=(G._x.bind(G),G._n.bind(G),G._nx.bind(G),G.isRTL.bind(G),G.hasTranslation.bind(G),window.frmDom),Q=H.tag,W=H.div,Y=H.a,tt=H.img;function et(t){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(t)}function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function rt(t,e,n){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ot,it=document.getElementById("post-body-content"),at=document.getElementById("".concat(v,"-sidebar")),ct=((ot=Y({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),W({id:"".concat(v,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(r),children:[tt({src:"".concat(e,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),W({className:"frmcenter",children:[Q("h2",{className:"".concat(v,"-title frm-mb-0")}),Q("p",{className:"".concat(v,"-text frm-mb-0")})]}),ot]}));null==it||it.appendChild(ct);var lt=function(){var t=document.querySelector("#".concat(v,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(v,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(v,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==mt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==mt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=pt(pt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:b,selectedCategoryEl:vt}),ht=bt.getState,gt=bt.getSingleState,St=bt.setState,wt=bt.setSingleState,xt=function(t){var e,n=t.currentTarget,r=n.getAttribute("data-category"),o=ht(),a=o.selectedCategory,c=o.selectedCategoryEl,l=o.notEmptySearchText;if(a!==r){a=wp.hooks.applyFilters("frmPage.selectedCategory",r),c.classList.remove(i),(c=n).classList.add(i),St({selectedCategory:a,selectedCategoryEl:c}),l&&((e=ut().searchInput).value="",e.dispatchEvent(new Event("input",{bubbles:!0}))),wp.hooks.doAction("frmPage.onCategoryClick",a);var u=ut().bodyContent;new s(u).fadeIn()}};function Ot(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),xt(t))}var _t=window.frmAddonsVars.addonRequestURL,jt="frm-addons",Et="available-addons",Pt="active-addons",kt="basic",At="plus",Ct="business",Tt="elite",Ft=ut(),It=Ft.bodyContent,Dt=Ft.sidebar;It.querySelectorAll(".frm-card-item:not(.plugin-card-formidable-pro)").forEach((function(t){var e=t.dataset.categories;switch(!0){case e.includes(Ct):t.setAttribute("data-categories","".concat(e,",").concat(Tt));break;case e.includes(At):t.setAttribute("data-categories","".concat(e,",").concat(Ct,",").concat(Tt));break;case e.includes(kt):t.setAttribute("data-categories","".concat(e,",").concat(At,",").concat(Ct,",").concat(Tt))}})),ft({upgradeBanner:document.getElementById("frm-upgrade-banner"),availableCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Et,'"]')),activeCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Pt,'"]')),categoriesTopDivider:Dt.querySelector(".".concat(v,"-divider")),basicPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(kt,'"]')),plusPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(At,'"]')),businessPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Ct,'"]')),elitePlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Tt,'"]')),addonsList:document.getElementById("".concat(jt,"-list")),addons:It.querySelectorAll(".frm-card-item"),availableAddons:It.querySelectorAll(".frm-card-item:not(.frm-locked-item)"),addonsToggle:It.querySelectorAll(".frm_toggle_block"),bodyContentChildren:null==It?void 0:It.children});var Lt={};Lt[Et]=[],Lt[Pt]=[];var qt,Rt=".".concat(v,"-cat-count");function Nt(){var t=ut(),e=t.activeCategory,n=t.availableCategory,r=t.categoriesTopDivider,o=document.querySelectorAll(".frm-addon-active:not(.frm-locked-item)");0!==o.length?(Lt[Pt]=o,e.querySelector(Rt).textContent=o.length):p([e,n,r])}function zt(){var t=ht().selectedCategory,e=ut(),n=e.emptyState,r=e.emptyStateButton,o=e.emptyStateTitle,i=e.emptyStateText;n.setAttribute("data-view",t),o.textContent=J("No add-ons found","formidable"),i.textContent=J("Sorry, we didn't find any add-ons that match your criteria.","formidable"),r.textContent=J("Request Add-On","formidable"),r.href=_t,r.setAttribute("target","_blank"),d([n,r])}function Bt(t,e){if(t){if("string"==typeof t)return Mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mt(t,e):void 0}}function Mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(new Map([["frm-addon-not-installed",".frm-install-addon"],["frm-addon-installed",".frm-activate-addon"],["frm-addon-active",".frm-deactivate-addon"]]).entries());try{for(a.s();!(o=a.n()).done;){var c=(n=o.value,r=2,function(t){if(Array.isArray(t))return t}(n)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],l=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(t){s=!0,o=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(n,r)||Bt(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],s=c[1];if(i.classList.contains(l)){(qt=i.querySelector(s)).click();break}}}catch(t){a.e(t)}finally{a.f()}}};var Ut=window.frmDom.search.init;function Zt(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=ht(),a=ut().allItemsCategory;wt("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ut(),n=e.bodyContent,r=e.bodyContentChildren,o=e.addonsList;t&>("selectedCategoryEl").classList.remove(i),p(r),y(o),new s(n).fadeIn()}(r),r&&wt("selectedCategory","")),function(t){if(t){var e,n=ut().emptyState;e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")&&m(n)}else zt()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}function Kt(){var t;ut().categoryItems.forEach((function(t){f(t,xt),t.addEventListener("keydown",Ot)})),wp.hooks.addAction("frmPage.onCategoryClick","frmAddonsPage",(function(t){!function(t){var e=ut(),n=e.bodyContent,r=e.addons,o=e.emptyState,i=e.upgradeBanner;m(o),y(i),n.dataset.category=t,b!==t?(p(r),0===Lt[t].length?(zt(),m(i)):d(Lt[t])):d(r)}(t)})),ut().addonsToggle.forEach((function(t){return t.addEventListener("click",$t)})),wp.hooks.addAction("frm_update_addon_state","frmAddonPage",(function(){Nt()})),t=ut().searchInput,Ut(t,"frm-card-item",{handleSearchResult:Zt})}var Xt;Xt=function(){(function(){var t,e,n,r,i,a,c,l,u,f,d=ut(),p=d.sidebar,m=d.searchInput,v=d.bodyContent,b=new s(v);m.value="",Nt(),function(){var t=ut(),e=t.bodyContent,n=t.availableCategory,r=t.availableAddons;if(Lt[Et]=r,n){n.querySelector(Rt).textContent=r.length;var o=e.querySelector(".".concat(jt,"-available-count"));o&&(o.textContent=r.length)}}(),function(){var t=ut(),e=t.allItemsCategory,n=t.addons;e.querySelector(Rt).textContent=n.length}(),e=(t=ut()).basicPlanCategory,n=t.plusPlanCategory,r=t.businessPlanCategory,i=t.elitePlanCategory,c=(a=function(t){return parseInt(t.querySelector(Rt).textContent,10)||0})(e),l=a(n)-1,u=a(r)-1,f=a(i)-1,n.querySelector(Rt).textContent=c+l,r.querySelector(Rt).textContent=c+l+u,i.querySelector(Rt).textContent=c+l+u+f,v.classList.remove(o),p.classList.remove(o),b.fadeIn(),y(p)})(),ut().addons.forEach((function(t){var e=t.getAttribute("data-categories");e&&e.split(",").forEach((function(e){Lt[e]||(Lt[e]=[]),Lt[e].push(t)}))})),Kt()},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Xt):Xt())})()})(); \ No newline at end of file diff --git a/js/form-templates.js b/js/form-templates.js index 5847ea0e72..a5ecd8b989 100644 --- a/js/form-templates.js +++ b/js/form-templates.js @@ -1,6752 +1,2 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@tannin/compile/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/compile/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ compile) -/* harmony export */ }); -/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); -/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); - - - -/** - * Given a C expression, returns a function which can be called to evaluate its - * result. - * - * @example - * - * ```js - * import compile from '@tannin/compile'; - * - * const evaluate = compile( 'n > 1' ); - * - * evaluate( { n: 2 } ); - * // ⇒ true - * ``` - * - * @param {string} expression C expression. - * - * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. - */ -function compile( expression ) { - var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( variables ) { - return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/evaluate/index.js": -/*!************************************************!*\ - !*** ./node_modules/@tannin/evaluate/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ evaluate) -/* harmony export */ }); -/** - * Operator callback functions. - * - * @type {Object} - */ -var OPERATORS = { - '!': function( a ) { - return ! a; - }, - '*': function( a, b ) { - return a * b; - }, - '/': function( a, b ) { - return a / b; - }, - '%': function( a, b ) { - return a % b; - }, - '+': function( a, b ) { - return a + b; - }, - '-': function( a, b ) { - return a - b; - }, - '<': function( a, b ) { - return a < b; - }, - '<=': function( a, b ) { - return a <= b; - }, - '>': function( a, b ) { - return a > b; - }, - '>=': function( a, b ) { - return a >= b; - }, - '==': function( a, b ) { - return a === b; - }, - '!=': function( a, b ) { - return a !== b; - }, - '&&': function( a, b ) { - return a && b; - }, - '||': function( a, b ) { - return a || b; - }, - '?:': function( a, b, c ) { - if ( a ) { - throw b; - } - - return c; - }, -}; - -/** - * Given an array of postfix terms and operand variables, returns the result of - * the postfix evaluation. - * - * @example - * - * ```js - * import evaluate from '@tannin/evaluate'; - * - * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' - * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; - * - * evaluate( terms, {} ); - * // ⇒ 6.333333333333334 - * ``` - * - * @param {string[]} postfix Postfix terms. - * @param {Object} variables Operand variables. - * - * @return {*} Result of evaluation. - */ -function evaluate( postfix, variables ) { - var stack = [], - i, j, args, getOperatorResult, term, value; - - for ( i = 0; i < postfix.length; i++ ) { - term = postfix[ i ]; - - getOperatorResult = OPERATORS[ term ]; - if ( getOperatorResult ) { - // Pop from stack by number of function arguments. - j = getOperatorResult.length; - args = Array( j ); - while ( j-- ) { - args[ j ] = stack.pop(); - } - - try { - value = getOperatorResult.apply( null, args ); - } catch ( earlyReturn ) { - return earlyReturn; - } - } else if ( variables.hasOwnProperty( term ) ) { - value = variables[ term ]; - } else { - value = +term; - } - - stack.push( value ); - } - - return stack[ 0 ]; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/plural-forms/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@tannin/plural-forms/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pluralForms) -/* harmony export */ }); -/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); - - -/** - * Given a C expression, returns a function which, when called with a value, - * evaluates the result with the value assumed to be the "n" variable of the - * expression. The result will be coerced to its numeric equivalent. - * - * @param {string} expression C expression. - * - * @return {Function} Evaluator function. - */ -function pluralForms( expression ) { - var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( n ) { - return +evaluate( { n: n } ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/postfix/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/postfix/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ postfix) -/* harmony export */ }); -var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; - -/** - * Operator precedence mapping. - * - * @type {Object} - */ -PRECEDENCE = { - '(': 9, - '!': 8, - '*': 7, - '/': 7, - '%': 7, - '+': 6, - '-': 6, - '<': 5, - '<=': 5, - '>': 5, - '>=': 5, - '==': 4, - '!=': 4, - '&&': 3, - '||': 2, - '?': 1, - '?:': 1, -}; - -/** - * Characters which signal pair opening, to be terminated by terminators. - * - * @type {string[]} - */ -OPENERS = [ '(', '?' ]; - -/** - * Characters which signal pair termination, the value an array with the - * opener as its first member. The second member is an optional operator - * replacement to push to the stack. - * - * @type {string[]} - */ -TERMINATORS = { - ')': [ '(' ], - ':': [ '?', '?:' ], -}; - -/** - * Pattern matching operators and openers. - * - * @type {RegExp} - */ -PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; - -/** - * Given a C expression, returns the equivalent postfix (Reverse Polish) - * notation terms as an array. - * - * If a postfix string is desired, simply `.join( ' ' )` the result. - * - * @example - * - * ```js - * import postfix from '@tannin/postfix'; - * - * postfix( 'n > 1' ); - * // ⇒ [ 'n', '1', '>' ] - * ``` - * - * @param {string} expression C expression. - * - * @return {string[]} Postfix terms. - */ -function postfix( expression ) { - var terms = [], - stack = [], - match, operator, term, element; - - while ( ( match = expression.match( PATTERN ) ) ) { - operator = match[ 0 ]; - - // Term is the string preceding the operator match. It may contain - // whitespace, and may be empty (if operator is at beginning). - term = expression.substr( 0, match.index ).trim(); - if ( term ) { - terms.push( term ); - } - - while ( ( element = stack.pop() ) ) { - if ( TERMINATORS[ operator ] ) { - if ( TERMINATORS[ operator ][ 0 ] === element ) { - // Substitution works here under assumption that because - // the assigned operator will no longer be a terminator, it - // will be pushed to the stack during the condition below. - operator = TERMINATORS[ operator ][ 1 ] || operator; - break; - } - } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { - // Push to stack if either an opener or when pop reveals an - // element of lower precedence. - stack.push( element ); - break; - } - - // For each popped from stack, push to terms. - terms.push( element ); - } - - if ( ! TERMINATORS[ operator ] ) { - stack.push( operator ); - } - - // Slice matched fragment from expression to continue match. - expression = expression.substr( match.index + operator.length ); - } - - // Push remainder of operand, if exists, to terms. - expression = expression.trim(); - if ( expression ) { - terms.push( expression ); - } - - // Pop remaining items from stack into terms. - return terms.concat( stack.reverse() ); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback AddHook - * - * Adds the hook to the appropriate hooks container. - * - * @param {string} hookName Name of hook to add - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. - * @param {import('.').Callback} callback Function to call when the hook is run - * @param {number} [priority=10] Priority of this hook - */ - -/** - * Returns a function which, when invoked, will add a hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {AddHook} Function that adds a new hook. - */ - -function createAddHook(hooks, storeKey) { - return function addHook(hookName, namespace, callback) { - var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } - - if ('function' !== typeof callback) { - // eslint-disable-next-line no-console - console.error('The hook callback must be a function.'); - return; - } // Validate numeric priority - - - if ('number' !== typeof priority) { - // eslint-disable-next-line no-console - console.error('If specified, the hook priority must be a number.'); - return; - } - - var handler = { - callback: callback, - priority: priority, - namespace: namespace - }; - - if (hooksStore[hookName]) { - // Find the correct insert index of the new hook. - var handlers = hooksStore[hookName].handlers; - /** @type {number} */ - - var i; - - for (i = handlers.length; i > 0; i--) { - if (priority >= handlers[i - 1].priority) { - break; - } - } - - if (i === handlers.length) { - // If append, operate via direct assignment. - handlers[i] = handler; - } else { - // Otherwise, insert before index via splice. - handlers.splice(i, 0, handler); - } // We may also be currently executing this hook. If the callback - // we're adding would come after the current callback, there's no - // problem; otherwise we need to increase the execution index of - // any other runs by 1 to account for the added element. - - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex++; - } - }); - } else { - // This is the first hook of its type. - hooksStore[hookName] = { - handlers: [handler], - runs: 0 - }; - } - - if (hookName !== 'hookAdded') { - hooks.doAction('hookAdded', hookName, namespace, callback, priority); - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); -//# sourceMappingURL=createAddHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Returns a function which, when invoked, will return the name of the - * currently running hook, or `null` if no hook of the given type is currently - * running. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {() => string | null} Function that returns the current hook name or null. - */ -function createCurrentHook(hooks, storeKey) { - return function currentHook() { - var _hooksStore$__current, _hooksStore$__current2; - - var hooksStore = hooks[storeKey]; - 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; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); -//# sourceMappingURL=createCurrentHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - -/** - * @callback DidHook - * - * Returns the number of times an action has been fired. - * - * @param {string} hookName The hook name to check. - * - * @return {number | undefined} The number of times the hook has run. - */ - -/** - * Returns a function which, when invoked, will return the number of times a - * hook has been called. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DidHook} Function that returns a hook's call count. - */ - -function createDidHook(hooks, storeKey) { - return function didHook(hookName) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { - return; - } - - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); -//# sourceMappingURL=createDidHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback DoingHook - * Returns whether a hook is currently being executed. - * - * @param {string} [hookName] The name of the hook to check for. If - * omitted, will check for any hook being executed. - * - * @return {boolean} Whether the hook is being executed. - */ - -/** - * Returns a function which, when invoked, will return whether a hook is - * currently being executed. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DoingHook} Function that returns whether a hook is currently - * being executed. - */ -function createDoingHook(hooks, storeKey) { - return function doingHook(hookName) { - var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. - - if ('undefined' === typeof hookName) { - return 'undefined' !== typeof hooksStore.__current[0]; - } // Return the __current hook. - - - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); -//# sourceMappingURL=createDoingHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback HasHook - * - * Returns whether any handlers are attached for the given hookName and optional namespace. - * - * @param {string} hookName The name of the hook to check for. - * @param {string} [namespace] Optional. The unique namespace identifying the callback - * in the form `vendor/plugin/function`. - * - * @return {boolean} Whether there are handlers that are attached to the given hook. - */ - -/** - * Returns a function which, when invoked, will return whether any handlers are - * attached to a particular hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {HasHook} Function that returns whether any handlers are - * attached to a particular hook and optional namespace. - */ -function createHasHook(hooks, storeKey) { - return function hasHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; // Use the namespace if provided. - - if ('undefined' !== typeof namespace) { - return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { - return hook.namespace === namespace; - }); - } - - return hookName in hooksStore; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); -//# sourceMappingURL=createHasHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ _Hooks: () => (/* binding */ _Hooks), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); -/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); -/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); -/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); -/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); -/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); -/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Internal class for constructing hooks. Use `createHooks()` function - * - * Note, it is necessary to expose this class to make its type public. - * - * @private - */ - -var _Hooks = function _Hooks() { - (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); - - /** @type {import('.').Store} actions */ - this.actions = Object.create(null); - this.actions.__current = []; - /** @type {import('.').Store} filters */ - - this.filters = Object.create(null); - this.filters.__current = []; - this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); - this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); - this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); - this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); - this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); - this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); - this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); - this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); - this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); - this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); - this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); - this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); - this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); - this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); - this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); - this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); -}; -/** @typedef {_Hooks} Hooks */ - -/** - * Returns an instance of the hooks object. - * - * @return {Hooks} A Hooks instance. - */ - -function createHooks() { - return new _Hooks(); -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); -//# sourceMappingURL=createHooks.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback RemoveHook - * Removes the specified callback (or all callbacks) from the hook with a given hookName - * and namespace. - * - * @param {string} hookName The name of the hook to modify. - * @param {string} namespace The unique namespace identifying the callback in the - * form `vendor/plugin/function`. - * - * @return {number | undefined} The number of callbacks removed. - */ - -/** - * Returns a function which, when invoked, will remove a specified hook or all - * hooks by the given name. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, - * without regard to namespace. Used to create - * `removeAll*` functions. - * - * @return {RemoveHook} Function that removes hooks. - */ - -function createRemoveHook(hooks, storeKey) { - var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function removeHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } // Bail if no hooks exist by this name - - - if (!hooksStore[hookName]) { - return 0; - } - - var handlersRemoved = 0; - - if (removeAll) { - handlersRemoved = hooksStore[hookName].handlers.length; - hooksStore[hookName] = { - runs: hooksStore[hookName].runs, - handlers: [] - }; - } else { - // Try to find the specified callback to remove. - var handlers = hooksStore[hookName].handlers; - - var _loop = function _loop(i) { - if (handlers[i].namespace === namespace) { - handlers.splice(i, 1); - handlersRemoved++; // This callback may also be part of a hook that is - // currently executing. If the callback we're removing - // comes after the current callback, there's no problem; - // otherwise we need to decrease the execution index of any - // other runs by 1 to account for the removed element. - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex--; - } - }); - } - }; - - for (var i = handlers.length - 1; i >= 0; i--) { - _loop(i); - } - } - - if (hookName !== 'hookRemoved') { - hooks.doAction('hookRemoved', hookName, namespace); - } - - return handlersRemoved; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); -//# sourceMappingURL=createRemoveHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); - - -/** - * Returns a function which, when invoked, will execute all callbacks - * registered to a hook of the specified type, optionally returning the final - * value of the call chain. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to - * return its first argument. - * - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. - */ -function createRunHook(hooks, storeKey) { - var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function runHooks(hookName) { - var hooksStore = hooks[storeKey]; - - if (!hooksStore[hookName]) { - hooksStore[hookName] = { - handlers: [], - runs: 0 - }; - } - - hooksStore[hookName].runs++; - var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. - - if (true) { - // Handle any 'all' hooks registered. - if ('hookAdded' !== hookName && hooksStore.all) { - handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); - } - } - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (!handlers || !handlers.length) { - return returnFirstArg ? args[0] : undefined; - } - - var hookInfo = { - name: hookName, - currentIndex: 0 - }; - - hooksStore.__current.push(hookInfo); - - while (hookInfo.currentIndex < handlers.length) { - var handler = handlers[hookInfo.currentIndex]; - var result = handler.callback.apply(null, args); - - if (returnFirstArg) { - args[0] = result; - } - - hookInfo.currentIndex++; - } - - hooksStore.__current.pop(); - - if (returnFirstArg) { - return args[0]; - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); -//# sourceMappingURL=createRunHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actions: () => (/* binding */ actions), -/* harmony export */ addAction: () => (/* binding */ addAction), -/* harmony export */ addFilter: () => (/* binding */ addFilter), -/* harmony export */ applyFilters: () => (/* binding */ applyFilters), -/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ currentAction: () => (/* binding */ currentAction), -/* harmony export */ currentFilter: () => (/* binding */ currentFilter), -/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), -/* harmony export */ didAction: () => (/* binding */ didAction), -/* harmony export */ didFilter: () => (/* binding */ didFilter), -/* harmony export */ doAction: () => (/* binding */ doAction), -/* harmony export */ doingAction: () => (/* binding */ doingAction), -/* harmony export */ doingFilter: () => (/* binding */ doingFilter), -/* harmony export */ filters: () => (/* binding */ filters), -/* harmony export */ hasAction: () => (/* binding */ hasAction), -/* harmony export */ hasFilter: () => (/* binding */ hasFilter), -/* harmony export */ removeAction: () => (/* binding */ removeAction), -/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), -/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), -/* harmony export */ removeFilter: () => (/* binding */ removeFilter) -/* harmony export */ }); -/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); -/** - * Internal dependencies - */ - -/** @typedef {(...args: any[])=>any} Callback */ - -/** - * @typedef Handler - * @property {Callback} callback The callback - * @property {string} namespace The namespace - * @property {number} priority The namespace - */ - -/** - * @typedef Hook - * @property {Handler[]} handlers Array of handlers - * @property {number} runs Run counter - */ - -/** - * @typedef Current - * @property {string} name Hook name - * @property {number} currentIndex The index - */ - -/** - * @typedef {Record & {__current: Current[]}} Store - */ - -/** - * @typedef {'actions' | 'filters'} StoreKey - */ - -/** - * @typedef {import('./createHooks').Hooks} Hooks - */ - -var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); -var addAction = defaultHooks.addAction, - addFilter = defaultHooks.addFilter, - removeAction = defaultHooks.removeAction, - removeFilter = defaultHooks.removeFilter, - hasAction = defaultHooks.hasAction, - hasFilter = defaultHooks.hasFilter, - removeAllActions = defaultHooks.removeAllActions, - removeAllFilters = defaultHooks.removeAllFilters, - doAction = defaultHooks.doAction, - applyFilters = defaultHooks.applyFilters, - currentAction = defaultHooks.currentAction, - currentFilter = defaultHooks.currentFilter, - doingAction = defaultHooks.doingAction, - doingFilter = defaultHooks.doingFilter, - didAction = defaultHooks.didAction, - didFilter = defaultHooks.didFilter, - actions = defaultHooks.actions, - filters = defaultHooks.filters; - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a hookName string. - * - * @param {string} hookName The hook name to validate. Should be a non empty string containing - * only numbers, letters, dashes, periods and underscores. Also, - * the hook name cannot begin with `__`. - * - * @return {boolean} Whether the hook name is valid. - */ -function validateHookName(hookName) { - if ('string' !== typeof hookName || '' === hookName) { - // eslint-disable-next-line no-console - console.error('The hook name must be a non-empty string.'); - return false; - } - - if (/^__/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name cannot begin with `__`.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); -//# sourceMappingURL=validateHookName.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a namespace string. - * - * @param {string} namespace The namespace to validate - should take the form - * `vendor/plugin/function`. - * - * @return {boolean} Whether the namespace is valid. - */ -function validateNamespace(namespace) { - if ('string' !== typeof namespace || '' === namespace) { - // eslint-disable-next-line no-console - console.error('The namespace must be a non-empty string.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { - // eslint-disable-next-line no-console - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); -//# sourceMappingURL=validateNamespace.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": -/*!******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createI18n: () => (/* binding */ createI18n) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); - - -function 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; } - -function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } - -/** - * External dependencies - */ - -/** - * @typedef {Record} LocaleData - */ - -/** - * Default locale data to use for Tannin domain when not otherwise provided. - * Assumes an English plural forms expression. - * - * @type {LocaleData} - */ - -var DEFAULT_LOCALE_DATA = { - '': { - /** @param {number} n */ - plural_forms: function plural_forms(n) { - return n === 1 ? 0 : 1; - } - } -}; -/* - * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, - * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. - */ - -var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; -/** - * @typedef {(domain?: string) => LocaleData} GetLocaleData - * - * Returns locale data by domain in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData - * - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData - * - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** @typedef {() => void} SubscribeCallback */ - -/** @typedef {() => void} UnsubscribeCallback */ - -/** - * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe - * - * Subscribes to changes of locale data - */ - -/** - * @typedef {(domain?: string) => string} GetFilterDomain - * Retrieve the domain to use when calling domain-specific filters. - */ - -/** - * @typedef {(text: string, domain?: string) => string} __ - * - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - */ - -/** - * @typedef {(text: string, context: string, domain?: string) => string} _x - * - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n - * - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx - * - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - */ - -/** - * @typedef {() => boolean} IsRtl - * - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - */ - -/** - * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation - * - * Check if there is a translation for a given string in singular form. - */ - -/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ - -/** - * An i18n instance - * - * @typedef I18n - * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. - * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. - * @property {__} __ Retrieve the translation of text. - * @property {_x} _x Retrieve translated string with gettext context. - * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied - * number. - * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * @property {IsRtl} isRTL Check if current locale is RTL. - * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. - */ - -/** - * Create an i18n instance - * - * @param {LocaleData} [initialData] Locale data configuration. - * @param {string} [initialDomain] Domain for which configuration applies. - * @param {Hooks} [hooks] Hooks implementation. - * @return {I18n} I18n instance - */ - -var createI18n = function createI18n(initialData, initialDomain, hooks) { - /** - * The underlying instance of Tannin to which exported functions interface. - * - * @type {Tannin} - */ - var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); - var listeners = new Set(); - - var notifyListeners = function notifyListeners() { - listeners.forEach(function (listener) { - return listener(); - }); - }; - /** - * Subscribe to changes of locale data. - * - * @param {SubscribeCallback} callback Subscription callback. - * @return {UnsubscribeCallback} Unsubscribe callback. - */ - - - var subscribe = function subscribe(callback) { - listeners.add(callback); - return function () { - return listeners.delete(callback); - }; - }; - /** @type {GetLocaleData} */ - - - var getLocaleData = function getLocaleData() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return tannin.data[domain]; - }; - /** - * @param {LocaleData} [data] - * @param {string} [domain] - */ - - - var doSetLocaleData = function doSetLocaleData(data) { - var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits - // a plural forms expression). - - tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); - }; - /** @type {SetLocaleData} */ - - - var setLocaleData = function setLocaleData(data, domain) { - doSetLocaleData(data, domain); - notifyListeners(); - }; - /** @type {ResetLocaleData} */ - - - var resetLocaleData = function resetLocaleData(data, domain) { - // Reset all current Tannin locale data. - tannin.data = {}; // Reset cached plural forms functions cache. - - tannin.pluralForms = {}; - setLocaleData(data, domain); - }; - /** - * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not - * otherwise previously assigned. - * - * @param {string|undefined} domain Domain to retrieve the translated text. - * @param {string|undefined} context Context information for the translators. - * @param {string} single Text to translate if non-plural. Used as - * fallback return value on a caught error. - * @param {string} [plural] The text to be used if the number is - * plural. - * @param {number} [number] The number to compare against to use - * either the singular or plural form. - * - * @return {string} The translated string. - */ - - - var dcnpgettext = function dcnpgettext() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - var context = arguments.length > 1 ? arguments[1] : undefined; - var single = arguments.length > 2 ? arguments[2] : undefined; - var plural = arguments.length > 3 ? arguments[3] : undefined; - var number = arguments.length > 4 ? arguments[4] : undefined; - - if (!tannin.data[domain]) { - // use `doSetLocaleData` to set silently, without notifying listeners - doSetLocaleData(undefined, domain); - } - - return tannin.dcnpgettext(domain, context, single, plural, number); - }; - /** @type {GetFilterDomain} */ - - - var getFilterDomain = function getFilterDomain() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return domain; - }; - /** @type {__} */ - - - var __ = function __(text, domain) { - var translation = dcnpgettext(domain, undefined, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext', translation, text, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) - ); - }; - /** @type {_x} */ - - - var _x = function _x(text, context, domain) { - var translation = dcnpgettext(domain, context, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation based on context information. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) - ); - }; - /** @type {_n} */ - - - var _n = function _n(single, plural, number, domain) { - var translation = dcnpgettext(domain, undefined, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) - ); - }; - /** @type {_nx} */ - - - var _nx = function _nx(single, plural, number, context, domain) { - var translation = dcnpgettext(domain, context, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string with gettext context. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) - ); - }; - /** @type {IsRtl} */ - - - var isRTL = function isRTL() { - return 'rtl' === _x('ltr', 'text direction'); - }; - /** @type {HasTranslation} */ - - - var hasTranslation = function hasTranslation(single, context, domain) { - var _tannin$data, _tannin$data2; - - var key = context ? context + "\x04" + single : single; - 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]); - - if (hooks) { - /** - * Filters the presence of a translation in the locale data. - * - * @param {boolean} hasTranslation Whether the translation is present or not.. - * @param {string} single The singular form of the translated text (used as key in locale data) - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation', result, single, context, domain); - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); - } - - return result; - }; - - if (initialData) { - setLocaleData(initialData, initialDomain); - } - - if (hooks) { - /** - * @param {string} hookName - */ - var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { - if (I18N_HOOK_REGEXP.test(hookName)) { - notifyListeners(); - } - }; - - hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); - hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); - } - - return { - getLocaleData: getLocaleData, - setLocaleData: setLocaleData, - resetLocaleData: resetLocaleData, - subscribe: subscribe, - __: __, - _x: _x, - _n: _n, - _nx: _nx, - isRTL: isRTL, - hasTranslation: hasTranslation - }; -}; -//# sourceMappingURL=create-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* binding */ __), -/* harmony export */ _n: () => (/* binding */ _n), -/* harmony export */ _nx: () => (/* binding */ _nx), -/* harmony export */ _x: () => (/* binding */ _x), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), -/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), -/* harmony export */ isRTL: () => (/* binding */ isRTL), -/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), -/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), -/* harmony export */ subscribe: () => (/* binding */ subscribe) -/* harmony export */ }); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); -/** - * Internal dependencies - */ - -/** - * WordPress dependencies - */ - - -var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); -/** - * Default, singleton instance of `I18n`. - */ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); -/* - * Comments in this file are duplicated from ./i18n due to - * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 - */ - -/** - * @typedef {import('./create-i18n').LocaleData} LocaleData - * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback - * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback - */ - -/** - * Returns locale data by domain in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {string} [domain] Domain for which to get the data. - * @return {LocaleData} Locale data. - */ - -var getLocaleData = i18n.getLocaleData.bind(i18n); -/** - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var setLocaleData = i18n.setLocaleData.bind(i18n); -/** - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var resetLocaleData = i18n.resetLocaleData.bind(i18n); -/** - * Subscribes to changes of locale data - * - * @param {SubscribeCallback} callback Subscription callback - * @return {UnsubscribeCallback} Unsubscribe callback - */ - -var subscribe = i18n.subscribe.bind(i18n); -/** - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - * - * @param {string} text Text to translate. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated text. - */ - -var __ = i18n.__.bind(i18n); -/** - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - * - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated context string without pipe. - */ - -var _x = i18n._x.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _n = i18n._n.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _nx = i18n._nx.bind(i18n); -/** - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - * - * @return {boolean} Whether locale is RTL. - */ - -var isRTL = i18n.isRTL.bind(i18n); -/** - * Check if there is a translation for a given string (in singular form). - * - * @param {string} single Singular form of the string to look up. - * @param {string} [context] Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * @return {boolean} Whether the translation exists or not. - */ - -var hasTranslation = i18n.hasTranslation.bind(i18n); -//# sourceMappingURL=default-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), -/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), -/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), -/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), -/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), -/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), -/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), -/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), -/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), -/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), -/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), -/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) -/* harmony export */ }); -/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": -/*!**************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sprintf: () => (/* binding */ sprintf) -/* harmony export */ }); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * External dependencies - */ - - -/** - * Log to console, once per message; or more precisely, per referentially equal - * argument set. Because Jed throws errors, we log these to the console instead - * to avoid crashing the application. - * - * @param {...*} args Arguments to pass to `console.error` - */ - -var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console - -/** - * Returns a formatted string. If an error occurs in applying the format, the - * original format string is returned. - * - * @param {string} format The format of the string to generate. - * @param {...*} args Arguments to apply to the format. - * - * @see https://www.npmjs.com/package/sprintf-js - * - * @return {string} The formatted string. - */ - -function sprintf(format) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); - } catch (error) { - logErrorOnce('sprintf error: \n\n' + error.toString()); - return format; - } -} -//# sourceMappingURL=sprintf.js.map - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/factory/createPageElements.js": -/*!***************************************************!*\ - !*** ./js/src/core/factory/createPageElements.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* binding */ createPageElements) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page elements manager. - * - * @param {Object} [initialElements={}] An object containing initial DOM elements. - * @throws {Error} Throws an error if the `initialElements` is not an object. - * @return {Object} An object with methods to get and add elements. - */ -function createPageElements() { - var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialElements) !== 'object' || initialElements === null) { - throw new Error('createPageElements: initialElements must be a non-null object'); - } - var elements = initialElements; - - /** - * Retrieve the initialized essential DOM elements. - * - * @return {Object} The initialized elements object. - */ - function getElements() { - return elements; - } - - /** - * Add new elements to the elements object. - * - * @param {Object} newElements An object containing new elements to be added. - * @throws {Error} Throws an error if the `newElements` is not a non-null object. - * @return {void} Updates the elements object by merging the new elements into it. - */ - function addElements(newElements) { - if (_typeof(newElements) !== 'object' || newElements === null) { - throw new Error('addElements: newElements must be a non-null object'); - } - elements = _objectSpread(_objectSpread({}, elements), newElements); - } - return { - getElements: getElements, - addElements: addElements - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageState.js": -/*!************************************************!*\ - !*** ./js/src/core/factory/createPageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageState: () => (/* binding */ createPageState) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page state manager. - * - * @param {Object} [initialState={}] An object containing the initial state. - * @throws {Error} Throws an error if the `initialState` is not a plain object. - * @return {Object} An object with methods to initialize, get, and set the page state. - */ -function createPageState() { - var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialState) !== 'object' || initialState === null) { - throw new Error('createPageState: initialState must be a non-null object'); - } - var state = initialState; - - /** - * Returns the current page state. - * - * @return {Object|null} The current state of the page or null if not initialized. - */ - var getState = function getState() { - return state; - }; - - /** - * Returns a specific property from the current page state. - * - * @param {string} propertyName The name of the property to retrieve. - * @return {*} The value of the specified property, or null if it doesn't exist. - */ - var getSingleState = function getSingleState(propertyName) { - var value = Reflect.get(state, propertyName); - - // We convert `undefined` to `null` for a consistent API. - // This makes it easier for users to handle the results since all missing properties return `null`. - return value === undefined ? null : value; - }; - - /** - * Updates the page state with new values. - * - * @param {Object} newState The new values to update the state with. - * @throws {Error} Throws an error if `newState` is not a plain object. - * @return {void} - */ - var setState = function setState(newState) { - if (_typeof(newState) !== 'object' || newState === null) { - throw new Error('setState: newState must be a non-null object'); - } - state = _objectSpread(_objectSpread({}, state), newState); - }; - - /** - * Updates a specific property in the page state with a new value. - * - * @param {string} propertyName The name of the property to update. - * @param {*} value The new value to set for the property. - * @return {void} - */ - var setSingleState = function setSingleState(propertyName, value) { - if (Reflect.has(state, propertyName)) { - Reflect.set(state, propertyName, value); - } - }; - return { - getState: getState, - getSingleState: getSingleState, - setState: setState, - setSingleState: setSingleState - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/index.js": -/*!**************************************!*\ - !*** ./js/src/core/factory/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), -/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) -/* harmony export */ }); -/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); -/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/constants.js": -/*!************************************************!*\ - !*** ./js/src/core/page-skeleton/constants.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* binding */ SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* binding */ VIEWS) -/* harmony export */ }); -var PREFIX = 'frm-page-skeleton'; -var SEARCH_RESULT_ITEM = 'frm-card-item'; -var VIEWS = { - ALL_ITEMS: 'all-items' -}; - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/elements.js": -/*!********************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/elements.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* binding */ addElements), -/* harmony export */ getElements: () => (/* binding */ getElements) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _emptyStateElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emptyStateElement */ "./js/src/core/page-skeleton/elements/emptyStateElement.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var bodyContent = document.getElementById('post-body-content'); -var sidebar = document.getElementById("".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-sidebar")); - -// Append empty state elements to body content -var emptyState = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.createEmptyStateElement)(); -bodyContent === null || bodyContent === void 0 || bodyContent.appendChild(emptyState); -var emptyStateElements = (0,_emptyStateElement__WEBPACK_IMPORTED_MODULE_2__.getEmptyStateElements)(); -var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)(_objectSpread({ - bodyContent: bodyContent, - // Sidebar elements - sidebar: sidebar, - searchInput: sidebar.querySelector('.frm-search-input'), - categoryItems: sidebar.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat")), - allItemsCategory: sidebar.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-cat[data-category=\"").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS, "\"]")) - }, emptyStateElements)), - getElements = _createPageElements.getElements, - addElements = _createPageElements.addElements; - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/emptyStateElement.js": -/*!*****************************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/emptyStateElement.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createEmptyStateElement: () => (/* binding */ createEmptyStateElement), -/* harmony export */ getEmptyStateElements: () => (/* binding */ getEmptyStateElements) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _window$frmDom = window.frmDom, - tag = _window$frmDom.tag, - div = _window$frmDom.div, - a = _window$frmDom.a, - img = _window$frmDom.img; - -/** - * Create and return the Empty State HTML element. - * - * @return {HTMLElement} The Empty State element. - */ -function createEmptyStateElement() { - var button = a({ - className: 'button button-primary frm-button-primary' - }); - button.setAttribute('role', 'button'); - return div({ - id: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state"), - className: "frm-flex-col frm-flex-center frm-gap-md ".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS), - children: [img({ - src: "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/page-skeleton/empty-state.svg"), - alt: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Empty State', 'formidable') - }), div({ - className: 'frmcenter', - children: [tag('h2', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title frm-mb-0") - }), tag('p', { - className: "".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text frm-mb-0") - })] - }), button] - }); -} - -/** - * Return the elements related to the Empty State. - * - * @return {Object} Object containing Empty State related DOM elements. - */ -function getEmptyStateElements() { - var emptyState = document.querySelector("#".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-empty-state")); - return { - emptyState: emptyState, - emptyStateTitle: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-title")), - emptyStateText: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-text")), - emptyStateButton: emptyState === null || emptyState === void 0 ? void 0 : emptyState.querySelector('.button') - }; -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/elements/index.js": -/*!*****************************************************!*\ - !*** ./js/src/core/page-skeleton/elements/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/categoryListener.js": -/*!**************************************************************!*\ - !*** ./js/src/core/page-skeleton/events/categoryListener.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* binding */ addCategoryEvents) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! . */ "./js/src/core/page-skeleton/events/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Manages event handling for sidebar category links. - * - * @return {void} - */ -function addCategoryEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - categoryItems = _getElements.categoryItems; - - // Attach click and keyboard event listeners to each sidebar category - categoryItems.forEach(function (category) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(category, onCategoryClick); - category.addEventListener('keydown', onCategoryKeydown); - }); -} - -/** - * Handles the click event on a category item. - * - * @private - * @param {Event} event The click event object. - */ -var onCategoryClick = function onCategoryClick(event) { - var clickedCategory = event.currentTarget; - var newSelectedCategory = clickedCategory.getAttribute('data-category'); - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory, - selectedCategoryEl = _getState.selectedCategoryEl, - notEmptySearchText = _getState.notEmptySearchText; - - // If the selected category hasn't changed, return early - if (selectedCategory === newSelectedCategory) { - return; - } - - /** - * Filter hook to modify the selected category. - * - * @param {string} selectedCategory The selected category - */ - selectedCategory = wp.hooks.applyFilters('frmPage.selectedCategory', newSelectedCategory); - - // Highlight the newly clicked category and update the application state - selectedCategoryEl.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - selectedCategoryEl = clickedCategory; - selectedCategoryEl.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setState)({ - selectedCategory: selectedCategory, - selectedCategoryEl: selectedCategoryEl - }); - - // Reset the search input if it contains text - if (notEmptySearchText) { - (0,___WEBPACK_IMPORTED_MODULE_4__.resetSearchInput)(); - } - - /** - * Trigger custom action to update category content. - * - * @param {string} selectedCategory The selected category. - */ - wp.hooks.doAction('frmPage.onCategoryClick', selectedCategory); - - // Smoothly display the updated UI elements - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements2.bodyContent; - new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent).fadeIn(); -}; - -/** - * Handles the keyboard event on a category item. - * - * @param {KeyboardEvent} event The keyboard event object. - * @return {void} - */ -function onCategoryKeydown(event) { - // Only respond to 'Enter' or 'Space' key presses - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - onCategoryClick(event); - } -} - -/***/ }), - -/***/ "./js/src/core/page-skeleton/events/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/events/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _categoryListener__WEBPACK_IMPORTED_MODULE_1__.addCategoryEvents), -/* harmony export */ resetSearchInput: () => (/* binding */ resetSearchInput) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _categoryListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categoryListener */ "./js/src/core/page-skeleton/events/categoryListener.js"); -/** - * Internal dependencies - */ - - -/** - * Resets the value of the search input and triggers an input event. - * - * @return {void} - */ -function resetSearchInput() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - searchInput = _getElements.searchInput; - searchInput.value = ''; - searchInput.dispatchEvent(new Event('input', { - bubbles: true - })); -} - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/index.js": -/*!********************************************!*\ - !*** ./js/src/core/page-skeleton/index.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ SEARCH_RESULT_ITEM: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.SEARCH_RESULT_ITEM), -/* harmony export */ VIEWS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEWS), -/* harmony export */ addCategoryEvents: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.addCategoryEvents), -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_1__.getElements), -/* harmony export */ getSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.getState), -/* harmony export */ resetSearchInput: () => (/* reexport safe */ _events__WEBPACK_IMPORTED_MODULE_3__.resetSearchInput), -/* harmony export */ setSingleState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_2__.setState) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/core/page-skeleton/constants.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared */ "./js/src/core/page-skeleton/shared/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./js/src/core/page-skeleton/events/index.js"); - - - - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/index.js": -/*!***************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/index.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pageState */ "./js/src/core/page-skeleton/shared/pageState.js"); - - -/***/ }), - -/***/ "./js/src/core/page-skeleton/shared/pageState.js": -/*!*******************************************************!*\ - !*** ./js/src/core/page-skeleton/shared/pageState.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* binding */ getSingleState), -/* harmony export */ getState: () => (/* binding */ getState), -/* harmony export */ setSingleState: () => (/* binding */ setSingleState), -/* harmony export */ setState: () => (/* binding */ setState) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/core/page-skeleton/elements/index.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./js/src/core/page-skeleton/constants.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - allItemsCategory = _getElements.allItemsCategory; -var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ - notEmptySearchText: false, - selectedCategory: _constants__WEBPACK_IMPORTED_MODULE_2__.VIEWS.ALL_ITEMS, - selectedCategoryEl: allItemsCategory - }), - getState = _createPageState.getState, - getSingleState = _createPageState.getSingleState, - setState = _createPageState.setState, - setSingleState = _createPageState.setSingleState; - - -/***/ }), - -/***/ "./js/src/core/ui/addProgressToCardBoxes.js": -/*!**************************************************!*\ - !*** ./js/src/core/ui/addProgressToCardBoxes.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Internal Dependencies - */ -var span = window.frmDom.span; - -/** - * Adds a progress bar to each card box element to visually indicate its position in the sequence. - * - * @param {Element[]} cardBoxes Collection of card box elements to enhance with progress bars. - * @return {void} - */ -function addProgressToCardBoxes(cardBoxes) { - if (!Array.isArray(cardBoxes) || !cardBoxes.length) { - console.warn('addProgressToCardBoxes: Expected a non-empty array of cardBoxes.'); - return; - } - cardBoxes.forEach(function (element, index) { - // Exclude cards that either don't require a progress bar or already include one - if (!element.classList.contains('frm-has-progress-bar') || element.querySelector('.frm-card-box-progress-bar')) { - return; - } - var progressBar = span(); - var widthPercentage = (index + 1) / cardBoxes.length * 100; - progressBar.style.width = "".concat(widthPercentage, "%"); - var progressBarContainer = span({ - className: 'frm-card-box-progress-bar', - child: progressBar - }); - element.insertAdjacentElement('afterbegin', progressBarContainer); - }); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addProgressToCardBoxes); - -/***/ }), - -/***/ "./js/src/core/ui/counter.js": -/*!***********************************!*\ - !*** ./js/src/core/ui/counter.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Updates the text content of an element with a counter value using smooth animation. - * - * @param {HTMLElement|string} element The DOM element or selector to update - * @param {number|string} value The new counter value to set - * @param {Object} options Animation options - * @param {number} options.duration Duration in milliseconds (default: 3000) - * @param {Function} options.easing Easing function (default: easeOutQuart) - * @throws {Error} When element is not found or invalid - * @return {HTMLElement} The updated element for method chaining - */ -var counter = function counter(element, value) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var targetElement = typeof element === 'string' ? document.querySelector(element) : element; - if (!targetElement || !(targetElement instanceof HTMLElement)) { - return null; - } - var targetValue = typeof value === 'number' ? value : parseInt(value, 10); - if (isNaN(targetValue)) { - console.warn('Counter: Invalid value provided, defaulting to 0'); - return setElementValueAndReturn(targetElement, '0'); - } - - // Don't run the animation if the sent value is 0 - if (targetValue === 0) { - return setElementValueAndReturn(targetElement, '0'); - } - var _options$duration = options.duration, - duration = _options$duration === void 0 ? 3000 : _options$duration, - _options$easing = options.easing, - easing = _options$easing === void 0 ? easeOutQuart : _options$easing; - var startValue = parseInt(targetElement.textContent, 10) || 0; - var change = targetValue - startValue; - - // Skip animation if no change needed - if (change === 0) { - return targetElement; - } - - // Cancel any existing animation - if (targetElement._counterAnimation) { - cancelAnimationFrame(targetElement._counterAnimation); - } - - // Start animation - targetElement.classList.add('frm-fadein'); - targetElement._counterAnimation = requestAnimationFrame(function (timestamp) { - return _animateCounter(timestamp, targetElement, startValue, targetValue, duration, change, easing); - }); - return targetElement; -}; - -/** - * Helper function to set element text content and return element - * - * @param {HTMLElement} element Target element - * @param {string|number} value Value to set - * @return {HTMLElement} The element for method chaining - */ -var setElementValueAndReturn = function setElementValueAndReturn(element, value) { - element.textContent = String(value); - return element; -}; - -/** - * Standalone animation function for counter (optimized to prevent redefinition) - * - * @param {number} timestamp Current timestamp from requestAnimationFrame - * @param {HTMLElement} element Target element to animate - * @param {number} startValue Starting counter value - * @param {number} targetValue Target counter value - * @param {number} duration Animation duration in milliseconds - * @param {number} change Total change amount (targetValue - startValue) - * @param {Function} easing Easing function - * @return {void} - */ -var _animateCounter = function animateCounter(timestamp, element, startValue, targetValue, duration, change, easing) { - if (!element._counterStartTime) { - element._counterStartTime = timestamp; - element._counterLastTimestamp = timestamp; - element._counterFrameDropCount = 0; - element._counterLastValue = startValue; - } - var frameDelta = timestamp - element._counterLastTimestamp; - var elapsed = timestamp - element._counterStartTime; - - // Performance monitoring: detect animation stuttering - // If frame gaps exceed 50ms (indicating browser lag/blocking), count as frame drop - if (frameDelta > 50 && element._counterLastTimestamp !== null) { - element._counterFrameDropCount++; - - // Fallback strategy: after 3 frame drops, abandon JS animation for CSS transition - // This prevents choppy animations when browser is under heavy load - if (element._counterFrameDropCount > 3) { - element.style.transition = "opacity ".concat(Math.max(duration - elapsed, 100), "ms ease-out"); - element.textContent = String(targetValue); - delete element._counterAnimation; - return; - } - } - - // Calculate eased progress and current value - var progress = Math.min(elapsed / duration, 1); - var easedProgress = easing(progress); - var currentValue = Math.round(startValue + change * easedProgress); - - // Only update DOM if value actually changed (reduce unnecessary reflows) - if (currentValue !== element._counterLastValue) { - element.textContent = String(currentValue); - element._counterLastValue = currentValue; - } - element._counterLastTimestamp = timestamp; - - // Continue animation or finish - if (progress < 1) { - element._counterAnimation = requestAnimationFrame(function (timestamp) { - return _animateCounter(timestamp, element, startValue, targetValue, duration, change, easing); - }); - return; - } - - // Ensure final value is exact - element.textContent = String(targetValue); - - // Clean up all counter-related properties - ['_counterAnimation', '_counterStartTime', '_counterLastTimestamp', '_counterFrameDropCount', '_counterLastValue'].forEach(function (prop) { - return delete element[prop]; - }); - element.style.removeProperty('transition'); -}; - -/** - * Easing function for smooth animation - * - * @param {number} t Progress from 0 to 1 - * @return {number} Eased value - */ -var easeOutQuart = function easeOutQuart(t) { - return 1 - Math.pow(1 - t, 4); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (counter); - -/***/ }), - -/***/ "./js/src/core/ui/index.js": -/*!*********************************!*\ - !*** ./js/src/core/ui/index.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addProgressToCardBoxes: () => (/* reexport safe */ _addProgressToCardBoxes__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ counter: () => (/* reexport safe */ _counter__WEBPACK_IMPORTED_MODULE_1__["default"]) -/* harmony export */ }); -/* harmony import */ var _addProgressToCardBoxes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addProgressToCardBoxes */ "./js/src/core/ui/addProgressToCardBoxes.js"); -/* harmony import */ var _counter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./counter */ "./js/src/core/ui/counter.js"); - - - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/** - * Removes a query parameter and updates history with replaceState. - * - * @param {string} paramName The query parameter to remove. - * @return {void} - */ -var removeParamFromHistory = function removeParamFromHistory(paramName) { - return history.replaceState({}, '', removeQueryParam(paramName)); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./js/src/form-templates/elements/applicationTemplatesElement.js": -/*!***********************************************************************!*\ - !*** ./js/src/form-templates/elements/applicationTemplatesElement.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplatesElement: () => (/* binding */ addApplicationTemplatesElement), -/* harmony export */ createApplicationTemplates: () => (/* binding */ createApplicationTemplates) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - -var _window$frmDom = window.frmDom, - tag = _window$frmDom.tag, - div = _window$frmDom.div, - span = _window$frmDom.span, - a = _window$frmDom.a, - img = _window$frmDom.img; - -// Application templates element -var applicationTemplates; - -// Base URL for the thumbnail images of applications -var thumbnailBaseURL = "".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.PLUGIN_URL, "/images/applications/thumbnails"); - -/** - * Create and return the application templates HTML element. - * - * @param {Object[]} applications Array of application objects. - * @return {void} - */ -function createApplicationTemplates(applications) { - if (!applications || !applications.length) { - return; - } - var templateItems = applications.map(function (template) { - return createTemplateItem(template); - }); - applicationTemplates = div({ - id: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-applications"), - className: core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, - children: [tag('h2', { - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Application Templates'), - className: 'frm-text-sm frm-mb-sm' - }), tag('ul', { - className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list frm-list-grid-layout"), - children: templateItems - })] - }); -} - -/** - * Create and return an individual item element for a application template. - * - * @private - * @param {Object} template The application object. - * @return {HTMLElement} Element representing a single application template. - */ -function createTemplateItem(template) { - var name = template.name, - key = template.key, - hasLiteThumbnail = template.hasLiteThumbnail, - isWebp = template.isWebp; - // eslint-disable-next-line no-nested-ternary - var thumbnailURL = hasLiteThumbnail ? isWebp ? "".concat(thumbnailBaseURL, "/").concat(key, ".webp") : "".concat(thumbnailBaseURL, "/").concat(key, ".png") : "".concat(thumbnailBaseURL, "/placeholder.svg"); - return tag('li', { - className: 'frm-card-item', - data: { - href: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl, "&triggerViewApplicationModal=1&template=").concat(key), - 'frm-search-text': name.toLowerCase() - }, - children: [div({ - className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-icon"), - child: img({ - src: thumbnailURL - }) - }), div({ - className: "".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-item-body"), - children: [span({ - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Ready Made Solution', 'formidable'), - className: 'frm-meta-tag frm-orange-tag frm-text-xs' - }), tag('h3', { - text: name, - className: 'frm-text-sm frm-font-medium frm-m-0' - }), a({ - text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('See all applications', 'formidable'), - className: 'frm-text-xs frm-font-semibold', - href: _shared__WEBPACK_IMPORTED_MODULE_3__.applicationsUrl - })] - })] - }); -} - -/** - * Inject application Templates elements into the DOM and the elements object. - * - * @return {void} - */ -function addApplicationTemplatesElement() { - var elements = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(); - if (elements.applicationTemplates || undefined === applicationTemplates) { - return; - } - elements.bodyContent.appendChild(applicationTemplates); - (0,_elements__WEBPACK_IMPORTED_MODULE_4__.addElements)({ - applicationTemplates: applicationTemplates, - applicationTemplatesTitle: applicationTemplates.querySelector('h2'), - applicationTemplatesList: applicationTemplates.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-list")), - applicationTemplateItems: applicationTemplates.querySelectorAll('.frm-card-item') - }); -} - -/***/ }), - -/***/ "./js/src/form-templates/elements/elements.js": -/*!****************************************************!*\ - !*** ./js/src/form-templates/elements/elements.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -var _document$getElementB, _document$getElementB2; -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _getElements = (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - bodyContent = _getElements.bodyContent; -var templatesList = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-list")); -var customTemplatesSection = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-section")); -var favoritesCategory = document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.FAVORITES, "\"]")); -var modal = document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal")); -(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addElements)({ - // Body elements - headerCancelButton: (_document$getElementB = document.getElementById('frm-publishing')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.querySelector('a'), - createFormButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-create-form")), - pageTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title")), - pageTitleText: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-text")), - pageTitleDivider: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-page-title-divider")), - upsellBanner: (_document$getElementB2 = document.getElementById('frm-renew-subscription-banner')) !== null && _document$getElementB2 !== void 0 ? _document$getElementB2 : document.getElementById('frm-upgrade-banner'), - extraTemplateCountElements: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-extra-templates-count")), - // Templates elements - templatesList: templatesList, - templateItems: templatesList.querySelectorAll('.frm-card-item'), - availableTemplateItems: templatesList.querySelectorAll(".frm-card-item:not(.".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-locked-item)")), - twinFeaturedTemplateItems: templatesList.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-item")), - featuredTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-featured-list")), - // Custom Templates Section elements - customTemplatesSection: customTemplatesSection, - customTemplateItems: customTemplatesSection.querySelectorAll('.frm-card-item'), - customTemplatesTitle: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list-title")), - customTemplatesList: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-custom-list")), - // Sidebar elements - favoritesCategory: favoritesCategory, - favoritesCategoryCountEl: favoritesCategory === null || favoritesCategory === void 0 ? void 0 : favoritesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-count")), - availableTemplatesCategory: document.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat[data-category=\"").concat(_shared__WEBPACK_IMPORTED_MODULE_1__.VIEW_SLUGS.AVAILABLE_TEMPLATES, "\"]")), - getFreeTemplatesBannerButton: document.querySelector('.frm-get-free-templates-banner .button'), - // Modal elements - modal: modal, - modalItems: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-modal-item")), - // Create New Template Modal - showCreateTemplateModalButton: document.getElementById('frm-show-create-template-modal'), - createTemplateModal: document.getElementById('frm-create-template-modal'), - createTemplateFormsDropdown: document.getElementById('frm-create-template-modal-forms-select'), - createTemplateName: document.getElementById('frm_create_template_name'), - createTemplateDescription: document.getElementById('frm_create_template_description'), - createTemplateButton: document.getElementById('frm-create-template-button'), - // Renew Account Modal - renewAccountModal: document.getElementById('frm-renew-modal'), - // Leave Email Modal - leaveEmailModal: document.getElementById('frm-leave-email-modal'), - leaveEmailModalInput: document.getElementById('frm_leave_email'), - leaveEmailModalButton: document.getElementById('frm-get-code-button'), - // Upgrade Modal - upgradeModal: document.getElementById('frm-form-upgrade-modal'), - upgradeModalTemplateNames: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-template-name'), - upgradeModalPlansIcons: modal === null || modal === void 0 ? void 0 : modal.querySelectorAll('.frm-upgrade-modal-plan-icon'), - upgradeModalLink: document.getElementById('frm-upgrade-modal-link'), - // New Template Form elements - newTemplateForm: document.getElementById('frm-new-template'), - newTemplateNameInput: document.getElementById('frm_template_name'), - newTemplateDescriptionInput: document.getElementById('frm_template_desc'), - newTemplateLinkInput: document.getElementById('frm_link'), - newTemplateActionInput: document.getElementById('frm_action_type'), - // Add children of the bodyContent to the elements object. - bodyContentChildren: bodyContent === null || bodyContent === void 0 ? void 0 : bodyContent.children -}); - - -/***/ }), - -/***/ "./js/src/form-templates/elements/index.js": -/*!*************************************************!*\ - !*** ./js/src/form-templates/elements/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplatesElement: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplatesElement), -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ createApplicationTemplates: () => (/* reexport safe */ _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__.createApplicationTemplates), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/form-templates/elements/elements.js"); -/* harmony import */ var _applicationTemplatesElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplatesElement */ "./js/src/form-templates/elements/applicationTemplatesElement.js"); - - - -/***/ }), - -/***/ "./js/src/form-templates/events/applicationTemplateListener.js": -/*!*********************************************************************!*\ - !*** ./js/src/form-templates/events/applicationTemplateListener.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplateEvents: () => (/* binding */ addApplicationTemplateEvents) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * Internal dependencies - */ - - -/** - * Manages event handling for an application template. - * - * @return {void} - */ -function addApplicationTemplateEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - applicationTemplateItems = _getElements.applicationTemplateItems; - if (undefined === applicationTemplateItems) { - return; - } - - // Attach click event listener - applicationTemplateItems.forEach(function (template) { - template.addEventListener('click', onApplicationTemplateClick); - }); -} - -/** - * Handles the click event on an application template. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onApplicationTemplateClick = function onApplicationTemplateClick(event) { - // Check if the clicked element is an anchor tag - if (event.target.closest('a')) { - return; - } - var applicationTemplate = event.currentTarget; - window.location.href = applicationTemplate.dataset.href; -}; - -/***/ }), - -/***/ "./js/src/form-templates/events/createFormButtonListener.js": -/*!******************************************************************!*\ - !*** ./js/src/form-templates/events/createFormButtonListener.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -/** - * Manages event handling for the "Create a blank form" button. - * - * @return {void} - */ -function addCreateFormButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createFormButton = _getElements.createFormButton; - - // Attach click event listener - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createFormButton, onCreateFormButtonClick); -} - -/** - * Handles the click event on the "Create a blank form" button. - * - * @private - * @return {void} - */ -var onCreateFormButtonClick = function onCreateFormButtonClick() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createFormButton = _getElements2.createFormButton, - newTemplateForm = _getElements2.newTemplateForm, - newTemplateNameInput = _getElements2.newTemplateNameInput, - newTemplateActionInput = _getElements2.newTemplateActionInput; - var installNewForm = window.frmAdminBuild.installNewForm; - newTemplateNameInput.value = ''; - newTemplateActionInput.value = 'frm_install_form'; - installNewForm(newTemplateForm, 'frm_install_form', createFormButton); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateFormButtonEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/createTemplateListeners.js": -/*!*****************************************************************!*\ - !*** ./js/src/form-templates/events/createTemplateListeners.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - - -/** - * Manages event handling for the 'Create New Template' modal. - * - * @return {void} - */ -function addCreateTemplateEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateFormsDropdown = _getElements.createTemplateFormsDropdown, - createTemplateButton = _getElements.createTemplateButton, - showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, - emptyStateButton = _getElements.emptyStateButton; - - // Show the 'Create New Template' modal when either empty state or show modal button is clicked - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(emptyStateButton, onShowCreateTemplateModalButtonClick); - - // Handle changes in the forms selection dropdown for creating a new template - createTemplateFormsDropdown.addEventListener('change', onFormsSelectChange); - - // Create a new template when the create button inside the modal is clicked - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(createTemplateButton, onCreateTemplateButtonClick); -} - -/** - * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal. - * - * @private - * @return {void} - */ -var onShowCreateTemplateModalButtonClick = function onShowCreateTemplateModalButtonClick() { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - selectedCategory = _getState.selectedCategory; - if (!(0,_utils__WEBPACK_IMPORTED_MODULE_5__.isCustomCategory)(selectedCategory)) { - return; - } - (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showCreateTemplateModal)(); -}; - -/** - * Handles changes in the forms selection dropdown for creating a new template. - * - * @private - * @return {void} - */ -var onFormsSelectChange = function onFormsSelectChange() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - formsSelect = _getElements2.createTemplateFormsDropdown; - var formId = formsSelect.value; - if (!formId || formId === 'no-forms') { - toggleDisableModalElements(true); - return; - } - toggleDisableModalElements(false); - var selectedOption = formsSelect.options[formsSelect.selectedIndex]; - var formDescription = selectedOption.dataset.description.trim(); - var formName = selectedOption.dataset.name.trim(); - var templateString = " ".concat((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Template', 'formidable')); - if (!formName.endsWith(templateString)) { - formName += templateString; - } - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateName = _getElements3.createTemplateName, - createTemplateDescription = _getElements3.createTemplateDescription; - createTemplateName.value = formName; - createTemplateDescription.value = formDescription; -}; - -/** - * Toggles the disabled state of elements in the 'Create Template' modal. - * - * @private - * @param {boolean} shouldDisable True to disable, false to enable. - * @return {void} - */ -var toggleDisableModalElements = function toggleDisableModalElements(shouldDisable) { - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateName = _getElements4.createTemplateName, - createTemplateDescription = _getElements4.createTemplateDescription, - createTemplateButton = _getElements4.createTemplateButton; - - // Toggle the disabled attribute for input and textarea - [createTemplateName, createTemplateDescription].forEach(function (element) { - element.disabled = shouldDisable; - if (shouldDisable) { - element.value = ''; // Clear the content for input and textarea - } - }); - - // Toggle the disabled class for the button - createTemplateButton.classList.toggle('disabled', shouldDisable); -}; - -/** - * Handles the click event on the 'Create Template' button to create a new template. - * - * @private - * @return {void} - */ -var onCreateTemplateButtonClick = function onCreateTemplateButtonClick() { - var installNewForm = window.frmAdminBuild.installNewForm; - var actionName = 'frm_create_template'; - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - newTemplateForm = _getElements5.newTemplateForm, - newTemplateActionInput = _getElements5.newTemplateActionInput, - newTemplateNameInput = _getElements5.newTemplateNameInput, - newTemplateDescriptionInput = _getElements5.newTemplateDescriptionInput, - newTemplateLinkInput = _getElements5.newTemplateLinkInput, - createTemplateName = _getElements5.createTemplateName, - createTemplateDescription = _getElements5.createTemplateDescription, - createTemplateFormsDropdown = _getElements5.createTemplateFormsDropdown, - createTemplateButton = _getElements5.createTemplateButton; - newTemplateActionInput.value = actionName; - newTemplateNameInput.value = createTemplateName.value.trim(); - newTemplateDescriptionInput.value = createTemplateDescription.value.trim(); - newTemplateLinkInput.value = createTemplateFormsDropdown.value; - - // Install new form template - installNewForm(newTemplateForm, actionName, createTemplateButton); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addCreateTemplateEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/favoriteButtonListener.js": -/*!****************************************************************!*\ - !*** ./js/src/form-templates/events/favoriteButtonListener.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -var FAVORITE_BUTTON_CLASS = ".".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-item-favorite-button"); -var HEART_ICON_SELECTOR = "".concat(FAVORITE_BUTTON_CLASS, " use"); -var FILLED_HEART_ICON = '#frm_heart_solid_icon'; -var LINEAR_HEART_ICON = '#frm_heart_icon'; -var OPERATION = { - ADD: 'add', - REMOVE: 'remove' -}; - -/** - * Manages event handling for favorite buttons. - * - * @return {void} - */ -function addFavoriteButtonEvents() { - var favoriteButtons = document.querySelectorAll(FAVORITE_BUTTON_CLASS); - - // Attach click event listeners to each favorite button - favoriteButtons.forEach(function (favoriteButton) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(favoriteButton, onFavoriteButtonClick); - }); -} - -/** - * Handles the click event on the add to favorite button. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onFavoriteButtonClick = function onFavoriteButtonClick(event) { - var _twinFeaturedTemplate; - var favoriteButton = event.currentTarget; - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - templatesList = _getElements.templatesList, - featuredTemplatesList = _getElements.featuredTemplatesList, - favoritesCategoryCountEl = _getElements.favoritesCategoryCountEl, - customTemplatesTitle = _getElements.customTemplatesTitle; - - /** - * Get necessary template information - */ - var template = favoriteButton.closest('.frm-card-item'); - var templateId = template.dataset.id; - var isFavorited = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); - var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isCustomTemplate)(template); - var isTemplateFeatured = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFeaturedTemplate)(template); - - /** - * Toggle the favorite status in the UI. - * If template is featured, toggle its twin version in the respective list. - */ - var twinFeaturedTemplate = null; - template.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); - if (isTemplateFeatured) { - var templateList = template.closest("#".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-list")) ? featuredTemplatesList : templatesList; - if (templateList) { - twinFeaturedTemplate = templateList.querySelector(".frm-card-item[data-id=\"".concat(templateId, "\"]")); - // Toggle twin template's favorite status - twinFeaturedTemplate.classList.toggle("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item"), !isFavorited); - } - } - - /** - * Update favorite counts and icons based on the new state - */ - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getState)(), - selectedCategory = _getState.selectedCategory, - favoritesCount = _getState.favoritesCount; - var currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD; - var heartIcon = template.querySelector(HEART_ICON_SELECTOR); - var twinTemplateHeartIcon = (_twinFeaturedTemplate = twinFeaturedTemplate) === null || _twinFeaturedTemplate === void 0 ? void 0 : _twinFeaturedTemplate.querySelector(HEART_ICON_SELECTOR); - if (OPERATION.ADD === currentOperation) { - // Increment favorite counts - ++favoritesCount.total; - isTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions - // Set heart icon to filled - heartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); - twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', FILLED_HEART_ICON); - } else { - // Decrement favorite counts - --favoritesCount.total; - isTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions - // Set heart icon to outline - heartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); - twinTemplateHeartIcon === null || twinTemplateHeartIcon === void 0 || twinTemplateHeartIcon.setAttribute('xlink:href', LINEAR_HEART_ICON); - } - - // Update UI and state to reflect new favorite counts - favoritesCategoryCountEl.textContent = favoritesCount.total; - (0,_shared__WEBPACK_IMPORTED_MODULE_2__.setSingleState)('favoritesCount', favoritesCount); - - /** - * Hide UI elements if 'Favorites' is active and counts are zero. - */ - if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoritesCategory)(selectedCategory)) { - if (0 === favoritesCount.total) { - (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showFavoritesEmptyState)(); - } - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(template); - if (0 === favoritesCount.default) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(templatesList); - } - if (0 === favoritesCount.custom || 0 === favoritesCount.default) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); - } - } - - // Update server-side data for favorite templates - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.addToRequestQueue)(function () { - return updateFavoriteTemplate(templateId, currentOperation, isTemplateCustom); - }); -}; - -/** - * Update server-side data for favorite templates. - * - * @param {string} id The template ID. - * @param {string} operation The operation to perform ('add' or 'remove'). - * @param {boolean} isCustom Flag indicating whether the template is custom. - * @return {Promise} The result of the server-side update. - */ -function updateFavoriteTemplate(id, operation, isCustom) { - var formData = new FormData(); - var doJsonPost = frmDom.ajax.doJsonPost; - formData.append('template_id', id); - formData.append('operation', operation); - formData.append('is_custom_template', isCustom); - return doJsonPost('add_or_remove_favorite_template', formData); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addFavoriteButtonEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/getFreeTemplatesListener.js": -/*!******************************************************************!*\ - !*** ./js/src/form-templates/events/getFreeTemplatesListener.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * External dependencies - */ - -var tag = window.frmDom.tag; - -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Get Templates" button. - * - * @return {void} - */ -function addGetFreeTemplatesEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - leaveEmailModalButton = _getElements.leaveEmailModalButton, - getFreeTemplatesBannerButton = _getElements.getFreeTemplatesBannerButton; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(leaveEmailModalButton, onGetTemplatesButtonClick); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(getFreeTemplatesBannerButton, _ui__WEBPACK_IMPORTED_MODULE_3__.showLeaveEmailModal); -} - -/** - * Handles the click event on the "Get Templates" button. - * - * @private - * @return {void} - */ -var onGetTemplatesButtonClick = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var _getElements2, leaveEmailModalInput, email, _getElements3, leaveEmailModalButton, formData, data, doJsonPost; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), leaveEmailModalInput = _getElements2.leaveEmailModalInput; - email = leaveEmailModalInput.value.trim(); // Check if the email field is empty - if (email) { - _context.next = 5; - break; - } - (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showEmailAddressError)('empty'); - return _context.abrupt("return"); - case 5: - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isValidEmail)(email)) { - _context.next = 8; - break; - } - (0,_ui__WEBPACK_IMPORTED_MODULE_3__.showEmailAddressError)('invalid'); - return _context.abrupt("return"); - case 8: - // Disable the button - _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), leaveEmailModalButton = _getElements3.leaveEmailModalButton; - leaveEmailModalButton.style.setProperty('cursor', 'not-allowed'); - leaveEmailModalButton.classList.add('frm_loading_button'); - formData = new FormData(); - formData.append('email', email); - doJsonPost = frmDom.ajax.doJsonPost; - _context.prev = 14; - _context.next = 17; - return doJsonPost('get_free_templates', formData); - case 17: - data = _context.sent; - _context.next = 25; - break; - case 20: - _context.prev = 20; - _context.t0 = _context["catch"](14); - console.error('An error occurred:', _context.t0); - showFailedToGetTemplates(); - return _context.abrupt("return"); - case 25: - if (data.success) { - _context.next = 28; - break; - } - showFailedToGetTemplates(); - return _context.abrupt("return"); - case 28: - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hasQueryParam)('free-templates')) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('free-templates'); - } - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.setQueryParam)('registered-for-free-templates', '1'); - window.location.reload(); - case 31: - case "end": - return _context.stop(); - } - }, _callee, null, [[14, 20]]); - })); - return function onGetTemplatesButtonClick() { - return _ref.apply(this, arguments); - }; -}(); - -/** - * Shows a message indicating that templates could not be retrieved. - * - * @private - * @return {void} - */ -function showFailedToGetTemplates() { - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - leaveEmailModal = _getElements4.leaveEmailModal; - leaveEmailModal.querySelector('.inside').replaceChildren(tag('p', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Failed to get templates, please try again later.', 'formidable'))); - leaveEmailModal.querySelector('.frm_modal_footer').classList.add('frm_hidden'); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addGetFreeTemplatesEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/index.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/events/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addApplicationTemplateEvents: () => (/* reexport safe */ _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_8__.addApplicationTemplateEvents), -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createFormButtonListener */ "./js/src/form-templates/events/createFormButtonListener.js"); -/* harmony import */ var _favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./favoriteButtonListener */ "./js/src/form-templates/events/favoriteButtonListener.js"); -/* harmony import */ var _useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useTemplateButtonListener */ "./js/src/form-templates/events/useTemplateButtonListener.js"); -/* harmony import */ var _searchListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./searchListener */ "./js/src/form-templates/events/searchListener.js"); -/* harmony import */ var _createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createTemplateListeners */ "./js/src/form-templates/events/createTemplateListeners.js"); -/* harmony import */ var _getFreeTemplatesListener__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getFreeTemplatesListener */ "./js/src/form-templates/events/getFreeTemplatesListener.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _applicationTemplateListener__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./applicationTemplateListener */ "./js/src/form-templates/events/applicationTemplateListener.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - - - - - -/** - * Attaches event listeners for handling user interactions. - * - * @return {void} - */ -function addEventListeners() { - (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.addCategoryEvents)(); - wp.hooks.addAction('frmPage.onCategoryClick', 'frmFormTemplates', function (selectedCategory) { - // Display templates of the selected category - (0,_ui__WEBPACK_IMPORTED_MODULE_7__.showSelectedCategory)(selectedCategory); - }); - (0,_createFormButtonListener__WEBPACK_IMPORTED_MODULE_1__["default"])(); - (0,_favoriteButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); - (0,_useTemplateButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); - (0,_searchListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); - (0,_createTemplateListeners__WEBPACK_IMPORTED_MODULE_5__["default"])(); - (0,_getFreeTemplatesListener__WEBPACK_IMPORTED_MODULE_6__["default"])(); -} - - -/***/ }), - -/***/ "./js/src/form-templates/events/searchListener.js": -/*!********************************************************!*\ - !*** ./js/src/form-templates/events/searchListener.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui */ "./js/src/form-templates/ui/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - -var initSearch = window.frmDom.search.init; - -/** - * Adds search-related event listeners by calling the 'initSearch' function. - * - * @see frmDom.search method - * @return {void} - */ -function addSearchEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - searchInput = _getElements.searchInput, - emptyStateButton = _getElements.emptyStateButton; - initSearch(searchInput, 'frm-card-item', { - handleSearchResult: handleSearchResult - }); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(emptyStateButton, onEmptyStateButtonClick); -} - -/** - * Manages UI state based on search results and input value. - * - * @private - * @param {Object} args Contains flags for search status. - * @param {boolean} args.foundSomething True if search yielded results. - * @param {boolean} args.notEmptySearchText True if search input is not empty. - * @param {Event} event The event object (input, search, or change event). - * @return {void} - */ -function handleSearchResult(_ref, event) { - var foundSomething = _ref.foundSomething, - notEmptySearchText = _ref.notEmptySearchText; - // Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events, - // triggering this method twice on 'x' button click. - if (event && event.type === 'search' && event.target.value === '') { - return; - } - var state = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(); - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - allItemsCategory = _getElements2.allItemsCategory; - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('notEmptySearchText', notEmptySearchText); - - // Revert to 'All Templates' if search and selected category are both empty - if (!state.notEmptySearchText && !state.selectedCategory) { - allItemsCategory.dispatchEvent(new Event('click', { - bubbles: true - })); - return; - } - - // Display search state if a category is selected - if (state.selectedCategory) { - (0,_ui__WEBPACK_IMPORTED_MODULE_4__.showSearchState)(notEmptySearchText); - - // Setting "selectedCategory" to an empty string as a flag for search state - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); - } - } - (0,_ui__WEBPACK_IMPORTED_MODULE_4__.displaySearchElements)(foundSomething, notEmptySearchText); -} - -/** - * Handles the click event on the empty state button. - * - * @private - * @return {void} - */ -var onEmptyStateButtonClick = function onEmptyStateButtonClick() { - var _emptyState$dataset; - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyState = _getElements3.emptyState; - if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH !== ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { - return; - } - - // Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty - // @see handleSearchResult() - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('selectedCategory', ''); - (0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.resetSearchInput)(); - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - searchInput = _getElements4.searchInput; - searchInput.focus(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSearchEvents); - -/***/ }), - -/***/ "./js/src/form-templates/events/useTemplateButtonListener.js": -/*!*******************************************************************!*\ - !*** ./js/src/form-templates/events/useTemplateButtonListener.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _ui___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/ */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/** - * Internal dependencies - */ - - - - - -/** - * Manages event handling for use template buttons. - * - * @return {void} - */ -function addUseTemplateButtonEvents() { - var useTemplateButtons = document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-use-template-button")); - - // Attach click event listeners to each use template button - useTemplateButtons.forEach(function (useTemplateButton) { - return useTemplateButton.addEventListener('click', onUseTemplateButtonClick); - }); -} - -/** - * Handles the click event on the use template button. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onUseTemplateButtonClick = function onUseTemplateButtonClick(event) { - var useTemplateButton = event.currentTarget; - var template = useTemplateButton.closest('.frm-card-item'); - var isLocked = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isLockedTemplate)(template); - var isTemplateCustom = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isCustomTemplate)(template); - - // Allow the default link behavior, if the template is custom and not locked - if (!isLocked && isTemplateCustom) { - return; - } - - // Prevent the default link behavior for non-custom or locked templates - event.preventDefault(); - - // Handle locked templates - if (isLocked) { - (0,_ui___WEBPACK_IMPORTED_MODULE_2__.showLockedTemplateModal)(template); - return; - } - - // Prepare for new template installation - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - newTemplateForm = _getElements.newTemplateForm, - newTemplateNameInput = _getElements.newTemplateNameInput, - newTemplateDescriptionInput = _getElements.newTemplateDescriptionInput, - newTemplateLinkInput = _getElements.newTemplateLinkInput, - newTemplateActionInput = _getElements.newTemplateActionInput; - var installNewForm = window.frmAdminBuild.installNewForm; - var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); - var templateDescription = template.querySelector('.frm-form-templates-item-description').textContent.trim(); - var actionName = 'frm_install_template'; - newTemplateNameInput.value = templateName; - newTemplateDescriptionInput.value = templateDescription; - newTemplateActionInput.value = actionName; - newTemplateLinkInput.value = useTemplateButton.href; - - // Install new form template - installNewForm(newTemplateForm, actionName, useTemplateButton); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addUseTemplateButtonEvents); - -/***/ }), - -/***/ "./js/src/form-templates/initializeFormTemplates.js": -/*!**********************************************************!*\ - !*** ./js/src/form-templates/initializeFormTemplates.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/form-templates/ui/index.js"); -/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates */ "./js/src/form-templates/templates/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./events */ "./js/src/form-templates/events/index.js"); -/** - * Internal dependencies - */ - - - - -/** - * Initializes form templates. - * - * @return {void} - */ -function initializeFormTemplates() { - (0,_templates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates)(); - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.initializeModal)(); - (0,_templates__WEBPACK_IMPORTED_MODULE_1__.buildCategorizedTemplates)(); - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); - (0,_events__WEBPACK_IMPORTED_MODULE_2__.addEventListeners)(); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeFormTemplates); - -/***/ }), - -/***/ "./js/src/form-templates/shared/constants.js": -/*!***************************************************!*\ - !*** ./js/src/form-templates/shared/constants.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FEATURED_TEMPLATES_IDS: () => (/* binding */ FEATURED_TEMPLATES_IDS), -/* harmony export */ FREE_TEMPLATES_IDS: () => (/* binding */ FREE_TEMPLATES_IDS), -/* harmony export */ MODAL_SIZES: () => (/* binding */ MODAL_SIZES), -/* harmony export */ PLANS: () => (/* binding */ PLANS), -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ VIEW_SLUGS: () => (/* binding */ VIEW_SLUGS), -/* harmony export */ applicationsUrl: () => (/* binding */ applicationsUrl), -/* harmony export */ canAccessApplicationDashboard: () => (/* binding */ canAccessApplicationDashboard), -/* harmony export */ upgradeLink: () => (/* binding */ upgradeLink) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - canAccessApplicationDashboard = _window$frmGlobal.canAccessApplicationDashboard, - applicationsUrl = _window$frmGlobal.applicationsUrl; - -var _window$frmFormTempla = window.frmFormTemplatesVars, - FEATURED_TEMPLATES_IDS = _window$frmFormTempla.FEATURED_TEMPLATES_IDS, - FREE_TEMPLATES_IDS = _window$frmFormTempla.FREE_TEMPLATES_IDS, - upgradeLink = _window$frmFormTempla.upgradeLink; - -var PREFIX = 'frm-form-templates'; -var VIEW_SLUGS = { - AVAILABLE_TEMPLATES: 'available-templates', - FAVORITES: 'favorites', - CUSTOM: 'custom', - SEARCH: 'search' -}; -var PLANS = { - BASIC: 'basic', - PLUS: 'plus', - BUSINESS: 'business', - ELITE: 'elite', - RENEW: 'renew', - FREE: 'free' -}; -var MODAL_SIZES = { - GENERAL: '440px', - CREATE_TEMPLATE: '550px' -}; - -/***/ }), - -/***/ "./js/src/form-templates/shared/index.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/shared/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FEATURED_TEMPLATES_IDS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.FEATURED_TEMPLATES_IDS), -/* harmony export */ FREE_TEMPLATES_IDS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.FREE_TEMPLATES_IDS), -/* harmony export */ MODAL_SIZES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.MODAL_SIZES), -/* harmony export */ PLANS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PLANS), -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ VIEW_SLUGS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_SLUGS), -/* harmony export */ applicationsUrl: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.applicationsUrl), -/* harmony export */ canAccessApplicationDashboard: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.canAccessApplicationDashboard), -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState), -/* harmony export */ upgradeLink: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.upgradeLink) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/form-templates/shared/constants.js"); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/form-templates/shared/pageState.js"); - - - -/***/ }), - -/***/ "./js/src/form-templates/shared/pageState.js": -/*!***************************************************!*\ - !*** ./js/src/form-templates/shared/pageState.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _window$frmFormTempla = window.frmFormTemplatesVars, - templatesCount = _window$frmFormTempla.templatesCount, - favoritesCount = _window$frmFormTempla.favoritesCount, - customCount = _window$frmFormTempla.customCount; -var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - availableTemplateItems = _getElements.availableTemplateItems; -var availableTemplatesCount = availableTemplateItems.length; -(0,core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.setState)({ - availableTemplatesCount: availableTemplatesCount, - customCount: Number(customCount), - extraTemplatesCount: templatesCount - availableTemplatesCount, - favoritesCount: favoritesCount -}); - - -/***/ }), - -/***/ "./js/src/form-templates/templates/applicationTemplates.js": -/*!*****************************************************************!*\ - !*** ./js/src/form-templates/templates/applicationTemplates.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ maybeAddApplicationTemplates: () => (/* binding */ maybeAddApplicationTemplates) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ "./js/src/form-templates/events/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * Internal dependencies - */ - - - - -/** - * Adds application templates if the user has dashboard access. - * - * @return {void} - */ -function maybeAddApplicationTemplates() { - // Exit if the user doesn't have permission to see application dashboard - if (!_shared__WEBPACK_IMPORTED_MODULE_2__.canAccessApplicationDashboard) { - return; - } - var doJsonFetch = frmDom.ajax.doJsonFetch; - doJsonFetch('get_applications_data&view=templates').then(setupApplicationTemplates); -} - -/** - * Sets up application templates by creating HTML elements, injecting them into the DOM, - * and adding event handlers. - * - * @private - * @param {Object} data The data object containing information for application templates. - * @return {void} - */ -function setupApplicationTemplates(data) { - // Create application templates - (0,_elements__WEBPACK_IMPORTED_MODULE_0__.createApplicationTemplates)(data.templates); - - // Inject templates into the DOM - (0,_elements__WEBPACK_IMPORTED_MODULE_0__.addApplicationTemplatesElement)(); - - // Set up event handling - (0,_events__WEBPACK_IMPORTED_MODULE_1__.addApplicationTemplateEvents)(); -} - -/***/ }), - -/***/ "./js/src/form-templates/templates/categorizeTemplates.js": -/*!****************************************************************!*\ - !*** ./js/src/form-templates/templates/categorizeTemplates.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedTemplates: () => (/* binding */ buildCategorizedTemplates), -/* harmony export */ categorizedTemplates: () => (/* binding */ categorizedTemplates) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * Internal dependencies - */ - -var categorizedTemplates = {}; - -/** - * Builds a categorized list of templates. - * - * @return {void} - */ -function buildCategorizedTemplates() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_0__.getElements)(), - templateItems = _getElements.templateItems; - templateItems.forEach(function (template) { - // Extract and split the categories from data attribute - var categories = template.getAttribute('data-categories').split(','); - categories.forEach(function (category) { - // Initialize the category array if not already done - if (!categorizedTemplates[category]) { - categorizedTemplates[category] = []; - } - - // Add the template to the appropriate category - categorizedTemplates[category].push(template); - }); - }); -} - -/***/ }), - -/***/ "./js/src/form-templates/templates/index.js": -/*!**************************************************!*\ - !*** ./js/src/form-templates/templates/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ buildCategorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.buildCategorizedTemplates), -/* harmony export */ categorizedTemplates: () => (/* reexport safe */ _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__.categorizedTemplates), -/* harmony export */ maybeAddApplicationTemplates: () => (/* reexport safe */ _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__.maybeAddApplicationTemplates) -/* harmony export */ }); -/* harmony import */ var _categorizeTemplates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorizeTemplates */ "./js/src/form-templates/templates/categorizeTemplates.js"); -/* harmony import */ var _applicationTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./applicationTemplates */ "./js/src/form-templates/templates/applicationTemplates.js"); - - - -/***/ }), - -/***/ "./js/src/form-templates/ui/index.js": -/*!*******************************************!*\ - !*** ./js/src/form-templates/ui/index.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.displaySearchElements), -/* harmony export */ getModalWidget: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.getModalWidget), -/* harmony export */ initializeModal: () => (/* reexport safe */ _initializeModal__WEBPACK_IMPORTED_MODULE_1__.initializeModal), -/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ showAllTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAllTemplates), -/* harmony export */ showAvailableTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showAvailableTemplates), -/* harmony export */ showAvailableTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState), -/* harmony export */ showCreateTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showCreateTemplateModal), -/* harmony export */ showCustomTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showCustomTemplates), -/* harmony export */ showCustomTemplatesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState), -/* harmony export */ showEmailAddressError: () => (/* reexport safe */ _showError__WEBPACK_IMPORTED_MODULE_8__.showEmailAddressError), -/* harmony export */ showFavoriteTemplates: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showFavoriteTemplates), -/* harmony export */ showFavoritesEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState), -/* harmony export */ showHeaderCancelButton: () => (/* reexport safe */ _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__.showHeaderCancelButton), -/* harmony export */ showLeaveEmailModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showLeaveEmailModal), -/* harmony export */ showLockedTemplateModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showLockedTemplateModal), -/* harmony export */ showRenewAccountModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showRenewAccountModal), -/* harmony export */ showSearchEmptyState: () => (/* reexport safe */ _showEmptyState__WEBPACK_IMPORTED_MODULE_6__.showSearchEmptyState), -/* harmony export */ showSearchState: () => (/* reexport safe */ _searchState__WEBPACK_IMPORTED_MODULE_5__.showSearchState), -/* harmony export */ showSelectedCategory: () => (/* reexport safe */ _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__.showSelectedCategory), -/* harmony export */ showUpgradeModal: () => (/* reexport safe */ _showModal__WEBPACK_IMPORTED_MODULE_7__.showUpgradeModal), -/* harmony export */ updatePageTitle: () => (/* reexport safe */ _pageTitle__WEBPACK_IMPORTED_MODULE_2__.updatePageTitle) -/* harmony export */ }); -/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/form-templates/ui/setupInitialView.js"); -/* harmony import */ var _initializeModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeModal */ "./js/src/form-templates/ui/initializeModal.js"); -/* harmony import */ var _pageTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pageTitle */ "./js/src/form-templates/ui/pageTitle.js"); -/* harmony import */ var _showHeaderCancelButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./showHeaderCancelButton */ "./js/src/form-templates/ui/showHeaderCancelButton.js"); -/* harmony import */ var _showSelectedCategory__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./showSelectedCategory */ "./js/src/form-templates/ui/showSelectedCategory.js"); -/* harmony import */ var _searchState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./searchState */ "./js/src/form-templates/ui/searchState.js"); -/* harmony import */ var _showEmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./showEmptyState */ "./js/src/form-templates/ui/showEmptyState.js"); -/* harmony import */ var _showModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./showModal */ "./js/src/form-templates/ui/showModal.js"); -/* harmony import */ var _showError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./showError */ "./js/src/form-templates/ui/showError.js"); - - - - - - - - - - -/***/ }), - -/***/ "./js/src/form-templates/ui/initializeModal.js": -/*!*****************************************************!*\ - !*** ./js/src/form-templates/ui/initializeModal.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getModalWidget: () => (/* binding */ getModalWidget), -/* harmony export */ initializeModal: () => (/* binding */ initializeModal) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -var modalWidget = null; - -/** - * Initialize the modal widget. - * - * @return {void} - */ -function initializeModal() { - return _initializeModal.apply(this, arguments); -} - -/** - * Retrieve the modal widget. - * - * @return {Object|false} The modal widget or false. - */ -function _initializeModal() { - _initializeModal = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var _window$frmAdminBuild, initModal, offsetModalY, _getElements, leaveEmailModal; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _window$frmAdminBuild = window.frmAdminBuild, initModal = _window$frmAdminBuild.initModal, offsetModalY = _window$frmAdminBuild.offsetModalY; - modalWidget = initModal('#frm-form-templates-modal', _shared__WEBPACK_IMPORTED_MODULE_2__.MODAL_SIZES.GENERAL); - - // Set the vertical offset for the modal - if (modalWidget) { - offsetModalY(modalWidget, '103px'); - } - - // Show the email modal if the 'free-templates' query param is present - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hasQueryParam)('free-templates')) { - _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), leaveEmailModal = _getElements.leaveEmailModal; - if (leaveEmailModal) { - (0,___WEBPACK_IMPORTED_MODULE_3__.showLeaveEmailModal)(); - } - } - - // Customize the confirm modal appearance: adjusting its width and vertical position - wp.hooks.addAction('frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', function (options) { - var confirmModal = options.$info; - confirmModal.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_2__.MODAL_SIZES.CREATE_TEMPLATE); - offsetModalY(confirmModal, '103px'); - }); - case 5: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _initializeModal.apply(this, arguments); -} -function getModalWidget() { - return modalWidget; -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/pageTitle.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/ui/pageTitle.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ updatePageTitle: () => (/* binding */ updatePageTitle) -/* harmony export */ }); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Sets the page title based on a given string or the currently selected category. - * - * @param {string} [title] Optional title to display. - * @return {void} - */ -function updatePageTitle(title) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - pageTitleText = _getElements.pageTitleText; - var newTitle = title || (0,_shared__WEBPACK_IMPORTED_MODULE_2__.getSingleState)('selectedCategoryEl').querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_0__.PREFIX, "-cat-text")).textContent; - pageTitleText.textContent = newTitle; -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/searchState.js": -/*!*************************************************!*\ - !*** ./js/src/form-templates/ui/searchState.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ displaySearchElements: () => (/* binding */ displaySearchElements), -/* harmony export */ showSearchState: () => (/* binding */ showSearchState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! . */ "./js/src/form-templates/ui/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Updates the UI to display the search state. - * - * @param {boolean} notEmptySearchText True if search input is not empty. - * @return {void} - */ -function showSearchState(notEmptySearchText) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - bodyContent = _getElements.bodyContent, - bodyContentChildren = _getElements.bodyContentChildren, - pageTitle = _getElements.pageTitle, - templatesList = _getElements.templatesList, - applicationTemplates = _getElements.applicationTemplates; - var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_2__.frmAnimate(bodyContent); - - // Remove highlighting from the currently selected category if the search text is not empty - if (notEmptySearchText) { - (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getSingleState)('selectedCategoryEl').classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_1__.CURRENT_CLASS); - } - - // Hide non-relevant elements in the body content - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)(bodyContentChildren); - - // Update the page title and display relevant elements - (0,___WEBPACK_IMPORTED_MODULE_5__.updatePageTitle)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Search Result', 'formidable')); - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([pageTitle, templatesList, applicationTemplates]); - - // Smoothly display the updated UI elements - bodyContentAnimate.fadeIn(); -} - -/** - * Displays search results based on search outcome. - * - * @param {boolean} foundSomething True if search yielded results. - * @return {void} - */ -function displaySearchElements(foundSomething) { - // Show empty state if no templates found - if (!foundSomething) { - (0,___WEBPACK_IMPORTED_MODULE_5__.showSearchEmptyState)(); - return; - } - - // Hide empty state if currently displayed - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - emptyState = _getElements2.emptyState; - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_2__.isVisible)(emptyState)) { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - pageTitle = _getElements3.pageTitle; - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(emptyState); - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.show)(pageTitle); - } - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - templatesList = _getElements4.templatesList, - applicationTemplates = _getElements4.applicationTemplates, - applicationTemplatesTitle = _getElements4.applicationTemplatesTitle, - applicationTemplatesList = _getElements4.applicationTemplatesList; - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.showElements)([templatesList, applicationTemplates, applicationTemplatesTitle]); - if (templatesList.offsetHeight === 0) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hideElements)([templatesList, applicationTemplatesTitle]); - } - if ((applicationTemplatesList === null || applicationTemplatesList === void 0 ? void 0 : applicationTemplatesList.offsetHeight) === 0) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_2__.hide)(applicationTemplates); - } -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/setupInitialView.js": -/*!******************************************************!*\ - !*** ./js/src/form-templates/ui/setupInitialView.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core/ui */ "./js/src/core/ui/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -/** - * External dependencies - */ - - - - - -/** - * Internal dependencies - */ - - - - -/** - * Sets up the initial view, performing any required - * DOM manipulations for proper element presentation. - * - * @return {void} - */ -function setupInitialView() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(), - sidebar = _getElements.sidebar, - searchInput = _getElements.searchInput, - bodyContent = _getElements.bodyContent, - twinFeaturedTemplateItems = _getElements.twinFeaturedTemplateItems, - availableTemplatesCategory = _getElements.availableTemplatesCategory, - extraTemplateCountElements = _getElements.extraTemplateCountElements; - var bodyContentAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(bodyContent); - searchInput.value = ''; - - // Hide the twin featured template items - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(twinFeaturedTemplateItems); - setupAvailableTemplatesCategory(availableTemplatesCategory); - - // Update extra templates count - extraTemplateCountElements.forEach(function (element) { - return element.textContent = (0,_shared__WEBPACK_IMPORTED_MODULE_5__.getSingleState)('extraTemplatesCount'); - }); - - // Smoothly display the updated UI elements - bodyContent.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - sidebar.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDE_JS_CLASS); - bodyContentAnimate.fadeIn(); - - // Show the "Cancel" button in the header if the 'return_page' query param is present - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hasQueryParam)('return_page')) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showHeaderCancelButton)(); - } -} - -/** - * Sets up the 'Available Templates' category with proper count display - * - * @param {Element} availableTemplatesCategory The Available Templates category element - * @return {void} - */ -function setupAvailableTemplatesCategory(availableTemplatesCategory) { - if (!availableTemplatesCategory) { - return; - } - var availableTemplatesCount = (0,_shared__WEBPACK_IMPORTED_MODULE_5__.getSingleState)('availableTemplatesCount'); - if (!(0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hasQueryParam)('registered-for-free-templates')) { - availableTemplatesCategory.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-cat-count")).textContent = availableTemplatesCount; - return; - } - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.removeParamFromHistory)('registered-for-free-templates'); - runAvailableTemplatesEffects(availableTemplatesCategory, availableTemplatesCount); -} - -/** - * Runs effects for the Available Templates category when the - * 'registered-for-free-templates' query parameter is present. - * - * @param {Element} element The Available Templates category element - * @param {number} count The count of available templates - * @return {void} - */ -function runAvailableTemplatesEffects(element, count) { - setTimeout(function () { - element.dispatchEvent(new Event('click', { - bubbles: true - })); - }, 0); - setTimeout(function () { - (0,core_ui__WEBPACK_IMPORTED_MODULE_2__.counter)(element.querySelector(".".concat(core_page_skeleton__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-cat-count")), count); - }, 150); - setTimeout(function () { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_4__.getElements)(), - availableTemplateItems = _getElements2.availableTemplateItems; - availableTemplateItems.forEach(function (item) { - if (_shared__WEBPACK_IMPORTED_MODULE_5__.FREE_TEMPLATES_IDS.includes(Number(item.dataset.id))) { - return; - } - item.classList.add('frm-background-highlight'); - - // Remove class after animation completes to prevent restart - item.addEventListener('animationend', function handleAnimationEnd(event) { - if (event.animationName === 'backgroundHighlight') { - this.classList.remove('frm-background-highlight'); - this.removeEventListener('animationend', handleAnimationEnd); - } - }); - }); - }, 750); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupInitialView); - -/***/ }), - -/***/ "./js/src/form-templates/ui/showEmptyState.js": -/*!****************************************************!*\ - !*** ./js/src/form-templates/ui/showEmptyState.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showAvailableTemplatesEmptyState: () => (/* binding */ showAvailableTemplatesEmptyState), -/* harmony export */ showCustomTemplatesEmptyState: () => (/* binding */ showCustomTemplatesEmptyState), -/* harmony export */ showFavoritesEmptyState: () => (/* binding */ showFavoritesEmptyState), -/* harmony export */ showSearchEmptyState: () => (/* binding */ showSearchEmptyState) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Display the search-empty state. - * - * @return {void} - */ -function showSearchEmptyState() { - var _emptyState$dataset; - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - notEmptySearchText = _getState.notEmptySearchText; - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements.pageTitle, - emptyState = _getElements.emptyState, - emptyStateButton = _getElements.emptyStateButton, - applicationTemplates = _getElements.applicationTemplates; - - // Toggle visibility and remove attributes based on search status - if (_shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH === ((_emptyState$dataset = emptyState.dataset) === null || _emptyState$dataset === void 0 ? void 0 : _emptyState$dataset.view)) { - if (notEmptySearchText) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); - } else { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(emptyState); - emptyState.removeAttribute('data-view'); - } - return; - } - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.SEARCH); - - // Update text content - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements2.emptyStateTitle, - emptyStateText = _getElements2.emptyStateText; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No templates found', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sorry, we didn\'t find any templates that match your criteria.', 'formidable'); - emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Start from Scratch', 'formidable'); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, applicationTemplates]); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); -} - -/** - * Display the favorites-empty state. - * - * @return {void} - */ -function showFavoritesEmptyState() { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements3.pageTitle, - emptyState = _getElements3.emptyState, - emptyStateButton = _getElements3.emptyStateButton; - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES); - - // Update text content - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements4.emptyStateTitle, - emptyStateText = _getElements4.emptyStateText; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No favorites', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t added any templates to your favorites yet.', 'formidable'); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); -} - -/** - * Display the custom-empty state. - * - * @return {void} - */ -function showCustomTemplatesEmptyState() { - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements5.pageTitle, - emptyState = _getElements5.emptyState, - emptyStateButton = _getElements5.emptyStateButton; - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM); - - // Update text content - var _getElements6 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements6.emptyStateTitle, - emptyStateText = _getElements6.emptyStateText; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You currently have no templates.', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You haven\'t created any form templates. Begin now to simplify your workflow and save time.', 'formidable'); - emptyStateButton.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create Template', 'formidable'); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(pageTitle); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.showElements)([emptyState, emptyStateButton]); -} - -/** - * Display the available-templates-empty state. - * - * @return {void} - */ -function showAvailableTemplatesEmptyState() { - var _getElements7 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - pageTitle = _getElements7.pageTitle, - emptyState = _getElements7.emptyState, - emptyStateButton = _getElements7.emptyStateButton; - - // Assign state attributes - emptyState.setAttribute('data-view', _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES); - - // Update text content - var _getElements8 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - emptyStateTitle = _getElements8.emptyStateTitle, - emptyStateText = _getElements8.emptyStateText; - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - extraTemplatesCount = _getState2.extraTemplatesCount; - emptyStateTitle.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No Templates Available', 'formidable'); - emptyStateText.textContent = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)( - // translators: %s is the number of extra templates available - (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable'), extraTemplatesCount); - - // Display the empty state - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)([pageTitle, emptyStateButton]); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(emptyState); -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/showError.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/ui/showError.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showEmailAddressError: () => (/* binding */ showEmailAddressError) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Displays errors related to the email address field. - * - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @return {void} - */ -var showEmailAddressError = function showEmailAddressError(type) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showFormError)('#frm_leave_email', '#frm_leave_email_error', type); -}; - -/***/ }), - -/***/ "./js/src/form-templates/ui/showHeaderCancelButton.js": -/*!************************************************************!*\ - !*** ./js/src/form-templates/ui/showHeaderCancelButton.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showHeaderCancelButton: () => (/* binding */ showHeaderCancelButton) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -/** - * Display the "Cancel" button in the header. - * - * @return {void} - */ -function showHeaderCancelButton() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - headerCancelButton = _getElements.headerCancelButton; - new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(headerCancelButton).fadeIn(); -} - -/***/ }), - -/***/ "./js/src/form-templates/ui/showModal.js": -/*!***********************************************!*\ - !*** ./js/src/form-templates/ui/showModal.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showCreateTemplateModal: () => (/* binding */ showCreateTemplateModal), -/* harmony export */ showLeaveEmailModal: () => (/* binding */ showLeaveEmailModal), -/* harmony export */ showLockedTemplateModal: () => (/* binding */ showLockedTemplateModal), -/* harmony export */ showRenewAccountModal: () => (/* binding */ showRenewAccountModal), -/* harmony export */ showUpgradeModal: () => (/* binding */ showUpgradeModal) -/* harmony export */ }); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * WordPress dependencies - */ - - -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Display the locked template modal. - * - * @param {HTMLElement} template The template element. - * @return {void} - */ -function showLockedTemplateModal(template) { - var plan = template.dataset.requiredPlan; - switch (plan) { - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BASIC: - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.PLUS: - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.BUSINESS: - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.ELITE: - showUpgradeModal(plan, template); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.RENEW: - showRenewAccountModal(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.PLANS.FREE: - showLeaveEmailModal(); - break; - } -} - -/** - * Base function to show a modal dialog with a customizable pre-open execution step. - * - * @param {Function} executePreOpen The function to be executed before opening the modal dialog. - * @return {Function} A higher-order function that can be invoked to display the modal dialog. - */ -var showModal = function showModal(executePreOpen) { - return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var dialogWidget, - _getElements, - modalItems, - _len, - params, - _key, - _args = arguments; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); - if (dialogWidget) { - _context.next = 3; - break; - } - return _context.abrupt("return"); - case 3: - _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), modalItems = _getElements.modalItems; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hideElements)(modalItems); - dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.GENERAL); - for (_len = _args.length, params = new Array(_len), _key = 0; _key < _len; _key++) { - params[_key] = _args[_key]; - } - _context.next = 9; - return executePreOpen === null || executePreOpen === void 0 ? void 0 : executePreOpen.apply(void 0, params); - case 9: - dialogWidget.dialog('open'); - case 10: - case "end": - return _context.stop(); - } - }, _callee); - })); -}; - -// Mapping each plan to the subsequent plans it can upgrade to -var upgradablePlans = { - basic: ['basic', 'plus', 'business', 'elite'], - plus: ['plus', 'business', 'elite'], - business: ['business', 'elite'], - elite: ['elite'] -}; - -/** - * Display the modal dialog to prompt the user to upgrade their account. - * - * @param {string} plan Current plan name - * @param {HTMLElement} template The template element - * @return {void} - */ -var showUpgradeModal = showModal(function (plan, template) { - var templateName = template.querySelector('.frm-form-template-name').textContent.trim(); - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - upgradeModal = _getElements2.upgradeModal, - upgradeModalTemplateNames = _getElements2.upgradeModalTemplateNames, - upgradeModalPlansIcons = _getElements2.upgradeModalPlansIcons, - upgradeModalLink = _getElements2.upgradeModalLink; - - // Update template names - upgradeModalTemplateNames.forEach(function (element) { - return element.textContent = templateName; - }); - - // Update plan icons and their availability - upgradeModalPlansIcons.forEach(function (icon) { - var planType = icon.dataset.plan; - var shouldDisplayCheck = upgradablePlans[plan].includes(planType); - - // Toggle icon class based on plan availability - icon.classList.toggle('frm_green', shouldDisplayCheck); - - // Update SVG icon - var svg = icon.querySelector('svg > use'); - svg.setAttribute('xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon'); - }); - - // Append template slug to the upgrade modal link URL - var templateSlug = template.dataset.slug ? "-".concat(template.dataset.slug) : ''; - upgradeModalLink.href = _shared__WEBPACK_IMPORTED_MODULE_3__.upgradeLink + templateSlug; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(upgradeModal); -}); - -/** - * Display the modal dialog to prompt the user to renew their account. - * - * @return {void} - */ -var showRenewAccountModal = showModal(function () { - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - renewAccountModal = _getElements3.renewAccountModal; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(renewAccountModal); -}); - -/** - * Display the modal dialog to prompt the user to leave an email. - * - * @return {void} - */ -var showLeaveEmailModal = showModal(function () { - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - leaveEmailModal = _getElements4.leaveEmailModal; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(leaveEmailModal); -}); - -/** - * Displays a modal dialog prompting the user to create a new template. - * - * @return {void} - */ -var showCreateTemplateModal = showModal(function () { - var dialogWidget = (0,___WEBPACK_IMPORTED_MODULE_4__.getModalWidget)(); - dialogWidget.dialog('option', 'width', _shared__WEBPACK_IMPORTED_MODULE_3__.MODAL_SIZES.CREATE_TEMPLATE); - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - createTemplateModal = _getElements5.createTemplateModal; - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(createTemplateModal); -}); - -/***/ }), - -/***/ "./js/src/form-templates/ui/showSelectedCategory.js": -/*!**********************************************************!*\ - !*** ./js/src/form-templates/ui/showSelectedCategory.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ showAllTemplates: () => (/* binding */ showAllTemplates), -/* harmony export */ showAvailableTemplates: () => (/* binding */ showAvailableTemplates), -/* harmony export */ showCustomTemplates: () => (/* binding */ showCustomTemplates), -/* harmony export */ showFavoriteTemplates: () => (/* binding */ showFavoriteTemplates), -/* harmony export */ showSelectedCategory: () => (/* binding */ showSelectedCategory) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/form-templates/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/form-templates/utils/index.js"); -/* harmony import */ var _templates__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../templates */ "./js/src/form-templates/templates/index.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ */ "./js/src/form-templates/ui/index.js"); -function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - - - -/** - * Show templates based on selected category. - * - * @param {string} selectedCategory The selected category to display templates for. - * @return {void} - */ -function showSelectedCategory(selectedCategory) { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContentChildren = _getElements.bodyContentChildren, - pageTitle = _getElements.pageTitle, - showCreateTemplateModalButton = _getElements.showCreateTemplateModalButton, - templatesList = _getElements.templatesList, - templateItems = _getElements.templateItems, - upsellBanner = _getElements.upsellBanner; - if (core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS !== selectedCategory) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(bodyContentChildren); - } - (0,___WEBPACK_IMPORTED_MODULE_6__.updatePageTitle)(); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(showCreateTemplateModalButton); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.show)(pageTitle); - switch (selectedCategory) { - case core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS: - showAllTemplates(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.AVAILABLE_TEMPLATES: - showAvailableTemplates(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.FAVORITES: - showFavoriteTemplates(); - break; - case _shared__WEBPACK_IMPORTED_MODULE_3__.VIEW_SLUGS.CUSTOM: - showCustomTemplates(); - break; - default: - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([upsellBanner, templatesList].concat(_toConsumableArray(_templates__WEBPACK_IMPORTED_MODULE_5__.categorizedTemplates[selectedCategory]))); - break; - } -} - -/** - * Shows all templates when 'All Templates' is the selected category. - * - * @return {void} - */ -function showAllTemplates() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContentChildren = _getElements2.bodyContentChildren, - pageTitleDivider = _getElements2.pageTitleDivider, - templateItems = _getElements2.templateItems, - twinFeaturedTemplateItems = _getElements2.twinFeaturedTemplateItems, - customTemplatesSection = _getElements2.customTemplatesSection, - emptyState = _getElements2.emptyState, - applicationTemplates = _getElements2.applicationTemplates; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([].concat(_toConsumableArray(bodyContentChildren), _toConsumableArray(templateItems))); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)([pageTitleDivider].concat(_toConsumableArray(twinFeaturedTemplateItems), [customTemplatesSection, emptyState, applicationTemplates])); -} - -/** - * Shows favorite templates. - * - * @return {void} - */ -function showFavoriteTemplates() { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - favoritesCount = _getState.favoritesCount; - if (0 === favoritesCount.total) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showFavoritesEmptyState)(); - return; - } - var _getElements3 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - bodyContent = _getElements3.bodyContent, - templatesList = _getElements3.templatesList, - templateItems = _getElements3.templateItems, - customTemplatesSection = _getElements3.customTemplatesSection, - customTemplatesTitle = _getElements3.customTemplatesTitle, - customTemplatesList = _getElements3.customTemplatesList, - customTemplateItems = _getElements3.customTemplateItems; - - // Clear the view for new content - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); - var elementsToShow = []; - - // Get all favorite items from the DOM and add the elements to show - var favoriteItems = bodyContent.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_3__.PREFIX, "-favorite-item")); - elementsToShow.push.apply(elementsToShow, _toConsumableArray(favoriteItems)); - - // Add default favorites if available - if (favoritesCount.default > 0) { - elementsToShow.push(templatesList); - } - - // Add custom favorites if available - if (favoritesCount.custom > 0) { - var nonFavCustomTemplates = Array.from(customTemplateItems).filter(function (template) { - return !(0,_utils__WEBPACK_IMPORTED_MODULE_4__.isFavoriteTemplate)(template); - }); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(nonFavCustomTemplates); - elementsToShow.push(customTemplatesSection); - elementsToShow.push(customTemplatesList); - if (0 === favoritesCount.default) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); - } else { - elementsToShow.push(customTemplatesTitle); - } - } - - // Show elements that were selected to be shown - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)(elementsToShow); -} - -/** - * Shows custom templates. - * - * @return {void} - */ -function showCustomTemplates() { - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - customCount = _getState2.customCount; - if (0 === customCount) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showCustomTemplatesEmptyState)(); - return; - } - var _getElements4 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - showCreateTemplateModalButton = _getElements4.showCreateTemplateModalButton, - pageTitleDivider = _getElements4.pageTitleDivider, - customTemplatesSection = _getElements4.customTemplatesSection, - customTemplatesList = _getElements4.customTemplatesList, - customTemplatesTitle = _getElements4.customTemplatesTitle, - customTemplateItems = _getElements4.customTemplateItems; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hide)(customTemplatesTitle); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList].concat(_toConsumableArray(customTemplateItems))); -} - -/** - * Shows available templates. - * - * @return {void} - */ -function showAvailableTemplates() { - var _getState3 = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), - availableTemplatesCount = _getState3.availableTemplatesCount; - if (0 === availableTemplatesCount) { - (0,___WEBPACK_IMPORTED_MODULE_6__.showAvailableTemplatesEmptyState)(); - return; - } - var _getElements5 = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - templatesList = _getElements5.templatesList, - templateItems = _getElements5.templateItems, - availableTemplateItems = _getElements5.availableTemplateItems, - upsellBanner = _getElements5.upsellBanner; - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.hideElements)(templateItems); // Clear the view for new content - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.showElements)([upsellBanner, templatesList].concat(_toConsumableArray(availableTemplateItems))); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showSelectedCategory); - -/***/ }), - -/***/ "./js/src/form-templates/utils/index.js": -/*!**********************************************!*\ - !*** ./js/src/form-templates/utils/index.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isAllTemplatesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isAllTemplatesCategory), -/* harmony export */ isCustomCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomCategory), -/* harmony export */ isCustomTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isCustomTemplate), -/* harmony export */ isFavoriteTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoriteTemplate), -/* harmony export */ isFavoritesCategory: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFavoritesCategory), -/* harmony export */ isFeaturedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isFeaturedTemplate), -/* harmony export */ isLockedTemplate: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_0__.isLockedTemplate) -/* harmony export */ }); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validation */ "./js/src/form-templates/utils/validation.js"); - - -/***/ }), - -/***/ "./js/src/form-templates/utils/validation.js": -/*!***************************************************!*\ - !*** ./js/src/form-templates/utils/validation.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isAllTemplatesCategory: () => (/* binding */ isAllTemplatesCategory), -/* harmony export */ isCustomCategory: () => (/* binding */ isCustomCategory), -/* harmony export */ isCustomTemplate: () => (/* binding */ isCustomTemplate), -/* harmony export */ isFavoriteTemplate: () => (/* binding */ isFavoriteTemplate), -/* harmony export */ isFavoritesCategory: () => (/* binding */ isFavoritesCategory), -/* harmony export */ isFeaturedTemplate: () => (/* binding */ isFeaturedTemplate), -/* harmony export */ isLockedTemplate: () => (/* binding */ isLockedTemplate) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/page-skeleton */ "./js/src/core/page-skeleton/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/form-templates/shared/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - -/** - * Checks if the category is "All Templates". - * - * @param {string} category The category slug. - * @return {boolean} True if the category is "All Templates", otherwise false. - */ -var isAllTemplatesCategory = function isAllTemplatesCategory(category) { - return core_page_skeleton__WEBPACK_IMPORTED_MODULE_1__.VIEWS.ALL_ITEMS === category; -}; - -/** - * Checks if the category is "Favorites". - * - * @param {string} category The category slug. - * @return {boolean} True if the category is "Favorites", otherwise false. - */ -var isFavoritesCategory = function isFavoritesCategory(category) { - return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.FAVORITES === category; -}; - -/** - * Checks if the category is "Custom". - * - * @param {string} category The category slug. - * @return {boolean} True if the category is "Custom", otherwise false. - */ -var isCustomCategory = function isCustomCategory(category) { - return _shared__WEBPACK_IMPORTED_MODULE_2__.VIEW_SLUGS.CUSTOM === category; -}; - -/** - * Checks if a template is a favorite. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is a favorite, otherwise false. - */ -var isFavoriteTemplate = function isFavoriteTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-favorite-item")) : false; -}; - -/** - * Checks if a template is custom. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is custom, otherwise false. - */ -var isCustomTemplate = function isCustomTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-custom-item")) : false; -}; - -/** - * Checks if a template is featured. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is featured, otherwise false. - */ -var isFeaturedTemplate = function isFeaturedTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? _shared__WEBPACK_IMPORTED_MODULE_2__.FEATURED_TEMPLATES_IDS.includes(Number(template.dataset.id)) : false; -}; - -/** - * Checks if a template is locked. - * - * @param {HTMLElement} template The template element. - * @return {boolean} True if the template is locked, otherwise false. - */ -var isLockedTemplate = function isLockedTemplate(template) { - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(template) ? template.classList.contains("".concat(_shared__WEBPACK_IMPORTED_MODULE_2__.PREFIX, "-locked-item")) : false; -}; - -/***/ }), - -/***/ "./node_modules/memize/index.js": -/*!**************************************!*\ - !*** ./node_modules/memize/index.js ***! - \**************************************/ -/***/ ((module) => { - -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {Function} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {F & MemizeMemoizedFunction} Memoized function. - */ -function memize( fn, options ) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized( /* ...args */ ) { - var node = head, - len = arguments.length, - args, i; - - searchCache: while ( node ) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if ( node.args.length !== arguments.length ) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for ( i = 0; i < len; i++ ) { - if ( node.args[ i ] !== arguments[ i ] ) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== head ) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if ( node === tail ) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ ( head ).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply( null, args ), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( head ) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { - tail = /** @type {MemizeCacheNode} */ ( tail ).prev; - /** @type {MemizeCacheNode} */ ( tail ).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function() { - head = null; - tail = null; - size = 0; - }; - - if ( false ) {} - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - -module.exports = memize; - - -/***/ }), - -/***/ "./node_modules/sprintf-js/src/sprintf.js": -/*!************************************************!*\ - !*** ./node_modules/sprintf-js/src/sprintf.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[+-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } - - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line - - -/***/ }), - -/***/ "./node_modules/tannin/index.js": -/*!**************************************!*\ - !*** ./node_modules/tannin/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Tannin) -/* harmony export */ }); -/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); - - -/** - * Tannin constructor options. - * - * @typedef {Object} TanninOptions - * - * @property {string} [contextDelimiter] Joiner in string lookup with context. - * @property {Function} [onMissingKey] Callback to invoke when key missing. - */ - -/** - * Domain metadata. - * - * @typedef {Object} TanninDomainMetadata - * - * @property {string} [domain] Domain name. - * @property {string} [lang] Language code. - * @property {(string|Function)} [plural_forms] Plural forms expression or - * function evaluator. - */ - -/** - * Domain translation pair respectively representing the singular and plural - * translation. - * - * @typedef {[string,string]} TanninTranslation - */ - -/** - * Locale data domain. The key is used as reference for lookup, the value an - * array of two string entries respectively representing the singular and plural - * translation. - * - * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain - */ - -/** - * Jed-formatted locale data. - * - * @see http://messageformat.github.io/Jed/ - * - * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData - */ - -/** - * Default Tannin constructor options. - * - * @type {TanninOptions} - */ -var DEFAULT_OPTIONS = { - contextDelimiter: '\u0004', - onMissingKey: null, -}; - -/** - * Given a specific locale data's config `plural_forms` value, returns the - * expression. - * - * @example - * - * ``` - * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' - * ``` - * - * @param {string} pf Locale data plural forms. - * - * @return {string} Plural forms expression. - */ -function getPluralExpression( pf ) { - var parts, i, part; - - parts = pf.split( ';' ); - - for ( i = 0; i < parts.length; i++ ) { - part = parts[ i ].trim(); - if ( part.indexOf( 'plural=' ) === 0 ) { - return part.substr( 7 ); - } - } -} - -/** - * Tannin constructor. - * - * @class - * - * @param {TanninLocaleData} data Jed-formatted locale data. - * @param {TanninOptions} [options] Tannin options. - */ -function Tannin( data, options ) { - var key; - - /** - * Jed-formatted locale data. - * - * @name Tannin#data - * @type {TanninLocaleData} - */ - this.data = data; - - /** - * Plural forms function cache, keyed by plural forms string. - * - * @name Tannin#pluralForms - * @type {Object} - */ - this.pluralForms = {}; - - /** - * Effective options for instance, including defaults. - * - * @name Tannin#options - * @type {TanninOptions} - */ - this.options = {}; - - for ( key in DEFAULT_OPTIONS ) { - this.options[ key ] = options !== undefined && key in options - ? options[ key ] - : DEFAULT_OPTIONS[ key ]; - } -} - -/** - * Returns the plural form index for the given domain and value. - * - * @param {string} domain Domain on which to calculate plural form. - * @param {number} n Value for which plural form is to be calculated. - * - * @return {number} Plural form index. - */ -Tannin.prototype.getPluralForm = function( domain, n ) { - var getPluralForm = this.pluralForms[ domain ], - config, plural, pf; - - if ( ! getPluralForm ) { - config = this.data[ domain ][ '' ]; - - pf = ( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - if ( typeof pf !== 'function' ) { - plural = getPluralExpression( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); - } - - getPluralForm = this.pluralForms[ domain ] = pf; - } - - return getPluralForm( n ); -}; - -/** - * Translate a string. - * - * @param {string} domain Translation domain. - * @param {string|void} context Context distinguishing terms of the same name. - * @param {string} singular Primary key for translation lookup. - * @param {string=} plural Fallback value used for non-zero plural - * form index. - * @param {number=} n Value to use in calculating plural form. - * - * @return {string} Translated string. - */ -Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { - var index, key, entry; - - if ( n === undefined ) { - // Default to singular. - index = 0; - } else { - // Find index by evaluating plural form for value. - index = this.getPluralForm( domain, n ); - } - - key = singular; - - // If provided, context is prepended to key with delimiter. - if ( context ) { - key = context + this.options.contextDelimiter + singular; - } - - entry = this.data[ domain ][ key ]; - - // Verify not only that entry exists, but that the intended index is within - // range and non-empty. - if ( entry && entry[ index ] ) { - return entry[ index ]; - } - - if ( this.options.onMissingKey ) { - this.options.onMissingKey( singular, domain ); - } - - // If entry not found, fall back to singular vs. plural with zero index - // representing the singular value. - return index === 0 ? singular : plural; -}; - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArray) -/* harmony export */ }); -function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _toConsumableArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(r) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!****************************************!*\ - !*** ./js/src/form-templates/index.js ***! - \****************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared */ "./js/src/form-templates/shared/index.js"); -/* harmony import */ var _initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeFormTemplates */ "./js/src/form-templates/initializeFormTemplates.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { - /** - * Entry point for pre-initialization adjustments to the page state. - * - * @param {Object} state Current state of the page. - */ - wp.hooks.doAction('frmFormTemplates.beforeInitialize', { - getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, - setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState - }); - - // Initialize the form templates - (0,_initializeFormTemplates__WEBPACK_IMPORTED_MODULE_1__["default"])(); - - /** - * Entry point for post-initialization custom logic or adjustments to the page state. - * - * @param {Object} state Current state of the page. - */ - wp.hooks.doAction('frmFormTemplates.afterInitialize', { - getState: _shared__WEBPACK_IMPORTED_MODULE_0__.getState, - setState: _shared__WEBPACK_IMPORTED_MODULE_0__.setState - }); - - /** - * Trigger a specific action to interact with the hidden form '#frm-new-template', - * which is used for creating or using a form template. - * - * @param {HTMLElement} $form The jQuery object containing the hidden form element. - */ - wp.hooks.doAction('frm_new_form_modal_form', jQuery('#frm-new-template')); -}); -})(); - -/******/ })() -; -//# sourceMappingURL=form-templates.js.map \ No newline at end of file +/*! For license information please see form-templates.js.LICENSE.txt */ +(()=>{var t={616:t=>{t.exports=function(t,e){var r,n,o=0;function a(){var a,i,c=r,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(i=0;i{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,i,c,l,u,s,f,p,m=1,d=t.length,h="";for(n=0;n=0),c.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,c.width?parseInt(c.width):0);break;case"e":r=c.precision?parseFloat(r).toExponential(c.precision):parseFloat(r).toExponential();break;case"f":r=c.precision?parseFloat(r).toFixed(c.precision):parseFloat(r);break;case"g":r=c.precision?String(Number(r.toPrecision(c.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=c.precision?r.substring(0,c.precision):r;break;case"t":r=String(!!r),r=c.precision?r.substring(0,c.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=c.precision?r.substring(0,c.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=c.precision?r.substring(0,c.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?h+=r:(!o.number.test(c.type)||f&&!c.sign?p="":(p=f?"+":"-",r=r.toString().replace(o.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",s=c.width-(p+r).length,l=c.width&&s>0?u.repeat(s):"",h+=c.align?p+r+l:"0"===u?p+l+r:l+p+r)}return h}(function(t){if(c[t])return c[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=o.text.exec(r)))n.push(e[0]);else if(null!==(e=o.modulo.exec(r)))n.push("%");else{if(null===(e=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var i=[],l=e[2],u=[];if(null===(u=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=o.key_access.exec(l)))i.push(u[1]);else{if(null===(u=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(u[1])}e[2]=i}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return c[t]=n}(t),arguments)}function i(t,e){return a.apply(null,[t].concat(e||[]))}var c=Object.create(null);e.sprintf=a,e.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=i,void 0===(n=function(){return{sprintf:a,vsprintf:i}}.call(e,r,e,t))||(t.exports=n))}()}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.canAccessApplicationDashboard,n=t.applicationsUrl,o=window.frmFormTemplatesVars,a=o.FEATURED_TEMPLATES_IDS,i=o.FREE_TEMPLATES_IDS,c=o.upgradeLink,l="frm-form-templates",u="available-templates",s="favorites",f="custom",p="search",m="440px",d="550px",h="frm-page-skeleton",y="all-items";function v(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function g(t){for(var e=1;e":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},x=["(","?"],E={")":["("],":":["?","?:"]},_=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};var P={contextDelimiter:"",onMissingKey:null};function F(t,e){var r;for(r in this.data=t,this.pluralForms={},this.options={},P)this.options[r]=void 0!==e&&r in e?e[r]:P[r]}function B(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function N(t){for(var e=1;e=0||S[o]3&&void 0!==arguments[3]?arguments[3]:10,i=t[e];if(G(r)&&q(n))if("function"==typeof o)if("number"==typeof a){var c={callback:o,priority:a,namespace:n};if(i[r]){var l,u=i[r].handlers;for(l=u.length;l>0&&!(a>=u[l-1].priority);l--);l===u.length?u[l]=c:u.splice(l,0,c),i.__current.forEach((function(t){t.name===r&&t.currentIndex>=l&&t.currentIndex++}))}else i[r]={handlers:[c],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,n,o,a)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},z=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n,o){var a=t[e];if(G(n)&&(r||q(o))){if(!a[n])return 0;var i=0;if(r)i=a[n].handlers.length,a[n]={runs:a[n].runs,handlers:[]};else for(var c=a[n].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),i++,a.__current.forEach((function(e){e.name===n&&e.currentIndex>=t&&e.currentIndex--})))},u=c.length-1;u>=0;u--)l(u);return"hookRemoved"!==n&&t.doAction("hookRemoved",n,o),i}}},Y=function(t,e){return function(r,n){var o=t[e];return void 0!==n?r in o&&o[r].handlers.some((function(t){return t.namespace===n})):r in o}},V=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=t[e];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var a=o[n].handlers,i=arguments.length,c=new Array(i>1?i-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";n.data[e]=N(N(N({},D),n.data[e]),t),n.data[e][""]=N(N({},D[""]),n.data[e][""])},c=function(t,e){i(t,e),a()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return n.data[t]||i(void 0,t),n.dcnpgettext(t,e,r,o,a)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},s=function(t,e,n){var o=l(n,e,t);return r?(o=r.applyFilters("i18n.gettext_with_context",o,t,e,n),r.applyFilters("i18n.gettext_with_context_"+u(n),o,t,e,n)):o};if(r){var f=function(t){M.test(t)&&a()};r.addAction("hookAdded","core/i18n",f),r.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[t]},setLocaleData:c,resetLocaleData:function(t,e){n.data={},n.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var n=l(e,void 0,t);return r?(n=r.applyFilters("i18n.gettext",n,t,e),r.applyFilters("i18n.gettext_"+u(e),n,t,e)):n},_x:s,_n:function(t,e,n,o){var a=l(o,void 0,t,e,n);return r?(a=r.applyFilters("i18n.ngettext",a,t,e,n,o),r.applyFilters("i18n.ngettext_"+u(o),a,t,e,n,o)):a},_nx:function(t,e,n,o,a){var i=l(a,o,t,e,n);return r?(i=r.applyFilters("i18n.ngettext_with_context",i,t,e,n,o,a),r.applyFilters("i18n.ngettext_with_context_"+u(a),i,t,e,n,o,a)):i},isRTL:function(){return"rtl"===s("ltr","text direction")},hasTranslation:function(t,e,o){var a,i,c=e?e+""+t:t,l=!(null===(a=n.data)||void 0===a||null===(i=a[null!=o?o:"default"])||void 0===i||!i[c]);return r&&(l=r.applyFilters("i18n.has_translation",l,t,e,o),l=r.applyFilters("i18n.has_translation_"+u(o),l,t,e,o)),l}}}(0,0,J));K.getLocaleData.bind(K),K.setLocaleData.bind(K),K.resetLocaleData.bind(K),K.subscribe.bind(K);var X=K.__.bind(K),W=(K._x.bind(K),K._n.bind(K),K._nx.bind(K),K.isRTL.bind(K),K.hasTranslation.bind(K),window.frmGlobal),Q=W.url,tt=(W.nonce,"frm_hidden"),et="frm-hide-js",rt="frm-current",nt=window.frmDom,ot=nt.tag,at=nt.div,it=nt.a,ct=nt.img;function lt(t){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lt(t)}function ut(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function st(t,e,r){return(e=function(t){var e=function(t){if("object"!=lt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=lt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==lt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var ft,pt=document.getElementById("post-body-content"),mt=document.getElementById("".concat(h,"-sidebar")),dt=((ft=it({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),at({id:"".concat(h,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(tt),children:[ct({src:"".concat(Q,"/images/page-skeleton/empty-state.svg"),alt:X("Empty State","formidable")}),at({className:"frmcenter",children:[ot("h2",{className:"".concat(h,"-title frm-mb-0")}),ot("p",{className:"".concat(h,"-text frm-mb-0")})]}),ft]}));null==pt||pt.appendChild(dt);var ht=function(){var t=document.querySelector("#".concat(h,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(h,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(h,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),yt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==xt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==xt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=wt(wt({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({notEmptySearchText:!1,selectedCategory:y,selectedCategoryEl:Et}),Tt=_t.getState,Lt=_t.getSingleState,Ot=_t.setState,kt=_t.setSingleState;function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function It(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):02&&void 0!==arguments[2]?arguments[2]:"pushState";if(Gt.set(t,e),qt.search=Gt.toString(),["pushState","replaceState"].includes(a)){var i=(r={},o=e,(n=function(t){var e=function(t){if("object"!=Nt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Nt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Nt(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[a](i,"",qt)}return qt.toString()},Yt=function(t){return Gt.has(t)},Vt=function(t){return"string"==typeof t&&/^(([^<>()\[\]\\.,;:\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(t)},$t=function(t){return t instanceof HTMLElement||console.warn("Invalid argument: Element must be an instance of HTMLElement")||!1},Ut=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach((function(t){return Zt(t)}))},Ht=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach((function(t){return Jt(t)}))},Zt=function(t){return null==t?void 0:t.classList.remove(tt)},Jt=function(t){return null==t?void 0:t.classList.add(tt)},Kt=function(t){var e=t.currentTarget,r=e.getAttribute("data-category"),n=Tt(),o=n.selectedCategory,a=n.selectedCategoryEl,i=n.notEmptySearchText;if(o!==r){o=wp.hooks.applyFilters("frmPage.selectedCategory",r),a.classList.remove(rt),(a=e).classList.add(rt),Ot({selectedCategory:o,selectedCategoryEl:a}),i&&Wt(),wp.hooks.doAction("frmPage.onCategoryClick",o);var c=vt().bodyContent;new Ct(c).fadeIn()}};function Xt(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),Kt(t))}function Wt(){var t=vt().searchInput;t.value="",t.dispatchEvent(new Event("input",{bubbles:!0}))}var Qt=vt().bodyContent,te=document.getElementById("".concat(l,"-list")),ee=document.getElementById("".concat(l,"-custom-list-section")),re=document.querySelector(".".concat(h,'-cat[data-category="').concat(s,'"]')),ne=document.getElementById("".concat(l,"-modal"));gt({headerCancelButton:null===(Dt=document.getElementById("frm-publishing"))||void 0===Dt?void 0:Dt.querySelector("a"),createFormButton:document.getElementById("".concat(l,"-create-form")),pageTitle:document.getElementById("".concat(l,"-page-title")),pageTitleText:document.getElementById("".concat(l,"-page-title-text")),pageTitleDivider:document.getElementById("".concat(l,"-page-title-divider")),upsellBanner:null!==(Mt=document.getElementById("frm-renew-subscription-banner"))&&void 0!==Mt?Mt:document.getElementById("frm-upgrade-banner"),extraTemplateCountElements:document.querySelectorAll(".".concat(l,"-extra-templates-count")),templatesList:te,templateItems:te.querySelectorAll(".frm-card-item"),availableTemplateItems:te.querySelectorAll(".frm-card-item:not(.".concat(l,"-locked-item)")),twinFeaturedTemplateItems:te.querySelectorAll(".".concat(l,"-featured-item")),featuredTemplatesList:document.getElementById("".concat(l,"-featured-list")),customTemplatesSection:ee,customTemplateItems:ee.querySelectorAll(".frm-card-item"),customTemplatesTitle:document.getElementById("".concat(l,"-custom-list-title")),customTemplatesList:document.getElementById("".concat(l,"-custom-list")),favoritesCategory:re,favoritesCategoryCountEl:null==re?void 0:re.querySelector(".".concat(h,"-cat-count")),availableTemplatesCategory:document.querySelector(".".concat(h,'-cat[data-category="').concat(u,'"]')),getFreeTemplatesBannerButton:document.querySelector(".frm-get-free-templates-banner .button"),modal:ne,modalItems:null==ne?void 0:ne.querySelectorAll(".".concat(l,"-modal-item")),showCreateTemplateModalButton:document.getElementById("frm-show-create-template-modal"),createTemplateModal:document.getElementById("frm-create-template-modal"),createTemplateFormsDropdown:document.getElementById("frm-create-template-modal-forms-select"),createTemplateName:document.getElementById("frm_create_template_name"),createTemplateDescription:document.getElementById("frm_create_template_description"),createTemplateButton:document.getElementById("frm-create-template-button"),renewAccountModal:document.getElementById("frm-renew-modal"),leaveEmailModal:document.getElementById("frm-leave-email-modal"),leaveEmailModalInput:document.getElementById("frm_leave_email"),leaveEmailModalButton:document.getElementById("frm-get-code-button"),upgradeModal:document.getElementById("frm-form-upgrade-modal"),upgradeModalTemplateNames:null==ne?void 0:ne.querySelectorAll(".frm-upgrade-modal-template-name"),upgradeModalPlansIcons:null==ne?void 0:ne.querySelectorAll(".frm-upgrade-modal-plan-icon"),upgradeModalLink:document.getElementById("frm-upgrade-modal-link"),newTemplateForm:document.getElementById("frm-new-template"),newTemplateNameInput:document.getElementById("frm_template_name"),newTemplateDescriptionInput:document.getElementById("frm_template_desc"),newTemplateLinkInput:document.getElementById("frm_link"),newTemplateActionInput:document.getElementById("frm_action_type"),bodyContentChildren:null==Qt?void 0:Qt.children});var oe,ae=window.frmDom,ie=ae.tag,ce=ae.div,le=ae.span,ue=ae.a,se=ae.img,fe="".concat(Q,"/images/applications/thumbnails");var pe=window.frmFormTemplatesVars,me=pe.templatesCount,de=pe.favoritesCount,he=pe.customCount,ye=vt().availableTemplateItems.length;Ot({availableTemplatesCount:ye,customCount:Number(he),extraTemplatesCount:me-ye,favoritesCount:de}),window.frmDom.span;var ve=function(t,e){return t.textContent=String(e),t},ge=function(t,e,r,n,o,a,i){e._counterStartTime||(e._counterStartTime=t,e._counterLastTimestamp=t,e._counterFrameDropCount=0,e._counterLastValue=r);var c=t-e._counterLastTimestamp,l=t-e._counterStartTime;if(c>50&&null!==e._counterLastTimestamp&&(e._counterFrameDropCount++,e._counterFrameDropCount>3))return e.style.transition="opacity ".concat(Math.max(o-l,100),"ms ease-out"),e.textContent=String(n),void delete e._counterAnimation;var u=Math.min(l/o,1),s=i(u),f=Math.round(r+a*s);f!==e._counterLastValue&&(e.textContent=String(f),e._counterLastValue=f),e._counterLastTimestamp=t,u<1?e._counterAnimation=requestAnimationFrame((function(t){return ge(t,e,r,n,o,a,i)})):(e.textContent=String(n),["_counterAnimation","_counterStartTime","_counterLastTimestamp","_counterFrameDropCount","_counterLastValue"].forEach((function(t){return delete e[t]})),e.style.removeProperty("transition"))},be=function(t){return 1-Math.pow(1-t,4)};const we=function(){var t,e=vt(),r=e.sidebar,n=e.searchInput,o=e.bodyContent,a=e.twinFeaturedTemplateItems,c=e.availableTemplatesCategory,l=e.extraTemplateCountElements,u=new Ct(o);n.value="",Ht(a),function(t){if(t){var e,r,n=Lt("availableTemplatesCount");if(Yt("registered-for-free-templates"))history.replaceState({},"",Rt("registered-for-free-templates")),e=t,r=n,setTimeout((function(){e.dispatchEvent(new Event("click",{bubbles:!0}))}),0),setTimeout((function(){!function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="string"==typeof t?document.querySelector(t):t;if(!(n&&n instanceof HTMLElement))return null;var o="number"==typeof e?e:parseInt(e,10);if(isNaN(o))return console.warn("Counter: Invalid value provided, defaulting to 0"),ve(n,"0");if(0===o)return ve(n,"0");var a=r.duration,i=void 0===a?3e3:a,c=r.easing,l=void 0===c?be:c,u=parseInt(n.textContent,10)||0,s=o-u;0===s||(n._counterAnimation&&cancelAnimationFrame(n._counterAnimation),n.classList.add("frm-fadein"),n._counterAnimation=requestAnimationFrame((function(t){return ge(t,n,u,o,i,s,l)})))}(e.querySelector(".".concat(h,"-cat-count")),r)}),150),setTimeout((function(){vt().availableTemplateItems.forEach((function(t){i.includes(Number(t.dataset.id))||(t.classList.add("frm-background-highlight"),t.addEventListener("animationend",(function t(e){"backgroundHighlight"===e.animationName&&(this.classList.remove("frm-background-highlight"),this.removeEventListener("animationend",t))})))}))}),750);else t.querySelector(".".concat(h,"-cat-count")).textContent=n}}(c),l.forEach((function(t){return t.textContent=Lt("extraTemplatesCount")})),o.classList.remove(et),r.classList.remove(et),u.fadeIn(),Yt("return_page")&&(t=vt().headerCancelButton,new Ct(t).fadeIn())};function Se(t){return Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Se(t)}function xe(){xe=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var a=e&&e.prototype instanceof v?e:v,i=Object.create(a.prototype),c=new I(n||[]);return o(i,"_invoke",{value:L(t,r,c)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",m="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,i)&&(w=x);var E=b.prototype=v.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,a,i,c){var l=f(t[o],t,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Se(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(s).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function L(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=O(c,n);if(l){if(l===y)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?h:m,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=h,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Ee(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var _e=null;function Te(){var t;return t=xe().mark((function t(){var e,r,n;return xe().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=window.frmAdminBuild,r=e.initModal,n=e.offsetModalY,(_e=r("#frm-form-templates-modal",m))&&n(_e,"103px"),Yt("free-templates")&&vt().leaveEmailModal&&fr(),wp.hooks.addAction("frmAdmin.beforeOpenConfirmModal","frmFormTemplates",(function(t){var e=t.$info;e.dialog("option","width",d),n(e,"103px")}));case 5:case"end":return t.stop()}}),t)})),Te=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){Ee(a,n,o,i,c,"next",t)}function c(t){Ee(a,n,o,i,c,"throw",t)}i(void 0)}))},Te.apply(this,arguments)}function Le(){return _e}function Oe(t){var e=vt().pageTitleText,r=t||Lt("selectedCategoryEl").querySelector(".".concat(h,"-cat-text")).textContent;e.textContent=r}var ke=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-favorite-item"))},je=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-custom-item"))},Ie={},Ae=function(){var t=vt(),e=t.createFormButton,r=t.newTemplateForm,n=t.newTemplateNameInput,o=t.newTemplateActionInput,a=window.frmAdminBuild.installNewForm;n.value="",o.value="frm_install_form",a(r,"frm_install_form",e)};var Ce=".".concat(l,"-item-favorite-button"),Pe="".concat(Ce," use"),Fe="#frm_heart_solid_icon",Be="#frm_heart_icon",Ne=function(t){var e,r=t.currentTarget,n=vt(),o=n.templatesList,i=n.featuredTemplatesList,c=n.favoritesCategoryCountEl,u=n.customTemplatesTitle,f=r.closest(".frm-card-item"),p=f.dataset.id,m=ke(f),d=je(f),h=function(t){return!!$t(t)&&a.includes(Number(t.dataset.id))}(f),y=null;if(f.classList.toggle("".concat(l,"-favorite-item"),!m),h){var v=f.closest("#".concat(l,"-list"))?i:o;v&&(y=v.querySelector('.frm-card-item[data-id="'.concat(p,'"]'))).classList.toggle("".concat(l,"-favorite-item"),!m)}var g,b=Tt(),w=b.selectedCategory,S=b.favoritesCount,x=m?"remove":"add",E=f.querySelector(Pe),_=null===(e=y)||void 0===e?void 0:e.querySelector(Pe);"add"===x?(++S.total,d?++S.custom:++S.default,E.setAttribute("xlink:href",Fe),null==_||_.setAttribute("xlink:href",Fe)):(--S.total,d?--S.custom:--S.default,E.setAttribute("xlink:href",Be),null==_||_.setAttribute("xlink:href",Be)),c.textContent=S.total,kt("favoritesCount",S),s===w&&(0===S.total&&rr(),Jt(f),0===S.default&&Jt(o),0!==S.custom&&0!==S.default||Jt(u)),g=function(){return t=p,e=x,r=d,n=new FormData,o=frmDom.ajax.doJsonPost,n.append("template_id",t),n.append("operation",e),n.append("is_custom_template",r),o("add_or_remove_favorite_template",n);var t,e,r,n,o},Pt=Pt.then(g).catch(g)};var De=function(t){var e=t.currentTarget,r=e.closest(".frm-card-item"),n=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-locked-item"))}(r),o=je(r);if(n||!o)if(t.preventDefault(),n)!function(t){var e=t.dataset.requiredPlan;switch(e){case"basic":case"plus":case"business":case"elite":ur(e,t);break;case"renew":sr();break;case"free":fr()}}(r);else{var a=vt(),i=a.newTemplateForm,c=a.newTemplateNameInput,u=a.newTemplateDescriptionInput,s=a.newTemplateLinkInput,f=a.newTemplateActionInput,p=window.frmAdminBuild.installNewForm,m=r.querySelector(".frm-form-template-name").textContent.trim(),d=r.querySelector(".frm-form-templates-item-description").textContent.trim(),h="frm_install_template";c.value=m,u.value=d,f.value=h,s.value=e.href,p(i,h,e)}};var Me=window.frmDom.search.init;function qe(t,e){var r=t.foundSomething,n=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=Tt(),a=vt().allItemsCategory;kt("notEmptySearchText",n),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=vt(),r=e.bodyContent,n=e.bodyContentChildren,o=e.pageTitle,a=e.templatesList,i=e.applicationTemplates,c=new Ct(r);t&&Lt("selectedCategoryEl").classList.remove(rt),Ht(n),Oe(X("Search Result","formidable")),Ut([o,a,i]),c.fadeIn()}(n),n&&kt("selectedCategory","")),function(t){if(t){var e,r=vt().emptyState;if(e=r,"none"!==window.getComputedStyle(e).getPropertyValue("display")){var n=vt().pageTitle;Jt(r),Zt(n)}var o=vt(),a=o.templatesList,i=o.applicationTemplates,c=o.applicationTemplatesTitle,l=o.applicationTemplatesList;Ut([a,i,c]),0===a.offsetHeight&&Ht([a,c]),0===(null==l?void 0:l.offsetHeight)&&Jt(i)}else!function(){var t,e=Tt().notEmptySearchText,r=vt(),n=r.pageTitle,o=r.emptyState,a=r.emptyStateButton,i=r.applicationTemplates;if(p!==(null===(t=o.dataset)||void 0===t?void 0:t.view)){o.setAttribute("data-view",p);var c=vt(),l=c.emptyStateTitle,u=c.emptyStateText;l.textContent=X("No templates found","formidable"),u.textContent=X("Sorry, we didn't find any templates that match your criteria.","formidable"),a.textContent=X("Start from Scratch","formidable"),Ht([n,i]),Ut([o,a])}else e?(Zt(o),Ht([n,i])):(Jt(o),o.removeAttribute("data-view"))}()}(r)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}var Ge=function(){var t,e=vt().emptyState;p===(null===(t=e.dataset)||void 0===t?void 0:t.view)&&(kt("selectedCategory",""),Wt(),vt().searchInput.focus())};var Re=function(){var t=Tt().selectedCategory;f===t&&pr()},ze=function(){var t=vt().createTemplateFormsDropdown,e=t.value;if(e&&"no-forms"!==e){Ye(!1);var r=t.options[t.selectedIndex],n=r.dataset.description.trim(),o=r.dataset.name.trim(),a=" ".concat(X("Template","formidable"));o.endsWith(a)||(o+=a);var i=vt(),c=i.createTemplateName,l=i.createTemplateDescription;c.value=o,l.value=n}else Ye(!0)},Ye=function(t){var e=vt(),r=e.createTemplateName,n=e.createTemplateDescription,o=e.createTemplateButton;[r,n].forEach((function(e){e.disabled=t,t&&(e.value="")})),o.classList.toggle("disabled",t)},Ve=function(){var t=window.frmAdminBuild.installNewForm,e="frm_create_template",r=vt(),n=r.newTemplateForm,o=r.newTemplateActionInput,a=r.newTemplateNameInput,i=r.newTemplateDescriptionInput,c=r.newTemplateLinkInput,l=r.createTemplateName,u=r.createTemplateDescription,s=r.createTemplateFormsDropdown,f=r.createTemplateButton;o.value=e,a.value=l.value.trim(),i.value=u.value.trim(),c.value=s.value,t(n,e,f)};function $e(t){return $e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$e(t)}function Ue(){Ue=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var a=e&&e.prototype instanceof v?e:v,i=Object.create(a.prototype),c=new I(n||[]);return o(i,"_invoke",{value:L(t,r,c)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",m="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,i)&&(w=x);var E=b.prototype=v.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,a,i,c){var l=f(t[o],t,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==$e(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(s).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function L(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=O(c,n);if(l){if(l===y)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?h:m,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=h,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function He(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var Ze=window.frmDom.tag,Je=function(){var t,e=(t=Ue().mark((function t(){var e,r,n,o,a,i,c,l;return Ue().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=vt(),r=e.leaveEmailModalInput,n=r.value.trim()){t.next=5;break}return mr("empty"),t.abrupt("return");case 5:if(Vt(n)){t.next=8;break}return mr("invalid"),t.abrupt("return");case 8:return o=vt(),(a=o.leaveEmailModalButton).style.setProperty("cursor","not-allowed"),a.classList.add("frm_loading_button"),(i=new FormData).append("email",n),l=frmDom.ajax.doJsonPost,t.prev=14,t.next=17,l("get_free_templates",i);case 17:c=t.sent,t.next=25;break;case 20:return t.prev=20,t.t0=t.catch(14),console.error("An error occurred:",t.t0),Ke(),t.abrupt("return");case 25:if(c.success){t.next=28;break}return Ke(),t.abrupt("return");case 28:Yt("free-templates")&&Rt("free-templates"),zt("registered-for-free-templates","1"),window.location.reload();case 31:case"end":return t.stop()}}),t,null,[[14,20]])})),function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){He(a,n,o,i,c,"next",t)}function c(t){He(a,n,o,i,c,"throw",t)}i(void 0)}))});return function(){return e.apply(this,arguments)}}();function Ke(){var t=vt().leaveEmailModal;t.querySelector(".inside").replaceChildren(Ze("p",X("Failed to get templates, please try again later.","formidable"))),t.querySelector(".frm_modal_footer").classList.add("frm_hidden")}var Xe=function(t){if(!t.target.closest("a")){var e=t.currentTarget;window.location.href=e.dataset.href}};function We(){var t,e,r,n;vt().categoryItems.forEach((function(t){Bt(t,Kt),t.addEventListener("keydown",Xt)})),wp.hooks.addAction("frmPage.onCategoryClick","frmFormTemplates",(function(t){!function(t){var e=vt(),r=e.bodyContentChildren,n=e.pageTitle,o=e.showCreateTemplateModalButton,a=e.templatesList,i=e.templateItems,c=e.upsellBanner;switch(y!==t&&Ht(r),Oe(),Jt(o),Zt(n),t){case y:!function(){var t=vt(),e=t.bodyContentChildren,r=t.pageTitleDivider,n=t.templateItems,o=t.twinFeaturedTemplateItems,a=t.customTemplatesSection,i=t.emptyState,c=t.applicationTemplates;Ut([].concat(tr(e),tr(n))),Ht([r].concat(tr(o),[a,i,c]))}();break;case u:!function(){if(0!==Tt().availableTemplatesCount){var t=vt(),e=t.templatesList,r=t.templateItems,n=t.availableTemplateItems,o=t.upsellBanner;Ht(r),Ut([o,e].concat(tr(n)))}else!function(){var t=vt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",u);var o=vt(),a=o.emptyStateTitle,i=o.emptyStateText,c=Tt().extraTemplatesCount;a.textContent=X("No Templates Available","formidable"),i.textContent=function(t){try{for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0&&s.push(n),t.custom>0){var p=Array.from(u).filter((function(t){return!ke(t)}));Ht(p),s.push(a),s.push(c),0===t.default?Jt(i):s.push(i)}Ut(s)}else rr()}();break;case f:!function(){if(0!==Tt().customCount){var t=vt(),e=t.showCreateTemplateModalButton,r=t.pageTitleDivider,n=t.customTemplatesSection,o=t.customTemplatesList,a=t.customTemplatesTitle,i=t.customTemplateItems;Jt(a),Ut([e,r,n,o].concat(tr(i)))}else!function(){var t=vt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",f);var o=vt(),a=o.emptyStateTitle,i=o.emptyStateText;a.textContent=X("You currently have no templates.","formidable"),i.textContent=X("You haven't created any form templates. Begin now to simplify your workflow and save time.","formidable"),n.textContent=X("Create Template","formidable"),Jt(e),Ut([r,n])}()}();break;default:Ht(i),Ut([c,a].concat(tr(Ie[t])))}}(t)})),n=vt().createFormButton,Bt(n,Ae),document.querySelectorAll(Ce).forEach((function(t){return Bt(t,Ne)})),document.querySelectorAll(".".concat(l,"-use-template-button")).forEach((function(t){return t.addEventListener("click",De)})),t=vt(),e=t.searchInput,r=t.emptyStateButton,Me(e,"frm-card-item",{handleSearchResult:qe}),Bt(r,Ge),function(){var t=vt(),e=t.createTemplateFormsDropdown,r=t.createTemplateButton,n=t.showCreateTemplateModalButton,o=t.emptyStateButton;Bt(n,Re),Bt(o,Re),e.addEventListener("change",ze),Bt(r,Ve)}(),function(){var t=vt(),e=t.leaveEmailModalButton,r=t.getFreeTemplatesBannerButton;Bt(e,Je),Bt(r,fr)}()}function Qe(t){var e,r;(function(t){if(t&&t.length){var e=t.map((function(t){return function(t){var e=t.name,r=t.key,o=t.hasLiteThumbnail,a=t.isWebp,i=o?a?"".concat(fe,"/").concat(r,".webp"):"".concat(fe,"/").concat(r,".png"):"".concat(fe,"/placeholder.svg");return ie("li",{className:"frm-card-item",data:{href:"".concat(n,"&triggerViewApplicationModal=1&template=").concat(r),"frm-search-text":e.toLowerCase()},children:[ce({className:"".concat(l,"-item-icon"),child:se({src:i})}),ce({className:"".concat(l,"-item-body"),children:[le({text:X("Ready Made Solution","formidable"),className:"frm-meta-tag frm-orange-tag frm-text-xs"}),ie("h3",{text:e,className:"frm-text-sm frm-font-medium frm-m-0"}),ue({text:X("See all applications","formidable"),className:"frm-text-xs frm-font-semibold",href:n})]})]})}(t)}));oe=ce({id:"".concat(l,"-applications"),className:tt,children:[ie("h2",{text:X("Application Templates"),className:"frm-text-sm frm-mb-sm"}),ie("ul",{className:"".concat(l,"-list frm-list-grid-layout"),children:e})]})}})(t.templates),(e=vt()).applicationTemplates||void 0===oe||(e.bodyContent.appendChild(oe),gt({applicationTemplates:oe,applicationTemplatesTitle:oe.querySelector("h2"),applicationTemplatesList:oe.querySelector(".".concat(l,"-list")),applicationTemplateItems:oe.querySelectorAll(".frm-card-item")})),void 0!==(r=vt().applicationTemplateItems)&&r.forEach((function(t){t.addEventListener("click",Xe)}))}function tr(t){return function(t){if(Array.isArray(t))return er(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return er(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?er(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function er(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function ar(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function ir(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){ar(a,n,o,i,c,"next",t)}function c(t){ar(a,n,o,i,c,"throw",t)}i(void 0)}))}}var cr=function(t){return ir(or().mark((function e(){var r,n,o,a,i,c,l=arguments;return or().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Le()){e.next=3;break}return e.abrupt("return");case 3:for(n=vt(),o=n.modalItems,Ht(o),r.dialog("option","width",m),a=l.length,i=new Array(a),c=0;c use").setAttribute("xlink:href",n?"#frm_checkmark_icon":"#frm_close_icon")}));var u=e.dataset.slug?"-".concat(e.dataset.slug):"";l.href=c+u,Zt(o)})),sr=cr((function(){var t=vt().renewAccountModal;Zt(t)})),fr=cr((function(){var t=vt().leaveEmailModal;Zt(t)})),pr=cr((function(){Le().dialog("option","width",d);var t=vt().createTemplateModal;Zt(t)})),mr=function(t){!function(t,e,r){var n=document.querySelector("#frm_leave_email"),o=document.querySelector("#frm_leave_email_error");n&&o?(o.setAttribute("frm-error",r),Zt(o),n.addEventListener("keyup",(function(){Jt(o)}),{once:!0})):console.warn("showFormError: Unable to find input or error element.")}(0,0,t)};var dr;dr=function(){wp.hooks.doAction("frmFormTemplates.beforeInitialize",{getState:Tt,setState:Ot}),e&&(0,frmDom.ajax.doJsonFetch)("get_applications_data&view=templates").then(Qe),function(){Te.apply(this,arguments)}(),vt().templateItems.forEach((function(t){t.getAttribute("data-categories").split(",").forEach((function(e){Ie[e]||(Ie[e]=[]),Ie[e].push(t)}))})),we(),We(),wp.hooks.doAction("frmFormTemplates.afterInitialize",{getState:Tt,setState:Ot}),wp.hooks.doAction("frm_new_form_modal_form",jQuery("#frm-new-template"))},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",dr):dr())})()})(); \ No newline at end of file diff --git a/js/formidable-settings-components.js b/js/formidable-settings-components.js index 64b95b378a..b7f5c4c3ff 100644 --- a/js/formidable-settings-components.js +++ b/js/formidable-settings-components.js @@ -1,2764 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./js/src/admin/components/dependent-updater-component.js": -/*!****************************************************************!*\ - !*** ./js/src/admin/components/dependent-updater-component.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. - * The names of the elements that will be updated are specified using the "will-change" attribute. - * It is primarily used in components from Style/Quick Settings. - * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. - */ -var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { - /** - * Creates an instance of frmStyleDependentUpdaterComponent. - * - * @param {HTMLElement} component - The component element. - */ - function frmStyleDependentUpdaterComponent(component) { - _classCallCheck(this, frmStyleDependentUpdaterComponent); - this.component = component; - try { - var willChangeData = JSON.parse(this.component.dataset.willChange); - this.data = { - propagateInputs: this.initPropagationList(willChangeData), - changeEvent: new Event('change', { - bubbles: true - }) - }; - } catch (error) { - console.error('Error parsing JSON data from "will-change" attribute.', error); - } - } - - /** - * Initializes the list of inputs to propagate changes to. - * The selection is made by provided input's names list in "will-change" attribute. - * - * @param {string[]} inputNames - The names of the inputs to propagate changes to. - * @return {HTMLElement[]} - The list of inputs to propagate changes to. - */ - return _createClass(frmStyleDependentUpdaterComponent, [{ - key: "initPropagationList", - value: function initPropagationList(inputNames) { - var list = []; - inputNames.forEach(function (name) { - var input = document.querySelector("input[name=\"".concat(name, "\"]")); - if (null !== input) { - list.push(input); - } - }); - return list; - } - - /** - * Updates all dependent elements with the given value. - * - * @param {string} value - The value to update the dependent elements with. - */ - }, { - key: "updateAllDependentElements", - value: function updateAllDependentElements(value) { - this.data.propagateInputs.forEach(function (input) { - input.value = value; - }); - this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/components/class-tabs-navigator.js": -/*!***************************************************!*\ - !*** ./js/src/components/class-tabs-navigator.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmTabsNavigator = /*#__PURE__*/function () { - function frmTabsNavigator(wrapper) { - _classCallCheck(this, frmTabsNavigator); - if ('undefined' === typeof wrapper) { - return; - } - this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); - if (null === this.wrapper) { - return; - } - this.flexboxSlidesGap = '16px'; - this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; - this.resizeObserver = null; - this.init(); - } - return _createClass(frmTabsNavigator, [{ - key: "init", - value: function init() { - var _this = this; - if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { - return; - } - this.initDefaultSlideTrackerWidth(); - this.navs.forEach(function (nav, index) { - nav.addEventListener('click', function (event) { - return _this.onNavClick(event, index); - }); - }); - this.setupScrollbarObserver(); - // Cleanup observers when page unloads to prevent memory leaks - window.addEventListener('beforeunload', this.cleanupObservers); - } - }, { - key: "onNavClick", - value: function onNavClick(event, index) { - var navItem = event.currentTarget; - event.preventDefault(); - this.removeActiveClassnameFromNavs(); - navItem.classList.add('frm-active'); - this.initSlideTrackUnderline(navItem, index); - this.changeSlide(index); - - // Handle special case for frm_insert_fields_tab - var navLink = navItem.querySelector('a'); - if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { - var _window$frmAdminBuild, _window$frmAdminBuild2; - (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); - } - } - }, { - key: "initDefaultSlideTrackerWidth", - value: function initDefaultSlideTrackerWidth() { - if (!this.slideTrackLine.dataset.initialWidth) { - return; - } - this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); - } - }, { - key: "initSlideTrackUnderline", - value: function initSlideTrackUnderline(nav, index) { - this.slideTrackLine.classList.remove('frm-first', 'frm-last'); - var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { - return nav.classList.contains('frm-active'); - }); - this.positionUnderlineIndicator(activeNav); - } - - /** - * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. - * Automatically repositions the underline indicator when layout changes occur. - */ - }, { - key: "setupScrollbarObserver", - value: function setupScrollbarObserver() { - var _this2 = this; - var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); - if (!scrollbarWrapper || !('ResizeObserver' in window)) { - return; - } - this.resizeObserver = new ResizeObserver(function () { - var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); - if (activeNav) { - _this2.positionUnderlineIndicator(activeNav); - } - }); - this.resizeObserver.observe(scrollbarWrapper); - } - - /** - * Cleans up observers to prevent memory leaks. - */ - }, { - key: "cleanupObservers", - value: function cleanupObservers() { - if (this.resizeObserver) { - this.resizeObserver.disconnect(); - this.resizeObserver = null; - } - } - - /** - * Positions the underline indicator based on the active navigation element. - * - * @param {HTMLElement} activeNav The active navigation element to position the underline under - */ - }, { - key: "positionUnderlineIndicator", - value: function positionUnderlineIndicator(activeNav) { - var _this3 = this; - requestAnimationFrame(function () { - var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; - _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); - _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; - }); - } - }, { - key: "changeSlide", - value: function changeSlide(index) { - this.removeActiveClassnameFromSlides(); - var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); - if ('0px' !== translate) { - this.slideTrack.style.transform = "translateX(".concat(translate, ")"); - } else { - this.slideTrack.style.removeProperty('transform'); - } - if (index in this.slides) { - this.slides[index].classList.add('frm-active'); - } - } - }, { - key: "removeActiveClassnameFromSlides", - value: function removeActiveClassnameFromSlides() { - this.slides.forEach(function (slide) { - return slide.classList.remove('frm-active'); - }); - } - }, { - key: "removeActiveClassnameFromNavs", - value: function removeActiveClassnameFromNavs() { - this.navs.forEach(function (nav) { - return nav.classList.remove('frm-active'); - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/** - * Removes a query parameter and updates history with replaceState. - * - * @param {string} paramName The query parameter to remove. - * @return {void} - */ -var removeParamFromHistory = function removeParamFromHistory(paramName) { - return history.replaceState({}, '', removeQueryParam(paramName)); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./js/src/settings-components/components/index.js": -/*!********************************************************!*\ - !*** ./js/src/settings-components/components/index.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmRadioComponent: () => (/* reexport safe */ _radio_component__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ frmSliderComponent: () => (/* reexport safe */ _slider_component__WEBPACK_IMPORTED_MODULE_1__["default"]), -/* harmony export */ frmTabsComponent: () => (/* reexport safe */ _tabs_component__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group__WEBPACK_IMPORTED_MODULE_4__.initToggleGroupComponents), -/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_3__.initTokenInputFields), -/* harmony export */ setupUnitInputHandlers: () => (/* reexport safe */ _unit_input__WEBPACK_IMPORTED_MODULE_5__.setupUnitInputHandlers) -/* harmony export */ }); -/* harmony import */ var _radio_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-component */ "./js/src/settings-components/components/radio-component.js"); -/* harmony import */ var _slider_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slider-component */ "./js/src/settings-components/components/slider-component.js"); -/* harmony import */ var _tabs_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabs-component */ "./js/src/settings-components/components/tabs-component.js"); -/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/index.js"); -/* harmony import */ var _toggle_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toggle-group */ "./js/src/settings-components/components/toggle-group/index.js"); -/* harmony import */ var _unit_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./unit-input */ "./js/src/settings-components/components/unit-input.js"); - - - - - - - -/***/ }), - -/***/ "./js/src/settings-components/components/radio-component.js": -/*!******************************************************************!*\ - !*** ./js/src/settings-components/components/radio-component.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmRadioComponent) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Internal dependencies - */ - - - -/** - * Represents a radio component. - * - * @class - */ -var frmRadioComponent = /*#__PURE__*/function () { - function frmRadioComponent() { - var _this = this; - _classCallCheck(this, frmRadioComponent); - this.radioElements = document.querySelectorAll('.frm-style-component.frm-radio-component'); - this.observers = new Map(); - if (0 < this.radioElements.length) { - this.init(); - } - - /** - * Handles the addition of new fields. - * - * @param {Event} event The frm_added_field event. - * @param {HTMLElement} event.frmField The added field object being destructured from the event. - */ - document.addEventListener('frm_added_field', function (_ref) { - var frmField = _ref.frmField; - return _this.discoverAndInitFieldRadios(frmField.dataset.fid); - }); - - /** - * Handles the addition of new fields via AJAX. - * - * @param {Event} event The frm_ajax_loaded_field event. - * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. - */ - document.addEventListener('frm_ajax_loaded_field', function (_ref2) { - var frmFields = _ref2.frmFields; - return frmFields.forEach(function (field) { - return _this.discoverAndInitFieldRadios(field.id); - }); - }); - - // Cleanup observers when page unloads to prevent memory leaks - window.addEventListener('beforeunload', function () { - return _this.cleanupObservers(); - }); - } - - /** - * Initializes the radio component. - */ - return _createClass(frmRadioComponent, [{ - key: "init", - value: function init() { - this.initRadio(); - this.initTrackerOnAccordionClick(); - } - - /** - * Discovers and initializes radio components for a specific field. - * - * @param {string|number} fieldId The unique identifier of the field whose radio components should be discovered and initialized - * @throws {Error} Throws an error if the field container is not found in the DOM - */ - }, { - key: "discoverAndInitFieldRadios", - value: function discoverAndInitFieldRadios(fieldId) { - var fieldContainer = document.getElementById("frm-single-settings-".concat(fieldId)); - if (!fieldContainer) { - throw new Error("Field container not found for field ID: ".concat(fieldId)); - } - this.radioElements = fieldContainer.querySelectorAll('.frm-style-component.frm-radio-component'); - this.initRadio(); - } - - /** - * Initializes the radio component. - */ - }, { - key: "initRadio", - value: function initRadio() { - var _this2 = this; - this.radioElements.forEach(function (element) { - _this2.initOnRadioChange(element); - _this2.initVisibilityObserver(element); - }); - } - }, { - key: "initTrackerOnAccordionClick", - value: function initTrackerOnAccordionClick() { - var _this3 = this; - var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); - accordionitems.forEach(function (accordionitem) { - accordionitem.addEventListener('click', function (event) { - var wrapper = event.target.closest('.accordion-section'); - var radioButtons = wrapper.querySelectorAll('.frm-style-component.frm-radio-component input[type="radio"]:checked'); - radioButtons.forEach(function (radio) { - setTimeout(function () { - return _this3.onRadioChange(radio); - }, 200); - }); - }); - }); - } - - /** - * Initializes the onRadioChange event for the given wrapper. - * - * @param {HTMLElement} radioElement - The radio element. - */ - }, { - key: "initOnRadioChange", - value: function initOnRadioChange(radioElement) { - var _this4 = this; - radioElement.querySelectorAll('input[type="radio"]').forEach(function (radio) { - if (radio.checked) { - _this4.onRadioChange(radio); - } - radio.addEventListener('change', function (event) { - _this4.onRadioChange(event.target); - }); - }); - } - - /** - * Handles the onRadioChange event for the given wrapper. - * - * @param {HTMLElement} target - The active radio button. - */ - }, { - key: "onRadioChange", - value: function onRadioChange(target) { - var wrapper = target.closest('.frm-style-component.frm-radio-component'); - var activeItem = wrapper.querySelector('input[type="radio"]:checked + label'); - if (null === activeItem) { - return; - } - this.moveTracker(activeItem, wrapper); - this.hideExtraElements(target); - this.maybeShowExtraElements(target); - } - - /** - * Display additional elements related to the selected radio option. - * - * @param {HTMLElement} radio - The radio button element. - */ - }, { - key: "maybeShowExtraElements", - value: function maybeShowExtraElements(radio) { - var elementAttr = radio.getAttribute('data-frm-show-element'); - if (null === elementAttr) { - return; - } - var elements = document.querySelectorAll("div[data-frm-element=\"".concat(elementAttr, "\"]")); - if (0 === elements.length) { - return; - } - elements.forEach(function (element) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(element); - element.classList.add('frm-element-is-visible'); - }); - } - - /** - * Initializes visibility observer for the radio component. This handles cases when components are conditionally shown. - * - * @param {HTMLElement} element The radio component element - * @return {void} - */ - }, { - key: "initVisibilityObserver", - value: function initVisibilityObserver(element) { - var _this5 = this; - if (this.observers.has(element)) { - this.observers.get(element).disconnect(); - } - var observer = new MutationObserver(function () { - // Check if element is now visible - if ((0,core_utils__WEBPACK_IMPORTED_MODULE_1__.isVisible)(element)) { - var radio = element.querySelector('input[type="radio"]:checked'); - if (radio) { - _this5.onRadioChange(radio); - } - } - }); - this.observers.set(element, observer); - - // Observe for attribute changes on the component and its ancestors - observer.observe(element, { - attributes: true, - attributeFilter: ['class', 'style'] - }); - - // Also observe parent elements up to a reasonable depth - var parent = element.parentElement; - for (var i = 0; i < 7 && parent; i++) { - observer.observe(parent, { - attributes: true, - attributeFilter: ['class', 'style'] - }); - parent = parent.parentElement; - } - } - - /** - * Cleanup all observers to prevent memory leaks. - */ - }, { - key: "cleanupObservers", - value: function cleanupObservers() { - this.observers.forEach(function (observer) { - observer.disconnect(); - }); - this.observers.clear(); - } - - /** - * Hide the possible opepend extra elements. - */ - }, { - key: "hideExtraElements", - value: function hideExtraElements() { - var elements = document.querySelectorAll('.frm-element-is-visible'); - if (0 === elements.length) { - return; - } - elements.forEach(function (element) { - element.classList.remove('frm-element-is-visible'); - element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(element); - }); - } - - /** - * Moves the tracker to the active item. - * - * @param {HTMLElement} activeItem - The active item element. - * @param {HTMLElement} wrapper - The wrapper element. - */ - }, { - key: "moveTracker", - value: function moveTracker(activeItem, wrapper) { - var offset = activeItem.offsetLeft; - var width = activeItem.offsetWidth; - var tracker = wrapper.querySelector('.frm-radio-active-tracker'); - tracker.style.left = 0; - tracker.style.width = "".concat(width, "px"); - tracker.style.transform = "translateX(".concat(offset, "px)"); - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/settings-components/components/slider-component.js": -/*!*******************************************************************!*\ - !*** ./js/src/settings-components/components/slider-component.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmSliderComponent) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../admin/components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Internal dependencies - */ - - - -/** - * Represents a slider component. - * - * @class frmSliderComponent - */ -var frmSliderComponent = /*#__PURE__*/function () { - function frmSliderComponent() { - var _this = this; - _classCallCheck(this, frmSliderComponent); - this.sliderElements = document.querySelectorAll('.frm-slider-component'); - if (0 === this.sliderElements.length) { - return; - } - - // The slider bullet point width in pixels. Used in value calculation on drag event. - this.sliderBulletWidth = 16; - this.sliderMarginRight = 5; - this.eventsChange = []; - var debounce = frmDom.util.debounce; - this.valueChangeDebouncer = debounce(function (index) { - return _this.triggerValueChange(index); - }, 25); - this.initOptions(); - this.init(); - } - - /** - * Initializes the options for the slider component. - */ - return _createClass(frmSliderComponent, [{ - key: "initOptions", - value: function initOptions() { - var _this2 = this; - this.options = []; - this.sliderElements.forEach(function (element, index) { - var parentWrapper = element.classList.contains('frm-has-multiple-values') ? element.closest('.frm-style-component') : element; - _this2.options.push({ - dragging: false, - startX: 0, - translateX: 0, - maxValue: parseInt(element.dataset.maxValue, 10), - element: element, - index: index, - value: 0, - dependentUpdater: parentWrapper.classList.contains('frm-style-dependent-updater-component') ? new _admin_components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](parentWrapper) : null - }); - }); - } - - /** - * Initializes the slider component. - */ - }, { - key: "init", - value: function init() { - this.initSlidersPosition(); - this.initDraggable(); - } - - /** - * Initializes the draggable functionality for the slider component. - */ - }, { - key: "initDraggable", - value: function initDraggable() { - var _this3 = this; - this.sliderElements.forEach(function (element, index) { - _this3.eventsChange[index] = new Event('change', { - bubbles: true, - cancelable: true - }); - var draggableBullet = element.querySelector('.frm-slider-bullet'); - var valueInput = element.querySelector('.frm-slider-value input[type="text"]'); - valueInput.addEventListener('change', function (event) { - var unit = element.querySelector('select').value; - if (_this3.getMaxValue(unit, index) < parseInt(event.target.value, 10)) { - return; - } - _this3.initSliderWidth(element); - _this3.options[index].fullValue = _this3.updateValue(element, valueInput.value + unit); - _this3.triggerValueChange(index); - }); - _this3.expandSliderGroup(element); - _this3.updateOnUnitChange(element, valueInput, index); - _this3.changeSliderPositionOnClick(element, valueInput, index); - draggableBullet.addEventListener('mousedown', function (event) { - event.preventDefault(); - event.stopPropagation(); - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.enableDragging(event, index); - }); - draggableBullet.addEventListener('mousemove', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.moveTracker(event, index); - }); - draggableBullet.addEventListener('mouseup', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.disableDragging(index, event); - }); - draggableBullet.addEventListener('mouseleave', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - _this3.disableDragging(index, event); - }); - }); - } - }, { - key: "expandSliderGroup", - value: function expandSliderGroup(element) { - var svgIcon = element.querySelector('.frmsvg'); - if ('undefined' === typeof element.dataset.displaySliders || null === svgIcon) { - return; - } - var sliderGroupItems = this.getSliderGroupItems(element); - svgIcon.addEventListener('click', function () { - sliderGroupItems.forEach(function (item) { - item.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); - }); - }); - } - }, { - key: "updateOnUnitChange", - value: function updateOnUnitChange(element, valueInput, index) { - var _this4 = this; - element.querySelector('select').addEventListener('change', function (event) { - var unit = event.target.value.toLowerCase(); - if ('' === unit) { - element.classList.add('frm-disabled', 'frm-empty'); - return; - } - if ('auto' === unit) { - element.classList.add('frm-disabled'); - _this4.updateValue(element, 'auto'); - _this4.triggerValueChange(index); - return; - } - element.classList.remove('frm-disabled', 'frm-empty'); - _this4.options[index].fullValue = valueInput.value + unit; - _this4.updateValue(element, _this4.options[index].fullValue); - _this4.triggerValueChange(index); - }); - } - }, { - key: "changeSliderPositionOnClick", - value: function changeSliderPositionOnClick(element, valueInput, index) { - var _this5 = this; - var frmSlider = element.querySelector('.frm-slider'); - var customEvent = new Event('change', { - bubbles: true, - cancelable: true - }); - frmSlider.addEventListener('click', function (event) { - if (element.classList.contains('frm-disabled')) { - return; - } - event.preventDefault(); - event.stopPropagation(); - if (!event.target.classList.contains('frm-slider') && !event.target.classList.contains('frm-slider-active-track')) { - return; - } - var sliderWidth = frmSlider.offsetWidth - _this5.sliderBulletWidth; - var sliderRect = frmSlider.getBoundingClientRect(); - var deltaX = event.clientX - sliderRect.left - _this5.sliderBulletWidth; - var unit = element.querySelector('select').value; - var value = _this5.calculateValue(sliderWidth, deltaX, _this5.getMaxValue(unit, index)); - if (value < 0) { - return; - } - _this5.options[index].fullValue = _this5.updateValue(element, value + unit); - _this5.initChildSlidersWidth(element, deltaX, index, value + unit); - valueInput.value = value; - valueInput.dispatchEvent(customEvent); - }); - } - - /** - * Retrieves an array of slider group items based on the provided element. - * - * @param {HTMLElement} element - The element to retrieve slider group items from. - * @return {NodeList} - An array-like object containing the slider group items. - */ - }, { - key: "getSliderGroupItems", - value: function getSliderGroupItems(element) { - if ('undefined' === typeof element.dataset.displaySliders) { - return []; - } - var slidersGroup = element.dataset.displaySliders.split(','); - var query = slidersGroup.map(function (item) { - return ".frm-slider-component[data-type=\"".concat(item, "\"]"); - }).join(', '); - return element.closest('.frm-style-component').querySelectorAll(query); - } - - /** - * Initializes the position of sliders when a accordion section is opened. - */ - }, { - key: "initSlidersPosition", - value: function initSlidersPosition() { - var _this6 = this; - var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); - var quickSettings = document.querySelector('.frm-quick-settings'); - var 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', function (event) { - var imageBackgroundOpacitySlider = event.closest('.accordion-section-content').querySelector('#frm-bg-image-opacity-slider'); - _this6.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(function (item) { - item.addEventListener('click', function (event) { - _this6.initSlidersWidth(event.target.closest('.accordion-section')); - }); - }); - this.initSliderPositionOnFieldShapeChange(); - } - - /** - * Initializes the width of "Corner Radius" slider that is dynamically is displayed on "Field Shape" option change from "Quick Settings". - * - * @return {void} - */ - }, { - key: "initSliderPositionOnFieldShapeChange", - value: function initSliderPositionOnFieldShapeChange() { - var _this7 = this; - var fieldShapeType = document.querySelector('.frm-style-component.frm-field-shape'); - if (null === fieldShapeType) { - return; - } - var radioButtons = fieldShapeType.querySelectorAll('input[type="radio"]'); - radioButtons.forEach(function (radio) { - radio.addEventListener('change', function (event) { - if (event.target.checked && 'rounded-corner' === event.target.value) { - var slider = document.querySelector('div[data-frm-element="field-shape-corner-radius"] .frm-slider-component'); - _this7.initSliderWidth(slider); - } - }); - }); - } - - /** - * Initializes the width of sliders within a given section. - * - * @param {HTMLElement} section - The section containing the sliders. - * @return {void} - */ - }, { - key: "initSlidersWidth", - value: function initSlidersWidth(section) { - var _this8 = this; - var sliders = section.querySelectorAll('.frm-slider-component'); - sliders.forEach(function (slider) { - setTimeout(function () { - _this8.initSliderWidth(slider); - }, 100); - }); - } - - /** - * Initializes the width of a slider. - * - * @param {HTMLElement} slider - The slider element. - * @return {void} - */ - }, { - key: "initSliderWidth", - value: function initSliderWidth(slider) { - if (slider.classList.contains('frm-disabled')) { - return; - } - var index = this.getSliderIndex(slider); - var sliderWidth = slider.querySelector('.frm-slider').offsetWidth - this.sliderBulletWidth; - var value = parseInt(slider.querySelector('.frm-slider-value input[type="text"]').value, 10); - var unit = slider.querySelector('select').value; - var deltaX = '%' === unit ? Math.round(sliderWidth * value / 100) : Math.ceil(value / this.options[index].maxValue * sliderWidth); - slider.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); - this.options[index].translateX = deltaX; - this.options[index].value = value + unit; - } - - /** - * Initializes the width of child sliders. - * - * @param {HTMLElement} slider - The parent slider element. - * @param {number} width - The width to set for the child sliders. - * @param {number} index - The starting index for the child sliders. - * @param {number} value - The value to set for the child sliders. - */ - }, { - key: "initChildSlidersWidth", - value: function initChildSlidersWidth(slider, width, index, value) { - var _this9 = this; - if (!slider.classList.contains('frm-has-independent-fields') && !slider.classList.contains('frm-has-multiple-values')) { - return; - } - var childSliders = slider.classList.contains('frm-has-independent-fields') ? slider.querySelectorAll('.frm-independent-slider-field') : this.getSliderGroupItems(slider); - childSliders.forEach(function (item, childIndex) { - item.querySelector('.frm-slider-active-track').style.width = "".concat(width, "px"); - _this9.options[index + childIndex + 1].translateX = width; - _this9.options[index + childIndex + 1].value = value; - }); - } - - /** - * Returns the index of the specified slider element. - * - * @param {HTMLElement} slider - The slider element. - * @return {number} The index of the slider element. - */ - }, { - key: "getSliderIndex", - value: function getSliderIndex(slider) { - return this.options.filter(function (option) { - return option.element === slider; - })[0].index; - } - - /** - * Handles the movement of the slider tracker. - * - * @param {Event} event - The event object representing the mouse movement. - * @param {number} index - The index of the slider element. - * @return {void} - */ - }, { - key: "moveTracker", - value: function moveTracker(event, index) { - if (!this.options[index].dragging) { - return; - } - var deltaX = event.clientX - this.options[index].startX; - var element = this.sliderElements[index]; - var sliderWidth = element.querySelector('.frm-slider').offsetWidth; - - // Ensure deltaX does not go below 0 - deltaX = Math.max(deltaX, 0); - if (deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth) { - return; - } - var unit = element.querySelector('select').value; - var value = this.calculateValue(sliderWidth, deltaX, this.getMaxValue(unit, index)); - element.querySelector('.frm-slider-value input[type="text"]').value = value; - element.querySelector('.frm-slider-bullet .frm-slider-value-label').innerText = value; - element.querySelector('.frm-slider-active-track').style.width = "".concat(deltaX, "px"); - this.initChildSlidersWidth(element, deltaX, index, value + unit); - this.options[index].translateX = deltaX; - this.options[index].value = value + unit; - this.options[index].fullValue = this.updateValue(element, this.options[index].value); - this.valueChangeDebouncer(index); - } - - /** - * Get the maximum value based on the unit and index. - * - * @param {string} unit - The unit of measurement. - * @param {number} index - The index of the option. - * @return {number} The maximum value. - */ - }, { - key: "getMaxValue", - value: function getMaxValue(unit, index) { - return '%' === unit ? 100 : this.options[index].maxValue; - } - - /** - * Enables dragging for the slider component. - * - * @param {Event} event - The event object. - * @param {number} index - The index of the option being dragged. - */ - }, { - key: "enableDragging", - value: function enableDragging(event, index) { - event.target.classList.add('frm-dragging'); - this.options[index].dragging = true; - this.options[index].startX = event.clientX - this.options[index].translateX; - } - - /** - * Disables dragging for a specific index. - * - * @param {number} index - The index of the option to disable dragging for. - * @param {Event} event - The event object triggered by the dragging action. - */ - }, { - key: "disableDragging", - value: function disableDragging(index, event) { - if (false === this.options[index].dragging) { - return; - } - event.target.classList.remove('frm-dragging'); - this.options[index].dragging = false; - this.triggerValueChange(index); - } - - /** - * Triggers a value change for the specified index. - * - * @param {number} index - The index of the value to be changed. - */ - }, { - key: "triggerValueChange", - value: function triggerValueChange(index) { - var _this10 = this; - if (null !== this.options[index].dependentUpdater) { - this.options[index].dependentUpdater.updateAllDependentElements(this.options[index].fullValue); - return; - } - var 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"]'); - if (input instanceof NodeList) { - input.forEach(function (item) { - item.dispatchEvent(_this10.eventsChange[index]); - }); - return; - } - input.dispatchEvent(this.eventsChange[index]); - } - - /** - * Calculates the value based on the width, deltaX, and maxValue. - * - * @param {number} width - The width of the slider. - * @param {number} deltaX - The change in x-coordinate. - * @param {number} maxValue - The maximum value. - * @return {number} - The calculated value. - */ - }, { - key: "calculateValue", - value: function calculateValue(width, deltaX, maxValue) { - // Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet. - // 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. - var delta = Math.ceil(this.sliderBulletWidth * (deltaX / width)); - var value = Math.ceil((deltaX + delta) / width * maxValue); - return Math.min(value, maxValue); - } - - /** - * Updates the value of a slider component. - * - * @param {HTMLElement} element - The slider component element. - * @param {string} value - The new value to be set. - * @return {string} - The updated value. - */ - }, { - key: "updateValue", - value: function updateValue(element, value) { - var _this11 = this; - // When the slider component is used for "Base Font Size", we need to update a hidden input field when change happens to indicate that the "Base Font Size" has been adjusted. - // Used to avoid conflicts with other possible font sizes adjustemnts in "Advanced Settings" when moving from "Quick Settings" when "Base Font Size" is not changed. - if (element.classList.contains('frm-base-font-size')) { - var userBaseFontSizeInput = document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]'); - if (null !== userBaseFontSizeInput) { - userBaseFontSizeInput.value = 'true'; - } - } - if (element.classList.contains('frm-has-multiple-values')) { - var input = element.closest('.frm-style-component').querySelector('input[type="hidden"]'); - var inputValue = input.value.split(' '); - var type = element.dataset.type; - if (!inputValue[2]) { - inputValue[2] = '0px'; - } - if (!inputValue[3]) { - inputValue[3] = '0px'; - } - switch (type) { - case 'vertical': - inputValue[0] = value; - inputValue[2] = value; - break; - case 'horizontal': - inputValue[1] = value; - inputValue[3] = value; - break; - case 'top': - inputValue[0] = value; - break; - case 'bottom': - inputValue[2] = value; - break; - case 'left': - inputValue[3] = value; - break; - case 'right': - inputValue[1] = value; - break; - } - var newValue = inputValue.join(' '); - input.value = newValue; - var childSlidersGroup = this.getSliderGroupItems(element); - childSlidersGroup.forEach(function (slider) { - var unitMeasure = _this11.getUnitMeasureFromValue(value); - slider.querySelector('.frm-slider-value input[type="text"]').value = parseInt(value, 10); - slider.querySelector('select').value = unitMeasure; - }); - return newValue; - } - if (element.classList.contains('frm-has-independent-fields')) { - var inputValues = element.querySelectorAll('.frm-slider-value input[type="hidden"]'); - var visibleValues = element.querySelectorAll('.frm-slider-value input[type="text"]'); - inputValues.forEach(function (input, index) { - input.value = value; - visibleValues[index + 1].value = parseInt(value, 10); - }); - return value; - } - element.querySelector('.frm-slider-value input[type="hidden"]').value = value; - return value; - } - - /** - * Returns the unit of measurement used in the given value. - * - * @param {string} value - The value to check for the unit of measurement. - * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found. - */ - }, { - key: "getUnitMeasureFromValue", - value: function getUnitMeasureFromValue(value) { - return ['%', 'px', 'em'].find(function (unit) { - return value.includes(unit); - }) || ''; - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/settings-components/components/tabs-component.js": -/*!*****************************************************************!*\ - !*** ./js/src/settings-components/components/tabs-component.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmTabsComponent) -/* harmony export */ }); -/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } - -/** - * Represents a Tabs Component. - * - * @class - */ -var frmTabsComponent = /*#__PURE__*/function () { - function frmTabsComponent() { - _classCallCheck(this, frmTabsComponent); - this.elements = document.querySelectorAll('.frm-style-tabs-wrapper'); - if (0 < this.elements.length) { - this.init(); - } - } - - /** - * Initializes the Tabs Component. - */ - return _createClass(frmTabsComponent, [{ - key: "init", - value: function init() { - this.elements.forEach(function (element) { - new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_0__.frmTabsNavigator(element); - }); - } - - /** - * Initializes the component on tab click. - * - * @param {Element} wrapper - The wrapper element. - */ - }, { - key: "initOnTabClick", - value: function initOnTabClick(wrapper) { - var _this = this; - this.initActiveBackgroundWidth(wrapper); - wrapper.querySelectorAll('.frm-tab-item').forEach(function (tab) { - tab.addEventListener('click', function (event) { - _this.onTabClick(event.target.closest('.frm-tabs-wrapper')); - }); - }); - } - }]); -}(); - - -/***/ }), - -/***/ "./js/src/settings-components/components/toggle-group/index.js": -/*!*********************************************************************!*\ - !*** ./js/src/settings-components/components/toggle-group/index.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initToggleGroupComponents: () => (/* reexport safe */ _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__.initToggleGroupComponents) -/* harmony export */ }); -/* harmony import */ var _toggle_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toggle-group.js */ "./js/src/settings-components/components/toggle-group/toggle-group.js"); - - -/***/ }), - -/***/ "./js/src/settings-components/components/toggle-group/toggle-group.js": -/*!****************************************************************************!*\ - !*** ./js/src/settings-components/components/toggle-group/toggle-group.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initToggleGroupComponents: () => (/* binding */ initToggleGroupComponents) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Group Toggle Component - * - * Handles toggling visibility and enabled state of related form elements - */ - -/** - * Internal dependencies - */ - - - -/** - * Class names for group toggle component - * - * @private - */ -var CLASS_NAMES = { - GROUP_TOGGLE: 'frm-toggle-group', - TOGGLE_BLOCK: 'frm_toggle_block' -}; - -/** - * Data attributes for group toggle component - * - * @private - */ -var DATA_ATTRIBUTES = { - GROUP_NAME: 'data-group-name', - SHOW: 'data-show', - DISABLE: 'data-disable', - ENABLE: 'data-enable' -}; - -/** - * Initialize all group toggle components on the page - * - * @return {void} - */ -function initToggleGroupComponents() { - applyInitialState(); - addEventListeners(); -} - -/** - * Apply the initial state for all toggle buttons on the page - * - * @private - * @return {void} - */ -function applyInitialState() { - var toggleGroups = document.querySelectorAll(".".concat(CLASS_NAMES.GROUP_TOGGLE)); - if (!toggleGroups.length) { - return; - } - toggleGroups.forEach(function (toggleGroup) { - var toggleButton = toggleGroup.querySelector("[".concat(DATA_ATTRIBUTES.GROUP_NAME, "]:checked")); - if (!toggleButton) { - return; - } - applyToggleState(toggleButton, toggleGroup); - }); -} - -/** - * Add event listeners to toggle buttons in a group toggle component - * - * @private - * @return {void} - */ -function addEventListeners() { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', ".".concat(CLASS_NAMES.GROUP_TOGGLE, " [").concat(DATA_ATTRIBUTES.GROUP_NAME, "]"), handleToggleClick); -} - -/** - * Handle click events on toggle buttons - * - * @private - * @param {Event} event The click event - * @return {void} - */ -function handleToggleClick(event) { - var toggleButton = event.target; - var toggleGroup = toggleButton.closest(".".concat(CLASS_NAMES.GROUP_TOGGLE)); - if (!toggleGroup) { - return; - } - applyToggleState(toggleButton, toggleGroup); -} - -/** - * Apply toggle state based on toggle button settings - * Shared functionality used by both click handler and initial state - * - * @private - * @param {HTMLElement} toggleButton The toggle button element - * @param {HTMLElement} toggleGroup The toggle group container element - * @return {void} - */ -function applyToggleState(toggleButton, toggleGroup) { - var _toggleGroup$closest; - var fieldId = ((_toggleGroup$closest = toggleGroup.closest(".".concat(core_constants__WEBPACK_IMPORTED_MODULE_1__.SINGLE_SETTINGS_CLASS))) === null || _toggleGroup$closest === void 0 ? void 0 : _toggleGroup$closest.dataset.fid) || toggleGroup.dataset.fid; - var isChecked = toggleButton.checked; - - // Handle show/hide elements - var showSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.SHOW); - if (showSelectors) { - document.querySelectorAll(normalizeSelector(showSelectors, fieldId)).forEach(function (element) { - return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.HIDDEN_CLASS, !isChecked); - }); - } - - // Handle disable elements - var disableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.DISABLE); - if (disableSelectors) { - document.querySelectorAll(normalizeSelector(disableSelectors, fieldId)).forEach(function (element) { - element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); - element.querySelectorAll('input, select, textarea').forEach(function (formElement) { - return formElement.disabled = isChecked; - }); - element.querySelectorAll('.frm-show-inline-modal[tabindex]').forEach(function (inlineModal) { - return inlineModal.tabIndex = isChecked ? -1 : 0; - }); - }); - } - - // Handle enable elements - var enableSelectors = toggleButton.getAttribute(DATA_ATTRIBUTES.ENABLE); - if (enableSelectors) { - document.querySelectorAll(normalizeSelector(enableSelectors, fieldId)).forEach(function (element) { - return element.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, !isChecked); - }); - } - - // Toggle disabled state for all other toggle blocks within the group - var currentToggleBlock = toggleButton.closest(".".concat(CLASS_NAMES.TOGGLE_BLOCK)); - Array.from(toggleGroup.querySelectorAll(".".concat(CLASS_NAMES.TOGGLE_BLOCK))).filter(function (toggleBlock) { - return toggleBlock !== currentToggleBlock; - }).forEach(function (toggleBlock) { - toggleBlock.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_1__.DISABLED_CLASS, isChecked); - - // Disable toggle switch - var toggle = toggleBlock.querySelector('.frm_toggle'); - toggle.tabIndex = isChecked ? -1 : 0; - toggle.setAttribute('aria-disabled', isChecked); - }); -} - -/** - * Normalize a selector by replacing {id} placeholders with the actual field ID - * - * @private - * @param {string} selector The selector string with potential {id} placeholders - * @param {string} fieldId The field ID to replace placeholders with - * @return {string} The normalized selector - */ -function normalizeSelector(selector, fieldId) { - return selector.replace(/{id}/g, fieldId); -} - - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/constants.js": -/*!************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/constants.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CLASS_NAMES: () => (/* binding */ CLASS_NAMES), -/* harmony export */ KEYS: () => (/* binding */ KEYS), -/* harmony export */ PROXY_INPUT_HEIGHT: () => (/* binding */ PROXY_INPUT_HEIGHT), -/* harmony export */ TOKEN_GAP: () => (/* binding */ TOKEN_GAP) -/* harmony export */ }); -/** - * Constants for token input component - * - * Reusable constants for class names and other static values - */ - -var CLASS_NAMES = { - CONTAINER: 'frm-token-container', - TOKENS_WRAPPER: 'frm-tokens', - TOKEN: 'frm-token', - TOKEN_VALUE: 'frm-token-value', - TOKEN_REMOVE: 'frm-token-remove', - TOKEN_INPUT_FIELD: 'frm-token-input-field', - TOKEN_PROXY_INPUT: 'frm-token-proxy-input', - WITH_RIGHT_ICON: 'frm-with-right-icon' -}; -var KEYS = { - SPACE: ' ', - ENTER: 'Enter', - COMMA: ',', - TAB: 'Tab', - BACKSPACE: 'Backspace' -}; -var PROXY_INPUT_HEIGHT = 36; -var TOKEN_GAP = 4; - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/event-handlers.js": -/*!*****************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/event-handlers.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); -/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); -/** - * Event handlers - * - * Functions for handling token input events - */ - -/** - * Internal dependencies - */ - - - - -/** - * Add event listeners to token input components - * - * @param {HTMLElement} field The original hidden input field - * @param {HTMLElement} proxyInput The proxy input field for interaction - * @param {HTMLElement} tokensWrapper The wrapper for token display - * @return {void} - */ -function addEventListeners(field, proxyInput, tokensWrapper) { - // The jQuery change event is required to catch programmatic updates, as "Add Layout Classes" modifies the field value via jQuery - jQuery(field).on('change', function () { - return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); - }); - proxyInput.addEventListener('keydown', function (event) { - return onProxyInputKeydown(event, field, proxyInput, tokensWrapper); - }); - proxyInput.addEventListener('blur', function () { - return (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(proxyInput.value.trim(), field, proxyInput); - }); - tokensWrapper.addEventListener('click', function (event) { - return handleTokenRemoval(event, field, proxyInput); - }); -} - -/** - * Handle keydown events on the proxy input field - * - * @private - * - * @param {Event} event Keydown event - * @param {HTMLElement} field The original hidden input field - * @param {HTMLElement} proxyInput The proxy input field for interaction - * @param {HTMLElement} tokensWrapper The wrapper for token display - * @return {void} - */ -function onProxyInputKeydown(event, field, proxyInput, tokensWrapper) { - var key = event.key; - var value = proxyInput.value.trim(); - switch (key) { - // Remove the last token when backspace is pressed and input field is empty (no text being typed) - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.BACKSPACE: - if (!value) { - event.preventDefault(); - var lastToken = tokensWrapper.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN, ":last-child")); - (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(lastToken, field, proxyInput); - } - break; - - // Create a token from current input when delimiter keys are pressed - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.SPACE: - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.COMMA: - case _constants__WEBPACK_IMPORTED_MODULE_0__.KEYS.ENTER: - event.preventDefault(); - (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.addToken)(value, field, proxyInput); - break; - } - (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); -} - -/** - * Handle token removal when clicking the remove button - * - * @private - * - * @param {Event} event Click event - * @param {HTMLElement} field The original hidden input field - * @param {HTMLElement} proxyInput The proxy input field for interaction - * @return {void} - */ -function handleTokenRemoval(event, field, proxyInput) { - var removeButton = event.target.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_REMOVE)); - if (!removeButton) { - return; - } - var token = removeButton.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); - if (!token) { - return; - } - var tokensWrapper = token.parentElement; - (0,_token_actions__WEBPACK_IMPORTED_MODULE_1__.removeToken)(token, field, proxyInput); - (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_2__.adjustProxyInputStyle)(proxyInput, tokensWrapper); -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/index.js": -/*!********************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/index.js ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initTokenInputFields: () => (/* reexport safe */ _token_input__WEBPACK_IMPORTED_MODULE_0__.initTokenInputFields) -/* harmony export */ }); -/* harmony import */ var _token_input__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./token-input */ "./js/src/settings-components/components/token-input/token-input.js"); - - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/proxy-input-style.js": -/*!********************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/proxy-input-style.js ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ adjustAllProxyInputStyles: () => (/* binding */ adjustAllProxyInputStyles), -/* harmony export */ adjustProxyInputStyle: () => (/* binding */ adjustProxyInputStyle) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/** - * Proxy input style - * - * Functions for adjusting proxy input styling - */ - - - -/** - * Adjust styling for all proxy inputs on the current settings - * - * @return {void} - */ -function adjustAllProxyInputStyles() { - document.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.CONTAINER)).forEach(function (container) { - return adjustProxyInputStyle(container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_PROXY_INPUT)), container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKENS_WRAPPER))); - }); -} - -/** - * Adjust the styling of the proxy input based on tokens wrapper dimensions - * - * @param {HTMLElement} proxyInput The proxy input field - * @param {HTMLElement} tokensWrapper The wrapper for token display - * @return {void} - */ -function adjustProxyInputStyle(proxyInput, tokensWrapper) { - if (!proxyInput || !tokensWrapper) { - return; - } - var tokens = tokensWrapper.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN)); - var hasTokens = tokens.length > 0; - - // Reset all styles if no tokens - if (!hasTokens) { - proxyInput.style.paddingLeft = ''; - proxyInput.style.paddingTop = ''; - proxyInput.style.height = ''; - return; - } - var tokensWrapperHeight = tokensWrapper.offsetHeight; - - // Calculate number of rows based on wrapper height - var numRows = Math.max(1, Math.ceil(tokensWrapperHeight / _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT)); - if (numRows > 1) { - // For multiple rows, calculate the width of tokens in the last row - var lastRowWidth = calculateLastRowWidth(getLastRowTokens(tokens)); - proxyInput.style.height = "".concat(tokensWrapperHeight, "px"); - proxyInput.style.paddingTop = "".concat(tokensWrapperHeight - _constants__WEBPACK_IMPORTED_MODULE_0__.PROXY_INPUT_HEIGHT + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); - proxyInput.style.paddingLeft = lastRowWidth ? "".concat(lastRowWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP * 2, "px") : ''; - } else { - // For single row, use the full width of tokens - proxyInput.style.height = ''; - proxyInput.style.paddingTop = ''; - proxyInput.style.paddingLeft = "".concat(tokensWrapper.offsetWidth - _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP, "px"); - } -} - -/** - * Identify tokens in the last row of a multi-row token layout - * - * @param {NodeList} tokens All token elements - * @return {Array} Array of tokens in the last row - */ -function getLastRowTokens(tokens) { - if (!tokens.length) { - return []; - } - var tokensArray = Array.from(tokens); - var lastRowY = -1; - tokensArray.forEach(function (token) { - var tokenRect = token.getBoundingClientRect(); - var tokenBottom = tokenRect.bottom; - if (tokenBottom > lastRowY) { - lastRowY = tokenBottom; - } - }); - var threshold = _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP / 2; - return tokensArray.filter(function (token) { - var tokenRect = token.getBoundingClientRect(); - return Math.abs(tokenRect.bottom - lastRowY) <= threshold; - }); -} - -/** - * Calculate the total width of tokens in the last row - * - * @param {Array} lastRowTokens Array of token elements in the last row - * @return {number} Total width of tokens in the last row - */ -function calculateLastRowWidth(lastRowTokens) { - if (!lastRowTokens.length) { - return 0; - } - var totalWidth = 0; - lastRowTokens.forEach(function (token) { - totalWidth += token.offsetWidth; - }); - totalWidth += (lastRowTokens.length - 1) * _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; - return totalWidth + _constants__WEBPACK_IMPORTED_MODULE_0__.TOKEN_GAP; -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/token-actions.js": -/*!****************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/token-actions.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToken: () => (/* binding */ addToken), -/* harmony export */ clearProxyInput: () => (/* binding */ clearProxyInput), -/* harmony export */ parseTokens: () => (/* binding */ parseTokens), -/* harmony export */ removeToken: () => (/* binding */ removeToken), -/* harmony export */ synchronizeTokensDisplay: () => (/* binding */ synchronizeTokensDisplay), -/* harmony export */ updateFieldValue: () => (/* binding */ updateFieldValue) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); -/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); -/** - * Token actions - * - * Core functions for token operations and management - */ - -/** - * Internal dependencies - */ - - - - -/** - * Synchronize token display with the field value - * - * @param {string} value The field value - * @param {HTMLElement} proxyInput The proxy input field - * @param {HTMLElement} tokensWrapper Wrapper element for tokens - * @return {void} - */ -function synchronizeTokensDisplay(value, proxyInput, tokensWrapper) { - if (!value || !tokensWrapper || !proxyInput) { - return; - } - - // Clear existing tokens display and render new tokens - tokensWrapper.innerHTML = ''; - parseTokens(value).forEach(function (token) { - return (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenElement)(token, tokensWrapper); - }); - (0,_proxy_input_style__WEBPACK_IMPORTED_MODULE_1__.adjustProxyInputStyle)(proxyInput, tokensWrapper); - proxyInput.focus(); -} - -/** - * Add a new token to the field - * - * @param {string} tokenValue The token value to add - * @param {HTMLElement} field The original field - * @param {HTMLElement} proxyInput The proxy input - * @return {boolean} Whether a token was added - */ -function addToken(tokenValue, field, proxyInput) { - if (!tokenValue || !field || !proxyInput) { - return false; - } - - // Get current tokens from field value - var tokens = parseTokens(field.value); - - // Skip duplicate tokens - if (tokens.includes(tokenValue)) { - clearProxyInput(proxyInput); - return false; - } - - // Add new token - tokens.push(tokenValue); - updateFieldValue(field, tokens); - clearProxyInput(proxyInput); - return true; -} - -/** - * Remove a specific token from the field - * - * @param {HTMLElement} token The token element to remove - * @param {HTMLElement} field The original field - * @param {HTMLElement} proxyInput The proxy input - * @return {void} - */ -function removeToken(token, field, proxyInput) { - if (!token || !field || !proxyInput) { - return; - } - var value = token.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_0__.CLASS_NAMES.TOKEN_VALUE)).textContent; - - // Filter out the token to remove - var tokens = parseTokens(field.value).filter(function (tokenValue) { - return tokenValue !== value; - }); - updateFieldValue(field, tokens); - - // Remove the token element from DOM - token.remove(); - proxyInput.focus(); -} - -/** - * Parse string input into an array of tokens - * - * @param {string} value Space-separated string - * @return {string[]} Array of tokens - */ -function parseTokens() { - var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - value = value.trim(); - if (!value) { - return []; - } - return value.split(/\s+/).filter(Boolean); -} - -/** - * Update field value with tokens and trigger change event - * - * @param {HTMLElement} field The field to update - * @param {string[]} tokens Array of token values - * @return {void} - */ -function updateFieldValue(field) { - var tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - if (!field) { - return; - } - field.value = tokens.join(' '); - jQuery(field).trigger('change'); -} - -/** - * Clear proxy input and maintain focus - * - * @param {HTMLElement} proxyInput The proxy input field - * @return {void} - */ -function clearProxyInput(proxyInput) { - if (!proxyInput) { - return; - } - proxyInput.value = ''; - proxyInput.focus(); -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/token-elements.js": -/*!*****************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/token-elements.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createTokenContainerElement: () => (/* binding */ createTokenContainerElement), -/* harmony export */ createTokenElement: () => (/* binding */ createTokenElement) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/** - * Token elements - * - * Functions for creating token DOM elements - */ - -/** - * Internal dependencies - */ - - -var _window$frmDom = window.frmDom, - span = _window$frmDom.span, - svg = _window$frmDom.svg, - tag = _window$frmDom.tag; - -/** - * Create token container and input elements - * - * @param {HTMLElement} field Input field for tokenization - * @return {HTMLElement|null} The container element or null if already initialized - */ -function createTokenContainerElement(field) { - // Get the main container (.frm-with-right-icon) to work with Formidable's modal system - var container = field.closest(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.WITH_RIGHT_ICON)); - if (container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER))) { - return null; - } - container.classList.add(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.CONTAINER); - var tokensWrapper = span({ - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER - }); - container.insertBefore(tokensWrapper, container.firstChild); - var proxyInput = tag('input', { - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT, - id: "".concat(field.id, "-proxy-input") - }); - proxyInput.type = 'text'; - - // Inserting proxyInput after the field is important to maintain compatibility with Formidable's modal system - field.parentNode.insertBefore(proxyInput, field.nextSibling); - field.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); - return container; -} - -/** - * Create a single token element - * - * @param {string} value Token value - * @param {HTMLElement} tokensWrapper Wrapper element for tokens - * @return {void} - */ -function createTokenElement(value, tokensWrapper) { - var tokenElement = span({ - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN, - children: [span({ - text: value, - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_VALUE - }), span({ - className: _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_REMOVE, - child: svg({ - href: '#frm_close_icon' - }) - })] - }); - tokensWrapper.appendChild(tokenElement); -} - -/***/ }), - -/***/ "./js/src/settings-components/components/token-input/token-input.js": -/*!**************************************************************************!*\ - !*** ./js/src/settings-components/components/token-input/token-input.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initTokenInputFields: () => (/* binding */ initTokenInputFields) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/src/settings-components/components/token-input/constants.js"); -/* harmony import */ var _token_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./token-elements */ "./js/src/settings-components/components/token-input/token-elements.js"); -/* harmony import */ var _token_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./token-actions */ "./js/src/settings-components/components/token-input/token-actions.js"); -/* harmony import */ var _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./proxy-input-style */ "./js/src/settings-components/components/token-input/proxy-input-style.js"); -/* harmony import */ var _event_handlers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event-handlers */ "./js/src/settings-components/components/token-input/event-handlers.js"); -/** - * Token Input Component - * - * Transforms space-separated values in a text input into selectable tokens - */ - -/** - * Internal dependencies - */ - - - - - - - -/** - * Initialize all token input fields on the page - * - * @return {void} - */ -function initTokenInputFields() { - findAndInitializeTokenFields(); - - /** - * Initialize for newly added fields - * - * @param {Event} event The frm_added_field event. - * @param {HTMLElement} event.frmField The added field object being destructured from the event. - */ - document.addEventListener('frm_added_field', function (_ref) { - var frmField = _ref.frmField; - return findAndInitializeTokenFields(frmField.dataset.fid); - }); - - /** - * Initialize for newly added fields via AJAX - * - * @param {Event} event The frm_ajax_loaded_field event. - * @param {HTMLElement} event.frmFields The added field objects being destructured from the event. - */ - document.addEventListener('frm_ajax_loaded_field', function (_ref2) { - var frmFields = _ref2.frmFields; - return frmFields.forEach(function (field) { - return findAndInitializeTokenFields(field.id); - }); - }); - - // Adjust styling for all token inputs when field settings are shown - wp.hooks.addAction(core_constants__WEBPACK_IMPORTED_MODULE_0__.HOOKS.SHOW_FIELD_SETTINGS, 'formidable-token-input', _proxy_input_style__WEBPACK_IMPORTED_MODULE_4__.adjustAllProxyInputStyles); -} - -/** - * Find all token input fields and initialize them - * - * @private - * @param {string|number} fieldId The ID of the field to initialize - * @return {void} - */ -function findAndInitializeTokenFields(fieldId) { - var container = fieldId ? document.getElementById("frm-single-settings-".concat(fieldId)) : document.body; - var tokenInputFields = container.querySelectorAll(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_INPUT_FIELD)); - if (!tokenInputFields.length) { - return; - } - - // Track processed fields to prevent duplicate initialization - var processedFields = new Set(); - tokenInputFields.forEach(function (field) { - if (!processedFields.has(field.id)) { - setupTokenInput(field); - processedFields.add(field.id); - } - }); -} - -/** - * Set up a token input field with token container - * - * @private - * - * @param {HTMLElement} field Input field for tokenization - */ -function setupTokenInput(field) { - var container = (0,_token_elements__WEBPACK_IMPORTED_MODULE_2__.createTokenContainerElement)(field); - if (!container) { - return; - } - var proxyInput = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKEN_PROXY_INPUT)); - var tokensWrapper = container.querySelector(".".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_NAMES.TOKENS_WRAPPER)); - (0,_token_actions__WEBPACK_IMPORTED_MODULE_3__.synchronizeTokensDisplay)(field.value, proxyInput, tokensWrapper); - (0,_event_handlers__WEBPACK_IMPORTED_MODULE_5__.addEventListeners)(field, proxyInput, tokensWrapper); -} - - -/***/ }), - -/***/ "./js/src/settings-components/components/unit-input.js": -/*!*************************************************************!*\ - !*** ./js/src/settings-components/components/unit-input.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupUnitInputHandlers: () => (/* binding */ setupUnitInputHandlers) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Setup unit input handlers - * - * @return {void} - */ -function setupUnitInputHandlers() { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input .frm-unit-input-control', onUnitInputChange); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.documentOn)('change', '.frm-unit-input select', onUnitInputChange); -} - -/** - * Handle the change event for the unit input - * - * @private - * @param {Event} event The event object. - * @return {void} - */ -function onUnitInputChange(event) { - var unitInput = event.target.closest('.frm-unit-input'); - var control = unitInput.querySelector('.frm-unit-input-control'); - var unit = unitInput.querySelector('select').value; - - // Update input type when unit changes - if (event.target.matches('select')) { - control.type = '' === unit ? 'text' : 'number'; - } - - // Update the actual field value - var inputValue = control.value.trim(); - unitInput.querySelector('input[type="hidden"]').value = '' !== inputValue ? inputValue + unit : ''; -} - -/***/ }), - -/***/ "./js/src/settings-components/events/add-fields-button-handler.js": -/*!************************************************************************!*\ - !*** ./js/src/settings-components/events/add-fields-button-handler.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Redirects to "Add Fields" tab when the "Add Fields" button is clicked. - * - * When users view the Field Options tab with no fields, they see an "Add Fields" button. - * Clicking this button should take them to the "Add Fields" tab for field selection. - */ - -/** - * Initializes the Add Fields button click handler. - */ -var initAddFieldsButtonHandler = function initAddFieldsButtonHandler() { - var _document$getElementB; - (_document$getElementB = document.getElementById('frm-form-add-field')) === null || _document$getElementB === void 0 || _document$getElementB.addEventListener('click', function (event) { - var _document$querySelect; - event.preventDefault(); - (_document$querySelect = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect === void 0 || _document$querySelect.click(); - }); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initAddFieldsButtonHandler); - -/***/ }), - -/***/ "./js/src/settings-components/events/index.js": -/*!****************************************************!*\ - !*** ./js/src/settings-components/events/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ initAddFieldsButtonHandler: () => (/* reexport safe */ _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__["default"]) -/* harmony export */ }); -/* harmony import */ var _add_fields_button_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-fields-button-handler */ "./js/src/settings-components/events/add-fields-button-handler.js"); - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!*********************************************!*\ - !*** ./js/src/settings-components/index.js ***! - \*********************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events */ "./js/src/settings-components/events/index.js"); -/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components */ "./js/src/settings-components/components/index.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__["default"])(function () { - new _components__WEBPACK_IMPORTED_MODULE_1__.frmRadioComponent(); - new _components__WEBPACK_IMPORTED_MODULE_1__.frmSliderComponent(); - new _components__WEBPACK_IMPORTED_MODULE_1__.frmTabsComponent(); - (0,_events__WEBPACK_IMPORTED_MODULE_0__.initAddFieldsButtonHandler)(); - (0,_components__WEBPACK_IMPORTED_MODULE_1__.initTokenInputFields)(); - (0,_components__WEBPACK_IMPORTED_MODULE_1__.initToggleGroupComponents)(); - (0,_components__WEBPACK_IMPORTED_MODULE_1__.setupUnitInputHandlers)(); -}); -/******/ })() -; -//# sourceMappingURL=formidable-settings-components.js.map \ No newline at end of file +(()=>{"use strict";var e=window.frmGlobal,t=(e.url,e.nonce,"frm_hidden"),n="frm_disabled",i=(Promise.resolve(),window.frmDom.util),r=(i.onClickPreventDefault,i.documentOn),a=(new URL(window.location.href).searchParams,function(e){return null==e?void 0:e.classList.remove(t)});function o(e){return o="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},o(e)}function l(e,t){for(var n=0;n=r)){var a=i.querySelector("select").value,o=this.calculateValue(r,n,this.getMaxValue(a,t));i.querySelector('.frm-slider-value input[type="text"]').value=o,i.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=o,i.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(i,n,t,o+a),this.options[t].translateX=n,this.options[t].value=o+a,this.options[t].fullValue=this.updateValue(i,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 i=Math.ceil(this.sliderBulletWidth*(t/e)),r=Math.ceil((t+i)/e*n);return Math.min(r,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-base-font-size")){var i=document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]');null!==i&&(i.value="true")}if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),a=r.value.split(" "),o=e.dataset.type;switch(a[2]||(a[2]="0px"),a[3]||(a[3]="0px"),o){case"vertical":a[0]=t,a[2]=t;break;case"horizontal":a[1]=t,a[3]=t;break;case"top":a[0]=t;break;case"bottom":a[2]=t;break;case"left":a[3]=t;break;case"right":a[1]=t}var l=a.join(" ");return r.value=l,this.getSliderGroupItems(e).forEach((function(e){var i=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=i})),l}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),c=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,c[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)}))||""}}])&&h(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function g(e){return g="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},g(e)}function b(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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,a=n.querySelector("a");a&&"frm_insert_fields_tab"===a.id&&!a.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{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.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&b(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function E(e){return E="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},E(e)}function w(e,t){for(var n=0;n0))return e.style.paddingLeft="",e.style.paddingTop="",void(e.style.height="");var i=t.offsetHeight;if(Math.max(1,Math.ceil(i/36))>1){var r=function(e){if(!e.length)return 0;var t=0;return e.forEach((function(e){t+=e.offsetWidth})),(t+=4*(e.length-1))+4}(function(e){if(!e.length)return[];var t=Array.from(e),n=-1;t.forEach((function(e){var t=e.getBoundingClientRect().bottom;t>n&&(n=t)}));return t.filter((function(e){var t=e.getBoundingClientRect();return Math.abs(t.bottom-n)<=2}))}(n));e.style.height="".concat(i,"px"),e.style.paddingTop="".concat(i-36+4,"px"),e.style.paddingLeft=r?"".concat(r+8,"px"):""}else e.style.height="",e.style.paddingTop="",e.style.paddingLeft="".concat(t.offsetWidth-4,"px")}}function R(e,t,n){e&&n&&t&&(n.innerHTML="",B(e).forEach((function(e){return function(e,t){var n=V({className:A,children:[V({text:e,className:T}),V({className:O,child:W({href:"#frm_close_icon"})})]});t.appendChild(n)}(e,n)})),D(t,n),t.focus())}function M(e,t,n){if(!e||!t||!n)return!1;var i=B(t.value);return i.includes(e)?(N(n),!1):(i.push(e),X(t,i),N(n),!0)}function F(e,t,n){if(e&&t&&n){var i=e.querySelector(".".concat(T)).textContent;X(t,B(t.value).filter((function(e){return e!==i}))),e.remove(),n.focus()}}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(e=e.trim())?e.split(/\s+/).filter(Boolean):[]}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&(e.value=t.join(" "),jQuery(e).trigger("change"))}function N(e){e&&(e.value="",e.focus())}function U(e){var n=(e?document.getElementById("frm-single-settings-".concat(e)):document.body).querySelectorAll(".".concat("frm-token-input-field"));if(n.length){var i=new Set;n.forEach((function(e){i.has(e.id)||(function(e){var n=function(e){var n=e.closest(".".concat("frm-with-right-icon"));if(n.querySelector(".".concat(C)))return null;n.classList.add(x);var i=V({className:C});n.insertBefore(i,n.firstChild);var r=j("input",{className:_,id:"".concat(e.id,"-proxy-input")});return r.type="text",e.parentNode.insertBefore(r,e.nextSibling),e.classList.add(t),n}(e);if(n){var i=n.querySelector(".".concat(_)),r=n.querySelector(".".concat(C));R(e.value,i,r),function(e,t,n){jQuery(e).on("change",(function(){return R(e.value,t,n)})),t.addEventListener("keydown",(function(i){return function(e,t,n,i){var r=e.key,a=n.value.trim();switch(r){case"Backspace":a||(e.preventDefault(),F(i.querySelector(".".concat(A,":last-child")),t,n));break;case" ":case",":case"Enter":e.preventDefault(),M(a,t,n)}D(n,i)}(i,e,t,n)})),t.addEventListener("blur",(function(){return M(t.value.trim(),e,t)})),n.addEventListener("click",(function(n){return function(e,t,n){var i=e.target.closest(".".concat(O));if(i){var r=i.closest(".".concat(A));if(r){var a=r.parentElement;F(r,t,n),D(n,a)}}}(n,e,t)}))}(e,i,r)}}(e),i.add(e.id))}))}}var z,G="frm-toggle-group",H="frm_toggle_block",J="data-group-name";function Q(e){var t=e.target,n=t.closest(".".concat(G));n&&K(t,n)}function K(e,i){var r,a=(null===(r=i.closest(".".concat("frm-single-settings")))||void 0===r?void 0:r.dataset.fid)||i.dataset.fid,o=e.checked,l=e.getAttribute("data-show");l&&document.querySelectorAll(Y(l,a)).forEach((function(e){return e.classList.toggle(t,!o)}));var s=e.getAttribute("data-disable");s&&document.querySelectorAll(Y(s,a)).forEach((function(e){e.classList.toggle(n,o),e.querySelectorAll("input, select, textarea").forEach((function(e){return e.disabled=o})),e.querySelectorAll(".frm-show-inline-modal[tabindex]").forEach((function(e){return e.tabIndex=o?-1:0}))}));var c=e.getAttribute("data-enable");c&&document.querySelectorAll(Y(c,a)).forEach((function(e){return e.classList.toggle(n,!o)}));var u=e.closest(".".concat(H));Array.from(i.querySelectorAll(".".concat(H))).filter((function(e){return e!==u})).forEach((function(e){e.classList.toggle(n,o);var t=e.querySelector(".frm_toggle");t.tabIndex=o?-1:0,t.setAttribute("aria-disabled",o)}))}function Y(e,t){return e.replace(/{id}/g,t)}function Z(e){var t=e.target.closest(".frm-unit-input"),n=t.querySelector(".frm-unit-input-control"),i=t.querySelector("select").value;e.target.matches("select")&&(n.type=""===i?"text":"number");var r=n.value.trim();t.querySelector('input[type="hidden"]').value=""!==r?r+i:""}z=function(){var e,t;new c,new y,new q,null===(t=document.getElementById("frm-form-add-field"))||void 0===t||t.addEventListener("click",(function(e){var t;e.preventDefault(),null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click()})),U(),document.addEventListener("frm_added_field",(function(e){return U(e.frmField.dataset.fid)})),document.addEventListener("frm_ajax_loaded_field",(function(e){return e.frmFields.forEach((function(e){return U(e.id)}))})),wp.hooks.addAction("frmShowedFieldSettings","formidable-token-input",I),(e=document.querySelectorAll(".".concat(G))).length&&e.forEach((function(e){var t=e.querySelector("[".concat(J,"]:checked"));t&&K(t,e)})),r("change",".".concat(G," [").concat(J,"]"),Q),r("change",".frm-unit-input .frm-unit-input-control",Z),r("change",".frm-unit-input select",Z)},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",z):z())})(); \ No newline at end of file diff --git a/js/formidable_admin.js b/js/formidable_admin.js index c492352f90..8d1bcaae09 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -1,10182 +1 @@ -/******/ (() => { // webpackBootstrap -/*!*******************************!*\ - !*** ./js/src/admin/admin.js ***! - \*******************************/ -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -/* exported frm_add_logic_row, frm_remove_tag, frm_show_div, frmCheckAll, frmCheckAllLevel */ -/* eslint-disable jsdoc/require-param, prefer-const, no-redeclare, @wordpress/no-unused-vars-before-return, jsdoc/check-types, jsdoc/check-tag-names, @wordpress/i18n-translator-comments, @wordpress/valid-sprintf, jsdoc/require-returns-description, jsdoc/require-param-type, no-unused-expressions, compat/compat */ - -window.FrmFormsConnect = window.FrmFormsConnect || function (document, window, $) { - /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl */ - - var el = { - messageBox: null, - reset: null, - setElements: function setElements() { - el.messageBox = document.querySelector('.frm_pro_license_msg'); - el.reset = document.getElementById('frm_reconnect_link'); - } - }; - - /** - * Public functions and properties. - * - * @since 4.03 - * - * @type {Object} - */ - var app = { - /** - * Register connect button event. - * - * @since 4.03 - */ - init: function init() { - el.setElements(); - $(document.getElementById('frm_deauthorize_link')).on('click', app.deauthorize); - $('.frm_authorize_link').on('click', app.authorize); - // Handles FF dashboard Authorize & Reauthorize events. - // Attach click event to parent as #frm_deauthorize_link & #frm_reconnect_link dynamically recreated by bootstrap.setupBootstrapDropdowns in dom.js - $('.frm-dashboard-license-options').on('click', '#frm_deauthorize_link', app.deauthorize); - $('.frm-dashboard-license-options').on('click', '#frm_reconnect_link', app.reauthorize); - if (el.reset !== null) { - $(el.reset).on('click', app.reauthorize); - } - }, - /* Manual license authorization */ - authorize: function authorize() { - /*jshint validthis:true */ - var button = this; - var pluginSlug = this.getAttribute('data-plugin'); - var input = document.getElementById('edd_' + pluginSlug + '_license_key'); - var license = input.value; - var wpmu = document.getElementById('proplug-wpmu'); - this.classList.add('frm_loading_button'); - if (wpmu === null) { - wpmu = 0; - } else if (wpmu.checked) { - wpmu = 1; - } else { - wpmu = 0; - } - $.ajax({ - type: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'frm_addon_activate', - license: license, - plugin: pluginSlug, - wpmu: wpmu, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - app.afterAuthorize(msg, input); - button.classList.remove('frm_loading_button'); - } - }); - }, - afterAuthorize: function afterAuthorize(msg, input) { - if (msg.success === true) { - input.value = '•••••••••••••••••••'; - } - wp.hooks.doAction('frm_after_authorize', msg); - app.showMessage(msg); - }, - showProgress: function showProgress(msg) { - if (el.messageBox === null) { - // In case the message box was added after page load. - el.setElements(); - } - var messageBox = el.messageBox; - if (messageBox === null) { - return; - } - if (msg.success === true) { - messageBox.classList.remove('frm_error_style'); - messageBox.classList.add('frm_message', 'frm_updated_message'); - } else { - messageBox.classList.add('frm_error_style'); - messageBox.classList.remove('frm_message', 'frm_updated_message'); - } - messageBox.classList.remove('frm_hidden'); - messageBox.innerHTML = msg.message; - }, - showMessage: function showMessage(msg) { - if (el.messageBox === null) { - // In case the message box was added after page load. - el.setElements(); - } - var messageBox = el.messageBox; - if (msg.success === true) { - app.showAuthorized(true); - app.showInlineSuccess(); - - /** - * Triggers the after license is authorized action for a confirmation/success modal. - * - * @param {Object} msg An object containing message data received from Authorize request. - */ - wp.hooks.doAction('frmAdmin.afterLicenseAuthorizeSuccess', { - msg: msg - }); - } - app.showProgress(msg); - if (msg.message !== '') { - setTimeout(function () { - messageBox.innerHTML = ''; - messageBox.classList.add('frm_hidden'); - messageBox.classList.remove('frm_error_style', 'frm_message', 'frm_updated_message'); - }, 10000); - var refreshPage = document.querySelector('.frm-admin-page-dashboard'); - if (refreshPage) { - setTimeout(function () { - window.location.reload(); - }, 1000); - } - } - }, - showAuthorized: function showAuthorized(show) { - var from = show ? 'unauthorized' : 'authorized'; - var to = show ? 'authorized' : 'unauthorized'; - var container = document.querySelectorAll('.frm_' + from + '_box'); - if (container.length) { - // Replace all authorized boxes with unauthorized boxes. - container.forEach(function (box) { - box.className = box.className.replace('frm_' + from + '_box', 'frm_' + to + '_box'); - }); - } - }, - /** - * Use the data-success element to replace the element content. - */ - showInlineSuccess: function showInlineSuccess() { - var successElement = document.querySelectorAll('.frm-confirm-msg [data-success]'); - if (successElement.length) { - successElement.forEach(function (element) { - element.innerHTML = frmAdminBuild.purifyHtml(element.getAttribute('data-success')); - }); - } - }, - /* Clear the site license cache */ - reauthorize: function reauthorize() { - /*jshint validthis:true */ - this.innerHTML = ''; - $.ajax({ - type: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'frm_reset_cache', - plugin: 'formidable_pro', - nonce: frmGlobal.nonce - }, - success: function success(msg) { - el.reset.textContent = msg.message; - if (el.reset.getAttribute('data-refresh') === '1') { - window.location.reload(); - } - } - }); - return false; - }, - deauthorize: function deauthorize() { - /*jshint validthis:true */ - if (!confirm(frmGlobal.deauthorize)) { - return false; - } - var pluginSlug = this.getAttribute('data-plugin'), - input = document.getElementById('edd_' + pluginSlug + '_license_key'), - license = input.value, - link = this; - this.innerHTML = ''; - $.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_addon_deactivate', - license: license, - plugin: pluginSlug, - nonce: frmGlobal.nonce - }, - success: function success() { - app.showAuthorized(false); - input.value = ''; - link.replaceWith('Disconnected'); - - /** - * Triggers the after license is deauthorized sruccess action. - */ - wp.hooks.doAction('frmAdmin.afterLicenseDeauthorizeSuccess', {}); - } - }); - return false; - } - }; - - // Provide access to public functions/properties. - return app; -}(document, window, jQuery); -window.frmAdminBuildJS = function () { - //'use strict'; - - /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */ - - var frmAdminJs = frm_admin_js; // eslint-disable-line camelcase - var _frmDom = frmDom, - tag = _frmDom.tag, - div = _frmDom.div, - span = _frmDom.span, - a = _frmDom.a, - svg = _frmDom.svg, - img = _frmDom.img; - var onClickPreventDefault = frmDom.util.onClickPreventDefault; - var _frmDom$ajax = frmDom.ajax, - doJsonFetch = _frmDom$ajax.doJsonFetch, - doJsonPost = _frmDom$ajax.doJsonPost; - frmAdminJs.contextualShortcodes = getContextualShortcodes(); - var icons = { - save: svg({ - href: '#frm_save_icon' - }), - drag: svg({ - href: '#frm_drag_icon', - classList: ['frm_drag_icon', 'frm-drag'] - }) - }; - var $newFields = jQuery(document.getElementById('frm-show-fields')), - builderForm = document.getElementById('new_fields'), - thisForm = document.getElementById('form_id'), - copyHelper = false, - fieldsUpdated = 0, - thisFormId = 0, - autoId = 0, - optionMap = {}, - lastNewActionIdReturned = 0; - var _wp$i18n = wp.i18n, - __ = _wp$i18n.__, - sprintf = _wp$i18n.sprintf; - var debouncedSyncAfterDragAndDrop, postBodyContent, $postBodyContent; - var dragState = { - dragging: false - }; - if (thisForm !== null) { - thisFormId = thisForm.value; - } - var currentURL = new URL(window.location.href); - var urlParams = currentURL.searchParams; - var builderPage = document.getElementById('frm_builder_page'); - - // Global settings - var s; - function showElement(element) { - if (!element[0]) { - return; - } - element[0].style.display = ''; - } - function empty($obj) { - if ($obj !== null) { - while ($obj.firstChild) { - $obj.removeChild($obj.firstChild); - } - } - } - function addClass($obj, className) { - if ($obj.classList) { - $obj.classList.add(className); - } else { - $obj.className += ' ' + className; - } - } - function confirmClick(e) { - /*jshint validthis:true */ - e.stopPropagation(); - e.preventDefault(); - confirmLinkClick(this); - } - function confirmLinkClick(link) { - var message = link.getAttribute('data-frmverify'), - loadedFrom = link.getAttribute('data-loaded-from'); - if (message === null || link.id === 'frm-confirmed-click') { - return true; - } - if ('entries-list' === loadedFrom) { - return wp.hooks.applyFilters('frm_on_multiple_entries_delete', { - link: link, - initModal: initModal - }); - } - return confirmModal(link); - } - function confirmModal(link) { - var verify, - $confirmMessage, - i, - dataAtts, - btnClass, - $info = initModal('#frm_confirm_modal', '400px'), - continueButton = document.getElementById('frm-confirmed-click'); - if ($info === false) { - return false; - } - verify = link.getAttribute('data-frmverify'); - btnClass = verify ? link.getAttribute('data-frmverify-btn') : ''; - $confirmMessage = jQuery('.frm-confirm-msg'); - $confirmMessage.empty(); - if (verify) { - $confirmMessage.append(document.createTextNode(verify)); - if (btnClass) { - continueButton.classList.add(btnClass); - } - } - removeAtts = continueButton.dataset; - for (i in dataAtts) { - continueButton.removeAttribute('data-' + i); - } - dataAtts = link.dataset; - for (i in dataAtts) { - if (i !== 'frmverify') { - continueButton.setAttribute('data-' + i, dataAtts[i]); - } - } - - /** - * Triggers the pre-open action for a confirmation modal. This action passes - * relevant modal information and associated link to any listening hooks. - * - * @param {Object} options An object containing modal elements and data. - * @param {HTMLElement} options.$info The HTML element containing modal information. - * @param {string} options.link The link associated with the modal action. - */ - wp.hooks.doAction('frmAdmin.beforeOpenConfirmModal', { - $info: $info, - link: link - }); - $info.dialog('open'); - continueButton.setAttribute('href', link.getAttribute('href') || link.getAttribute('data-href')); - return false; - } - function infoModal(msg) { - var $info = initModal('#frm_info_modal', '400px'); - if ($info === false) { - return false; - } - jQuery('.frm-info-msg').html(msg); - $info.dialog('open'); - return false; - } - function toggleItem(e) { - /*jshint validthis:true */ - var toggle = this.getAttribute('data-frmtoggle'); - var text = this.getAttribute('data-toggletext'); - var $items = jQuery(toggle); - e.preventDefault(); - $items.toggle(); - if (text !== null && text !== '') { - this.setAttribute('data-toggletext', this.innerHTML); - this.textContent = text; - } - return false; - } - - /** - * Toggle a class on target elements when an anchor is clicked, or when a radio or checkbox has been selected. - * - * @param {Event} e Event with either the change or click type. - * @return {false} - */ - function hideShowItem(e) { - /*jshint validthis:true */ - var hide = this.getAttribute('data-frmhide'); - var show = this.getAttribute('data-frmshow'); - var uncheckList = this.getAttribute('data-frmuncheck'); - var uncheckListArray = uncheckList ? uncheckList.split(',') : []; - - // Flip unchecked checkboxes so an off value undoes the on value. - if (isUncheckedCheckbox(this)) { - if (hide !== null) { - show = hide; - hide = null; - } else if (show !== null) { - hide = show; - show = null; - } - } - e.preventDefault(); - var toggleClass = this.getAttribute('data-toggleclass') || 'frm_hidden'; - if (hide !== null) { - jQuery(hide).addClass(toggleClass); - } - if (show !== null) { - jQuery(show).removeClass(toggleClass); - } - var current = this.parentNode.querySelectorAll('a.current'); - if (current !== null) { - for (var _i = 0; _i < current.length; _i++) { - current[_i].classList.remove('current'); - } - this.classList.add('current'); - } - if (uncheckListArray.length) { - uncheckListArray.forEach(function (uncheckItem) { - var uncheckItemElement = document.querySelector(uncheckItem); - if (uncheckItemElement) { - uncheckItemElement.checked = false; - } - }); - } - return false; - } - function isUncheckedCheckbox(element) { - return 'INPUT' === element.nodeName && 'checkbox' === element.type && !element.checked; - } - function loadTooltips() { - var wrapClass = jQuery('.wrap, .frm_wrap'), - confirmModal = document.getElementById('frm_confirm_modal'), - doAction = false, - confirmedBulkDelete = false; - jQuery(confirmModal).on('click', '[data-deletefield]', deleteFieldConfirmed); - jQuery(confirmModal).on('click', '[data-removeid]', removeThisTag); - jQuery(confirmModal).on('click', '[data-trashtemplate]', trashTemplate); - wrapClass.on('click', '.frm_remove_tag, .frm_remove_form_action', removeThisTag); - wrapClass.on('click', 'a[data-frmverify]', confirmClick); - wrapClass.on('click', 'a[data-frmtoggle]', toggleItem); - wrapClass.on('click', 'a[data-frmhide], a[data-frmshow]', hideShowItem); - wrapClass.on('change', 'input[data-frmhide], input[data-frmshow]', hideShowItem); - wrapClass.on('click', '.widget-top,a.widget-action', clickWidget); - wrapClass.on('mouseenter.frm', '.frm_bstooltip, .frm_help', function () { - jQuery(this).off('mouseenter.frm'); - jQuery('.frm_bstooltip, .frm_help').tooltip(); - jQuery(this).tooltip('show'); - }); - jQuery('.frm_bstooltip, .frm_help').tooltip(); - jQuery(document).on('click', '#doaction, #doaction2', function (event) { - var isTop = this.id === 'doaction', - suffix = isTop ? 'top' : 'bottom', - bulkActionSelector = document.getElementById('bulk-action-selector-' + suffix), - confirmBulkDelete = document.getElementById('confirm-bulk-delete-' + suffix); - if (bulkActionSelector !== null && confirmBulkDelete !== null) { - doAction = this; - if (!confirmedBulkDelete && bulkActionSelector.value === 'bulk_delete') { - event.preventDefault(); - confirmLinkClick(confirmBulkDelete); - return false; - } - } else { - doAction = false; - } - }); - jQuery(document).on('click', '#frm-confirmed-click', function (event) { - if (doAction === false || event.target.classList.contains('frm-btn-inactive')) { - return; - } - if (this.getAttribute('href') === 'confirm-bulk-delete') { - event.preventDefault(); - confirmedBulkDelete = true; - doAction.click(); - return false; - } - }); - } - function deleteTooltips() { - document.querySelectorAll('.tooltip').forEach(function (tooltip) { - tooltip.remove(); - }); - } - function removeThisTag() { - /*jshint validthis:true */ - var show, hide, removeMore; - if (parseInt(this.getAttribute('data-skip-frm-js')) || confirmLinkClick(this) === false) { - return; - } - var deleteButton = jQuery(this); - var id = deleteButton.attr('data-removeid'); - show = deleteButton.attr('data-showlast'); - if (typeof show === 'undefined') { - show = ''; - } - hide = deleteButton.attr('data-hidelast'); - if (typeof hide === 'undefined') { - hide = ''; - } - removeMore = deleteButton.attr('data-removemore'); - if (show !== '') { - if (deleteButton.closest('.frm_add_remove').find('.frm_remove_tag:visible').length > 1) { - show = ''; - hide = ''; - } - } else if (id.indexOf('frm_postmeta_') === 0) { - if (jQuery('#frm_postmeta_rows .frm_postmeta_row').length < 2) { - show = '.frm_add_postmeta_row.button'; - } - if (jQuery('.frm_toggle_cf_opts').length && jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().length) { - if (show !== '') { - show += ','; - } - show += '#' + jQuery('#frm_postmeta_rows .frm_postmeta_row:not(#' + id + ')').last().attr('id') + ' .frm_toggle_cf_opts'; - } - } - var fadeEle = document.getElementById(id); - var $fadeEle = jQuery(fadeEle); - $fadeEle.fadeOut(300, function () { - var _document$querySelect; - $fadeEle.remove(); - fieldUpdated(); - if (hide !== '') { - jQuery(hide).hide(); - } - if (show !== '') { - jQuery(show + ' a,' + show).removeClass('frm_hidden').fadeIn('slow'); - } - if (this.closest('.frm_form_action_settings')) { - var type = this.closest('.frm_form_action_settings').querySelector('.frm_action_name').value; - afterActionRemoved(type); - } - (_document$querySelect = document.querySelector('.tooltip')) === null || _document$querySelect === void 0 || _document$querySelect.remove(); - }); - if (typeof removeMore !== 'undefined') { - removeMore = jQuery(removeMore); - removeMore.fadeOut(400, function () { - removeMore.remove(); - }); - } - if (show !== '') { - jQuery(this).closest('.frm_logic_rows').fadeOut('slow'); - } - - /** - * Fires after a tag element has been removed in the admin interface. - * - * @param {string} id The ID of the removed element - * @param {HTMLElement} fadeEle The removed element that was faded out - */ - wp.hooks.doAction('frm_admin_tag_removed', id, fadeEle); - return false; - } - function afterActionRemoved(type) { - checkActiveAction(type); - var hookName = 'frm_after_action_removed'; - var hookArgs = { - type: type - }; - wp.hooks.doAction(hookName, hookArgs); - } - function clickWidget(event, b) { - /*jshint validthis:true */ - if (typeof b === 'undefined') { - b = this; - } - popCalcFields(b, false); - var cont = jQuery(b).closest('.frm_form_action_settings'); - var target = event.target; - if (cont.length && typeof target !== 'undefined') { - var className = target.parentElement.className; - if ('string' === typeof className) { - if (className.indexOf('frm_email_icons') > -1 || className.indexOf('frm_toggle') > -1) { - // clicking on delete icon shouldn't open it - event.stopPropagation(); - return; - } - } - } - var inside = cont.children('.widget-inside'); - if (cont.length && inside.find('p, div, table').length < 1) { - var actionId = cont.find('input[name$="[ID]"]').val(); - var actionType = cont.find('input[name$="[post_excerpt]"]').val(); - if (actionType) { - inside.html(''); - cont.find('.spinner').fadeIn('slow'); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_form_action_fill', - action_id: actionId, - action_type: actionType, - nonce: frmGlobal.nonce - }, - success: function success(html) { - inside.html(html); - initiateMultiselect(); - showInputIcon('#' + cont.attr('id')); - initAutocomplete(inside); - jQuery(b).trigger('frm-action-loaded'); - - /** - * Fires after filling form action content when opening. - * - * @since 5.5.4 - * - * @param {Object} insideElement JQuery object of form action inside element. - */ - wp.hooks.doAction('frm_filled_form_action', inside); - } - }); - } - } - jQuery(b).closest('.frm_field_box').siblings().find('.widget-inside').slideUp('fast'); - if (typeof b.className !== 'undefined' && b.className.indexOf('widget-action') !== -1 || jQuery(b).closest('.start_divider').length < 1) { - return; - } - inside = jQuery(b).closest('div.widget').children('.widget-inside'); - if (inside.is(':hidden')) { - inside.slideDown('fast'); - } else { - inside.slideUp('fast'); - } - } - function clickNewTab() { - /*jshint validthis:true */ - var t = this.getAttribute('href'); - if (typeof t === 'undefined') { - return false; - } - var c = t.replace('#', '.'); - var $link = jQuery(this); - $link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); - $link.closest('div').children('.tabs-panel').not(t).not(c).hide(); - var tabContent = document.getElementById(t.replace('#', '')); - if (tabContent) { - tabContent.style.display = 'block'; - } - - // clearSettingsBox would hide field settings when opening the fields modal and we want to skip it there. - if (this.id === 'frm_insert_fields_tab' && !this.closest('#frm_adv_info')) { - clearSettingsBox(); - } - return false; - } - function clickTab(link, auto) { - link = jQuery(link); - var t = link.attr('href'); - if (typeof t === 'undefined') { - return; - } - var c = t.replace('#', '.'); - link.closest('li').addClass('frm-tabs active').siblings('li').removeClass('frm-tabs active starttab'); - if (link.closest('div').find('.tabs-panel').length) { - link.closest('div').children('.tabs-panel').not(t).not(c).hide(); - } else if (document.getElementById('form_global_settings') !== null) { - /* global settings */ - var ajax = link.data('frmajax'); - link.closest('.frm_wrap').find('.tabs-panel, .hide_with_tabs').hide(); - if (typeof ajax !== 'undefined' && ajax == '1') { - loadSettingsTab(t); - } - } else { - /* form settings page */ - jQuery('#frm-categorydiv .tabs-panel, .hide_with_tabs').hide(); - } - jQuery(t).show(); - jQuery(c).show(); - hideShortcodes(); - if (auto !== 'auto') { - // Hide success message on tab change. - jQuery('.frm_updated_message').hide(); - jQuery('.frm_warning_style').hide(); - } - if (jQuery(link).closest('#frm_adv_info').length) { - return; - } - if (jQuery('.frm_form_settings').length) { - jQuery('.frm_form_settings').attr('action', '?page=formidable&frm_action=settings&id=' + jQuery('.frm_form_settings input[name="id"]').val() + '&t=' + t.replace('#', '')); - } else { - jQuery('.frm_settings_form').attr('action', '?page=formidable-settings&t=' + t.replace('#', '')); - } - } - function setupSortable(sortableSelector) { - document.querySelectorAll(sortableSelector).forEach(function (list) { - makeDroppable(list); - Array.from(list.children).forEach(function (child) { - return makeDraggable(child, '.frm-move'); - }); - var $sectionTitle = jQuery(list).children('[data-type="divider"]').children('.divider_section_only'); - if ($sectionTitle.length) { - makeDroppable($sectionTitle); - } - }); - setupFieldOptionSorting(jQuery('#frm_builder_page')); - } - function makeDroppable(list) { - jQuery(list).droppable({ - accept: '.frmbutton, li.frm_field_box', - deactivate: handleFieldDrop, - over: onDragOverDroppable, - out: onDraggableLeavesDroppable, - tolerance: 'pointer' - }); - } - function onDragOverDroppable(event, ui) { - var droppable = getDroppableForOnDragOver(event.target); - var draggable = ui.draggable[0]; - if (!allowDrop(draggable, droppable, event)) { - droppable.classList.remove('frm-over-droppable'); - jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); - return; - } - document.querySelectorAll('.frm-over-droppable').forEach(function (droppable) { - return droppable.classList.remove('frm-over-droppable'); - }); - droppable.classList.add('frm-over-droppable'); - jQuery(droppable).parents('ul.frm_sorting').addClass('frm-over-droppable'); - } - - /** - * Maybe change the droppable. - * Section titles are made droppable, but are not a list, so we need to change the droppable to the section's list instead. - * - * @param {Element} droppable - * @return {Element} - */ - function getDroppableForOnDragOver(droppable) { - if (droppable.classList.contains('divider_section_only')) { - droppable = jQuery(droppable).nextAll('.start_divider.frm_sorting').get(0); - } - return droppable; - } - function onDraggableLeavesDroppable(event) { - var droppable = event.target; - droppable.classList.remove('frm-over-droppable'); - } - function makeDraggable(draggable, handle) { - var settings = { - helper: getDraggableHelper, - revert: 'invalid', - delay: 10, - start: handleDragStart, - stop: handleDragStop, - drag: handleDrag, - cursor: 'grabbing', - refreshPositions: true, - cursorAt: { - top: 0, - left: 90 // The width of draggable button is 180. 90 should center the draggable on the cursor. - } - }; - if ('string' === typeof handle) { - settings.handle = handle; - } - jQuery(draggable).draggable(settings); - } - function getDraggableHelper(event) { - var draggable = event.delegateTarget; - if (isFieldGroup(draggable)) { - var newTextFieldClone = document.getElementById('frm-insert-fields').querySelector('.frm_ttext').cloneNode(true); - newTextFieldClone.querySelector('use').setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_field_group_layout_icon'); - newTextFieldClone.querySelector('span').textContent = __('Field Group', 'formidable'); - newTextFieldClone.classList.add('frm_field_box'); - newTextFieldClone.classList.add('ui-sortable-helper'); - return newTextFieldClone; - } - var copyTarget; - var isNewField = draggable.classList.contains('frmbutton'); - if (isNewField) { - copyTarget = draggable.cloneNode(true); - copyTarget.classList.add('ui-sortable-helper'); - draggable.classList.add('frm-new-field'); - return copyTarget; - } - if (draggable.hasAttribute('data-ftype')) { - var fieldType = draggable.getAttribute('data-ftype'); - copyTarget = document.getElementById('frm-insert-fields').querySelector('.frm_t' + fieldType); - copyTarget = copyTarget.cloneNode(true); - copyTarget.classList.add('form-field'); - copyTarget.classList.add('ui-sortable-helper'); - if (copyTarget) { - return copyTarget.cloneNode(true); - } - } - return div({ - className: 'frmbutton' - }); - } - function handleDragStart(event, ui) { - dragState.dragging = true; - var container = postBodyContent; - container.classList.add('frm-dragging-field'); - document.body.classList.add('frm-dragging'); - ui.helper.addClass('frm-sortable-helper'); - ui.helper.initialOffset = container.scrollTop; - event.target.classList.add('frm-drag-fade'); - unselectFieldGroups(); - deleteEmptyDividerWrappers(); - maybeRemoveGroupHoverTarget(); - closeOpenFieldDropdowns(); - deleteTooltips(); - } - function handleDragStop() { - var container = postBodyContent; - container.classList.remove('frm-dragging-field'); - document.body.classList.remove('frm-dragging'); - var fade = document.querySelector('.frm-drag-fade'); - if (fade) { - fade.classList.remove('frm-drag-fade'); - } - } - function handleDrag(event, ui) { - maybeScrollBuilder(event); - var draggable = event.target; - var droppable = getDroppableTarget(); - var placeholder = document.getElementById('frm_drag_placeholder'); - if (!allowDrop(draggable, droppable, event)) { - if (placeholder) { - placeholder.remove(); - } - return; - } - if (!placeholder) { - placeholder = tag('li', { - id: 'frm_drag_placeholder', - className: 'sortable-placeholder' - }); - } - var frmSortableHelper = ui.helper.get(0); - if (frmSortableHelper.classList.contains('form-field') || frmSortableHelper.classList.contains('frm_field_box')) { - // Sync the y position of the draggable so it still follows the cursor after scrolling up and down the field list. - frmSortableHelper.style.transform = 'translateY(' + getDragOffset(ui.helper) + 'px)'; - } - if ('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')) { - placeholder.style.left = 0; - handleDragOverYAxis({ - droppable: droppable, - y: event.clientY, - placeholder: placeholder - }); - return; - } - placeholder.style.top = ''; - handleDragOverFieldGroup({ - droppable: droppable, - x: event.clientX, - placeholder: placeholder - }); - } - function maybeScrollBuilder(event) { - $postBodyContent.scrollTop(function (_, v) { - var moved = event.clientY; - var h = postBodyContent.offsetHeight; - var relativePos = event.clientY - postBodyContent.offsetTop; - var y = relativePos - h / 2; - if (relativePos > h - 50 && moved > 5) { - // Scrolling down. - return v + y * 0.1; - } - if (relativePos < 70 && moved < 130) { - // Scrolling up. - return v - Math.abs(y * 0.1); - } - return v; - }); - } - function getDragOffset($helper) { - return postBodyContent.scrollTop - $helper.initialOffset; - } - function getDroppableTarget() { - var droppable = document.getElementById('frm-show-fields'); - while (droppable.querySelector('.frm-over-droppable')) { - droppable = droppable.querySelector('.frm-over-droppable'); - } - if ('frm-show-fields' === droppable.id && !droppable.classList.contains('frm-over-droppable')) { - droppable = false; - } - return droppable; - } - function handleFieldDrop(_, ui) { - if (!dragState.dragging) { - // dragState.dragging is set to true on drag start. - // The deactivate event gets called for every droppable. This check to make sure it happens once. - return; - } - dragState.dragging = false; - var draggable = ui.draggable[0]; - var placeholder = document.getElementById('frm_drag_placeholder'); - if (!placeholder) { - ui.helper.remove(); - debouncedSyncAfterDragAndDrop(); - return; - } - maybeOpenCollapsedPage(placeholder); - var $previousFieldContainer = ui.helper.parent(); - var previousSection = ui.helper.get(0).closest('ul.start_divider'); - var newSection = placeholder.closest('ul.start_divider'); - if (draggable.classList.contains('frm-new-field')) { - insertNewFieldByDragging(draggable.id); - } else { - moveFieldThatAlreadyExists(draggable, placeholder); - maybeMakeFieldGroupDraggableAfterDragging(placeholder.parentElement); - } - var previousSectionId = previousSection ? parseInt(previousSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; - var newSectionId = newSection ? parseInt(newSection.closest('.edit_field_type_divider').getAttribute('data-fid')) : 0; - placeholder.remove(); - ui.helper.remove(); - var $previousContainerFields = $previousFieldContainer.length ? getFieldsInRow($previousFieldContainer) : []; - maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields); - maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields); - if (previousSectionId !== newSectionId) { - updateFieldAfterMovingBetweenSections(jQuery(draggable), previousSection); - } - debouncedSyncAfterDragAndDrop(); - } - - /** - * When a field is moved into a field group, make sure the field group is draggable. - * - * @since 6.24 - * - * @param {HTMLElement} placeholderParent - * @return {void} - */ - function maybeMakeFieldGroupDraggableAfterDragging(placeholderParent) { - var isDroppingIntoFieldGroup = placeholderParent.nodeName === 'UL' && !placeholderParent.classList.contains('start_divider') && 'frm-show-fields' !== placeholderParent.id; - if (!isDroppingIntoFieldGroup) { - return; - } - var fieldGroupLi = placeholderParent.closest('li'); - if (fieldGroupLi && !fieldGroupLi.classList.contains('ui-draggable')) { - makeDraggable(fieldGroupLi, '.frm-move'); - } - } - - /** - * If a page if collapsed, expand it before dragging since only the page break will move. - * - * @param {Element} placeholder - * @return {void} - */ - function maybeOpenCollapsedPage(placeholder) { - if (!placeholder.previousElementSibling || !placeholder.previousElementSibling.classList.contains('frm-is-collapsed')) { - return; - } - var $pageBreakField = jQuery(placeholder).prevUntil('[data-type="break"]'); - if (!$pageBreakField.length) { - return; - } - var collapseButton = $pageBreakField.find('.frm-collapse-page').get(0); - if (collapseButton) { - collapseButton.click(); - } - } - function maybeUpdatePreviousFieldContainerAfterDrop($previousFieldContainer, $previousContainerFields) { - if (!$previousFieldContainer.length) { - return; - } - if ($previousContainerFields.length) { - syncLayoutClasses($previousContainerFields.first()); - } else { - maybeDeleteAnEmptyFieldGroup($previousFieldContainer.get(0)); - } - } - function maybeUpdateDraggableClassAfterDrop(draggable, $previousContainerFields) { - if (0 !== $previousContainerFields.length || 1 !== getFieldsInRow(jQuery(draggable.parentNode)).length) { - syncLayoutClasses(jQuery(draggable)); - } - } - - /** - * Remove an empty field group, but don't remove an empty section. - * - * @param {Element} previousFieldContainer - * @return {void} - */ - function maybeDeleteAnEmptyFieldGroup(previousFieldContainer) { - var closestFieldBox = previousFieldContainer.closest('li.frm_field_box'); - if (closestFieldBox && !closestFieldBox.classList.contains('edit_field_type_divider')) { - closestFieldBox.remove(); - } - } - function handleDragOverYAxis(_ref) { - var droppable = _ref.droppable, - y = _ref.y, - placeholder = _ref.placeholder; - var $list = jQuery(droppable); - var top; - $children = $list.children().not('.edit_field_type_end_divider'); - if (0 === $children.length) { - $list.prepend(placeholder); - top = 0; - } else { - var insertAtIndex = determineIndexBasedOffOfMousePositionInList($list, y); - if (insertAtIndex === $children.length) { - var $lastChild = jQuery($children.get(insertAtIndex - 1)); - top = $lastChild.offset().top + $lastChild.outerHeight(); - $list.append(placeholder); - - // Make sure nothing gets inserted after the end divider. - var $endDivider = $list.children('.edit_field_type_end_divider'); - if ($endDivider.length) { - $list.append($endDivider); - } - } else { - top = jQuery($children.get(insertAtIndex)).offset().top; - jQuery($children.get(insertAtIndex)).before(placeholder); - } - } - top -= $list.offset().top; - placeholder.style.top = top + 'px'; - } - function determineIndexBasedOffOfMousePositionInList($list, y) { - var $items = $list.children().not('.edit_field_type_end_divider'); - var length = $items.length; - var index, item, itemTop, returnIndex; - if (!document.querySelector('.frm-has-fields .frm_no_fields')) { - // Always return 0 when there are no fields. - return 0; - } - returnIndex = 0; - for (index = length - 1; index >= 0; --index) { - item = $items.get(index); - itemTop = jQuery(item).offset().top; - if (y > itemTop) { - returnIndex = index; - if (y > itemTop + jQuery(item).outerHeight() / 2) { - returnIndex = index + 1; - } - break; - } - } - return returnIndex; - } - function handleDragOverFieldGroup(_ref2) { - var droppable = _ref2.droppable, - x = _ref2.x, - placeholder = _ref2.placeholder; - var $row = jQuery(droppable); - var $children = getFieldsInRow($row); - if (!$children.length) { - return; - } - var left; - var insertAtIndex = determineIndexBasedOffOfMousePositionInRow($row, x); - if (insertAtIndex === $children.length) { - var $lastChild = jQuery($children.get(insertAtIndex - 1)); - left = $lastChild.offset().left + $lastChild.outerWidth(); - $row.append(placeholder); - } else { - left = jQuery($children.get(insertAtIndex)).offset().left; - jQuery($children.get(insertAtIndex)).before(placeholder); - var amountToOffsetLeftBy = 0 === insertAtIndex ? 4 : 8; // Offset by 8 in between rows, but only 4 for the first item in a group. - left -= amountToOffsetLeftBy; // Offset the placeholder slightly so it appears between two fields. - } - left -= $row.offset().left; - placeholder.style.left = left + 'px'; - } - function syncAfterDragAndDrop() { - fixUnwrappedListItems(); - toggleSectionHolder(); - maybeFixEndDividers(); - maybeDeleteEmptyFieldGroups(); - updateFieldOrder(); - var event = new Event('frm_sync_after_drag_and_drop', { - bubbles: false - }); - document.dispatchEvent(event); - } - function maybeFixEndDividers() { - document.querySelectorAll('.edit_field_type_end_divider').forEach(function (endDivider) { - return endDivider.parentNode.appendChild(endDivider); - }); - } - function maybeDeleteEmptyFieldGroups() { - document.querySelectorAll('li.form_field_box:not(.form-field)').forEach(function (fieldGroup) { - return !fieldGroup.children.length && fieldGroup.remove(); - }); - } - function fixUnwrappedListItems() { - var lists = document.querySelectorAll('ul#frm-show-fields, ul.start_divider'); - lists.forEach(function (list) { - list.childNodes.forEach(function (child) { - if ('undefined' === typeof child.classList) { - return; - } - if (child.classList.contains('edit_field_type_end_divider')) { - // Never wrap end divider in place. - return; - } - if ('undefined' !== typeof child.classList && child.classList.contains('form-field')) { - wrapFieldLiInPlace(child); - } - }); - }); - } - function deleteEmptyDividerWrappers() { - var dividers = document.querySelectorAll('ul.start_divider'); - if (!dividers.length) { - return; - } - dividers.forEach(function (divider) { - var children = [].slice.call(divider.children); - children.forEach(function (child) { - if (0 === child.children.length) { - child.remove(); - } else if (1 === child.children.length && 'ul' === child.firstElementChild.nodeName.toLowerCase() && 0 === child.firstElementChild.children.length) { - child.remove(); - } - }); - }); - } - function getFieldsInRow($row) { - var $fields = jQuery(); - var row = $row.get(0); - if (!row.children) { - return $fields; - } - Array.from(row.children).forEach(function (child) { - if ('none' === child.style.display) { - return; - } - var classes = child.classList; - if (!classes.contains('form-field') || classes.contains('edit_field_type_end_divider') || classes.contains('frm-sortable-helper')) { - return; - } - $fields = $fields.add(child); - }); - return $fields; - } - function determineIndexBasedOffOfMousePositionInRow($row, x) { - var $inputs = getFieldsInRow($row), - length = $inputs.length, - index, - input, - inputLeft, - returnIndex; - returnIndex = 0; - for (index = length - 1; index >= 0; --index) { - input = $inputs.get(index); - inputLeft = jQuery(input).offset().left; - if (x > inputLeft) { - returnIndex = index; - if (x > inputLeft + jQuery(input).outerWidth() / 2) { - returnIndex = index + 1; - } - break; - } - } - return returnIndex; - } - function syncLayoutClasses($item, type) { - var $fields, size, layoutClasses, classToAddFunction; - if ('undefined' === typeof type) { - type = 'even'; - } - $fields = $item.parent().children('li.form-field, li.frmbutton_loadingnow').not('.edit_field_type_end_divider'); - size = $fields.length; - layoutClasses = getLayoutClasses(); - if ('even' === type && 5 !== size) { - $fields.each(getSyncLayoutClass(layoutClasses, getEvenClassForSize(size))); - } else if ('clear' === type) { - $fields.each(getSyncLayoutClass(layoutClasses, '')); - } else { - if (-1 !== ['left', 'right', 'middle', 'even'].indexOf(type)) { - classToAddFunction = function classToAddFunction(index) { - return getClassForBlock(size, type, index); - }; - } else { - classToAddFunction = function classToAddFunction(index) { - var size = type[index]; - return getLayoutClassForSize(size); - }; - } - $fields.each(getSyncLayoutClass(layoutClasses, classToAddFunction)); - } - updateFieldGroupControls($item.parent(), $fields.length); - } - function updateFieldGroupControls($row, count) { - var rowOffset, shouldShowControls, controls; - rowOffset = $row.offset(); - if ('undefined' === typeof rowOffset) { - return; - } - shouldShowControls = count >= 2; - controls = document.getElementById('frm_field_group_controls'); - if (null === controls) { - if (!shouldShowControls) { - // exit early. if we do not need controls and they do not exist, do nothing. - return; - } - controls = div(); - controls.id = 'frm_field_group_controls'; - controls.setAttribute('role', 'group'); - controls.setAttribute('tabindex', 0); - setFieldControlsHtml(controls); - builderPage.appendChild(controls); - } - $row.append(controls); - controls.style.display = shouldShowControls ? 'block' : 'none'; - } - function setFieldControlsHtml(controls) { - var layoutOption, moveOption; - layoutOption = document.createElement('span'); - layoutOption.innerHTML = ''; - var layoutOptionLabel = __('Set Row Layout', 'formidable'); - addTooltip(layoutOption, layoutOptionLabel); - makeTabbable(layoutOption, layoutOptionLabel); - moveOption = document.createElement('span'); - moveOption.innerHTML = ''; - moveOption.classList.add('frm-move'); - var moveOptionLabel = __('Move Field Group', 'formidable'); - addTooltip(moveOption, moveOptionLabel); - makeTabbable(moveOption, moveOptionLabel); - controls.innerHTML = ''; - controls.appendChild(layoutOption); - controls.appendChild(moveOption); - controls.appendChild(getFieldControlsDropdown()); - } - function addTooltip(element, title) { - element.setAttribute('data-toggle', 'tooltip'); - element.setAttribute('data-container', 'body'); - element.setAttribute('title', title); - element.addEventListener('mouseover', function () { - if (null === element.getAttribute('data-original-title')) { - jQuery(element).tooltip(); - } - }); - } - function getFieldControlsDropdown() { - var dropdown = span({ - className: 'dropdown' - }); - var trigger = a({ - className: 'frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle', - children: [span({ - child: svg({ - href: '#frm_thick_more_vert_icon' - }) - }), span({ - className: 'screen-reader-text', - text: __('Toggle More Options Dropdown', 'formidable') - })] - }); - frmDom.setAttributes(trigger, { - title: __('More Options', 'formidable'), - 'data-toggle': 'dropdown', - 'data-container': 'body' - }); - makeTabbable(trigger, __('More Options', 'formidable')); - dropdown.appendChild(trigger); - var ul = div({ - className: 'frm-dropdown-menu dropdown-menu dropdown-menu-right' - }); - ul.setAttribute('role', 'menu'); - dropdown.appendChild(ul); - return dropdown; - } - function getSyncLayoutClass(layoutClasses, classToAdd) { - return function (itemIndex) { - var currentClassToAdd, length, layoutClassIndex, currentClass, activeLayoutClass, fieldId, layoutClassesInput; - currentClassToAdd = 'function' === typeof classToAdd ? classToAdd(itemIndex) : classToAdd; - length = layoutClasses.length; - activeLayoutClass = false; - for (layoutClassIndex = 0; layoutClassIndex < length; ++layoutClassIndex) { - currentClass = layoutClasses[layoutClassIndex]; - if (this.classList.contains(currentClass)) { - activeLayoutClass = currentClass; - break; - } - } - fieldId = this.dataset.fid; - if ('undefined' === typeof fieldId) { - // we are syncing the drag/drop placeholder before the actual field has loaded. - // this will get called again afterward and the input will exist then. - this.classList.add(currentClassToAdd); - return; - } - moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); - layoutClassesInput = document.getElementById('frm_classes_' + fieldId); - if (null === layoutClassesInput) { - // not every field type has a layout class input. - return; - } - if (false === activeLayoutClass) { - if ('' !== currentClassToAdd) { - layoutClassesInput.value = layoutClassesInput.value.concat(' ' + currentClassToAdd); - } - } else { - this.classList.remove(activeLayoutClass); - layoutClassesInput.value = layoutClassesInput.value.replace(activeLayoutClass, currentClassToAdd); - } - if (this.classList.contains('frm_first')) { - this.classList.remove('frm_first'); - layoutClassesInput.value = layoutClassesInput.value.replace('frm_first', '').trim(); - } - if (0 === itemIndex) { - this.classList.add('frm_first'); - layoutClassesInput.value = layoutClassesInput.value.concat(' frm_first'); - } - jQuery(layoutClassesInput).trigger('change'); - }; - } - function getLayoutClasses() { - return ['frm_full', 'frm_half', 'frm_third', 'frm_fourth', 'frm_sixth', 'frm_two_thirds', 'frm_three_fourths', 'frm1', 'frm2', 'frm3', 'frm4', 'frm5', 'frm6', 'frm7', 'frm8', 'frm9', 'frm10', 'frm11', 'frm12']; - } - function setupFieldOptionSorting(sort) { - var opts = { - items: '.frm_sortable_field_opts li', - axis: 'y', - opacity: 0.65, - forcePlaceholderSize: false, - handle: '.frm-drag', - helper: function helper(e, li) { - copyHelper = li.clone().insertAfter(li); - return li.clone(); - }, - stop: function stop(e, ui) { - copyHelper && copyHelper.remove(); - var fieldId = ui.item.attr('id').replace('frm_delete_field_', '').replace('-' + ui.item.data('optkey') + '_container', ''); - resetDisplayedOpts(fieldId); - fieldUpdated(); - } - }; - jQuery(sort).sortable(opts); - } - - // Get the section where a field is dropped - function getSectionForFieldPlacement(currentItem) { - var section = ''; - if (typeof currentItem !== 'undefined' && !currentItem.hasClass('edit_field_type_divider')) { - section = currentItem.closest('.edit_field_type_divider'); - } - return section; - } - - // Get the form ID where a field is dropped - function getFormIdForFieldPlacement(section) { - var formId = ''; - if (typeof section[0] !== 'undefined') { - var sDivide = section.children('.start_divider'); - sDivide.children('.edit_field_type_end_divider').appendTo(sDivide); - if (typeof section.attr('data-formid') !== 'undefined') { - var fieldId = section.attr('data-fid'); - formId = jQuery('input[name="field_options[form_select_' + fieldId + ']"]').val(); - } - } - if (typeof formId === 'undefined' || formId === '') { - formId = thisFormId; - } - return formId; - } - - // Get the section ID where a field is dropped - function getSectionIdForFieldPlacement(section) { - var sectionId = 0; - if (typeof section[0] !== 'undefined') { - sectionId = section.attr('id').replace('frm_field_id_', ''); - } - return sectionId; - } - - /** - * Update a field after it is dragged and dropped into, out of, or between sections - * - * @param {Object} currentItem - * @param {Object} previousSection - * @return {void} - */ - function updateFieldAfterMovingBetweenSections(currentItem, previousSection) { - if (!currentItem.hasClass('form-field')) { - // currentItem is a field group. Call for children recursively. - getFieldsInRow(jQuery(currentItem.get(0).firstChild)).each(function () { - updateFieldAfterMovingBetweenSections(jQuery(this), previousSection); - }); - return; - } - var fieldId = currentItem.attr('id').replace('frm_field_id_', ''); - var section = getSectionForFieldPlacement(currentItem); - var formId = getFormIdForFieldPlacement(section); - var sectionId = getSectionIdForFieldPlacement(section); - var previousFormId = previousSection ? getFormIdForFieldPlacement(jQuery(previousSection.parentNode)) : 0; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_update_field_after_move', - form_id: formId, - field: fieldId, - section_id: sectionId, - previous_form_id: previousFormId, - nonce: frmGlobal.nonce - }, - success: function success() { - toggleSectionHolder(); - updateInSectionValue(fieldId, sectionId); - } - }); - } - - // Update the in_section field value - function updateInSectionValue(fieldId, sectionId) { - document.getElementById('frm_in_section_' + fieldId).value = sectionId; - } - - /** - * Get the arguments for inserting a new field. - * - * @since 6.23 - * - * @param {string} fieldType - * @param {string} sectionId - * @param {string} formId - * @param {Number} hasBreak - * - * @return {Object} - */ - function getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak) { - return { - action: 'frm_insert_field', - form_id: formId, - field_type: fieldType, - section_id: sectionId, - nonce: frmGlobal.nonce, - has_break: hasBreak, - last_row_field_ids: getFieldIdsInSubmitRow() - }; - } - - /** - * Returns true if it's a range field type and slider type is not selected. - * - * @since 6.23 - * - * @param {string} fieldType - * @return {boolean} - */ - function shouldStopInsertingField(fieldType) { - return wp.hooks.applyFilters('frm_should_stop_inserting_field', false, fieldType); - } - - /** - * Add a new field by dragging and dropping it from the Fields sidebar - * - * @param {string} fieldType - */ - function insertNewFieldByDragging(fieldType) { - if (shouldStopInsertingField(fieldType)) { - wp.hooks.doAction('frm_stopped_inserting_by_dragging', fieldType); - return; - } - var placeholder = document.getElementById('frm_drag_placeholder'); - var loadingID = fieldType.replace('|', '-') + '_' + getAutoId(); - var loading = tag('li', { - id: loadingID, - className: 'frm-wait frmbutton_loadingnow' - }); - var $placeholder = jQuery(loading); - var currentItem = jQuery(placeholder); - var section = getSectionForFieldPlacement(currentItem); - var formId = getFormIdForFieldPlacement(section); - var sectionId = getSectionIdForFieldPlacement(section); - placeholder.parentNode.insertBefore(loading, placeholder); - placeholder.remove(); - syncLayoutClasses($placeholder); - var hasBreak = 0; - if ('summary' === fieldType) { - // see if we need to insert a page break before this newly-added summary field. Check for at least 1 page break - hasBreak = jQuery('.frmbutton_loadingnow#' + loadingID).prevAll('li[data-type="break"]').length ? 1 : 0; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: getInsertNewFieldArgs(fieldType, sectionId, formId, hasBreak), - success: function success(msg) { - handleInsertFieldByDraggingResponse(msg, $placeholder); - var fieldId = checkMsgForFieldId(msg); - if (fieldId) { - /** - * Fires after a field is added. - * - * @since 6.23 - * - * @param {Object} fieldData The field data. - * @param {string} fieldData.field The field HTML. - * @param {string} fieldData.field_type The field type. - * @param {string} fieldData.form_id The form ID. - */ - wp.hooks.doAction('frm_after_field_added_in_form_builder', { - field: msg, - fieldId: fieldId, - fieldType: fieldType, - form_id: formId - }); - } - }, - error: handleInsertFieldError - }); - } - - /** - * @param {string} msg - * @param {Object} $placeholder jQuery object. - */ - function handleInsertFieldByDraggingResponse(msg, $placeholder) { - var replaceWith; - document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); - var $siblings = $placeholder.siblings('li.form-field').not('.edit_field_type_end_divider'); - if (!$siblings.length) { - // if dragging into a new row, we need to wrap the li first. - replaceWith = wrapFieldLi(msg); - } else { - replaceWith = msgAsjQueryObject(msg); - if (!$placeholder.get(0).parentNode.parentNode.classList.contains('ui-draggable')) { - // If a field group wasn't draggable because it only had a single field, make it draggable. - makeDraggable($placeholder.get(0).parentNode.parentNode, '.frm-move'); - } - } - $placeholder.replaceWith(replaceWith); - updateFieldOrder(); - afterAddField(msg, false); - if ($siblings.length) { - syncLayoutClasses($siblings.first()); - } - toggleSectionHolder(); - if (!$siblings.length) { - makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); - makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); - } else { - makeDraggable(replaceWith.get(0), '.frm-move'); - } - } - - /** - * Get the field ID from the response message. - * - * @since 6.23 - * - * @param {string} msg - * @return {Number} - */ - function checkMsgForFieldId(msg) { - var result = msg.match(/data-fid="(\d+)"/); - return result ? parseInt(result[1]) : 0; - } - function getFieldIdsInSubmitRow() { - var submitField = document.querySelector('.edit_field_type_submit'); - if (!submitField) { - return []; - } - var lastRowFields = submitField.parentNode.children; - var ids = []; - for (var _i2 = 0; _i2 < lastRowFields.length; _i2++) { - ids.push(lastRowFields[_i2].dataset.fid); - } - return ids; - } - function moveFieldThatAlreadyExists(draggable, placeholder) { - placeholder.parentNode.insertBefore(draggable, placeholder); - } - function msgAsjQueryObject(msg) { - var element = div(); - element.innerHTML = msg; - return jQuery(element.firstChild); - } - function handleInsertFieldError(jqXHR, _, errorThrown) { - maybeShowInsertFieldError(errorThrown, jqXHR); - } - function maybeShowInsertFieldError(errorThrown, jqXHR) { - if (!jqXHRAborted(jqXHR)) { - infoModal(errorThrown + '. Please try again.'); - } - } - function jqXHRAborted(jqXHR) { - return jqXHR.status === 0 || jqXHR.readyState === 0; - } - - /** - * Get a unique id that automatically increments with every function call. - * Can be used for any UI that requires a unique id. - * Not to be used in data. - * - * @return {number} - */ - function getAutoId() { - return ++autoId; - } - - /** - * Determine if a draggable element can be droppable into a droppable element. - * - * Don't allow page break, embed form, or section inside section field - * Don't allow page breaks inside of field groups. - * Don't allow field groups with sections inside of sections. - * Don't allow field groups in field groups. - * Don't allow hidden fields inside of field groups but allow them in sections. - * Don't allow any fields below the submit button field. - * Don't allow submit button field above any fields. - * Don't allow GDPR fields in repeaters. - * - * @param {HTMLElement} draggable - * @param {HTMLElement} droppable - * @param {Event} event - * @return {Boolean} - */ - function allowDrop(draggable, droppable, event) { - if (false === droppable) { - // Don't show drop placeholder if dragging somewhere off of the droppable area. - return false; - } - if (droppable.closest('.frm-sortable-helper')) { - // Do not allow drop into draggable. - return false; - } - var isSubmitBtn = draggable.classList.contains('edit_field_type_submit'); - var containSubmitBtn = !draggable.classList.contains('form_field') && !!draggable.querySelector('.edit_field_type_submit'); - if ('frm-show-fields' === droppable.id) { - var draggableIndex = determineIndexBasedOffOfMousePositionInList(jQuery(droppable), event.clientY); - if (isSubmitBtn || containSubmitBtn) { - // Do not allow dropping submit button to above position. - var lastRowIndex = droppable.childElementCount - 1; - return draggableIndex > lastRowIndex; - } - - // Do not allow dropping other fields to below submit button. - var submitButtonIndex = jQuery(droppable.querySelector('.edit_field_type_submit').closest('#frm-show-fields > li')).index(); - return draggableIndex <= submitButtonIndex; - } - if (isSubmitBtn) { - if (droppable.classList.contains('start_divider')) { - // Don't allow dropping submit button into a repeater. - return false; - } - if (isLastRow(droppable.parentElement)) { - // Allow dropping submit button into the last row. - return true; - } - if (!isLastRow(droppable.parentElement.nextElementSibling)) { - // Don't a dropping submit button into the row that isn't the second one from bottom. - return false; - } - - // Allow dropping submit button into the second row from bottom if there is only submit button in the last row. - return !draggable.parentElement.querySelector('li.frm_field_box:not(.edit_field_type_submit)'); - } - if (droppable.classList.contains('start_divider') && (draggable.classList.contains('edit_field_type_gdpr') || draggable.id === 'gdpr') && droppable.closest('.repeat_section')) { - // Don't allow GDPR fields in repeaters. - return false; - } - if (!droppable.classList.contains('start_divider')) { - var $fieldsInRow = getFieldsInRow(jQuery(droppable)); - if (!groupCanFitAnotherField($fieldsInRow, jQuery(draggable))) { - // Field group is full and cannot accept another field. - return false; - } - if (draggable.id === 'divider' && droppable.closest('.start_divider')) { - return false; - } - } - var isNewField = draggable.classList.contains('frm-new-field'); - if (isNewField) { - return allowNewFieldDrop(draggable, droppable); - } - return allowMoveField(draggable, droppable); - } - - /** - * Checks if given element is the last row in form builder. - * - * @param {HTMLElement} element Element. - * @return {Boolean} - */ - function isLastRow(element) { - return element && element.matches('#frm-show-fields > li:last-child'); - } - - // Don't allow a new page break or hidden field in a field group. - // Don't allow a new field into a field group that includes a page break or hidden field. - // Don't allow a new section inside of a section. - // Don't allow an embedded form in a section. - function allowNewFieldDrop(draggable, droppable) { - var classes = draggable.classList; - var newPageBreakField = classes.contains('frm_tbreak'); - var newHiddenField = classes.contains('frm_thidden'); - var newSectionField = classes.contains('frm_tdivider'); - var newEmbedField = classes.contains('frm_tform'); - var newUserIdField = classes.contains('frm_tuser_id'); - var newFieldWillBeAddedToAGroup = !('frm-show-fields' === droppable.id || droppable.classList.contains('start_divider')); - if (newFieldWillBeAddedToAGroup) { - if (groupIncludesBreakOrHiddenOrUserId(droppable)) { - // Never allow any field beside a page break or a hidden field. - return false; - } - return !newHiddenField && !newPageBreakField && !newUserIdField; - } - var fieldTypeIsAlwaysAllowed = !newPageBreakField && !newHiddenField && !newSectionField && !newEmbedField; - if (fieldTypeIsAlwaysAllowed) { - return true; - } - var newFieldWillBeAddedToASection = droppable.classList.contains('start_divider') || null !== droppable.closest('.start_divider'); - if (newFieldWillBeAddedToASection) { - // Don't allow a section or an embedded form in a section. - return !newEmbedField && !newSectionField; - } - return true; - } - function allowMoveField(draggable, droppable) { - if (isFieldGroup(draggable)) { - return allowMoveFieldGroup(draggable, droppable); - } - var isPageBreak = draggable.classList.contains('edit_field_type_break'); - if (isPageBreak) { - // Page breaks are only allowed in the main list of fields, not in sections or in field groups. - return false; - } - if (droppable.classList.contains('start_divider')) { - return allowMoveFieldToSection(draggable); - } - var isHiddenField = draggable.classList.contains('edit_field_type_hidden'); - var isUserIdField = draggable.classList.contains('edit_field_type_user_id'); - if (isHiddenField || isUserIdField) { - // Hidden fields and user id fields should not be added to field groups since they're not shown - // and don't make sense with the grid distribution. - return false; - } - return allowMoveFieldToGroup(draggable, droppable); - } - function isFieldGroup(draggable) { - return draggable.classList.contains('frm_field_box') && !draggable.classList.contains('form-field'); - } - function allowMoveFieldGroup(fieldGroup, droppable) { - if (droppable.classList.contains('start_divider') && null === fieldGroup.querySelector('.start_divider')) { - // Allow a field group with no section inside of a section. - return true; - } - return false; - } - function allowMoveFieldToSection(draggable) { - var draggableIncludeEmbedForm = draggable.classList.contains('edit_field_type_form') || draggable.querySelector('.edit_field_type_form'); - if (draggableIncludeEmbedForm) { - // Do not allow an embedded form inside of a section. - return false; - } - var draggableIncludesSection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); - if (draggableIncludesSection) { - // Do not allow a section inside of a section. - return false; - } - return true; - } - function allowMoveFieldToGroup(draggable, group) { - if (groupIncludesBreakOrHiddenOrUserId(group)) { - // Never allow any field beside a page break or a hidden field. - return false; - } - var isFieldGroup = jQuery(draggable).children('ul.frm_sorting').not('.start_divider').length > 0; - if (isFieldGroup) { - // Do not allow a field group directly inside of a field group unless it's in a section. - return false; - } - var draggableIncludesASection = draggable.classList.contains('edit_field_type_divider') || draggable.querySelector('.edit_field_type_divider'); - var draggableIsEmbedField = draggable.classList.contains('edit_field_type_form'); - var groupIsInASection = null !== group.closest('.start_divider'); - if (groupIsInASection && (draggableIncludesASection || draggableIsEmbedField)) { - // Do not allow a section or an embed field inside of a section. - return false; - } - return true; - } - function groupIncludesBreakOrHiddenOrUserId(group) { - return null !== group.querySelector('.edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id'); - } - function groupCanFitAnotherField(fieldsInRow, $field) { - var fieldId; - if (fieldsInRow.length < 6) { - return true; - } - if (fieldsInRow.length > 6) { - return false; - } - fieldId = $field.attr('data-fid'); - // allow 6 if we're not changing field groups. - return 1 === jQuery(fieldsInRow).filter('[data-fid="' + fieldId + '"]').length; - } - function loadFields(fieldId) { - var thisField = document.getElementById(fieldId); - var $thisField = jQuery(thisField); - var field = []; - var addHtmlToField = function addHtmlToField(element) { - var frmHiddenFdata = element.querySelector('.frm_hidden_fdata'); - element.classList.add('frm_load_now'); - if (frmHiddenFdata !== null) { - field.push(frmHiddenFdata.innerHTML); - } - }; - var nextElement = thisField; - addHtmlToField(nextElement); - var nextField = getNextField(nextElement); - while (nextField && field.length < 15) { - addHtmlToField(nextField); - nextElement = nextField; - nextField = getNextField(nextField); - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_load_field', - field: field, - form_id: thisFormId, - nonce: frmGlobal.nonce - }, - success: function success(html) { - return handleAjaxLoadFieldSuccess(html, $thisField, field); - } - }); - } - function getNextField(field) { - var _field$parentNode; - if (field.nextElementSibling) { - return field.nextElementSibling; - } - return (_field$parentNode = field.parentNode) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.closest('.frm_field_box')) === null || _field$parentNode === void 0 || (_field$parentNode = _field$parentNode.nextElementSibling) === null || _field$parentNode === void 0 ? void 0 : _field$parentNode.querySelector('.form-field'); - } - function handleAjaxLoadFieldSuccess(html, $thisField, field) { - var key, $nextSet; - html = html.replace(/^\s+|\s+$/g, ''); - if (html.indexOf('{') !== 0) { - jQuery('.frm_load_now').removeClass('.frm_load_now').html('Error'); - return; - } - html = JSON.parse(html); - for (key in html) { - jQuery('#frm_field_id_' + key).replaceWith(html[key]); - setupSortable('#frm_field_id_' + key + '.edit_field_type_divider ul.frm_sorting'); - makeDraggable(document.getElementById('frm_field_id_' + key)); - } - $nextSet = $thisField.nextAll('.frm_field_loading:not(.frm_load_now)'); - if ($nextSet.length) { - loadFields($nextSet.attr('id')); - } else { - // go up a level - $nextSet = jQuery(document.getElementById('frm-show-fields')).find('.frm_field_loading:not(.frm_load_now)'); - if ($nextSet.length) { - loadFields($nextSet.attr('id')); - } - } - initiateMultiselect(); - renumberPageBreaks(); - maybeHideQuantityProductFieldOption(); - var loadedEvent = new Event('frm_ajax_loaded_field', { - bubbles: false - }); - loadedEvent.frmFields = field.map(function (f) { - return JSON.parse(f); - }); - document.dispatchEvent(loadedEvent); - } - function addFieldClick() { - /*jshint validthis:true */ - var $thisObj = jQuery(this); - // there is no real way to disable a (with a valid href attribute) in HTML - https://css-tricks.com/how-to-disable-links/ - if ($thisObj.hasClass('disabled')) { - return false; - } - var $button = $thisObj.closest('.frmbutton'); - var fieldType = $button.attr('id'); - if (shouldStopInsertingField(fieldType)) { - return; - } - var hasBreak = 0; - if ('summary' === fieldType) { - hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; - } - var formId = thisFormId; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), - success: function success(msg) { - handleAddFieldClickResponse(msg); - var fieldId = checkMsgForFieldId(msg); - if (fieldId) { - /** - * Fires after a field is added. - * - * @since 6.23 - * - * @param {Object} fieldData The field data. - * @param {string} fieldData.field The field HTML. - * @param {string} fieldData.field_type The field type. - * @param {string} fieldData.form_id The form ID. - */ - wp.hooks.doAction('frm_after_field_added_in_form_builder', { - field: msg, - fieldId: fieldId, - fieldType: fieldType, - form_id: formId - }); - } - }, - error: handleInsertFieldError - }); - return false; - } - function handleAddFieldClickResponse(msg) { - document.getElementById('frm_form_editor_container').classList.add('frm-has-fields'); - var replaceWith = wrapFieldLi(msg); - var submitField = $newFields[0].querySelector('.edit_field_type_submit'); - if (!submitField) { - $newFields.append(replaceWith); - } else { - jQuery(submitField.closest('.frm_field_box:not(.form-field)')).before(replaceWith); - } - afterAddField(msg, true); - replaceWith.each(function () { - makeDroppable(this.querySelector('ul.frm_sorting')); - makeDraggable(this.querySelector('.form-field'), '.frm-move'); - }); - } - function insertFormField(fieldType) { - var fieldOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return new Promise(function (resolve) { - var formId = thisFormId; - var hasBreak = 0; - if ('summary' === fieldType) { - hasBreak = $newFields.children('li[data-type="break"]').length > 0 ? 1 : 0; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: Object.assign(getInsertNewFieldArgs(fieldType, 0, formId, hasBreak), { - field_options: fieldOptions - }), - success: function success(msg) { - resolve(msg); - setTimeout(function () { - updateFieldOrder(); - afterAddField(msg, true); - var fieldId = checkMsgForFieldId(msg); - if (fieldId) { - /** - * Fires after a field is added. - * - * @since 6.23 - * - * @param {Object} fieldData The field data. - * @param {string} fieldData.field The field HTML. - * @param {string} fieldData.field_type The field type. - * @param {string} fieldData.form_id The form ID. - */ - wp.hooks.doAction('frm_after_field_added_in_form_builder', { - field: msg, - fieldId: fieldId, - fieldType: fieldType, - form_id: formId - }); - } - }, 10); - }, - error: handleInsertFieldError - }); - }); - } - function maybeHideQuantityProductFieldOption() { - var hide = true, - opts = document.querySelectorAll('.frmjs_prod_field_opt_cont'); - if ($newFields.find('li.edit_field_type_product').length > 1) { - hide = false; - } - for (var _i3 = 0; _i3 < opts.length; _i3++) { - if (hide) { - opts[_i3].classList.add('frm_hidden'); - } else { - opts[_i3].classList.remove('frm_hidden'); - } - } - } - - /** - * Returns true if a field can be duplicated. - * - * @since 6.19 - * - * @param {HTMLElement} field - * @param {number} maxFieldsInGroup - * - * @return {Boolean} - */ - function canDuplicateField(field, maxFieldsInGroup) { - if (field.classList.contains('frm-page-collapsed')) { - return false; - } - var fieldGroup = field.closest('li.frm_field_box:not(.form-field)'); - if (!fieldGroup) { - return true; - } - var fieldsInGroup = getFieldsInRow(jQuery(fieldGroup.querySelector('ul'))).length; - return fieldsInGroup < maxFieldsInGroup; - } - function duplicateField() { - var $field, fieldId, children, newRowId, fieldOrder; - var maxFieldsInGroup = 6; - $field = jQuery(this).closest('li.form-field'); - newRowId = this.getAttribute('frm-target-row-id'); - if (!(newRowId && newRowId.startsWith('frm_field_group_')) && !canDuplicateField($field.get(0), maxFieldsInGroup)) { - /* translators: %1$d: Maximum number of fields allowed in a field group. */ - infoModal(sprintf(__('You can only have a maximum of %1$d fields in a field group. Delete or move out a field from the group and try again.', 'formidable'), maxFieldsInGroup)); - return; - } - closeOpenFieldDropdowns(); - fieldId = $field.data('fid'); - children = fieldsInSection(fieldId); - if (null !== newRowId) { - fieldOrder = this.getAttribute('frm-field-order'); - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_duplicate_field', - field_id: fieldId, - form_id: thisFormId, - children: children, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - var _$field$0$querySelect; - var newRow; - var replaceWith; - if (null !== newRowId) { - newRow = document.getElementById(newRowId); - if (null !== newRow) { - replaceWith = msgAsjQueryObject(msg); - jQuery(newRow).append(replaceWith); - makeDraggable(replaceWith.get(0), '.frm-move'); - if (null !== fieldOrder) { - newRow.lastElementChild.setAttribute('frm-field-order', fieldOrder); - } - jQuery(newRow).trigger('frm_added_duplicated_field_to_row', { - duplicatedFieldHtml: msg, - originalFieldId: fieldId - }); - afterAddField(msg, false); - setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); - return; - } - } - if ($field.siblings('li.form-field').length) { - replaceWith = msgAsjQueryObject(msg); - $field.after(replaceWith); - syncLayoutClasses($field); - makeDraggable(replaceWith.get(0), '.frm-move'); - } else { - replaceWith = wrapFieldLi(msg); - $field.parent().parent().after(replaceWith); - makeDroppable(replaceWith.get(0).querySelector('ul.frm_sorting')); - makeDraggable(replaceWith.get(0).querySelector('li.form-field'), '.frm-move'); - } - updateFieldOrder(); - afterAddField(msg, false); - maybeDuplicateUnsavedSettings(fieldId, msg); - toggleOneSectionHolder(replaceWith.find('.start_divider')); - (_$field$0$querySelect = $field[0].querySelector('.frm-dropdown-menu.dropdown-menu-right')) === null || _$field$0$querySelect === void 0 || _$field$0$querySelect.classList.remove('show'); - setLayoutClassesForDuplicatedFieldInGroup($field.get(0), replaceWith.get(0)); - } - }); - return false; - } - - /** - * Sets the layout classes for a duplicated field in a field group from the layout classes of the original field. - * - * @param {HTMLElement} field The original field. - * @param {HTMLElement} newField The duplicated field. - * - * @return {void} - */ - function setLayoutClassesForDuplicatedFieldInGroup(field, newField) { - var _document$getElementB; - var hoverTarget = field.closest('.frm-field-group-hover-target'); - if (!hoverTarget || !isFieldGroup(hoverTarget.parentElement)) { - return; - } - var fieldId = field.dataset.fid; - var fieldClasses = (_document$getElementB = document.getElementById('frm_classes_' + fieldId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.value; - if (!fieldClasses) { - return; - } - fieldClasses = fieldClasses.replace('frm_first', ''); - if (!newField.className.includes(fieldClasses)) { - newField.className += ' ' + fieldClasses; - var classesInput = document.getElementById('frm_classes_' + newField.dataset.fid); - if (classesInput) { - classesInput.value = fieldClasses; - } - } - } - function maybeDuplicateUnsavedSettings(originalFieldId, newFieldHtml) { - var originalSettings, newFieldId, copySettings, fieldOptionKeys, originalDefault, copyDefault; - originalSettings = document.getElementById('frm-single-settings-' + originalFieldId); - if (null === originalSettings) { - return; - } - newFieldId = jQuery(newFieldHtml).attr('data-fid'); - if ('undefined' === typeof newFieldId) { - return; - } - copySettings = document.getElementById('frm-single-settings-' + newFieldId); - if (null === copySettings) { - return; - } - fieldOptionKeys = ['name', 'required', 'unique', 'read_only', 'placeholder', 'description', 'size', 'max', 'format', 'prepend', 'append', 'separate_value']; - originalSettings.querySelectorAll('input[name^="field_options["], textarea[name^="field_options["]').forEach(function (originalSetting) { - var key, tagType, copySetting; - key = getKeyFromSettingInput(originalSetting); - if ('options' === key) { - copyOption(originalSetting, copySettings, originalFieldId, newFieldId); - return; - } - if (-1 === fieldOptionKeys.indexOf(key)) { - return; - } - tagType = originalSetting.matches('input') ? 'input' : 'textarea'; - copySetting = copySettings.querySelector(tagType + '[name="field_options[' + key + '_' + newFieldId + ']"]'); - if (null === copySetting) { - return; - } - if ('checkbox' === originalSetting.type) { - if (originalSetting.checked !== copySetting.checked) { - jQuery(copySetting).trigger('click'); - } - } else if ('text' === originalSetting.type || 'textarea' === tagType) { - if (originalSetting.value !== copySetting.value) { - copySetting.value = originalSetting.value; - jQuery(copySetting).trigger('change'); - } - } - }); - originalDefault = originalSettings.querySelector('input[name="default_value_' + originalFieldId + '"]'); - if (null !== originalDefault) { - copyDefault = copySettings.querySelector('input[name="default_value_' + newFieldId + '"]'); - if (null !== copyDefault && originalDefault.value !== copyDefault.value) { - copyDefault.value = originalDefault.value; - jQuery(copyDefault).trigger('change'); - } - } - } - function copyOption(originalSetting, copySettings, originalFieldId, newFieldId) { - var remainingKeyDetails, copyKey, copySetting; - remainingKeyDetails = originalSetting.name.substr(23 + ('' + originalFieldId).length); - copyKey = 'field_options[options_' + newFieldId + ']' + remainingKeyDetails; - copySetting = copySettings.querySelector('input[name="' + copyKey + '"]'); - if (null !== copySetting && copySetting.value !== originalSetting.value) { - copySetting.value = originalSetting.value; - jQuery(copySetting).trigger('change'); - } - } - function getKeyFromSettingInput(input) { - var nameWithoutPrefix, nameSplit; - nameWithoutPrefix = input.name.substr(14); - nameSplit = nameWithoutPrefix.split('_'); - nameSplit.pop(); - return nameSplit.join('_'); - } - function closeOpenFieldDropdowns() { - var openSettings = document.querySelector('.frm-field-settings-open'); - if (null !== openSettings) { - openSettings.classList.remove('frm-field-settings-open'); - jQuery(document).off('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); - jQuery('.frm-field-action-icons .dropdown.open').removeClass('open'); - } - } - function handleClickOutsideOfFieldSettings(event) { - if (!jQuery(event.originalEvent.target).closest('.frm-field-action-icons').length) { - closeOpenFieldDropdowns(); - } - } - function checkForMultiselectKeysOnMouseMove(event) { - var keyIsDown = !!(event.ctrlKey || event.metaKey || event.shiftKey); - jQuery(builderPage).toggleClass('frm-multiselect-key-is-down', keyIsDown); - checkForActiveHoverTarget(event); - } - function checkForActiveHoverTarget(event) { - var container, elementFromPoint, list, previousHoverTarget; - container = postBodyContent; - if (container.classList.contains('frm-dragging-field')) { - return; - } - if (null !== document.querySelector('.frm-field-group-hover-target .frm-field-settings-open')) { - // do not set a hover target if a dropdown is open for the current hover target. - return; - } - elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); - if (null !== elementFromPoint && !elementFromPoint.classList.contains('edit_field_type_divider')) { - list = elementFromPoint.closest('ul.frm_sorting'); - if (null !== list && !list.classList.contains('start_divider') && 'frm-show-fields' !== list.id) { - previousHoverTarget = maybeRemoveGroupHoverTarget(); - if (false !== previousHoverTarget && !jQuery(previousHoverTarget).is(list)) { - destroyFieldGroupPopup(); - } - updateFieldGroupControls(jQuery(list), getFieldsInRow(jQuery(list)).length); - list.classList.add('frm-field-group-hover-target'); - jQuery('#wpbody-content').on('mousemove', maybeRemoveHoverTargetOnMouseMove); - } - } - } - function maybeRemoveGroupHoverTarget() { - var controls, previousHoverTarget; - controls = document.getElementById('frm_field_group_controls'); - if (null !== controls) { - controls.style.display = 'none'; - } - previousHoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === previousHoverTarget) { - return false; - } - jQuery('#wpbody-content').off('mousemove', maybeRemoveHoverTargetOnMouseMove); - previousHoverTarget.classList.remove('frm-field-group-hover-target'); - return previousHoverTarget; - } - function maybeRemoveHoverTargetOnMouseMove(event) { - var elementFromPoint = document.elementFromPoint(event.clientX, event.clientY); - if (null !== elementFromPoint && null !== elementFromPoint.closest('#frm-show-fields')) { - return; - } - maybeRemoveGroupHoverTarget(); - } - function onFieldActionDropdownShow(isFieldGroup) { - unselectFieldGroups(); - // maybe offset the dropdown if it goes off of the right of the screen. - setTimeout(function () { - var ul, $ul; - ul = document.querySelector('.dropdown.show .frm-dropdown-menu'); - if (null === ul) { - return; - } - if (null === ul.getAttribute('aria-label')) { - ul.setAttribute('aria-label', __('More Options', 'formidable')); - } - if (0 === ul.children.length) { - fillFieldActionDropdown(ul, true === isFieldGroup); - } - $ul = jQuery(ul); - if ($ul.offset().left > jQuery(window).width() - $ul.outerWidth()) { - ul.style.left = -$ul.outerWidth() + 'px'; - } - var firstAnchor = ul.firstElementChild.querySelector('a'); - if (firstAnchor) { - firstAnchor.focus(); - } - }, 0); - } - function onFieldGroupActionDropdownShow() { - onFieldActionDropdownShow(true); - } - function changeSectionStyle(e) { - var collapsedSection = e.target.closest('.frm-section-collapsed'); - if (!collapsedSection) { - return; - } - if (e.type === 'show') { - collapsedSection.style.zIndex = 3; - } else { - collapsedSection.style.zIndex = 1; - } - } - function fillFieldActionDropdown(ul, isFieldGroup) { - var classSuffix, options; - classSuffix = isFieldGroup ? '_field_group' : '_field'; - options = [getDeleteActionOption(isFieldGroup), getDuplicateActionOption(isFieldGroup)]; - if (!isFieldGroup) { - options.push({ - class: 'frm_select', - icon: 'frm_settings_icon', - label: __('Field Settings', 'formidable') - }); - } - options.forEach(function (option) { - var li, anchor, span; - li = document.createElement('div'); - li.classList.add('frm_more_options_li', 'dropdown-item'); - anchor = document.createElement('a'); - anchor.classList.add(option.class + classSuffix); - anchor.setAttribute('href', '#'); - makeTabbable(anchor); - span = document.createElement('span'); - span.textContent = option.label; - anchor.innerHTML = ''; - anchor.appendChild(document.createTextNode(' ')); - anchor.appendChild(span); - li.appendChild(anchor); - ul.appendChild(li); - }); - } - function getDeleteActionOption(isFieldGroup) { - var option = { - class: 'frm_delete', - icon: 'frm_delete_icon' - }; - option.label = isFieldGroup ? __('Delete Group', 'formidable') : __('Delete', 'formidable'); - return option; - } - function getDuplicateActionOption(isFieldGroup) { - var option = { - class: 'frm_clone', - icon: 'frm_clone_icon' - }; - option.label = isFieldGroup ? __('Duplicate Group', 'formidable') : __('Duplicate', 'formidable'); - return option; - } - function wrapFieldLi(field) { - var wrapper = div(); - if ('string' === typeof field) { - wrapper.innerHTML = field; - } else { - wrapper.appendChild(field); - } - var result = jQuery(); - Array.from(wrapper.children).forEach(function (li) { - result = result.add(jQuery('
                                • ').addClass('frm_field_box').html(jQuery('
                                    ').addClass('frm_grid_container frm_sorting').append(li))); - }); - return result; - } - function wrapFieldLiInPlace(li) { - var ul = tag('ul', { - className: 'frm_grid_container frm_sorting' - }); - var wrapper = tag('li', { - className: 'frm_field_box', - child: ul - }); - li.replaceWith(wrapper); - ul.appendChild(li); - makeDroppable(ul); - makeDraggable(wrapper, '.frm-move'); - } - function afterAddField(msg, addFocus) { - var regex = /id="(\S+)"/; - var match = regex.exec(msg); - var field = document.getElementById(match[1]); - var section = '#' + match[1] + '.edit_field_type_divider ul.frm_sorting.start_divider'; - var $thisSection = jQuery(section); - var type = field.getAttribute('data-type'); - checkHtmlForNewFields(msg); - var toggled = false; - fieldUpdated(); - setupSortable(section); - if ('quantity' === type) { - // try to automatically attach a product field - maybeSetProductField(field); - } - if ('product' === type || 'quantity' === type) { - // quantity too needs to be a part of the if stmt especially cos of the very - // 1st quantity field (or even if it's just one quantity field in the form). - maybeHideQuantityProductFieldOption(); - } - if ($thisSection.length) { - $thisSection.parent('.frm_field_box').children('.frm_no_section_fields').addClass('frm_block'); - } else { - var $parentSection = jQuery(field).closest('ul.frm_sorting.start_divider'); - if ($parentSection.length) { - toggleOneSectionHolder($parentSection); - toggled = true; - } - } - if (msg.indexOf('frm-collapse-page') !== -1) { - renumberPageBreaks(); - } - addClass(field, 'frm-newly-added'); - setTimeout(function () { - field.classList.remove('frm-newly-added'); - }, 1000); - if (addFocus) { - var bounding = field.getBoundingClientRect(), - container = document.getElementById('post-body-content'), - inView = bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight); - if (!inView) { - container.scroll({ - top: container.scrollHeight, - left: 0, - behavior: 'smooth' - }); - } - if (toggled === false) { - toggleOneSectionHolder($thisSection); - } - } - deselectFields(); - initiateMultiselect(); - document.getElementById('frm-show-fields').classList.remove('frm-over-droppable'); - var addedEvent = new Event('frm_added_field', { - bubbles: false - }); - addedEvent.frmField = field; - addedEvent.frmSection = section; - addedEvent.frmType = type; - addedEvent.frmToggles = toggled; - document.dispatchEvent(addedEvent); - } - - /** - * Since multiple new fields may get added when a new field is inserted, check the HTML. - * - * @param {string} html - * @return {void} - */ - function checkHtmlForNewFields(html) { - var element = div(); - element.innerHTML = html; - element.querySelectorAll('.form-field').forEach(addFieldIdToDraftFieldsInput); - } - - /** - * @param {HTMLElement} field - * @return {void} - */ - function addFieldIdToDraftFieldsInput(field) { - if (!field.dataset.fid) { - return; - } - var draftInput = document.getElementById('draft_fields'); - if (!draftInput) { - return; - } - if ('' === draftInput.value) { - draftInput.value = field.dataset.fid; - } else { - var split = draftInput.value.split(','); - if (!split.includes(field.dataset.fid)) { - draftInput.value += ',' + field.dataset.fid; - } - } - } - function clearSettingsBox(preventFieldGroups) { - jQuery('#new_fields .frm-single-settings').addClass('frm_hidden'); - jQuery('#frm-options-panel > .frm-single-settings').removeClass('frm_hidden'); - deselectFields(preventFieldGroups); - } - function deselectFields(preventFieldGroups) { - jQuery('li.ui-state-default.selected').removeClass('selected'); - jQuery('.frm-show-field-settings.selected').removeClass('selected'); - if (!preventFieldGroups) { - unselectFieldGroups(); - } - } - function scrollToField(field) { - var newPos = field.getBoundingClientRect().top, - container = document.getElementById('post-body-content'); - if (typeof animate === 'undefined') { - jQuery(container).scrollTop(newPos); - } else { - // TODO: smooth scroll - jQuery(container).animate({ - scrollTop: newPos - }, 500); - } - } - function checkCalculationCreatedByUser() { - var calculation = this.value; - var warningMessage = checkMatchingParens(calculation); - warningMessage += checkShortcodes(calculation, this); - if (warningMessage !== '') { - infoModal(calculation + '\n\n' + warningMessage); - } - } - - /** - * Checks a string for parens, brackets, and curly braces and returns a message if any unmatched are found. - * - * @param formula - * @return {string} - */ - function checkMatchingParens(formula) { - var stack = [], - formulaArray = formula.split(''), - length = formulaArray.length, - opening = ['{', '[', '('], - closing = { - '}': '{', - ')': '(', - ']': '[' - }, - unmatchedClosing = [], - msg = '', - i, - top; - for (i = 0; i < length; i++) { - if (opening.includes(formulaArray[i])) { - stack.push(formulaArray[i]); - continue; - } - if (closing.hasOwnProperty(formulaArray[i])) { - top = stack.pop(); - if (top !== closing[formulaArray[i]]) { - unmatchedClosing.push(formulaArray[i]); - } - } - } - if (stack.length > 0 || unmatchedClosing.length > 0) { - msg = frmAdminJs.unmatched_parens + '\n\n'; - return msg; - } - return ''; - } - - /** - * Checks a calculation for shortcodes that shouldn't be in it and returns a message if found. - * - * @param calculation - * @param inputElement - * @return {string} - */ - function checkShortcodes(calculation, inputElement) { - var msg = checkNonNumericShortcodes(calculation, inputElement); - msg += checkNonFormShortcodes(calculation); - return msg; - } - - /** - * Checks if a numeric calculation has shortcodes that output non-numeric strings and returns a message if found. - * - * @param calculation - * - * @param inputElement - * @return {string} - */ - function checkNonNumericShortcodes(calculation, inputElement) { - var msg = ''; - if (isTextCalculation(inputElement)) { - return msg; - } - var nonNumericShortcodes = getNonNumericShortcodes(); - if (nonNumericShortcodes.test(calculation)) { - msg = frmAdminJs.text_shortcodes + '\n\n'; - } - return msg; - } - - /** - * Determines if the calculation input is from a text calculation. - * - * @param inputElement - */ - function isTextCalculation(inputElement) { - return jQuery(inputElement).siblings('label[for^="calc_type"]').children('input').prop('checked'); - } - - /** - * Returns a regular expression of shortcodes that can't be used in numeric calculations. - * - * @return {RegExp} - */ - function getNonNumericShortcodes() { - return /\[(date|time|email|ip)\]/; - } - - /** - * Checks if a string has any shortcodes that do not belong in forms and returns a message if any are found. - * - * @param formula - * @return {string} - */ - function checkNonFormShortcodes(formula) { - var nonFormShortcodes = getNonFormShortcodes(), - msg = ''; - if (nonFormShortcodes.test(formula)) { - msg += frmAdminJs.view_shortcodes + '\n\n'; - } - return msg; - } - - /** - * Returns a regular expression of shortcodes that can't be used in forms but can be used in Views, Email - * Notifications, and other Formidable areas. - * - * @return {RegExp} - */ - function getNonFormShortcodes() { - return /\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g; - } - function isCalcBoxType(box, listClass) { - var list = jQuery(box).find('.frm_code_list'); - return 1 === list.length && list.hasClass(listClass); - } - function extractExcludedOptions(exclude) { - var opts = []; - if (!Array.isArray(exclude)) { - return opts; - } - for (var _i4 = 0; _i4 < exclude.length; _i4++) { - if (exclude[_i4].startsWith('[')) { - opts.push(exclude[_i4]); - // remove it - exclude.splice(_i4, 1); - // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value - _i4--; - } - } - return opts; - } - function hasExcludedOption(field, excludedOpts) { - var hasOption = false; - for (var _i5 = 0; _i5 < excludedOpts.length; _i5++) { - var inputs = document.getElementsByName(getFieldOptionInputName(excludedOpts[_i5], field.fieldId)); - // 2nd condition checks that there's at least one non-empty value - if (inputs.length && jQuery(inputs[0]).val()) { - hasOption = true; - break; - } - } - return hasOption; - } - function getFieldOptionInputName(opt, fieldId) { - var at = opt.indexOf(']'); - return 'field_options' + opt.substring(0, at) + '_' + fieldId + opt.substring(at); - } - function popCalcFields(v, force) { - var box, - exclude, - fields, - i, - list, - p = jQuery(v).closest('.frm-single-settings'), - calc = p.find('.frm-calc-field'); - if (!force && (!calc.length || calc.val() === '' || calc.is(':hidden'))) { - return; - } - var isSummary = isCalcBoxType(v, 'frm_js_summary_list'); - var fieldId = p.find('input[name="frm_fields_submitted[]"]').val(); - if (force) { - box = v; - } else { - box = document.getElementById('frm-calc-box-' + fieldId); - } - exclude = getExcludeArray(box, isSummary); - var excludedOpts = extractExcludedOptions(exclude); - fields = getFieldList(); - list = document.getElementById('frm-calc-list-' + fieldId); - list.innerHTML = ''; - for (i = 0; i < fields.length; i++) { - if (exclude && exclude.includes(fields[i].fieldType) || excludedOpts.length && hasExcludedOption(fields[i], excludedOpts)) { - continue; - } - var _a = document.createElement('a'); - _a.setAttribute('href', '#'); - _a.setAttribute('data-code', fields[i].fieldId); - _a.classList.add('frm_insert_code'); - _a.appendChild(span(fields[i].fieldName)); - _a.appendChild(span({ - className: 'frm-text-sm frm-text-grey-500', - text: '[' + fields[i].fieldId + ']' - })); - var li = document.createElement('li'); - li.classList.add('frm-field-list-' + fieldId); - li.classList.add('frm-field-list-' + fields[i].fieldType); - li.appendChild(_a); - list.appendChild(li); - } - } - function getExcludeArray(calcBox, isSummary) { - var codeList = calcBox.querySelector('.frm_code_list'); - var exclude = JSON.parse(codeList.getAttribute('data-exclude')); - if (isSummary) { - // includedExtras are those that are normally excluded from the summary but the form owner can choose to include, - // when they have been chosen to be included, then they can now be manually excluded in the calc box. - var includedExtras = getIncludedExtras(); - if (includedExtras.length) { - for (var _i6 = 0; _i6 < exclude.length; _i6++) { - if (includedExtras.includes(exclude[_i6])) { - // remove it - exclude.splice(_i6, 1); - // https://love2dev.com/blog/javascript-remove-from-array/#remove-from-array-splice-value - _i6--; - } - } - } - } - return exclude; - } - function getIncludedExtras() { - var checked = []; - var checkboxes = document.getElementsByClassName('frm_include_extras_field'); - for (var _i7 = 0; _i7 < checkboxes.length; _i7++) { - if (checkboxes[_i7].checked) { - checked.push(checkboxes[_i7].value); - } - } - return checked; - } - function rePopCalcFieldsForSummary() { - popCalcFields(jQuery('.frm-inline-modal.postbox:has(.frm_js_summary_list)')[0], true); - } - function getFieldList(fieldType) { - var i, - fields = [], - allFields = document.querySelectorAll('li.frm_field_box'), - checkType = 'undefined' !== typeof fieldType; - for (i = 0; i < allFields.length; i++) { - // data-ftype is better (than data-type) cos of fields loaded by AJAX - which might not be ready yet - if (checkType && allFields[i].getAttribute('data-ftype') !== fieldType) { - continue; - } - var fieldId = allFields[i].getAttribute('data-fid'); - if (typeof fieldId !== 'undefined' && fieldId) { - fields.push({ - fieldId: fieldId, - fieldName: getPossibleValue('frm_name_' + fieldId), - fieldType: getPossibleValue('field_options_type_' + fieldId), - fieldKey: getPossibleValue('field_options_field_key_' + fieldId) - }); - } - } - return wp.hooks.applyFilters('frm_admin_get_field_list', fields, fieldType, allFields); - } - function popProductFields(field) { - var i, - checked, - id, - options = [], - current = getCurrentProductFields(field), - fName = field.getAttribute('data-frmfname'), - products = getFieldList('product'), - quantities = getFieldList('quantity'), - isSelect = field.tagName === 'SELECT', - // for reverse compatibility. - // whether we have just 1 product and 1 quantity field & should therefore attach the latter to the former - auto = 1 === quantities.length && 1 === products.length; - if (isSelect) { - // This fallback can be removed after 4.05. - current = field.getAttribute('data-frmcurrent'); - } - for (i = 0; i < products.length; i++) { - // let's be double sure it's string, else indexOf will fail - id = products[i].fieldId.toString(); - checked = auto || -1 !== current.indexOf(id); - if (isSelect) { - // This fallback can be removed after 4.05. - checked = checked ? ' selected' : ''; - options.push(''); - } else { - checked = checked ? ' checked' : ''; - options.push(''); - } - } - field.innerHTML = options.join(''); - } - function getCurrentProductFields(prodFieldOpt) { - var products = prodFieldOpt.querySelectorAll('[type="checkbox"]:checked'), - idsArray = []; - for (var _i8 = 0; _i8 < products.length; _i8++) { - idsArray.push(products[_i8].value); - } - return idsArray; - } - function popAllProductFields() { - var opts = document.querySelectorAll('.frmjs_prod_field_opt'); - for (var _i9 = 0; _i9 < opts.length; _i9++) { - popProductFields(opts[_i9]); - } - } - function maybeSetProductField(field) { - var fieldId = field.getAttribute('data-fid'), - productFieldOpt = document.getElementById('field_options[product_field_' + fieldId + ']'); - if (null === productFieldOpt) { - return; - } - popProductFields(productFieldOpt); - // in order to move its settings to that LHS panel where - // the update form resides, else it'll lose this setting - moveFieldSettings(document.getElementById('frm-single-settings-' + fieldId)); - } - - /** - * If the element doesn't exist, use a blank value. - */ - function getPossibleValue(id) { - var field = document.getElementById(id); - if (field !== null) { - return field.value; - } - return ''; - } - function liveChanges() { - /*jshint validthis:true */ - var option, - newValue = this.value, - changes = document.getElementById(this.getAttribute('data-changeme')), - att = this.getAttribute('data-changeatt'); - if (changes === null) { - return; - } - if (att !== null) { - if (changes.tagName === 'SELECT' && att === 'placeholder') { - option = changes.options[0]; - if (option.value === '') { - option.innerHTML = newValue; - } else { - // Create a placeholder option if there are no blank values. - addBlankSelectOption(changes, newValue); - } - } else if (att === 'class') { - changeFieldClass(changes, this); - } else if (isSliderField(changes)) { - updateSliderFieldPreview(changes, att, newValue); - } else { - changes.setAttribute(att, newValue); - } - } else if (changes.id.indexOf('setup-message') === 0) { - if (newValue !== '') { - changes.innerHTML = ''; - } - } else { - changes.innerHTML = purifyHtml(newValue); - if ('TEXTAREA' === changes.nodeName && changes.classList.contains('wp-editor-area')) { - // Trigger change events on wysiwyg textareas so we can also sync default values in the visual tab. - jQuery(changes).trigger('change'); - } - if (changes.classList.contains('frm_primary_label') && 'break' === changes.nextElementSibling.getAttribute('data-ftype')) { - changes.nextElementSibling.querySelector('.frm_button_submit').textContent = newValue; - } - } - } - function updateSliderFieldPreview(field, att, newValue) { - if (frmGlobal.proIncludesSliderJs) { - var hookName = 'frm_update_slider_field_preview'; - var hookArgs = { - field: field, - att: att, - newValue: newValue - }; - wp.hooks.doAction(hookName, hookArgs); - return; - } - - // This functionality has been moved to pro since v5.4.3. This code should be removed eventually. - if ('value' === att) { - if ('' === newValue) { - newValue = getSliderMidpoint(field); - } - field.value = newValue; - } else { - field.setAttribute(att, newValue); - } - if (-1 === ['value', 'min', 'max'].indexOf(att)) { - return; - } - if (('max' === att || 'min' === att) && '' === getSliderDefaultValueInput(field.id)) { - field.value = getSliderMidpoint(field); - } - field.parentNode.querySelector('.frm_range_value').textContent = field.value; - } - function getSliderDefaultValueInput(previewInputId) { - return document.querySelector('input[data-changeme="' + previewInputId + '"][data-changeatt="value"]').value; - } - function getSliderMidpoint(sliderInput) { - var max = parseFloat(sliderInput.getAttribute('max')); - var min = parseFloat(sliderInput.getAttribute('min')); - return (max - min) / 2 + min; - } - function isSliderField(previewInput) { - return 'range' === previewInput.type && previewInput.parentNode.classList.contains('frm_range_container'); - } - function toggleInvalidMsg() { - /*jshint validthis:true */ - var typeDropdown, - fieldType, - fieldId = this.getAttribute('data-fid'), - value = ''; - ['field_options_max_', 'frm_format_'].forEach(function (id) { - var input = document.getElementById(id + fieldId); - if (!input) { - return; - } - value += input.value; - }); - typeDropdown = document.getElementsByName('field_options[type_' + fieldId + ']')[0]; - fieldType = typeDropdown.options[typeDropdown.selectedIndex].value; - if (fieldType === 'text') { - toggleValidationBox('' !== value, '.frm_invalid_msg' + fieldId); - } - } - function markRequired() { - /*jshint validthis:true */ - var thisid = this.id.replace('frm_', ''), - fieldId = thisid.replace('req_field_', ''), - checked = this.checked, - label = jQuery('#field_label_' + fieldId + ' .frm_required'); - toggleValidationBox(checked, '.frm_required_details' + fieldId); - if (checked) { - var $reqBox = jQuery('input[name="field_options[required_indicator_' + fieldId + ']"]'); - if ($reqBox.val() === '') { - $reqBox.val('*'); - } - label.removeClass('frm_hidden'); - } else { - label.addClass('frm_hidden'); - } - } - function toggleValidationBox(hasValue, messageClass) { - $msg = jQuery(messageClass); - if (hasValue) { - $msg.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); - } else { - // Fade out validation options - var $validationBox = $msg.fadeOut('fast').closest('.frm_validation_box'); - var v = $validationBox.css('display', 'block').children(':not(' + messageClass + '):visible').length; - $validationBox.css('display', ''); - if (v === 0) { - $msg.closest('.frm_validation_msg').fadeOut('fast'); - } - } - } - function markUnique() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - var $thisField = jQuery('.frm_unique_details' + fieldId); - if (this.checked) { - $thisField.fadeIn('fast').closest('.frm_validation_msg').fadeIn('fast'); - $unqDetail = jQuery('.frm_unique_details' + fieldId + ' input'); - if ($unqDetail.val() === '') { - $unqDetail.val(frmAdminJs.default_unique); - } - } else { - var $validationBox = $thisField.fadeOut('fast').closest('.frm_validation_box'); - var v = $validationBox.css('display', 'block').children(':not(.frm_unique_details' + fieldId + '):visible').length; - $validationBox.css('display', ''); - if (v === 0) { - $thisField.closest('.frm_validation_msg').fadeOut('fast'); - } - } - } - - //Fade confirmation field and validation option in or out - function addConf() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - var val = jQuery(this).val(); - var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)); - toggleValidationBox(val !== '', '.frm_conf_details' + fieldId); - if (val !== '') { - //Add default validation message if empty - var valMsg = jQuery('.frm_validation_box .frm_conf_details' + fieldId + ' input'); - if (valMsg.val() === '') { - valMsg.val(frmAdminJs.default_conf); - } - setConfirmationFieldDescriptions(fieldId); - - //Add or remove class for confirmation field styling - if (val === 'inline') { - $thisField.removeClass('frm_conf_below').addClass('frm_conf_inline'); - } else if (val === 'below') { - $thisField.removeClass('frm_conf_inline').addClass('frm_conf_below'); - } - jQuery('.frm-conf-box-' + fieldId).removeClass('frm_hidden'); - } else { - jQuery('.frm-conf-box-' + fieldId).addClass('frm_hidden'); - setTimeout(function () { - $thisField.removeClass('frm_conf_inline frm_conf_below'); - }, 200); - } - } - function setConfirmationFieldDescriptions(fieldId) { - var fieldType = document.getElementsByName('field_options[type_' + fieldId + ']')[0].value; - var fieldDescription = document.getElementById('field_description_' + fieldId); - var hiddenDescName = 'field_options[description_' + fieldId + ']'; - var newValue = frmAdminJs['enter_' + fieldType]; - maybeSetNewDescription(fieldDescription, hiddenDescName, newValue); - var confFieldDescription = document.getElementById('conf_field_description_' + fieldId); - var hiddenConfName = 'field_options[conf_desc_' + fieldId + ']'; - var newConfValue = frmAdminJs['confirm_' + fieldType]; - maybeSetNewDescription(confFieldDescription, hiddenConfName, newConfValue); - } - function maybeSetNewDescription(descriptionDiv, hiddenName, newValue) { - if (descriptionDiv.innerHTML === frmAdminJs.desc) { - // Set the visible description value and the hidden description value - descriptionDiv.innerHTML = newValue; - document.getElementsByName(hiddenName)[0].value = newValue; - } - } - function initBulkOptionsOverlay() { - /*jshint validthis:true */ - var $info = initModal('#frm-bulk-modal', '700px'); - if ($info === false) { - return; - } - jQuery('.frm-insert-preset').on('click', insertBulkPreset); - jQuery(builderForm).on('click', 'a.frm-bulk-edit-link', function (event) { - event.preventDefault(); - var i, - key, - label, - content = '', - optList, - opts, - fieldId = jQuery(this).closest('[data-fid]').data('fid'), - separate = usingSeparateValues(fieldId), - product = isProductField(fieldId); - optList = document.getElementById('frm_field_' + fieldId + '_opts'); - if (!optList) { - return; - } - opts = optList.getElementsByTagName('li'); - document.getElementById('bulk-field-id').value = fieldId; - for (i = 0; i < opts.length; i++) { - key = opts[i].getAttribute('data-optkey'); - if (key !== '000') { - label = document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][label]')[0]; - if (typeof label !== 'undefined') { - content += label.value; - if (separate) { - content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][value]')[0].value; - } - if (product) { - content += '|' + document.getElementsByName('field_options[options_' + fieldId + '][' + key + '][price]')[0].value; - } - content += '\r\n'; - } - } - if (i >= opts.length - 1) { - document.getElementById('frm_bulk_options').value = content; - } - } - $info.dialog('open'); - return false; - }); - jQuery('#frm-update-bulk-opts').on('click', function () { - var fieldId = document.getElementById('bulk-field-id').value; - var optionType = document.getElementById('bulk-option-type').value; - if (optionType) { - // Use custom handler for custom option type. - return; - } - this.classList.add('frm_loading_button'); - frmAdminBuild.updateOpts(fieldId, document.getElementById('frm_bulk_options').value, $info); - fieldUpdated(); - }); - } - function insertBulkPreset(event) { - /*jshint validthis:true */ - var opts = JSON.parse(this.getAttribute('data-opts')); - event.preventDefault(); - document.getElementById('frm_bulk_options').value = opts.join('\n'); - return false; - } - - //Add new option or "Other" option to radio/checkbox/dropdown - function addFieldOption() { - var _this$closest; - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'), - newOption = jQuery('#frm_field_' + fieldId + '_opts .frm_option_template').prop('outerHTML'), - optType = jQuery(this).data('opttype'), - optKey = 0, - oldKey = '000', - lastKey = getHighestOptKey(fieldId); - if (lastKey !== oldKey) { - optKey = lastKey + 1; - } - - //Update hidden field - if (optType === 'other') { - document.getElementById('other_input_' + fieldId).value = 1; - - //Hide "Add Other" option now if this is radio field - var ftype = jQuery(this).data('ftype'); - if (ftype === 'radio' || ftype === 'select') { - jQuery(this).fadeOut('slow'); - } - var _data = { - action: 'frm_add_field_option', - field_id: fieldId, - opt_key: optKey, - opt_type: optType, - nonce: frmGlobal.nonce - }; - jQuery.post(ajaxurl, _data, function (msg) { - jQuery(document.getElementById('frm_field_' + fieldId + '_opts')).append(msg); - resetDisplayedOpts(fieldId); - }); - } else { - newOption = newOption.replace(new RegExp('optkey="' + oldKey + '"', 'g'), 'optkey="' + optKey + '"'); - newOption = newOption.replace(new RegExp('-' + oldKey + '_', 'g'), '-' + optKey + '_'); - newOption = newOption.replace(new RegExp('-' + oldKey + '"', 'g'), '-' + optKey + '"'); - newOption = newOption.replace(new RegExp('\\[' + oldKey + '\\]', 'g'), '[' + optKey + ']'); - newOption = newOption.replace('frm_hidden frm_option_template', ''); - newOption = { - newOption: newOption - }; - addSaveAndDragIconsToOption(fieldId, newOption); - this.closest('.frm_single_option').after(newOption.newOption); - resetDisplayedOpts(fieldId); - } - - // Make sure all remove buttons are enabled - (_this$closest = this.closest('.frm_sortable_field_opts')) === null || _this$closest === void 0 || (_this$closest = _this$closest.querySelectorAll('.frm_remove_tag.frm_disabled')) === null || _this$closest === void 0 || _this$closest.forEach(function (button) { - return button.classList.remove('frm_disabled'); - }); - fieldUpdated(); - } - function getHighestOptKey(fieldId) { - var i = 0, - optKey = 0, - opts = jQuery('#frm_field_' + fieldId + '_opts li'), - lastKey = 0; - for (i; i < opts.length; i++) { - optKey = opts[i].getAttribute('data-optkey'); - if (opts.length === 1) { - return optKey; - } - if (optKey !== '000') { - optKey = optKey.replace('other_', ''); - optKey = parseInt(optKey, 10); - } - if (!isNaN(lastKey) && (optKey > lastKey || lastKey === '000')) { - lastKey = optKey; - } - } - return lastKey; - } - function toggleMultSel() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - toggleMultiSelect(fieldId, this.value); - } - function toggleMultiSelect(fieldId, value) { - var setting = jQuery('.frm_multiple_cont_' + fieldId); - if (value === 'select') { - setting.fadeIn('fast'); - } else { - setting.fadeOut('fast'); - } - } - function toggleSepValues() { - /*jshint validthis:true */ - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - toggle(jQuery('.field_' + fieldId + '_option_key')); - jQuery('.field_' + fieldId + '_option').toggleClass('frm_with_key'); - } - function toggleImageOptions() { - /*jshint validthis:true */ - var hasImageOptions, - imageSize, - $field = jQuery(this).closest('.frm-single-settings'), - fieldId = $field.data('fid'), - displayField = document.getElementById('frm_field_id_' + fieldId); - refreshOptionDisplayNow(jQuery(this)); - toggle(jQuery('.field_' + fieldId + '_image_id')); - toggle(jQuery('.frm_toggle_image_options_' + fieldId)); - toggle(jQuery('.frm_image_size_' + fieldId)); - toggle(jQuery('.frm_alignment_' + fieldId)); - toggle(jQuery('.frm-add-other#frm_add_field_' + fieldId)); - hasImageOptions = imagesAsOptions(fieldId); - if (hasImageOptions) { - setAlignment(fieldId, 'inline'); - removeImageSizeClasses(displayField); - imageSize = getImageOptionSize(fieldId); - displayField.classList.add('frm_image_options'); - displayField.classList.add('frm_image_size_' + imageSize); - $field.find('.frm-bulk-edit-link').hide(); - } else { - displayField.classList.remove('frm_image_options'); - removeImageSizeClasses(displayField); - setAlignment(fieldId, 'block'); - $field.find('.frm-bulk-edit-link').show(); - } - - /** - * Fires when image options are toggled for a field. - * - * @param {HTMLElement} field The field element. - * @param {boolean} hasImageOptions Whether the field has image options enabled. - */ - wp.hooks.doAction('frm_image_options_toggled', $field[0], hasImageOptions); - } - function removeImageSizeClasses(field) { - field.classList.remove('frm_image_size_', 'frm_image_size_small', 'frm_image_size_medium', 'frm_image_size_large', 'frm_image_size_xlarge'); - } - function setAlignment(fieldId, alignment) { - jQuery('#field_options_align_' + fieldId).val(alignment).trigger('change'); - } - function setImageSize() { - var $field = jQuery(this).closest('.frm-single-settings'), - fieldId = $field.data('fid'), - displayField = document.getElementById('frm_field_id_' + fieldId); - refreshOptionDisplay(); - if (imagesAsOptions(fieldId)) { - removeImageSizeClasses(displayField); - displayField.classList.add('frm_image_options'); - displayField.classList.add('frm_image_size_' + getImageOptionSize(fieldId)); - } - } - function refreshOptionDisplayNow(object) { - var $field = object.closest('.frm-single-settings'), - fieldID = $field.data('fid'); - jQuery('.field_' + fieldID + '_option').trigger('change'); - } - function refreshOptionDisplay() { - /*jshint validthis:true */ - refreshOptionDisplayNow(jQuery(this)); - } - function addImageToOption(event) { - var imagePreview = event.target.closest('.frm_image_preview_wrapper'); - event.preventDefault(); - wp.media.model.settings.post.id = 0; - var fileFrame = wp.media.frames.file_frame = wp.media({ - multiple: false, - library: { - type: ['image'] - } - }); - fileFrame.on('select', function () { - var attachment = fileFrame.state().get('selection').first().toJSON(); - var img = imagePreview.querySelector('img'); - img.setAttribute('src', attachment.url); - img.classList.remove('frm_hidden'); - img.removeAttribute('srcset'); // Prevent the old image from sticking around. - - imagePreview.querySelector('.frm_image_preview_frame').style.display = 'block'; - imagePreview.querySelector('.frm_image_preview_title').textContent = attachment.filename; - imagePreview.querySelector('.frm_choose_image_box').style.display = 'none'; - var $imagePreview = jQuery(imagePreview); - $imagePreview.siblings('input[name*="[label]"]').data('frmimgurl', attachment.url); - $imagePreview.find('input.frm_image_id').val(attachment.id).trigger('change'); - wp.media.model.settings.post.id = 0; - }); - fileFrame.open(); - } - function removeImageFromOption(event) { - var $this = jQuery(this), - previewWrapper = $this.closest('.frm_image_preview_wrapper'); - event.preventDefault(); - event.stopPropagation(); - previewWrapper.find('img').attr('src', ''); - previewWrapper.find('.frm_image_preview_frame').hide(); - previewWrapper.find('.frm_choose_image_box').show(); - previewWrapper.find('input.frm_image_id').val(0).trigger('change'); - } - function toggleMultiselect() { - /*jshint validthis:true */ - var dropdown = jQuery(this).closest('li').find('.frm_form_fields select'); - if (this.checked) { - dropdown.attr('multiple', 'multiple'); - } else { - dropdown.removeAttr('multiple'); - } - } - - /** - * Allow typing on form switcher click without an extra click to search. - */ - function focusSearchBox() { - var searchBox = document.getElementById('dropform-search-input'); - if (searchBox !== null) { - setTimeout(function () { - searchBox.focus(); - }, 100); - } - } - - /** - * Dismiss a warning message and send an AJAX request to update the dismissal state. - * - * @since 6.3 - * - * @param {Event} event The event object associated with the click on the dismiss icon. - */ - function dismissWarningMessage(event) { - var target = event.target; - var warningEl = target.closest('.frm_warning_style'); - jQuery(warningEl).fadeOut(400, function () { - return warningEl.remove(); - }); - var action = target.dataset.action; - var formData = new FormData(); - doJsonPost(action, formData); - } - - /** - * If a field is clicked in the builder, prevent inputs from changing. - */ - function stopFieldFocus(e) { - e.preventDefault(); - } - - /** - * Delete a field option. - */ - function deleteFieldOption() { - var parentLi = this.parentNode; - var parentUl = parentLi.parentNode; - - // If only 2 visible options, add disabled class to the other delete button - var visibleOptions = parentUl.querySelectorAll('li:not(.frm_hidden)'); - if (visibleOptions.length === 2) { - var _Array$from$find$quer; - (_Array$from$find$quer = Array.from(visibleOptions).find(function (li) { - return li !== parentLi; - }).querySelector('.frm_remove_tag')) === null || _Array$from$find$quer === void 0 || _Array$from$find$quer.classList.add('frm_disabled'); - } - - /*jshint validthis:true */ - var otherInput, - fieldId = this.getAttribute('data-fid'); - jQuery(parentLi).fadeOut('fast', function () { - wp.hooks.doAction('frm_before_delete_field_option', this); - jQuery(parentLi).remove(); - var hasOther = jQuery(parentUl).find('.frm_other_option'); - if (hasOther.length < 1) { - otherInput = document.getElementById('other_input_' + fieldId); - if (otherInput !== null) { - otherInput.value = 0; - } - jQuery('#other_button_' + fieldId).fadeIn('fast'); - } - }); - fieldUpdated(); - } - - /** - * If a radio button is set as default, allow a click to - * deselect it. - */ - function maybeUncheckRadio() { - var $self, uncheck, unbind, up; - - /*jshint validthis:true */ - $self = jQuery(this); - if ($self.is(':checked')) { - uncheck = function uncheck() { - setTimeout(function () { - $self.prop('checked', false); - }, 0); - }; - unbind = function unbind() { - $self.off('mouseup', up); - }; - up = function up() { - uncheck(); - unbind(); - }; - $self.on('mouseup', up); - $self.one('mouseout', unbind); - } - } - - /** - * If the field option has the default text, clear it out on click. - */ - function maybeClearOptText() { - /*jshint validthis:true */ - if (this.value === frmAdminJs.new_option) { - this.setAttribute('data-value-on-focus', this.value); - this.value = ''; - } - } - function confirmFieldsDeleteMessage(numberOfFields) { - /* translators: %1$s: Number of fields that are selected to be deleted. */ - return sprintf(__('Are you sure you want to delete these %1$s selected field(s)?', 'formidable'), numberOfFields); - } - function clickDeleteField() { - /*jshint validthis:true */ - var confirmMsg = frmAdminJs.conf_delete, - maybeDivider = this.parentNode.parentNode.parentNode.parentNode.parentNode, - li = maybeDivider.parentNode, - field = jQuery(this).closest('li.form-field'), - fieldId = field.data('fid'); - if (field.data('ftype') === 'divider') { - var fieldBoxes = document.querySelectorAll('.frm-field-group-hover-target .start_divider .frm_field_box'); - var fieldIdsToDelete = 0; - fieldBoxes.forEach(function (fieldBox) { - var fieldsInsideFieldBox = fieldBox.querySelectorAll('li.form-field'); - if (fieldsInsideFieldBox) { - fieldIdsToDelete += fieldsInsideFieldBox.length; - } - }); - if (fieldIdsToDelete) { - confirmMsg = confirmFieldsDeleteMessage(++fieldIdsToDelete); - } - } - if (li.classList.contains('frm-section-collapsed') || li.classList.contains('frm-page-collapsed')) { - return false; - } - - // If deleting a section, use a special message. - if (maybeDivider.className === 'divider_section_only') { - confirmMsg = frmAdminJs.conf_delete_sec; - } - this.setAttribute('data-frmverify', confirmMsg); - this.setAttribute('data-frmverify-btn', 'frm-button-red'); - this.setAttribute('data-deletefield', fieldId); - closeOpenFieldDropdowns(); - confirmLinkClick(this); - return false; - } - function clickSelectField() { - this.closest('li.form-field').click(); - } - function clickDeleteFieldGroup() { - var hoverTarget, decoy; - hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === hoverTarget) { - return; - } - hoverTarget.classList.add('frm-selected-field-group'); - decoy = document.createElement('div'); - decoy.classList.add('frm-delete-field-groups', 'frm_hidden'); - document.body.appendChild(decoy); - decoy.click(); - } - function duplicateFieldGroup() { - var hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === hoverTarget) { - return; - } - var newRowId = 'frm_field_group_' + getAutoId(); - var placeholderUlChild = document.createTextNode(''); - wrapFieldLiInPlace(placeholderUlChild); - var newRow = jQuery(placeholderUlChild).closest('li').get(0); - newRow.classList.add('frm_hidden'); - var newRowUl = newRow.querySelector('ul'); - newRowUl.id = newRowId; - jQuery(hoverTarget.closest('li.frm_field_box')).after(newRow); - var $fields = getFieldsInRow(jQuery(hoverTarget)); - var syncDetails = []; - var injectedCloneOptions = []; - var expectedLength = $fields.length; - var originalFieldIdByDuplicatedFieldId = {}; - var duplicatedCount = 0; - jQuery(newRow).on('frm_added_duplicated_field_to_row', function (_, args) { - originalFieldIdByDuplicatedFieldId[jQuery(args.duplicatedFieldHtml).attr('data-fid')] = args.originalFieldId; - if (expectedLength > ++duplicatedCount) { - return; - } - var $newRowUl = jQuery(newRowUl); - var $duplicatedFields = getFieldsInRow($newRowUl); - injectedCloneOptions.forEach(function (cloneOption) { - cloneOption.remove(); - }); - for (var index = 0; index < expectedLength; ++index) { - $newRowUl.append($newRowUl.children('li.form-field[frm-field-order="' + index + '"]')); - } - syncLayoutClasses($duplicatedFields.first(), syncDetails); - newRow.classList.remove('frm_hidden'); - updateFieldOrder(); - getFieldsInRow($newRowUl).each(function () { - maybeDuplicateUnsavedSettings(originalFieldIdByDuplicatedFieldId[this.getAttribute('data-fid')], jQuery(this).prop('outerHTML')); - }); - }); - $fields.each(function (index) { - var cloneOption; - cloneOption = document.createElement('li'); - cloneOption.classList.add('frm_clone_field'); - cloneOption.setAttribute('frm-target-row-id', newRowId); - cloneOption.setAttribute('frm-field-order', index); - this.appendChild(cloneOption); - cloneOption.click(); - injectedCloneOptions.push(cloneOption); - syncDetails.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); - }); - } - function clickFieldGroupLayout() { - var hoverTarget, sizeOfFieldGroup, popupWrapper; - hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (null === hoverTarget) { - return; - } - deselectFields(); - sizeOfFieldGroup = getSizeOfFieldGroupFromChildElement(hoverTarget.querySelector('li.form-field')); - hoverTarget.classList.add('frm-has-open-field-group-popup'); - jQuery(document).on('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); - popupWrapper = div(); - popupWrapper.style.position = 'relative'; - popupWrapper.appendChild(getFieldGroupPopup(sizeOfFieldGroup, this)); - this.parentNode.appendChild(popupWrapper); - var firstLayoutOption = popupWrapper.querySelector('.frm-row-layout-option'); - if (firstLayoutOption) { - firstLayoutOption.focus(); - } - } - function destroyFieldGroupPopupOnOutsideClick(event) { - if (event.target.classList.contains('frm-custom-field-group-layout') || event.target.classList.contains('frm-cancel-custom-field-group-layout')) { - return; - } - if (!jQuery(event.target).closest('#frm_field_group_controls').length && !jQuery(event.target).closest('#frm_field_group_popup').length) { - destroyFieldGroupPopup(); - } - } - function getSizeOfFieldGroupFromChildElement(element) { - var $ul = jQuery(element).closest('ul'); - if ($ul.length) { - return getFieldsInRow($ul).length; - } - return getSelectedFieldCount(); - } - function getFieldGroupPopup(sizeOfFieldGroup, childElement) { - var popup, wrapper, rowLayoutOptions, ul; - popup = document.getElementById('frm_field_group_popup'); - if (null === popup) { - popup = div(); - } else { - popup.innerHTML = ''; - } - popup.id = 'frm_field_group_popup'; - wrapper = div(); - wrapper.style.padding = '0 24px 12px'; - wrapper.appendChild(getRowLayoutTitle()); - rowLayoutOptions = getRowLayoutOptions(sizeOfFieldGroup); - ul = childElement.closest('ul.frm_sorting'); - if (null !== ul) { - maybeMarkRowLayoutAsActive(ul, rowLayoutOptions); - } - wrapper.appendChild(rowLayoutOptions); - popup.appendChild(wrapper); - popup.appendChild(separator()); - popup.appendChild(getCustomLayoutOption()); - popup.appendChild(getBreakIntoDifferentRowsOption()); - return popup; - } - function maybeMarkRowLayoutAsActive(activeRow, options) { - var length, index, currentRow; - length = options.children.length; - for (index = 0; index < length; ++index) { - currentRow = options.children[index]; - if (rowLayoutsMatch(currentRow, activeRow)) { - currentRow.classList.add('frm-active-row-layout'); - return; - } - } - } - function separator() { - return document.createElement('hr'); - } - function getCustomLayoutOption() { - var option = div(); - option.textContent = __('Custom layout', 'formidable'); - jQuery(option).prepend(getIconClone('frm_gear_svg')); - option.classList.add('frm-custom-field-group-layout'); - makeTabbable(option); - return option; - } - function makeTabbable(element, ariaLabel) { - element.setAttribute('tabindex', 0); - element.setAttribute('role', 'button'); - if ('undefined' !== typeof ariaLabel) { - element.setAttribute('aria-label', ariaLabel); - } - } - function getIconClone(iconId) { - var clone = document.getElementById(iconId).cloneNode(true); - clone.id = ''; - return clone; - } - function getBreakIntoDifferentRowsOption() { - var option = div(); - option.textContent = __('Break into rows', 'formidable'); - jQuery(option).prepend(getIconClone('frm_break_field_group_svg')); - option.classList.add('frm-break-field-group'); - makeTabbable(option); - return option; - } - function getRowLayoutTitle() { - var rowLayoutTitle = div(); - rowLayoutTitle.classList.add('frm-row-layout-title'); - rowLayoutTitle.textContent = __('Row Layout', 'formidable'); - return rowLayoutTitle; - } - function getRowLayoutOptions(size) { - var wrapper, padding; - wrapper = getEmptyGridContainer(); - if (5 !== size) { - wrapper.appendChild(getRowLayoutOption(size, 'even')); - } - if (size % 2 === 1) { - // only include the middle option for odd numbers because even doesn't make a lot of sense. - wrapper.appendChild(getRowLayoutOption(size, 'middle')); - } - if (size < 6) { - wrapper.appendChild(getRowLayoutOption(size, 'left')); - wrapper.appendChild(getRowLayoutOption(size, 'right')); - } else { - padding = div(); - padding.classList.add('frm_fourth'); - wrapper.prepend(padding); - } - return wrapper; - } - function getRowLayoutOption(size, type) { - var option, useClass; - option = div(); - option.classList.add('frm-row-layout-option'); - makeTabbable(option, type); - switch (size) { - case 6: - useClass = 'frm_half'; - break; - case 5: - useClass = 'frm_third'; - break; - default: - useClass = size % 2 === 1 ? 'frm_fourth' : 'frm_third'; - break; - } - option.classList.add(useClass); - option.setAttribute('layout-type', type); - option.appendChild(getRowForSizeAndType(size, type)); - return option; - } - function rowLayoutsMatch(row1, row2) { - return getRowLayoutAsKey(row1) === getRowLayoutAsKey(row2); - } - function getRowLayoutAsKey(row) { - var $fields, sizes; - if (row.classList.contains('frm-row-layout-option')) { - $fields = jQuery(row).find('.frm_grid_container').children(); - } else { - $fields = getFieldsInRow(jQuery(row)); - } - sizes = []; - $fields.each(function () { - sizes.push(getSizeOfLayoutClass(getLayoutClassName(this.classList))); - }); - return sizes.join('-'); - } - function getRowForSizeAndType(size, type) { - var row, index, block; - row = getEmptyGridContainer(); - for (index = 0; index < size; ++index) { - block = div(); - block.classList.add(getClassForBlock(size, type, index)); - block.style.height = '16px'; - block.style.background = '#9EA9B8'; - block.style.borderRadius = '1px'; - row.appendChild(block); - } - return row; - } - - /** - * @param {number} size 2-6. - * @param {string} type even, middle, left, or right. - * @param {number} index 0-5. - * @return {string} The class name. - */ - function getClassForBlock(size, type, index) { - if ('even' === type) { - return getEvenClassForSize(size, index); - } else if ('middle' === type) { - if (3 === size) { - return 1 === index ? 'frm6' : 'frm3'; - } - if (5 === size) { - return 2 === index ? 'frm4' : 'frm2'; - } - } else if ('left' === type) { - return 0 === index ? getLargeClassForSize(size) : getSmallClassForSize(size); - } else if ('right' === type) { - return index === size - 1 ? getLargeClassForSize(size) : getSmallClassForSize(size); - } - return 'frm12'; - } - function getEvenClassForSize(size, index) { - if (-1 !== [2, 3, 4, 6].indexOf(size)) { - return getLayoutClassForSize(12 / size); - } - if (5 === size && 'undefined' !== typeof index) { - return 0 === index ? 'frm4' : 'frm2'; - } - return 'frm12'; - } - function getSmallClassForSize(size) { - switch (size) { - case 2: - case 3: - return 'frm3'; - case 4: - return 'frm2'; - case 5: - return 'frm2'; - case 6: - return 'frm1'; - } - return 'frm12'; - } - function getLargeClassForSize(size) { - switch (size) { - case 2: - return 'frm9'; - case 3: - case 4: - return 'frm6'; - case 5: - return 'frm4'; - case 6: - return 'frm7'; - } - return 'frm12'; - } - function getEmptyGridContainer() { - var wrapper = div(); - wrapper.classList.add('frm_grid_container'); - return wrapper; - } - - /** - * Handle when a field group layout option (that sets grid classes/column sizing) is selected in the "Row Layout" popup. - * - * @return {void} - */ - function handleFieldGroupLayoutOptionClick() { - var row = document.querySelector('.frm-field-group-hover-target'); - if (!row) { - // The field group layout options also get clicked when merging multiple rows. - // The following code isn't required for multiple rows though so just exit early. - return; - } - var type = this.getAttribute('layout-type'); - syncLayoutClasses(getFieldsInRow(jQuery(row)).first(), type); - destroyFieldGroupPopup(); - } - function handleFieldGroupLayoutOptionInsideMergeClick() { - var $ul, type; - $ul = mergeSelectedFieldGroups(); - type = this.getAttribute('layout-type'); - syncLayoutClasses(getFieldsInRow($ul).first(), type); - unselectFieldGroups(); - } - function mergeSelectedFieldGroups() { - var $selectedFieldGroups = jQuery('.frm-selected-field-group'), - $firstGroupUl = $selectedFieldGroups.first(); - $selectedFieldGroups.not($firstGroupUl).each(function () { - getFieldsInRow(jQuery(this)).each(function () { - var previousParent = this.parentNode; - getFieldsInRow($firstGroupUl).last().after(this); - if (!jQuery(previousParent).children('li.form-field').length) { - // clean up the previous field group if we've removed all of its fields. - previousParent.closest('li.frm_field_box').remove(); - } - }); - }); - updateFieldOrder(); - syncLayoutClasses(getFieldsInRow($firstGroupUl).first()); - return $firstGroupUl; - } - function customFieldGroupLayoutClick() { - var $fields; - if (null !== this.closest('.frm-merge-fields-into-row')) { - return; - } - $fields = getFieldsInRow(jQuery('.frm-field-group-hover-target')); - setupCustomLayoutOptions($fields); - } - function setupCustomLayoutOptions($fields) { - var size, popup, wrapper, layoutClass, inputRow, paddingElement, inputValueOverride, index, inputField, heading, label, buttonsWrapper, cancelButton, saveButton; - size = $fields.length; - popup = document.getElementById('frm_field_group_popup'); - popup.innerHTML = ''; - wrapper = div(); - wrapper.style.padding = '0 24px'; - layoutClass = getEvenClassForSize(5 === size ? 6 : size); - inputRow = div(); - inputRow.style.padding = '20px 0'; - inputRow.classList.add('frm_grid_container'); - if (5 === size) { - // add a span to pad the inputs by 1 column, to account for the missing 2 columns. - paddingElement = document.createElement('span'); - paddingElement.classList.add('frm1'); - inputRow.appendChild(paddingElement); - } - inputValueOverride = getSelectedFieldCount() > 0 ? getSizeOfLayoutClass(getEvenClassForSize(size)) : false; - if (false !== inputValueOverride && inputValueOverride >= 12) { - inputValueOverride = Math.floor(12 / size); - } - for (index = 0; index < size; ++index) { - inputField = document.createElement('input'); - inputField.type = 'text'; - inputField.classList.add(layoutClass); - inputField.classList.add('frm-custom-grid-size-input'); - inputField.value = false !== inputValueOverride ? inputValueOverride : getSizeOfLayoutClass(getLayoutClassName($fields.get(index).classList)); - inputRow.appendChild(inputField); - } - heading = div(); - heading.classList.add('frm-builder-popup-heading'); - heading.textContent = __('Enter number of columns for each field', 'formidable'); - label = div(); - label.classList.add('frm-builder-popup-subheading'); - label.textContent = __('Layouts are based on a 12-column grid system', 'formidable'); - wrapper.appendChild(heading); - wrapper.appendChild(label); - wrapper.appendChild(inputRow); - buttonsWrapper = div(); - buttonsWrapper.style.textAlign = 'right'; - cancelButton = getSecondaryButton(); - cancelButton.textContent = __('Cancel', 'formidable'); - cancelButton.classList.add('frm-cancel-custom-field-group-layout'); - cancelButton.style.marginRight = '10px'; - saveButton = getPrimaryButton(); - saveButton.textContent = __('Save', 'formidable'); - saveButton.classList.add('frm-save-custom-field-group-layout'); - buttonsWrapper.appendChild(cancelButton); - buttonsWrapper.appendChild(saveButton); - wrapper.appendChild(buttonsWrapper); - popup.appendChild(wrapper); - setTimeout(function () { - var firstInput = popup.querySelector('input.frm-custom-grid-size-input').focus(); - if (firstInput) { - firstInput.focus(); - } - }, 0); - } - function customFieldGroupLayoutInsideMergeClick() { - $fields = jQuery('.frm-selected-field-group li.form-field'); - setupCustomLayoutOptions($fields); - } - function getPrimaryButton() { - var button = getButton(); - button.classList.add('button-primary', 'frm-button-primary'); - return button; - } - function getSecondaryButton() { - var button = getButton(); - button.classList.add('button-secondary', 'frm-button-secondary'); - return button; - } - function getButton() { - var button = document.createElement('a'); - button.setAttribute('href', '#'); - button.classList.add('button'); - button.style.textDecoration = 'none'; - return button; - } - function getSizeOfLayoutClass(className) { - switch (className) { - case 'frm_half': - return 6; - case 'frm_third': - return 4; - case 'frm_two_thirds': - return 8; - case 'frm_fourth': - return 3; - case 'frm_three_fourths': - return 9; - case 'frm_sixth': - return 2; - } - if (0 === className.indexOf('frm')) { - return parseInt(className.substr(3)); - } - - // Anything missing a layout class should be a full width row. - return 12; - } - function getLayoutClassName(classList) { - var classes, index, currentClass; - classes = getLayoutClasses(); - for (index = 0; index < classes.length; ++index) { - currentClass = classes[index]; - if (classList.contains(currentClass)) { - return currentClass; - } - } - return ''; - } - function getLayoutClassForSize(size) { - return 'frm' + size; - } - function breakFieldGroupClick() { - var row = document.querySelector('.frm-field-group-hover-target'); - breakRow(row); - destroyFieldGroupPopup(); - } - function breakRow(row) { - var $row = jQuery(row); - getFieldsInRow($row).each(function (index) { - var field = this; - if (0 !== index) { - $row.parent().after(wrapFieldLi(field)); - } - stripLayoutFromFields(jQuery(field)); - }); - } - function stripLayoutFromFields(field) { - syncLayoutClasses(field, 'clear'); - } - function focusFieldGroupInputOnClick() { - this.select(); - } - function cancelCustomFieldGroupClick() { - revertToFieldGroupPopupFirstPage(this); - } - function revertToFieldGroupPopupFirstPage(triggerElement) { - jQuery(document.getElementById('frm_field_group_popup')).replaceWith(getFieldGroupPopup(getSizeOfFieldGroupFromChildElement(triggerElement), triggerElement)); - } - function destroyFieldGroupPopup() { - var popup, wrapper; - popup = document.getElementById('frm_field_group_popup'); - if (popup === null) { - return; - } - wrapper = document.querySelector('.frm-has-open-field-group-popup'); - if (null !== wrapper) { - wrapper.classList.remove('frm-has-open-field-group-popup'); - popup.parentNode.remove(); - } - jQuery(document).off('click', '#frm_builder_page', destroyFieldGroupPopupOnOutsideClick); - } - function saveCustomFieldGroupClick() { - var syncDetails, $controls, $ul; - syncDetails = []; - jQuery(document.getElementById('frm_field_group_popup').querySelectorAll('.frm_grid_container input')).each(function () { - syncDetails.push(parseInt(this.value)); - }); - $controls = jQuery(document.getElementById('frm_field_group_controls')); - if ($controls.length && 'none' !== $controls.get(0).style.display) { - syncLayoutClasses(getFieldsInRow(jQuery(document.querySelector('.frm-field-group-hover-target'))).first(), syncDetails); - } else { - $ul = mergeSelectedFieldGroups(); - syncLayoutClasses(getFieldsInRow($ul).first(), syncDetails); - unselectFieldGroups(); - } - destroyFieldGroupPopup(); - } - - /** - * Get an array of fields that are selected. - * - * @param {Object} $firstGroup - * @param {HTMLElement} hoverTarget - * - * @returns {Object} - */ - function getSelectedRange($firstGroup, hoverTarget) { - var hoverTargetSection = hoverTarget.closest('.edit_field_type_divider'); - var targetSection, $range, fieldsInSection; - if (hoverTargetSection) { - targetSection = hoverTargetSection.closest('ul').closest('.frm_field_box.ui-draggable'); - fieldsInSection = _toConsumableArray(hoverTargetSection.querySelectorAll('.frm_field_box.ui-draggable')).filter(function (el) { - return el.classList.length === 2; - }); - } - var hoverTargetBox = hoverTarget.querySelector('li'); - if ($firstGroup.parent().index() < jQuery(hoverTarget.parentNode).index()) { - // If field target field is in a section. - $range = $firstGroup.parent().nextUntil(targetSection || hoverTarget.parentNode); - if (!fieldsInSection) { - return $range; - } - $range = $range.add(fieldsInSection.slice(0, fieldsInSection.indexOf(hoverTargetBox) + 1)); - return $range; - } - - // Select fields back to the first group. - $range = $firstGroup.parent().prevUntil(targetSection || hoverTarget.parentNode); - if (!fieldsInSection) { - return $range; - } - $range = $range.add(fieldsInSection.slice(-fieldsInSection.indexOf(hoverTargetBox) + 1)); - return $range; - } - function fieldGroupClick(e) { - maybeShowFieldGroupMessage(); - if ('ul' !== e.originalEvent.target.nodeName.toLowerCase()) { - // only continue if the group itself was clicked / ignore when a field is clicked. - return; - } - var hoverTarget = document.querySelector('.frm-field-group-hover-target'); - if (!hoverTarget) { - return; - } - var ctrlOrCmdKeyIsDown = e.ctrlKey || e.metaKey; - var shiftKeyIsDown = e.shiftKey; - var groupIsActive = hoverTarget.classList.contains('frm-selected-field-group'); - var $selectedFieldGroups = getSelectedFieldGroups(); - var numberOfSelectedGroups = $selectedFieldGroups.length; - if (ctrlOrCmdKeyIsDown || shiftKeyIsDown) { - // multi-selecting - - var selectedField = getSelectedField(); - if (null !== selectedField && !jQuery(selectedField).siblings('li.form-field').length) { - // count a selected field on its own as a selected field group when multiselecting. - selectedField.parentNode.classList.add('frm-selected-field-group'); - ++numberOfSelectedGroups; - } - if (ctrlOrCmdKeyIsDown) { - if (groupIsActive) { - // unselect if holding ctrl or cmd and the group was already active. - --numberOfSelectedGroups; - hoverTarget.classList.remove('frm-selected-field-group'); - syncAfterMultiSelect(numberOfSelectedGroups); - return; // exit early to avoid adding back frm-selected-field-group - } - ++numberOfSelectedGroups; - } else if (shiftKeyIsDown && !groupIsActive) { - ++numberOfSelectedGroups; // include the one we're selecting right now. - var $firstGroup = $selectedFieldGroups.first(); - getSelectedRange($firstGroup, hoverTarget).each(function () { - var $fieldGroup = jQuery(this).closest('li').find('ul.frm_sorting'); - if (!$fieldGroup.hasClass('frm-selected-field-group')) { - ++numberOfSelectedGroups; - $fieldGroup.addClass('frm-selected-field-group'); - } - }); - } - } else { - // not multi-selecting - unselectFieldGroups(); - numberOfSelectedGroups = 1; - } - hoverTarget.classList.add('frm-selected-field-group'); - syncAfterMultiSelect(numberOfSelectedGroups); - maybeHideFieldGroupMessage(); - jQuery(document).off('click', unselectFieldGroups); - jQuery(document).on('click', unselectFieldGroups); - } - - /** - * Hide the field group message by manipulating classes. - * - * @param {Element} fieldGroupMessage The field group message element. - * @return {void} - */ - function hideFieldGroupMessage(fieldGroupMessage) { - if (!fieldGroupMessage) { - return; - } - fieldGroupMessage.classList.add('frm_hidden'); - fieldGroupMessage.classList.remove('frm-fadein-up-back'); - } - - /** - * Show the field group message by manipulating classes. - * - * @param {Element} fieldGroupMessage The field group message element. - * @return {void} - */ - function showFieldGroupMessage(fieldGroupMessage) { - if (!fieldGroupMessage) { - return; - } - fieldGroupMessage.classList.remove('frm_hidden'); - fieldGroupMessage.classList.add('frm-fadein-up-back'); - } - - /** - * Maybe show a message if there are at least two rows. - * - * @return {void} - */ - function maybeShowFieldGroupMessage() { - var fieldGroupMessage = document.getElementById('frm-field-group-message'); - var rows = document.querySelectorAll('.edit_form_item:not(.edit_field_type_end_divider)'); - if (rows.length < 2) { - hideFieldGroupMessage(fieldGroupMessage); - return; - } - if (fieldGroupMessage) { - showFieldGroupMessage(fieldGroupMessage); - return; - } - fieldGroupMessage = div({ - id: 'frm-field-group-message', - className: 'frm-flex-center frm-fadein-up-back', - children: [span({ - id: 'frm-field-group-message-dismiss', - className: 'frm-flex-center', - child: svg({ - href: '#frm_close_icon' - }) - })] - }); - - // Insert the field group into the DOM - document.getElementById('post-body-content').appendChild(fieldGroupMessage); - - // Get and add the field group message text - var messageText = getFieldGroupMessageText(); - fieldGroupMessage.prepend(messageText); - - // Set up a click event listener - document.getElementById('frm-field-group-message-dismiss').addEventListener('click', function () { - hideFieldGroupMessage(document.getElementById('frm-field-group-message')); - }); - } - - /** - * Get a span element with text about selecting multiple fields. - * - * @return {HTMLElement} A span element with the message and style classes. - */ - function getFieldGroupMessageText() { - var text = document.createElement('span'); - text.classList.add('frm-field-group-message-text', 'frm-flex-center'); - text.innerHTML = sprintf(/* translators: %1$s: Start span HTML, %2$s: end span HTML */ - frm_admin_js.holdShiftMsg, - // eslint-disable-line camelcase - '', ''); - return text; - } - - /** - * Maybe hide the field group message based on the number of selected rows. - * - * @return {void} - */ - function maybeHideFieldGroupMessage() { - var selectedRowCount = document.querySelectorAll('.frm-selected-field-group').length; - if (selectedRowCount < 2) { - return; - } - var fieldGroupMessage = document.getElementById('frm-field-group-message'); - hideFieldGroupMessage(fieldGroupMessage); - } - function getSelectedField() { - return document.getElementById('frm-show-fields').querySelector('li.form-field.selected'); - } - function getSelectedFieldGroups() { - var $fieldGroups = jQuery('.frm-selected-field-group'); - if ($fieldGroups.length) { - return $fieldGroups; - } - var selectedField = getSelectedField(); - if (selectedField) { - // If there is only one field in a group and the field is selected, consider the field's group as selected for multi-select. - var selectedFieldGroup = selectedField.closest('ul'); - if (selectedFieldGroup && 1 === getFieldsInRow(jQuery(selectedFieldGroup)).length) { - selectedFieldGroup.classList.add('frm-selected-field-group'); - return jQuery(selectedFieldGroup); - } - } - return jQuery(); - } - function syncAfterMultiSelect(numberOfSelectedGroups) { - clearSettingsBox(true); // unselect any fields if one is selected. - if (numberOfSelectedGroups >= 2 || 1 === numberOfSelectedGroups && selectedGroupHasMultipleFields()) { - addFieldMultiselectPopup(); - } else { - maybeRemoveMultiselectPopup(); - } - maybeRemoveGroupHoverTarget(); - } - function selectedGroupHasMultipleFields() { - return getFieldsInRow(jQuery(document.querySelector('.frm-selected-field-group'))).length > 1; - } - function unselectFieldGroups(event) { - if ('undefined' !== typeof event) { - if (null !== event.originalEvent.target.closest('#frm-show-fields')) { - return; - } - if (event.originalEvent.target.classList.contains('frm-merge-fields-into-row')) { - return; - } - if (null !== event.originalEvent.target.closest('.frm-merge-fields-into-row')) { - return; - } - if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { - return; - } - if (event.originalEvent.target.classList.contains('frm-cancel-custom-field-group-layout')) { - return; - } - } - jQuery('.frm-selected-field-group').removeClass('frm-selected-field-group'); - jQuery(document).off('click', unselectFieldGroups); - maybeRemoveMultiselectPopup(); - } - function maybeRemoveMultiselectPopup() { - var popup = document.getElementById('frm_field_multiselect_popup'); - if (null !== popup) { - popup.remove(); - } - } - function addFieldMultiselectPopup() { - getFieldMultiselectPopup(); - } - function getFieldMultiselectPopup() { - var popup, mergeOption, caret, verticalSeparator, deleteOption; - popup = document.getElementById('frm_field_multiselect_popup'); - if (null !== popup) { - popup.classList.toggle('frm-unmergable', !selectedFieldsAreMergeable()); - return popup; - } - popup = div(); - popup.id = 'frm_field_multiselect_popup'; - if (!selectedFieldsAreMergeable()) { - popup.classList.add('frm-unmergable'); - } - mergeOption = div(); - mergeOption.classList.add('frm-merge-fields-into-row'); - mergeOption.textContent = __('Merge into row', 'formidable'); - caret = document.createElement('a'); - caret.style.marginLeft = '5px'; - caret.classList.add('frm_icon_font', 'frm_arrowdown6_icon'); - caret.setAttribute('href', '#'); - mergeOption.appendChild(caret); - popup.appendChild(mergeOption); - verticalSeparator = div(); - verticalSeparator.classList.add('frm-multiselect-popup-separator'); - popup.appendChild(verticalSeparator); - deleteOption = div(); - deleteOption.classList.add('frm-delete-field-groups'); - deleteOption.appendChild(getIconClone('frm_trash_svg')); - popup.appendChild(deleteOption); - document.getElementById('post-body-content').appendChild(popup); - jQuery(popup).hide().fadeIn(); - return popup; - } - function selectedFieldsAreMergeable() { - var selectedFieldGroups, totalFieldCount, length, index, fieldGroup; - selectedFieldGroups = document.querySelectorAll('.frm-selected-field-group'); - length = selectedFieldGroups.length; - if (1 === length) { - return false; - } - totalFieldCount = 0; - for (index = 0; index < length; ++index) { - fieldGroup = selectedFieldGroups[index]; - if (null !== fieldGroup.querySelector('.edit_field_type_break, .edit_field_type_hidden')) { - return false; - } - totalFieldCount += getFieldsInRow(jQuery(fieldGroup)).length; - if (totalFieldCount > 6) { - return false; - } - } - return true; - } - function mergeFieldsIntoRowClick(event) { - var size, popup; - if (null !== event.originalEvent.target.closest('#frm_field_group_popup')) { - // prevent clicks within the popup from triggering the button again. - return; - } - if (event.originalEvent.target.classList.contains('frm-custom-field-group-layout')) { - // avoid switching back to the first page when clicking the custom option nested inside of the merge option. - return; - } - size = getSelectedFieldCount(); - popup = getFieldGroupPopup(size, document.querySelector('.frm-selected-field-group').firstChild); - this.appendChild(popup); - } - function getSelectedFieldCount() { - var count = 0; - jQuery(document.querySelectorAll('.frm-selected-field-group')).each(function () { - count += getFieldsInRow(jQuery(this)).length; - }); - return count; - } - function deleteFieldGroupsClick() { - var fieldIdsToDelete, deleteOnConfirm, multiselectPopup; - fieldIdsToDelete = getSelectedFieldIds(); - deleteOnConfirm = getDeleteSelectedFieldGroupsOnConfirmFunction(fieldIdsToDelete); - multiselectPopup = document.getElementById('frm_field_multiselect_popup'); - if (null !== multiselectPopup) { - multiselectPopup.remove(); - } - this.setAttribute('data-frmverify', confirmFieldsDeleteMessage(fieldIdsToDelete.length)); - confirmLinkClick(this); - var confirmedClick = document.getElementById('frm-confirmed-click'); - - // Remove any previous delete field data so delete confirmation does not attempt - // to delete a field that was already deleted or previously attempted and cancelled. - confirmedClick === null || confirmedClick === void 0 || confirmedClick.removeAttribute('data-deletefield'); - jQuery(confirmedClick).on('click', deleteOnConfirm); - jQuery('#frm_confirm_modal').one('dialogclose', function () { - jQuery(confirmedClick).off('click', deleteOnConfirm); - }); - } - function getSelectedFieldIds() { - var deleteFieldIds = []; - jQuery('.frm-selected-field-group > li.form-field').each(function () { - deleteFieldIds.push(this.dataset.fid); - }); - return deleteFieldIds; - } - function getDeleteSelectedFieldGroupsOnConfirmFunction(deleteFieldIds) { - return function (event) { - event.preventDefault(); - deleteAllSelectedFieldGroups(deleteFieldIds); - }; - } - function deleteAllSelectedFieldGroups(deleteFieldIds) { - deleteFieldIds.forEach(function (fieldId) { - deleteFields(fieldId); - }); - } - function deleteFieldConfirmed() { - /*jshint validthis:true */ - deleteFields(this.getAttribute('data-deletefield')); - } - function deleteFields(fieldId) { - var field = jQuery('#frm_field_id_' + fieldId); - deleteField(fieldId); - if (field.hasClass('edit_field_type_divider')) { - field.find('li.frm_field_box[data-fid]').each(function () { - deleteField(this.getAttribute('data-fid')); - }); - } - toggleSectionHolder(); - } - - /** - * Checks if there is only submit field in the form builder. - * - * @return {Boolean} - */ - function hasOnlySubmitField() { - // If there are at least 2 rows, return false. - if ($newFields.get(0).childElementCount > 1) { - return false; - } - var childUl = $newFields.get(0).firstElementChild.firstElementChild; - - // Use query instead of children because there might be a div inside this ul. - var childLi = childUl.querySelectorAll('li.frm_field_box'); - - // If there are at least 2 items in the row, return false. - if (childLi.length > 1) { - return false; - } - return childLi[0].classList.contains('edit_field_type_submit'); - } - - /** - * Moves open modals out of the field options form. - * - * When a modal is open, it is moved in the DOM and appended to the parent element of the modal trigger input. That - * creates a problem since deleting the field also deletes the modal and this function fixes that problem. - * - * @since 6.22 - * - * @param {Object} settings - * @return {void} - */ - function moveOpenModalsOutOfFieldOptions(settings) { - var openModals = settings[0].querySelectorAll('.frm-inline-modal[data-fills]'); - if (!openModals.length) { - return; - } - openModals.forEach(function (modal) { - modal.classList.add('frm_hidden'); - modal.removeAttribute('data-fills'); - modal.closest('form').appendChild(modal); - }); - } - function deleteField(fieldId) { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_delete_field', - field_id: fieldId, - nonce: frmGlobal.nonce - }, - success: function success() { - var $thisField = jQuery(document.getElementById('frm_field_id_' + fieldId)), - settings = jQuery('#frm-single-settings-' + fieldId); - - // Remove settings from sidebar. - if (settings.is(':visible')) { - var _document$querySelect2; - (_document$querySelect2 = document.querySelector('.frm-settings-panel .frm-tabs-navs ul > li:first-child')) === null || _document$querySelect2 === void 0 || _document$querySelect2.click(); - document.querySelector('#frm-options-panel .frm-single-settings').classList.remove('frm_hidden'); - } - moveOpenModalsOutOfFieldOptions(settings); - settings.remove(); - $thisField.fadeOut('slow', function () { - var $section = $thisField.closest('.start_divider'), - type = $thisField.data('type'), - $adjacentFields = $thisField.siblings('li.form-field'), - $liWrapper; - if (!$adjacentFields.length) { - if ($thisField.is('.edit_field_type_end_divider')) { - $adjacentFields.length = $thisField.closest('li.form-field').siblings(); - } else { - $liWrapper = $thisField.closest('ul.frm_sorting').parent(); - } - } - $thisField.remove(); - if (type === 'break') { - renumberPageBreaks(); - } else if (type === 'product') { - maybeHideQuantityProductFieldOption(); - // a product field attached to a quantity field earlier might be the one deleted, so re-populate - popAllProductFields(); - } - if ($adjacentFields.length) { - syncLayoutClasses($adjacentFields.first()); - } else { - $liWrapper.remove(); - } - if (jQuery('#frm-show-fields li').length === 0 || hasOnlySubmitField()) { - var formEditorContainer = document.getElementById('frm_form_editor_container'); - formEditorContainer.classList.remove('frm-has-fields'); - formEditorContainer.classList.add('frm-empty-fields'); - } else if ($section.length) { - toggleOneSectionHolder($section); - } - - // prevent "More Options" tooltips from staying around after their target field is deleted. - deleteTooltips(); - }); - if ($thisField.length) { - wp.hooks.doAction('frm_after_delete_field', $thisField[0]); - } - } - }); - } - function addFieldLogicRow() { - /*jshint validthis:true */ - var id = jQuery(this).closest('.frm-single-settings').data('fid'), - formId = thisFormId, - logicRows = document.getElementById('frm_logic_row_' + id).querySelectorAll('.frm_logic_row'); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_logic_row', - form_id: formId, - field_id: id, - nonce: frmGlobal.nonce, - meta_name: getNewRowId(logicRows, 'frm_logic_' + id + '_'), - fields: getFieldList() - }, - success: function success(html) { - jQuery(document.getElementById('logic_' + id)).fadeOut('fast', function () { - var logicRow = document.getElementById('frm_logic_row_' + id); - logicRow.insertAdjacentHTML('beforeend', html); - var logicRowText = logicRow.querySelector('.frm_logic_row:last-child .frm-logic-rule-text'); - if (logicRowText) { - logicRowText.textContent = logicRow.dataset.ruleText; - } - var logicRows = logicRow.closest('.frm_logic_rows'); - logicRows.style.height = 'auto'; - jQuery(logicRows).fadeIn('fast'); - }); - } - }); - return false; - } - function getNewRowId(rows, replace, defaultValue) { - if (!rows.length) { - return 'undefined' !== typeof defaultValue ? defaultValue : 0; - } - return parseInt(rows[rows.length - 1].id.replace(replace, ''), 10) + 1; - } - function addWatchLookupRow() { - /*jshint validthis:true */ - var lastRowId, - id = jQuery(this).closest('.frm-single-settings').data('fid'), - formId = thisFormId, - lookupBlockRows = document.getElementById('frm_watch_lookup_block_' + id).children; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_watch_lookup_row', - form_id: formId, - field_id: id, - row_key: getNewRowId(lookupBlockRows, 'frm_watch_lookup_' + id + '_'), - nonce: frmGlobal.nonce - }, - success: function success(newRow) { - var _document$getElementB2; - var watchRowBlock = jQuery(document.getElementById('frm_watch_lookup_block_' + id)); - watchRowBlock.append(newRow); - watchRowBlock.fadeIn('slow'); - - // Show the "Watch Lookup Fields" label if it was hidden - (_document$getElementB2 = document.getElementById("frm_watch_lookup_label_".concat(id))) === null || _document$getElementB2 === void 0 || _document$getElementB2.classList.remove('frm-force-hidden'); - } - }); - return false; - } - function resetOptionTextDetails() { - jQuery('.frm-single-settings ul input[type="text"][name^="field_options[options_"]').filter('[data-value-on-load]').removeAttr('data-value-on-load'); - jQuery('input[type="hidden"][name^=optionmap]').remove(); - } - function optionTextAlreadyExists(input) { - var fieldId = jQuery(input).closest('.frm-single-settings').attr('data-fid'), - optionInputs = jQuery(input).closest('ul').get(0).querySelectorAll('.field_' + fieldId + '_option'), - index, - optionInput; - for (index in optionInputs) { - optionInput = optionInputs[index]; - if (optionInput.id !== input.id && optionInput.value === input.value && optionInput.getAttribute('data-duplicate') !== 'true') { - return true; - } - } - return false; - } - function onOptionTextFocus() { - var input, fieldId; - if (this.getAttribute('data-value-on-load') === null) { - this.setAttribute('data-value-on-load', this.value); - fieldId = jQuery(this).closest('.frm-single-settings').attr('data-fid'); - input = document.createElement('input'); - input.value = this.value; - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'optionmap[' + fieldId + '][' + this.value + ']'); - this.parentNode.appendChild(input); - if (typeof optionMap[fieldId] === 'undefined') { - optionMap[fieldId] = {}; - } - optionMap[fieldId][this.value] = input; - } - if (this.getAttribute('data-duplicate') === 'true') { - this.removeAttribute('data-duplicate'); - - // we want to use original value if actually still a duplicate - if (optionTextAlreadyExists(this)) { - this.setAttribute('data-value-on-focus', this.getAttribute('data-value-on-load')); - return; - } - } - if ('' !== this.value || frmAdminJs.new_option !== this.getAttribute('data-value-on-focus')) { - this.setAttribute('data-value-on-focus', this.value); - } - } - - /** - * Returns an object that has the old and new values and labels, when a field choice is changed. - * - * @param {HTMLElement} input - * @return {Object} - */ - function getChoiceOldAndNewValues(input) { - var _getChoiceOldValueAnd = getChoiceOldValueAndLabel(input), - oldValue = _getChoiceOldValueAnd.oldValue, - oldLabel = _getChoiceOldValueAnd.oldLabel; - var _getChoiceNewValueAnd = getChoiceNewValueAndLabel(input), - newValue = _getChoiceNewValueAnd.newValue, - newLabel = _getChoiceNewValueAnd.newLabel; - return { - oldValue: oldValue, - oldLabel: oldLabel, - newValue: newValue, - newLabel: newLabel - }; - } - - /** - * Returns an object that has the new value and label, when a field choice is changed. - * - * @param {HTMLElement} choiceElement - * @return {Object} - */ - function getChoiceNewValueAndLabel(choiceElement) { - var singleOptionContainer = choiceElement.closest('.frm_single_option'); - var newValue, newLabel; - if (choiceElement.parentElement.classList.contains('frm_single_option')) { - // label changed - newValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').value; - newLabel = choiceElement.value; - return { - newValue: newValue, - newLabel: newLabel - }; - } - - // saved value changed - newLabel = singleOptionContainer.querySelector('input[type="text"]').value; - newValue = choiceElement.value; - return { - newValue: newValue, - newLabel: newLabel - }; - } - - /** - * Returns an object that has the old value and label, when a field choice is changed. - * - * @param {HTMLElement} choiceElement - * @return {Object} - */ - function getChoiceOldValueAndLabel(choiceElement) { - var _choiceElement$closes, _choiceElement$closes2; - var usingSeparateValues = (_choiceElement$closes = (_choiceElement$closes2 = choiceElement.closest('.frm-single-settings').querySelector('.frm_toggle_sep_values')) === null || _choiceElement$closes2 === void 0 ? void 0 : _choiceElement$closes2.checked) !== null && _choiceElement$closes !== void 0 ? _choiceElement$closes : false; - var singleOptionContainer = choiceElement.closest('.frm_single_option'); - var oldValue, oldLabel; - if (usingSeparateValues) { - if (choiceElement.parentElement.classList.contains('frm_single_option')) { - // label changed - oldValue = singleOptionContainer.querySelector('.frm_option_key input[type="text"]').getAttribute('data-value-on-focus'); - oldLabel = choiceElement.getAttribute('data-value-on-focus'); - return { - oldValue: oldValue, - oldLabel: oldLabel - }; - } - } - oldValue = choiceElement.getAttribute('data-value-on-focus'); - oldLabel = singleOptionContainer.querySelector('input[type="text"]').getAttribute('data-value-on-focus'); - return { - oldValue: oldValue, - oldLabel: oldLabel - }; - } - function onOptionTextBlur() { - var originalValue, fieldId, fieldIndex, logicId, row, rowLength, rowIndex, valueSelect, opts, fieldIds, settingId, setting, optionMatches, option; - var _getChoiceOldAndNewVa = getChoiceOldAndNewValues(this), - oldValue = _getChoiceOldAndNewVa.oldValue, - oldLabel = _getChoiceOldAndNewVa.oldLabel, - newValue = _getChoiceOldAndNewVa.newValue, - newLabel = _getChoiceOldAndNewVa.newLabel; - if (oldValue === newValue && oldLabel === newLabel) { - return; - } - var singleSettingsContainer = this.closest('.frm-single-settings'); - fieldId = singleSettingsContainer.getAttribute('data-fid'); - originalValue = this.getAttribute('data-value-on-load'); - - // check if the newValue is already mapped to another option - // if it is, mark as duplicate and return - if (optionTextAlreadyExists(this)) { - this.setAttribute('data-duplicate', 'true'); - if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { - // unmap any other change that may have happened before instead of changing it to something unused - optionMap[fieldId][originalValue].value = originalValue; - } - return; - } - if (typeof optionMap[fieldId] !== 'undefined' && typeof optionMap[fieldId][originalValue] !== 'undefined') { - optionMap[fieldId][originalValue].value = newValue; - } - fieldIds = []; - rows = builderPage.querySelectorAll('.frm_logic_row'); - rowLength = rows.length; - for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { - row = rows[rowIndex]; - opts = row.querySelector('.frm_logic_field_opts'); - if (opts.value !== fieldId) { - continue; - } - logicId = row.id.split('_')[2]; - valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); - if ('' === oldValue) { - optionMatches = []; - } else { - optionMatches = valueSelect.querySelectorAll('option[value="' + oldValue + '"]'); - } - if (!optionMatches.length) { - optionMatches = valueSelect.querySelectorAll('option[value="' + newValue + '"]'); - if (!optionMatches.length) { - var _singleSettingsContai; - if (!((_singleSettingsContai = singleSettingsContainer.querySelector('.frm_toggle_sep_values')) !== null && _singleSettingsContai !== void 0 && _singleSettingsContai.checked)) { - option = searchSelectByText(valueSelect, oldValue); // Find conditional logic option with oldValue - } - if (!option) { - option = document.createElement('option'); - valueSelect.appendChild(option); - } - } - } - if (optionMatches.length) { - option = optionMatches[optionMatches.length - 1]; - } - option.setAttribute('value', newValue); - option.textContent = newLabel; - if (fieldIds.indexOf(logicId) === -1) { - fieldIds.push(logicId); - } - } - for (fieldIndex in fieldIds) { - settingId = fieldIds[fieldIndex]; - setting = document.getElementById('frm-single-settings-' + settingId); - moveFieldSettings(setting); - } - } - - /** - * Returns an option element that matches a string with its text content. - * - * @param {HTMLElement} selectElement - * @param {string} searchText - * @return {HTMLElement|null} - */ - function searchSelectByText(selectElement, searchText) { - var options = selectElement.options; - for (var _i10 = 0; _i10 < options.length; _i10++) { - var option = options[_i10]; - if (searchText === option.textContent) { - return option; - } - } - return null; - } - function updateGetValueFieldSelection() { - /*jshint validthis:true */ - var fieldID = this.id.replace('get_values_form_', ''); - var fieldSelect = document.getElementById('get_values_field_' + fieldID); - var fieldType = this.getAttribute('data-fieldtype'); - if (this.value === '') { - fieldSelect.options.length = 1; - } else { - var formID = this.value; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_get_options_for_get_values_field', - form_id: formID, - field_type: fieldType, - nonce: frmGlobal.nonce - }, - success: function success(fields) { - fieldSelect.innerHTML = fields; - } - }); - } - } - - // Clear the Watch Fields option when Lookup field switches to "Text" option - function maybeClearWatchFields() { - /*jshint validthis:true */ - var link, - lookupBlock, - fieldID = this.name.replace('field_options[data_type_', '').replace(']', ''); - link = document.getElementById('frm_add_watch_lookup_link_' + fieldID); - if (!link) { - return; - } - link = link.parentNode; - if (this.value === 'text') { - lookupBlock = document.getElementById('frm_watch_lookup_block_' + fieldID); - if (lookupBlock !== null) { - // Clear and hide the Watch Fields option - lookupBlock.innerHTML = ''; - link.classList.add('frm_hidden'); - - // Hide the Watch Fields row - link.previousElementSibling.style.display = 'none'; - link.previousElementSibling.previousElementSibling.style.display = 'none'; - link.previousElementSibling.previousElementSibling.previousElementSibling.style.display = 'none'; - } - } else { - // Show the Watch Fields option - link.classList.remove('frm_hidden'); - } - toggleMultiSelect(fieldID, this.value); - } - - // Number the pages and hide/show the first page as needed. - function renumberPageBreaks() { - var i, - containerClass, - pages = document.getElementsByClassName('frm-page-num'); - if (pages.length > 1) { - document.getElementById('frm-fake-page').style.display = 'block'; - for (i = 0; i < pages.length; i++) { - containerClass = pages[i].parentNode.parentNode.parentNode.classList; - if (i === 1) { - // Hide previous button on page 1 - containerClass.add('frm-first-page'); - } else { - containerClass.remove('frm-first-page'); - } - pages[i].textContent = i + 1; - } - } else { - document.getElementById('frm-fake-page').style.display = 'none'; - } - wp.hooks.doAction('frm_renumber_page_breaks', pages); - } - - // The fake field works differently than real fields. - function maybeCollapsePage() { - /*jshint validthis:true */ - var field = jQuery(this).closest('.frm_field_box[data-ftype=break]'); - if (field.length) { - toggleCollapsePage(field); - } else { - toggleCollapseFakePage(); - } - } - - // Find all fields in a page and hide/show them - function toggleCollapsePage(field) { - var toCollapse = getAllFieldsForPage(field.get(0).parentNode.closest('li.frm_field_box').nextElementSibling); - togglePage(field, toCollapse); - } - function toggleCollapseFakePage() { - var topLevel = document.getElementById('frm-fake-page'), - firstField = document.getElementById('frm-show-fields').firstElementChild, - toCollapse = getAllFieldsForPage(firstField); - if (firstField.getAttribute('data-ftype') === 'break') { - // Don't collapse if the first field is a page break. - return; - } - togglePage(jQuery(topLevel), toCollapse); - } - function getAllFieldsForPage(firstWrapper) { - var $fieldsForPage, currentWrapper; - $fieldsForPage = jQuery(); - if (null === firstWrapper) { - return $fieldsForPage; - } - currentWrapper = firstWrapper; - do { - if (null !== currentWrapper.querySelector('.edit_field_type_break')) { - break; - } - $fieldsForPage = $fieldsForPage.add(jQuery(currentWrapper)); - currentWrapper = currentWrapper.nextElementSibling; - } while (null !== currentWrapper); - return $fieldsForPage; - } - function togglePage(field, toCollapse) { - var i, - fieldCount = toCollapse.length, - slide = Math.min(fieldCount, 3); - if (field.hasClass('frm-page-collapsed')) { - field.removeClass('frm-page-collapsed'); - toCollapse.removeClass('frm-is-collapsed'); - for (i = 0; i < slide; i++) { - if (i === slide - 1) { - jQuery(toCollapse[i]).slideDown(150, function () { - toCollapse.show(); - }); - } else { - jQuery(toCollapse[i]).slideDown(150); - } - } - } else { - field.addClass('frm-page-collapsed'); - toCollapse.addClass('frm-is-collapsed'); - for (i = 0; i < slide; i++) { - if (i === slide - 1) { - jQuery(toCollapse[i]).slideUp(150, function () { - toCollapse.css('cssText', 'display:none !important;'); - }); - } else { - jQuery(toCollapse[i]).slideUp(150); - } - } - } - } - function maybeCollapseSection() { - /*jshint validthis:true */ - var parentCont = this.parentNode.parentNode.parentNode.parentNode; - parentCont.classList.toggle('frm-section-collapsed'); - } - function maybeCollapseSettings() { - /*jshint validthis:true */ - this.classList.toggle('frm-collapsed'); - - // Toggles the "aria-expanded" attribute - var expanded = this.getAttribute('aria-expanded') === 'true' || false; - this.setAttribute('aria-expanded', !expanded); - addSlideAnimationCssVars(this.nextElementSibling); - } - - /** - * Add slide animation CSS variables to the element - * - * @param {HTMLElement} element The element to add CSS variables to - * @return {void} - */ - function addSlideAnimationCssVars(element) { - if (!element) { - return; - } - var height = element.scrollHeight; - if (height <= 0) { - return; - } - height += 250; - element.style.setProperty('--slide-height', "".concat(height, "px")); - element.style.setProperty('--slide-time', "".concat(Math.ceil(height * 0.8), "ms")); - } - function clickLabel() { - if (!this.id) { - return; - } - - /*jshint validthis:true */ - var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0], - fieldId = this.id.replace('field_label_', ''), - fieldType = document.getElementById('field_options_type_' + fieldId), - fieldTypeName = fieldType.value; - if (typeof setting !== 'undefined') { - if (fieldType.tagName === 'SELECT') { - fieldTypeName = fieldType.options[fieldType.selectedIndex].text.toLowerCase(); - } else { - fieldTypeName = fieldTypeName.replace('_', ' '); - } - fieldTypeName = normalizeFieldName(fieldTypeName); - setTimeout(function () { - if (setting.value.toLowerCase() === fieldTypeName) { - setting.select(); - } else { - setting.focus(); - } - }, 50); - } - } - function clickDescription() { - /*jshint validthis:true */ - var setting = document.querySelectorAll('[data-changeme="' + this.id + '"]')[0]; - if (typeof setting !== 'undefined') { - setTimeout(function () { - setting.focus(); - autoExpandSettings(setting); - }, 50); - } - } - function autoExpandSettings(setting) { - var inSection = setting.closest('.frm-collapse-me'); - if (inSection !== null) { - inSection.previousElementSibling.classList.remove('frm-collapsed'); - } - } - function normalizeFieldName(fieldTypeName) { - if (fieldTypeName === 'divider') { - fieldTypeName = 'section'; - } else if (fieldTypeName === 'range') { - fieldTypeName = 'slider'; - } else if (fieldTypeName === 'data') { - fieldTypeName = 'dynamic'; - } else if (fieldTypeName === 'form') { - fieldTypeName = 'embed form'; - } - return fieldTypeName; - } - function clickVis(e) { - /*jshint validthis:true */ - var currentClass, originalList; - currentClass = e.target.classList; - if (currentClass.contains('frm-collapse-page') || currentClass.contains('frm-sub-label') || e.target.closest('.dropdown') !== null) { - return; - } - if (this.closest('.start_divider') !== null) { - e.stopPropagation(); - } - if (this.classList.contains('edit_field_type_divider')) { - originalList = e.originalEvent.target.closest('ul.frm_sorting'); - if (null !== originalList) { - // prevent section click if clicking a field group within a section. - if (originalList.classList.contains('edit_field_type_divider') || originalList.parentNode.parentNode.classList.contains('start_divider')) { - return; - } - } - } - clickAction(this); - } - - /** - * Update the format input based on the selected format type. - * - * @since 6.9 - * - * @param {Event} event The event object from the format type selection. - * @return {void} - */ - function maybeUpdateFormatInput(event) { - var formatElement = event.target; - var type = formatElement.value; - if ('custom' === type) { - var fieldId = formatElement.dataset.fieldId; - var formatInput = document.getElementById("frm-field-format-custom-".concat(fieldId)).querySelector('.frm_format_opt'); - if ('international' === formatInput.value || 'currency' === formatInput.value || 'number' === formatInput.value) { - formatInput.setAttribute('value', ''); - } - } - setTimeout(function () { - formatElement.querySelectorAll('option').forEach(function (option) { - if (option.selected && option.classList.contains('frm_show_upgrade')) { - formatElement.value = 'none'; - } - }); - }, 0); - } - - /** - * Open Advanced settings on double click. - */ - function openAdvanced() { - var fieldId = this.getAttribute('data-fid'); - autoExpandSettings(document.getElementById('field_options_field_key_' + fieldId)); - } - function toggleRepeatButtons() { - /*jshint validthis:true */ - var $thisField = jQuery(this).closest('.frm_field_box'); - $thisField.find('.repeat_icon_links').removeClass('repeat_format repeat_formatboth repeat_formattext').addClass('repeat_format' + this.value); - if (this.value === 'text' || this.value === 'both') { - $thisField.find('.frm_repeat_text').show(); - $thisField.find('.repeat_icon_links a').addClass('frm_button'); - } else { - $thisField.find('.frm_repeat_text').hide(); - $thisField.find('.repeat_icon_links a').removeClass('frm_button'); - } - } - function checkRepeatLimit() { - /*jshint validthis:true */ - var val = this.value; - if (val !== '' && (val < 2 || val > 200)) { - infoModal(frmAdminJs.repeat_limit_min); - this.value = ''; - } - } - function checkCheckboxSelectionsLimit() { - /*jshint validthis:true */ - var val = this.value; - if (val !== '' && (val < 1 || val > 200)) { - infoModal(frmAdminJs.checkbox_limit); - this.value = ''; - } - } - function updateRepeatText(obj, addRemove) { - var $thisField = jQuery(obj).closest('.frm_field_box'); - $thisField.find('.frm_' + addRemove + '_form_row .frm_repeat_label').text(obj.value); - } - function fieldsInSection(id) { - var children = []; - jQuery(document.getElementById('frm_field_id_' + id)).find('li.frm_field_box:not(.no_repeat_section .edit_field_type_end_divider)').each(function () { - children.push(jQuery(this).data('fid')); - }); - return children; - } - function toggleFormTax() { - /*jshint validthis:true */ - var id = jQuery(this).closest('.frm-single-settings').data('fid'); - var val = this.value; - var $showFields = document.getElementById('frm_show_selected_fields_' + id); - var $showForms = document.getElementById('frm_show_selected_forms_' + id); - jQuery($showForms).find('select').val(''); - if (val === 'form') { - $showForms.style.display = 'inline'; - empty($showFields); - } else { - $showFields.style.display = 'none'; - $showForms.style.display = 'none'; - getTaxOrFieldSelection(val, id); - } - } - function resetOptOnChange() { - /*jshint validthis:true */ - var field, thisOpt; - field = getFieldKeyFromOpt(this); - if (!field) { - return; - } - thisOpt = jQuery(this).closest('.frm_single_option'); - resetSingleOpt(field.fieldId, field.fieldKey, thisOpt); - } - function getFieldKeyFromOpt(object) { - var allOpts, fieldId, fieldKey; - allOpts = jQuery(object).closest('.frm_sortable_field_opts'); - if (!allOpts.length) { - return false; - } - fieldId = allOpts.attr('id').replace('frm_field_', '').replace('_opts', ''); - fieldKey = allOpts.data('key'); - return { - fieldId: fieldId, - fieldKey: fieldKey - }; - } - function resetSingleOpt(fieldId, fieldKey, thisOpt) { - var saved, - text, - defaultVal, - previewInput, - labelForDisplay, - optContainer, - optKey = thisOpt.data('optkey'), - separateValues = usingSeparateValues(fieldId), - single = jQuery('label[for="field_' + fieldKey + '-' + optKey + '"]'), - baseName = 'field_options[options_' + fieldId + '][' + optKey + ']', - label = jQuery('input[name="' + baseName + '[label]"]'); - if (single.length < 1) { - resetDisplayedOpts(fieldId); - - // Set the default value. - defaultVal = thisOpt.find('input[name^="default_value_"]'); - if (defaultVal.is(':checked') && label.length > 0) { - jQuery('select[name^="item_meta[' + fieldId + ']"]').val(label.val()); - } - return; - } - previewInput = single.children('input'); - if (label.length < 1) { - // Check for other label. - label = jQuery('input[name="' + baseName + '"]'); - saved = label.val(); - } else if (separateValues) { - saved = jQuery('input[name="' + baseName + '[value]"]').val(); - } else { - saved = label.val(); - } - if (label.length < 1) { - return; - } - - // Set the displayed value. - text = single[0].childNodes; - if (imagesAsOptions(fieldId)) { - labelForDisplay = getImageDisplayValue(thisOpt, fieldId, label); - optContainer = single.find('.frm_image_option_container'); - if (optContainer.length > 0) { - optContainer.replaceWith(labelForDisplay); - } else { - text[text.length - 1].nodeValue = ''; - single.append(labelForDisplay); - } - } else { - var firstInputIndex = false; - text.forEach(function (node, index) { - if (firstInputIndex === false) { - if (node.tagName === 'INPUT') { - firstInputIndex = index; - } - } else if (index === firstInputIndex + 1) { - var nodeValue = ''; - if (buttonsAsOptions(fieldId)) { - nodeValue = div({ - className: 'frm_label_button_container', - text: ' ' + label.val() - }); - single[0].replaceChild(nodeValue, node); - } else { - node.nodeValue = ' ' + label.val(); - } - } else { - single[0].removeChild(node); - } - }); - } - - // Set saved value. - previewInput.val(saved); - - // Set the default value. - defaultVal = thisOpt.find('input[name^="default_value_"]'); - previewInput.prop('checked', defaultVal.is(':checked') ? true : false); - } - function buttonsAsOptions(fieldId) { - var fields = document.getElementsByName('field_options[image_options_' + fieldId + ']'); - var result = Array.from(fields).find(function (field) { - return field.checked && 'buttons' === field.value; - }); - return typeof result !== 'undefined'; - } - - /** - * Set the displayed value for an image option. - */ - function getImageDisplayValue(thisOpt, fieldId, label) { - var image, imageUrl, showLabelWithImage, fieldType; - image = thisOpt.find('img'); - if (image) { - imageUrl = image.attr('src'); - } - showLabelWithImage = showingLabelWithImage(fieldId); - fieldType = radioOrCheckbox(fieldId); - return getImageLabel(label.val(), showLabelWithImage, imageUrl, fieldType); - } - function getImageOptionSize(fieldId) { - var val, - field = document.getElementById('field_options_image_size_' + fieldId), - size = ''; - if (field !== null) { - val = field.value; - if (val !== '') { - size = val; - } - } - return size; - } - function resetDisplayedOpts(fieldId) { - var i, - opts, - type, - placeholder, - fieldInfo, - input = jQuery('[name^="item_meta[' + fieldId + ']"]'); - if (input.length < 1) { - return; - } - if (input.is('select')) { - placeholder = document.getElementById('frm_placeholder_' + fieldId); - if (placeholder !== null && placeholder.value === '') { - fillDropdownOpts(input[0], { - sourceID: fieldId - }); - } else { - fillDropdownOpts(input[0], { - sourceID: fieldId, - placeholder: placeholder.value - }); - } - } else { - opts = getMultipleOpts(fieldId); - jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields').html(''); - fieldInfo = getFieldKeyFromOpt(jQuery('#frm_delete_field_' + fieldId + '-000_container')); - var container = jQuery('#field_' + fieldId + '_inner_container > .frm_form_fields'), - hasImageOptions = imagesAsOptions(fieldId), - imageSize = hasImageOptions ? getImageOptionSize(fieldId) : '', - imageOptionClass = hasImageOptions ? 'frm_image_option frm_image_' + imageSize + ' ' : '', - isProduct = isProductField(fieldId); - type = 'hidden' === input.attr('type') ? input.data('field-type') : input.attr('type'); - for (i = 0; i < opts.length; i++) { - container.append(addRadioCheckboxOpt(type, opts[i], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass)); - } - } - adjustConditionalLogicOptionOrders(fieldId); - } - - /** - * Returns an object that has a value and label for new conditional logic option, for a given option value. - * - * @param {Number} fieldId - * @param {string} expectedOption - * @return {Object} - */ - function getNewConditionalLogicOption(fieldId, expectedOption) { - var optionsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); - var expectedOptionInput = optionsContainer.querySelector('input[value="' + expectedOption + '"]'); - if (expectedOptionInput) { - return getChoiceNewValueAndLabel(expectedOptionInput); - } - return { - newValue: expectedOption, - newLabel: expectedOption - }; - } - function adjustConditionalLogicOptionOrders(fieldId, type) { - var row, - opts, - logicId, - valueSelect, - optionLength, - optionIndex, - expectedOption, - optionMatch, - fieldOptions, - rows = builderPage.querySelectorAll('.frm_logic_row'), - rowLength = rows.length; - fieldOptions = wp.hooks.applyFilters('frm_conditional_logic_field_options', getFieldOptions(fieldId), { - type: type, - fieldId: fieldId - }); - optionLength = fieldOptions.length; - for (rowIndex = 0; rowIndex < rowLength; rowIndex++) { - row = rows[rowIndex]; - opts = row.querySelector('.frm_logic_field_opts'); - if (opts.value != fieldId) { - continue; - } - logicId = row.id.split('_')[2]; - valueSelect = row.querySelector('select[name="field_options[hide_opt_' + logicId + '][]"]'); - for (optionIndex = optionLength - 1; optionIndex >= 0; optionIndex--) { - var _document$getElementB3; - expectedOption = fieldOptions[optionIndex]; - var expectedOptionValue = (_document$getElementB3 = document.getElementById('frm_field_' + fieldId + '_opts').querySelector('.frm_option_key input[type="text"]')) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.value; - if (!expectedOptionValue) { - expectedOptionValue = expectedOption; - } - optionMatch = valueSelect.querySelector('option[value="' + expectedOptionValue + '"]'); - var _getNewConditionalLog = getNewConditionalLogicOption(fieldId, expectedOption), - newValue = _getNewConditionalLog.newValue, - newLabel = _getNewConditionalLog.newLabel; - var fieldChoices = document.querySelectorAll('#frm_field_' + fieldId + '_opts input[data-value-on-focus]'); - var expectedChoiceEl = Array.from(fieldChoices).find(function (element) { - return element.value === expectedOption; - }); - if (expectedChoiceEl) { - var oldValue = expectedChoiceEl.dataset.valueOnFocus; - var hasMatch = oldValue && valueSelect.querySelector('option[value="' + oldValue + '"]'); - if (hasMatch) { - continue; - } - } - prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel); - } - optionMatch = valueSelect.querySelector('option[value=""]'); - if (optionMatch !== null) { - valueSelect.prepend(optionMatch); - } - } - } - function prependValueSelectWithOptionMatch(valueSelect, optionMatch, newValue, newLabel) { - if (optionMatch === null && !valueSelect.querySelector('option[value="' + newValue + '"]')) { - optionMatch = frmDom.tag('option', { - text: newLabel - }); - optionMatch.value = newValue; - } - valueSelect.prepend(optionMatch); - } - function getFieldOptions(fieldId) { - var index, - input, - li, - listItems, - optsContainer, - length, - options = []; - optsContainer = document.getElementById('frm_field_' + fieldId + '_opts'); - if (!optsContainer) { - return options; - } - listItems = optsContainer.querySelectorAll('.frm_single_option'); - length = listItems.length; - for (index = 0; index < length; index++) { - li = listItems[index]; - if (li.classList.contains('frm_hidden')) { - continue; - } - input = li.querySelector('.field_' + fieldId + '_option'); - options.push(input.value); - } - return options; - } - function addRadioCheckboxOpt(type, opt, fieldId, fieldKey, isProduct, classes) { - var other, - single = '', - isOther = opt.key.indexOf('other') !== -1, - id = 'field_' + fieldKey + '-' + opt.key, - inputType = type === 'scale' ? 'radio' : type; - other = ''; - this.getSingle = function () { - /** - * Get single option template. - * - * @param {Object} option Object containing the option data. - * @param {string} type The field type. - * @param {string} fieldId The field id. - * @param {string} classes The option clasnames. - * @param {string} id The input id attribute. - */ - single = wp.hooks.applyFilters('frm_admin.build_single_option_template', single, { - opt: opt, - type: type, - fieldId: fieldId, - classes: classes, - id: id - }); - if ('' !== single) { - return single; - } - return '
                                    ' + (isOther ? other : '') + '
                                    '; - }; - return this.getSingle(); - } - function fillDropdownOpts(field, atts) { - if (field === null) { - return; - } - var sourceID = atts.sourceID, - placeholder = atts.placeholder, - isProduct = isProductField(sourceID), - showOther = atts.other; - removeDropdownOpts(field); - var opts = getMultipleOpts(sourceID), - hasPlaceholder = typeof placeholder !== 'undefined'; - for (var _i11 = 0; _i11 < opts.length; _i11++) { - var label = opts[_i11].label, - isOther = opts[_i11].key.indexOf('other') !== -1; - if (hasPlaceholder && label !== '') { - addBlankSelectOption(field, placeholder); - } else if (hasPlaceholder) { - label = placeholder; - } - hasPlaceholder = false; - if (!isOther || showOther) { - var opt = document.createElement('option'); - opt.value = opts[_i11].saved; - opt.innerHTML = purifyHtml(label); - if (isProduct) { - opt.setAttribute('data-price', opts[_i11].price); - } - field.appendChild(opt); - } - } - } - function addBlankSelectOption(field, placeholder) { - var opt = document.createElement('option'), - firstChild = field.firstChild; - opt.value = ''; - opt.innerHTML = placeholder; - if (firstChild !== null) { - field.insertBefore(opt, firstChild); - field.selectedIndex = 0; - } else { - field.appendChild(opt); - } - } - function getMultipleOpts(fieldId) { - var i, - saved, - labelName, - label, - key, - optObj, - fieldType, - checked = false, - opts = [], - imageUrl = ''; - var optVals = jQuery('input[name^="field_options[options_' + fieldId + ']"]'); - var isProduct = isProductField(fieldId); - var showLabelWithImage = showingLabelWithImage(fieldId); - var hasImageOptions = imagesAsOptions(fieldId); - var separateValues = usingSeparateValues(fieldId); - for (i = 0; i < optVals.length; i++) { - if (optVals[i].name.indexOf('[000]') > 0 || optVals[i].name.indexOf('[value]') > 0 || optVals[i].name.indexOf('[image]') > 0 || optVals[i].name.indexOf('[price]') > 0) { - continue; - } - saved = optVals[i].value; - label = saved; - key = optVals[i].name.replace('field_options[options_' + fieldId + '][', '').replace('[label]', '').replace(']', ''); - if (separateValues) { - labelName = optVals[i].name.replace('[label]', '[value]'); - saved = jQuery('input[name="' + labelName + '"]').val(); - } - if (hasImageOptions) { - imageUrl = getImageUrlFromInput(optVals[i]); - fieldType = radioOrCheckbox(fieldId); - label = getImageLabel(label, showLabelWithImage, imageUrl, fieldType); - } - - /** - * @since 5.0.04 - */ - label = frmAdminBuild.hooks.applyFilters('frm_choice_field_label', label, fieldId, optVals[i], hasImageOptions); - checked = getChecked(optVals[i].id); - optObj = { - saved: saved, - label: label, - checked: checked, - key: key - }; - if (isProduct) { - labelName = optVals[i].name.replace('[label]', '[price]'); - optObj.price = jQuery('input[name="' + labelName + '"]').val(); - } - opts.push(optObj); - } - return opts; - } - function radioOrCheckbox(fieldId) { - var settings = document.getElementById('frm-single-settings-' + fieldId); - if (settings === null) { - return 'radio'; - } - return settings.classList.contains('frm-type-checkbox') ? 'checkbox' : 'radio'; - } - function getImageUrlFromInput(optVal) { - var img, - wrapper = jQuery(optVal).siblings('.frm_image_preview_wrapper'); - if (!wrapper.length) { - return ''; - } - img = wrapper.find('img'); - if (!img.length) { - return ''; - } - return img.attr('src'); - } - function purifyHtml(html) { - if (html instanceof Element || html instanceof Document) { - html = html.outerHTML; - } - var clean = jQuery.parseHTML(html).reduce(function (total, currentNode) { - var cleanNode = frmDom.cleanNode(currentNode); - if ('#text' === cleanNode.nodeName) { - return total += cleanNode.textContent; - } - return total + cleanNode.outerHTML; - }, ''); - if (clean !== html) { - // Clean it until nothing changes, in case the stripped result is now unsafe. - return purifyHtml(clean); - } - return clean; - } - function getImageLabel(label, showLabelWithImage, imageUrl, fieldType) { - var imageLabelClass, - originalLabel = label, - shape = fieldType === 'checkbox' ? 'square' : 'circle', - labelImage, - labelNode, - imageLabel; - originalLabel = purifyHtml(originalLabel); - if (imageUrl) { - labelImage = img({ - src: imageUrl, - alt: originalLabel - }); - } else { - labelImage = div({ - className: 'frm_empty_url' - }); - labelImage.innerHTML = frmAdminJs.image_placeholder_icon; - } - imageLabelClass = showLabelWithImage ? ' frm_label_with_image' : ''; - imageLabel = tag('span', { - className: 'frm_text_label_for_image_inner' - }); - imageLabel.innerHTML = originalLabel; - labelNode = tag('span', { - className: 'frm_image_option_container' + imageLabelClass, - children: [labelImage, tag('span', { - className: 'frm_text_label_for_image', - child: imageLabel - })] - }); - return labelNode; - } - function getChecked(id) { - field = jQuery('#' + id); - if (field.length === 0) { - return false; - } - checkbox = field.siblings('input[type=checkbox]'); - return checkbox.length && checkbox.prop('checked'); - } - function removeDropdownOpts(field) { - var i; - if (typeof field.options === 'undefined') { - return; - } - for (i = field.options.length - 1; i >= 0; i--) { - field.remove(i); - } - } - - /** - * Is the box checked to use separate values? - */ - function usingSeparateValues(fieldId) { - return isChecked('separate_value_' + fieldId); - } - - /** - * Is the box checked to use images as options? - */ - function imagesAsOptions(fieldId) { - var checked = false, - field = document.getElementsByName('field_options[image_options_' + fieldId + ']'); - for (var _i12 = 0; _i12 < field.length; _i12++) { - if (field[_i12].checked) { - checked = '0' !== field[_i12].value; - } - } - - /** - * @since 5.0.04 - */ - return frmAdminBuild.hooks.applyFilters('frm_choice_field_images_as_options', checked, fieldId); - } - function showingLabelWithImage(fieldId) { - var isShowing = !isChecked('hide_image_text_' + fieldId); - - /** - * @since 5.0.04 - */ - return frmAdminBuild.hooks.applyFilters('frm_choice_field_showing_label_with_image', isShowing, fieldId); - } - function isChecked(id) { - var field = document.getElementById(id); - if (field === null) { - return false; - } - return field.checked; - } - function checkUniqueOpt(targetInput) { - var settingsContainer = targetInput.closest('.frm-single-settings'); - var fieldId = settingsContainer.getAttribute('data-fid'); - var areValuesSeparate = settingsContainer.querySelector('[name="field_options[separate_value_' + fieldId + ']"]').checked; - if (areValuesSeparate && !targetInput.name.endsWith('[value]')) { - return; - } - var container = document.getElementById('frm_field_' + fieldId + '_opts'); - var conflicts = Array.from(container.querySelectorAll('input[type="text"]')).filter(function (input) { - return input.id !== targetInput.id && areValuesSeparate === input.name.endsWith('[value]') && input.value === targetInput.value; - }); - if (conflicts.length) { - /* translators: %s: The detected option value. */ - infoModal(sprintf(__('Duplicate option value "%s" detected', 'formidable'), purifyHtml(targetInput.value))); - } - } - function getFieldValues() { - /*jshint validthis:true */ - var isTaxonomy, - val = this.value; - if (val) { - var parentIDs = this.parentNode.id.replace('frm_logic_', '').split('_'); - var fieldID = parentIDs[0]; - var metaKey = parentIDs[1]; - var valueField = document.getElementById('frm_field_id_' + val); - var valueFieldType = valueField.getAttribute('data-ftype'); - var fill = document.getElementById('frm_show_selected_values_' + fieldID + '_' + metaKey); - var optionName = 'field_options[hide_opt_' + fieldID + '][]'; - var optionID = 'frm_field_logic_opt_' + fieldID; - var input = false; - var showSelect = valueFieldType === 'select' || valueFieldType === 'checkbox' || valueFieldType === 'radio'; - var showText = valueFieldType === 'text' || valueFieldType === 'email' || valueFieldType === 'phone' || valueFieldType === 'url' || valueFieldType === 'number'; - if (showSelect) { - isTaxonomy = document.getElementById('frm_has_hidden_options_' + val); - if (isTaxonomy !== null) { - // get the category options with ajax - showSelect = false; - } - } - if (showSelect || showText) { - var comparison = document.querySelector("#frm_logic_".concat(fieldID, "_").concat(metaKey, " [name=\"field_options[hide_field_cond_").concat(fieldID, "][]\"]")).value; - fill.innerHTML = ''; - var creatingValuesDropdown = showSelect && !['LIKE', 'not LIKE', 'LIKE%', '%LIKE'].includes(comparison); - if (creatingValuesDropdown) { - input = document.createElement('select'); - } else { - input = document.createElement('input'); - input.type = 'text'; - } - input.name = optionName; - input.id = optionID + '_' + metaKey; - fill.appendChild(input); - if (creatingValuesDropdown) { - var fillField = document.getElementById(input.id); - fillDropdownOpts(fillField, { - sourceID: val, - placeholder: '', - other: true - }); - } - } else { - var thisType = this.getAttribute('data-type'); - var callback = function callback() { - var event = new CustomEvent('frm_logic_options_loaded'); - event.frmData = { - valueFieldType: valueFieldType, - fieldID: fieldID, - metaKey: metaKey - }; - document.dispatchEvent(event); - }; - frmGetFieldValues(val, fieldID, metaKey, thisType, undefined, callback); - } - } - } - function getFieldSelection() { - /*jshint validthis:true */ - var formId = this.value; - if (formId) { - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - getTaxOrFieldSelection(formId, fieldId); - } - } - function getTaxOrFieldSelection(formId, fieldId) { - if (formId) { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_get_field_selection', - field_id: fieldId, - form_id: formId, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - var $selectedFields = jQuery('#frm_show_selected_fields_' + fieldId); - $selectedFields.toggleClass('frm6', !msg.includes('frm-inline-message')); - $selectedFields.html(msg).show(); - } - }); - } - } - function updateFieldOrder() { - var self = this; - this.initOnceInAllInstances = function () { - if ('undefined' !== typeof updateFieldOrder.prototype.orderFieldsObject) { - return; - } - - // It will store the order input fields ( input[name="field_options[field_order_{fieldId}]"] ). - // It will help to reduce the DOM searches based on fieldId. - // The same object data is used across all "updateFieldOrder" instances. - updateFieldOrder.prototype.orderFieldsObject = {}; - - // Get the Form group that will handle the fields settings. - // Perform a single DOM search and use it across all "updateFieldOrder" instances. - updateFieldOrder.prototype.fieldSettingsForm = document.getElementById('frm-end-form-marker').closest('form'); - }; - this.getFieldOrderInputById = function (fieldId, parent) { - var field; - var orderFieldsObject = updateFieldOrder.prototype.orderFieldsObject; - var fieldSettingsForm = updateFieldOrder.prototype.fieldSettingsForm; - if ('undefined' === typeof orderFieldsObject[fieldId]) { - field = fieldSettingsForm.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); - if (null === field) { - field = parent.querySelector('input[name="field_options[field_order_' + fieldId + ']"]'); - } - orderFieldsObject[fieldId] = field; - return field; - } - return orderFieldsObject[fieldId]; - }; - this.initOnceInAllInstances(); - renumberPageBreaks(); - return function () { - var fieldId, - field, - currentOrder, - newOrder, - moveFieldsClass = new moveFieldSettings(), - fields = jQuery('li.frm_field_box', jQuery('#frm-show-fields')); - for (i = 0; i < fields.length; i++) { - fieldId = fields[i].getAttribute('data-fid'); - field = self.getFieldOrderInputById(fieldId, fields[i]); - - // get current field order, make sure we don't get the "field" reference as the "field" value will get updated later. - currentOrder = null !== field ? Object.assign({}, field.value)[0] : null; - newOrder = i + 1; - if (currentOrder != newOrder && null !== currentOrder) { - field.value = newOrder; - singleField = fields[i].querySelector('#frm-single-settings-' + fieldId); - - // add field that needs to be moved to "updateFieldOrder.prototype.fieldSettingsForm" - moveFieldsClass.append(singleField); - fieldUpdated(); - } - } - // move all appended fields - moveFieldsClass.moveFields(); - }(); - } - function toggleSectionHolder() { - document.querySelectorAll('.start_divider').forEach(function (divider) { - toggleOneSectionHolder(jQuery(divider)); - }); - } - function toggleOneSectionHolder($section) { - var noSectionFields, $rows, length, index, sectionHasFields; - if (!$section.length) { - return; - } - $rows = $section.find('ul.frm_sorting'); - sectionHasFields = false; - length = $rows.length; - for (index = 0; index < length; ++index) { - if (0 !== getFieldsInRow(jQuery($rows.get(index))).length) { - sectionHasFields = true; - break; - } - } - noSectionFields = $section.parent().children('.frm_no_section_fields').get(0); - noSectionFields.classList.toggle('frm_block', !sectionHasFields); - } - function handleShowPasswordLiveUpdate() { - frmDom.util.documentOn('change', '.frm_show_password_setting_input', function (event) { - var fieldId = event.target.getAttribute('data-fid'); - var fieldEl = document.getElementById('frm_field_id_' + fieldId); - if (!fieldEl) { - return; - } - fieldEl.classList.toggle('frm_disabled_show_password', !event.target.checked); - }); - } - function slideDown() { - /*jshint validthis:true */ - var id = jQuery(this).data('slidedown'); - var $thisId = jQuery(document.getElementById(id)); - if ($thisId.is(':hidden')) { - $thisId.slideDown('fast'); - this.style.display = 'none'; - } - return false; - } - function slideUp() { - /*jshint validthis:true */ - var id = jQuery(this).data('slideup'); - var $thisId = jQuery(document.getElementById(id)); - $thisId.slideUp('fast'); - $thisId.siblings('a').show(); - return false; - } - function adjustVisibilityValuesForEveryoneValues(element, option) { - if ('' === option.getAttribute('value')) { - onEveryoneOptionSelected(jQuery(this)); - } else { - unselectEveryoneOptionIfSelected(jQuery(this)); - } - } - function onEveryoneOptionSelected($select) { - $select.val(''); - $select.next('.btn-group').find('.multiselect-container input[value!=""]').prop('checked', false); - } - function unselectEveryoneOptionIfSelected($select) { - var selectedValues = $select.val(), - index; - if (selectedValues === null) { - $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', true); - onEveryoneOptionSelected($select); - return; - } - index = selectedValues.indexOf(''); - if (index >= 0) { - selectedValues.splice(index, 1); - $select.val(selectedValues); - $select.next('.btn-group').find('.multiselect-container input[value=""]').prop('checked', false); - } - } - - /** - * Get rid of empty container that inserts extra space. - */ - function hideEmptyEle() { - jQuery('.frm-hide-empty').each(function () { - if (jQuery(this).text().trim().length === 0) { - jQuery(this).remove(); - } - }); - } - - /* Change the classes in the builder */ - function changeFieldClass(field, setting) { - var classes, - replace, - alignField, - replaceWith = ' ' + setting.value, - fieldId = field.getAttribute('data-fid'); - - // Include classes from multiple settings. - if (typeof fieldId !== 'undefined') { - if (setting.classList.contains('field_options_align')) { - replaceWith += ' ' + document.getElementById('frm_classes_' + fieldId).value; - } else if (setting.classList.contains('frm_classes')) { - alignField = document.getElementById('field_options_align_' + fieldId); - if (alignField !== null) { - replaceWith += ' ' + alignField.value; - } - } - } - replaceWith += ' '; - - // Allow for the column number dropdown. - replaceWith = replaceWith.replace(' block ', ' vertical_radio ').replace(' inline ', ' horizontal_radio '); - classes = field.className.split(' frmstart ')[1]; - classes = 0 === classes.indexOf('frmend ') ? '' : classes.split(' frmend ')[0]; - if (classes.trim() === '') { - replace = ' frmstart frmend '; - if (-1 === field.className.indexOf(replace)) { - replace = ' frmstart frmend '; - } - replaceWith = ' frmstart ' + replaceWith.trim() + ' frmend '; - } else { - replace = classes.trim(); - replaceWith = replaceWith.trim(); - } - field.className = field.className.replace(replace, replaceWith); - } - function maybeShowInlineModal(e) { - /*jshint validthis:true */ - e.preventDefault(); - showInlineModal(this, undefined, e); - } - function showInlineModal(icon, input, event) { - var box = document.getElementById(icon.getAttribute('data-open')), - container = jQuery(icon).closest('p,ul'), - inputTrigger = typeof input !== 'undefined'; - if (container.hasClass('frm-open')) { - container.removeClass('frm-open'); - box.classList.add('frm_hidden'); - } else { - if (!inputTrigger) { - input = getInputForIcon(icon); - } - if (input !== null) { - if (!inputTrigger) { - var key = event.key; - if (key !== 'Enter' && key !== ' ') { - input.focus(); - } - } - container.after(box); - box.setAttribute('data-fills', input.id.replace('-proxy-input', '')); - if (box.id.indexOf('frm-calc-box') === 0) { - popCalcFields(box, true); - } - } - container.addClass('frm-open'); - box.classList.remove('frm_hidden'); - - /** - * @since 6.4.1 - */ - wp.hooks.doAction('frm_show_inline_modal', box, icon); - } - } - function dismissInlineModal(e) { - /*jshint validthis:true */ - e.preventDefault(); - this.parentNode.classList.add('frm_hidden'); - jQuery('.frm-open [data-open="' + this.parentNode.id + '"]').closest('.frm-open').removeClass('frm-open'); - } - - /** - * Close frm-modal-no-dismiss element when clicking outside of it - * - * @param {Event} event The click event - */ - function closeModalOnOutsideClick(_ref3) { - var target = _ref3.target; - if (target.closest('.frm-inline-modal.frm-modal-no-dismiss') || target.closest('.frm-show-inline-modal') || target.closest('#frm_adv_info') || target.closest('.frm-token-proxy-input')) { - return; - } - - // Close all inline modals (without close button) that are not hidden - document.querySelectorAll('.frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)').forEach(function (modal) { - modal.classList.add('frm_hidden'); - modal.previousElementSibling.classList.remove('frm-open'); - }); - } - function changeInputtedValue() { - /*jshint validthis:true */ - var i, - action = this.getAttribute('data-frmchange').split(','); - for (i = 0; i < action.length; i++) { - if (action[i] === 'updateOption') { - changeHiddenSeparateValue(this); - } else if (action[i] === 'updateDefault') { - changeDefaultRadioValue(this); - } else if (action[i] === 'checkUniqueOpt') { - checkUniqueOpt(this); - } else { - this.value = this.value[action[i]](); - } - } - } - - /** - * When the saved value is changed, update the default value radio. - */ - function changeDefaultRadioValue(input) { - var parentLi = getOptionParent(input), - key = parentLi.getAttribute('data-optkey'), - fieldId = getOptionFieldId(parentLi, key), - defaultRadio = parentLi.querySelector('input[name="default_value_' + fieldId + '"]'); - if (defaultRadio !== null) { - defaultRadio.value = input.value; - } - } - - /** - * If separate values are not enabled, change the saved value when - * the displayed value is changed. - */ - function changeHiddenSeparateValue(input) { - var savedVal, - parentLi = getOptionParent(input), - key = parentLi.getAttribute('data-optkey'), - fieldId = getOptionFieldId(parentLi, key), - sep = document.getElementById('separate_value_' + fieldId); - if (sep !== null && sep.checked === false) { - // If separate values are not turned on. - savedVal = document.getElementById('field_key_' + fieldId + '-' + key); - savedVal.value = input.value; - changeDefaultRadioValue(savedVal); - } - } - function getOptionParent(input) { - var parentLi = input.parentNode; - if (parentLi.tagName !== 'LI') { - parentLi = parentLi.parentNode; - } - return parentLi; - } - function getOptionFieldId(li, key) { - var liId = li.id; - return liId.replace('frm_delete_field_', '').replace('-' + key + '_container', ''); - } - function submitBuild() { - /*jshint validthis:true */ - var $thisEle = this; - if (showNameYourFormModal()) { - return; - } - preFormSave(this); - var $form = jQuery(builderForm); - var v = JSON.stringify($form.serializeArray()); - jQuery(document.getElementById('frm_compact_fields')).val(v); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_save_form', - frm_compact_fields: v, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - afterFormSave($thisEle); - var $postStuff = document.getElementById('post-body-content'); - var $html = document.createElement('div'); - $html.setAttribute('class', 'frm_updated_message'); - $html.innerHTML = msg; - $postStuff.insertBefore($html, $postStuff.firstChild); - reloadIfAddonActivatedAjaxSubmitOnly(); - }, - error: function error() { - triggerSubmit(document.getElementById('frm_js_build_form')); - } - }); - } - function triggerSubmit(form) { - var button = form.ownerDocument.createElement('input'); - button.style.display = 'none'; - button.type = 'submit'; - form.appendChild(button).click(); - form.removeChild(button); - } - function triggerChange(element) { - jQuery(element).trigger('change'); - } - function submitNoAjax() { - /*jshint validthis:true */ - var form; - if (showNameYourFormModal()) { - return; - } - preFormSave(this); - form = jQuery(builderForm); - jQuery(document.getElementById('frm_compact_fields')).val(JSON.stringify(form.serializeArray())); - triggerSubmit(document.getElementById('frm_js_build_form')); - } - - /** - * Display a modal dialog for naming a new form template, if applicable. - * - * @return {boolean} True if the modal is successfully initialized and displayed; false otherwise. - */ - function showNameYourFormModal() { - // Exit early if the 'new_template' URL parameter is not set to 'true' - if (!shouldShowNameYourFormNameModal()) { - return false; - } - var modalWidget = initModal('#frm-form-templates-modal', '440px'); - if (!modalWidget) { - return false; - } - - // Set the vertical offset for the modal and open it - offsetModalY(modalWidget, '72px'); - modalWidget.dialog('open'); - return true; - } - - /** - * Returns true if 'Name Your Form' modal should be displayed. - * - * @return {Boolean} - */ - function shouldShowNameYourFormNameModal() { - var _document$querySelect3; - var formNameInput = document.getElementById('frm_form_name'); - if (formNameInput && formNameInput.value.trim() !== '') { - return false; - } - return 'true' === urlParams.get('new_template') && ((_document$querySelect3 = document.querySelector('#frm_top_bar #frm_bs_dropdown .frm_bstooltip')) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.textContent.trim()) === frm_admin_js.noTitleText; // eslint-disable-line camelcase - } - - /** - * Manages event handling for the 'Name your form' modal. - * - * Attaches click and keydown event listeners to the save button and input field. - * - * @return {void} - */ - function addFormNameModalEvents() { - var saveFormNameButton = document.getElementById('frm-save-form-name-button'); - var newFormNameInput = document.getElementById('frm_new_form_name_input'); - - // Attach click event listener - onClickPreventDefault(saveFormNameButton, onSaveFormNameButton); - - // Attach keydown event listener - newFormNameInput.addEventListener('keydown', function (event) { - if (event.key === 'Enter') { - onSaveFormNameButton.call(this, event); - } - }); - } - - /** - * Handles the click event on the save form name button. - * - * @param {Event} event The click event object. - * @return {void} - */ - var onSaveFormNameButton = function onSaveFormNameButton(event) { - var newFormName = document.getElementById('frm_new_form_name_input').value.trim(); - - // Prepare FormData for the POST request - var formData = new FormData(); - formData.append('form_id', urlParams.get('id')); - formData.append('form_name', newFormName); - - // Perform the POST request - doJsonPost('rename_form', formData).then(function (data) { - // Remove the 'new_template' parameter from the URL and update the browser history - urlParams.delete('new_template'); - currentURL.search = urlParams.toString(); - history.replaceState({}, '', currentURL.toString()); - if (null !== document.getElementById('frm_notification_settings')) { - document.getElementById('frm_form_name').value = newFormName; - document.getElementById('frm_form_key').value = data.form_key; - } - - // Trigger the 'Save' button click using jQuery - jQuery('#frm-publishing').find('.frm_button_submit').trigger('click'); - }); - }; - function preFormSave(b) { - removeWPUnload(); - if (jQuery('form.inplace_form').length) { - jQuery('.inplace_save, .postbox').trigger('click'); - } - if (b.classList.contains('frm_button_submit')) { - b.classList.add('frm_loading_form'); - } else { - b.classList.add('frm_loading_button'); - } - b.setAttribute('aria-busy', 'true'); - adjustFormatInputBeforeSave(); - } - - /** - * Updates the format input based on the selected format type from dropdowns during the form save process. - * - * @since 6.9 - * - * @return {void} - */ - function adjustFormatInputBeforeSave() { - var formatTypes = document.querySelectorAll('.frm_format_dropdown, .frm_phone_type_dropdown'); - var valueMap = { - none: '', - international: 'international', - currency: 'currency', - number: 'number' - }; - formatTypes.forEach(function (formatType) { - var value = formatType.value; - if (value in valueMap) { - var formatInput = document.getElementById("frm_format_".concat(formatType.dataset.fieldId)); - formatInput.value = valueMap[value]; - } - }); - } - function afterFormSave(button) { - button.classList.remove('frm_loading_form'); - button.classList.remove('frm_loading_button'); - resetOptionTextDetails(); - fieldsUpdated = 0; - button.setAttribute('aria-busy', 'false'); - setTimeout(function () { - jQuery('.frm_updated_message').fadeOut('slow', function () { - this.parentNode.removeChild(this); - }); - }, 5000); - } - function initUpgradeModal() { - var $info = initModal('#frm_upgrade_modal'); - if ($info === false) { - return; - } - document.addEventListener('click', handleUpgradeClick); - frmDom.util.documentOn('change', 'select.frm_select_with_upgrade', handleUpgradeClick); - function handleUpgradeClick(event) { - var element, link, content; - element = event.target; - if (!element.classList) { - return; - } - var showExpiredModal = element.classList.contains('frm_show_expired_modal') || null !== element.querySelector('.frm_show_expired_modal') || element.closest('.frm_show_expired_modal'); - - // If a `select` element is clicked, check if the selected option has a 'data-upgrade' attribute - if (event.type === 'change' && element.classList.contains('frm_select_with_upgrade')) { - var selectedOption = element.options[element.selectedIndex]; - if (selectedOption && selectedOption.dataset.upgrade) { - element = selectedOption; - } - } - if (!element.dataset.upgrade) { - var parent = element.closest('[data-upgrade]'); - if (!parent) { - parent = element.closest('.frm_field_box'); - if (!parent) { - return; - } - // Fake it if it's missing to avoid error. - element.dataset.upgrade = ''; - } - element = parent; - } - if (showExpiredModal) { - var hookName = 'frm_show_expired_modal'; - wp.hooks.doAction(hookName, element); - return; - } - var upgradeLabel = element.dataset.upgrade; - if (!upgradeLabel || element.classList.contains('frm_show_upgrade_tab')) { - return; - } - event.preventDefault(); - var modal = $info.get(0); - var lockIcon = modal.querySelector('.frm_lock_icon'); - if (lockIcon) { - lockIcon.style.display = 'block'; - lockIcon.classList.remove('frm_lock_open_icon'); - lockIcon.querySelector('use').setAttribute('href', '#frm_lock_icon'); - } - var upgradeImageId = 'frm_upgrade_modal_image'; - var oldImage = document.getElementById(upgradeImageId); - if (oldImage) { - oldImage.remove(); - } - if (element.dataset.image) { - if (lockIcon) { - lockIcon.style.display = 'none'; - } - lockIcon.parentNode.insertBefore(img({ - id: upgradeImageId, - src: frmGlobal.url + '/images/' + element.dataset.image - }), lockIcon); - } - var level = modal.querySelector('.license-level'); - if (level) { - level.textContent = getRequiredLicenseFromTrigger(element); - } - - // If one click upgrade, hide other content - addOneClick(element, 'modal', upgradeLabel); - modal.querySelector('.frm_are_not_installed').style.display = element.dataset.image ? 'none' : 'inline-block'; - modal.querySelector('.frm_feature_label').textContent = upgradeLabel; - modal.querySelector('h2').style.display = 'block'; - $info.dialog('open'); - - // set the utm medium - var button = modal.querySelector('.button-primary:not(.frm-oneclick-button)'); - link = button.getAttribute('href').replace(/(medium=)[a-z_-]+/ig, '$1' + element.getAttribute('data-medium')); - content = element.getAttribute('data-content'); - if (content === null) { - content = ''; - } - link = link.replace(/(content=)[a-z_-]+/ig, '$1' + content); - button.setAttribute('href', link); - } - } - - /** - * Opens a basic modal with the given title and content. - * - * @param {Event} event The event object. - * @return {void} - */ - function showBasicModal(event) { - var _event$target$dataset; - var button = (_event$target$dataset = event.target.dataset) !== null && _event$target$dataset !== void 0 && _event$target$dataset.modalTitle ? event.target : event.target.closest('[data-modal-title]'); - if (!button) { - return; - } - var _button$dataset = button.dataset, - modalTitle = _button$dataset.modalTitle, - modalContent = _button$dataset.modalContent; - if (!modalTitle || !modalContent) { - return; - } - event.preventDefault(); - frmDom.modal.maybeCreateModal('frmBasicModal', { - title: modalTitle, - content: div({ - className: 'inside', - child: span(modalContent) - }) - }); - } - function getRequiredLicenseFromTrigger(element) { - if (element.dataset.requires) { - return element.dataset.requires; - } - return 'Pro'; - } - function populateUpgradeTab(element) { - var title = element.dataset.upgrade; - var tab = element.getAttribute('href').replace('#', ''); - var container = document.querySelector('.frm_' + tab) || document.querySelector('.' + tab); - if (!container) { - return; - } - if (container.querySelector('.frm-upgrade-message')) { - // Tab has already been populated. - return; - } - var h2 = container.querySelector('h2'); - h2.style.borderBottom = 'none'; - - /* translators: %s: Form Setting section name (ie Form Permissions, Form Scheduling). */ - h2.textContent = sprintf(__('%s are not installed', 'formidable'), title); - container.classList.add('frmcenter'); - var upgradeModal = document.getElementById('frm_upgrade_modal'); - appendClonedModalElementToContainer('frm-oneclick'); - appendClonedModalElementToContainer('frm-addon-status'); - - // Borrow the call to action from the Upgrade upgradeModal which should exist on the settings page (it is still used for other upgrades including Actions). - var upgradeModalLink = upgradeModal.querySelector('.frm-upgrade-link'); - if (upgradeModalLink) { - var upgradeButton = upgradeModalLink.cloneNode(true); - var level = upgradeButton.querySelector('.license-level'); - if (level) { - level.textContent = getRequiredLicenseFromTrigger(element); - } - container.appendChild(upgradeButton); - - // Maybe append the secondary "Already purchased?" link from the upgradeModal as well. - if (upgradeModalLink.nextElementSibling && upgradeModalLink.nextElementSibling.querySelector('.frm-link-secondary')) { - container.appendChild(upgradeModalLink.nextElementSibling.cloneNode(true)); - } - appendClonedModalElementToContainer('frm-oneclick-button'); - } - appendClonedModalElementToContainer('frm-upgrade-message'); - var upgradeLabel = element.dataset.message; - if (upgradeLabel === undefined) { - upgradeLabel = element.dataset.upgrade; - } - addOneClick(element, 'tab', upgradeLabel); - if (element.dataset.screenshot) { - container.appendChild(getScreenshotWrapper(element.dataset.screenshot)); - } - function appendClonedModalElementToContainer(className) { - container.appendChild(upgradeModal.querySelector('.' + className).cloneNode(true)); - } - } - function getScreenshotWrapper(screenshot) { - var folderUrl = frmGlobal.url + '/images/screenshots/'; - var wrapper = div({ - className: 'frm-settings-screenshot-wrapper', - children: [getToolbar(), div({ - child: img({ - src: folderUrl + screenshot - }) - })] - }); - function getToolbar() { - var children = getColorIcons(); - children.push(img({ - src: frmGlobal.url + '/images/tab.svg' - })); - return div({ - className: 'frm-settings-screenshot-toolbar', - children: children - }); - } - function getColorIcons() { - return ['#ED8181', '#EDE06A', '#80BE30'].map(function (color) { - var circle = div({ - className: 'frm-minmax-icon' - }); - circle.style.backgroundColor = color; - return circle; - }); - } - return wrapper; - } - - /** - * Allow addons to be installed from the upgrade modal. - * - * @param {Element} link - * @param {string} context Either 'modal' or 'tab'. - * @param {string|undefined} upgradeLabel - */ - function addOneClick(link, context, upgradeLabel) { - var container; - if ('modal' === context) { - container = document.getElementById('frm_upgrade_modal'); - } else if ('tab' === context) { - container = document.getElementById(link.getAttribute('href').substr(1)); - } else { - return; - } - var oneclickMessage = container.querySelector('.frm-oneclick'); - var upgradeMessage = container.querySelector('.frm-upgrade-message'); - var showLink = container.querySelector('.frm-upgrade-link'); - var button = container.querySelector('.frm-oneclick-button'); - var addonStatus = container.querySelector('.frm-addon-status'); - var oneclick = link.getAttribute('data-oneclick'); - var newMessage = link.getAttribute('data-message'); - var showIt = 'block'; - var showMsg = 'block'; - var hideIt = 'none'; - - // If one click upgrade, hide other content. - if (oneclickMessage !== null && typeof oneclick !== 'undefined' && oneclick) { - if (newMessage === null) { - showMsg = 'none'; - } - showIt = 'none'; - hideIt = 'block'; - oneclick = JSON.parse(oneclick); - button.className = button.className.replace(' frm-install-addon', '').replace(' frm-activate-addon', ''); - button.className = button.className + ' ' + oneclick.class; - button.rel = oneclick.url; - if (oneclick.class === 'frm-activate-addon') { - oneclickMessage.textContent = __('This plugin is not activated. Would you like to activate it now?', 'formidable'); - button.textContent = __('Activate', 'formidable'); - } else { - oneclickMessage.textContent = __('That add-on is not installed. Would you like to install it now?', 'formidable'); - button.textContent = __('Install', 'formidable'); - } - } - if (!newMessage) { - newMessage = upgradeMessage.getAttribute('data-default'); - } - if (undefined !== upgradeLabel) { - newMessage = newMessage.replace('', upgradeLabel); - } - upgradeMessage.innerHTML = newMessage; - if (link.dataset.upsellImage) { - upgradeMessage.appendChild(img({ - src: link.dataset.upsellImage, - alt: link.dataset.upgrade - })); - } - - // Either set the link or use the default. - showLink.href = getShowLinkHrefValue(link, showLink); - addonStatus.style.display = 'none'; - oneclickMessage.style.display = hideIt; - button.style.display = hideIt === 'block' ? 'inline-block' : hideIt; - upgradeMessage.style.display = showMsg; - showLink.style.display = showIt === 'block' ? 'inline-block' : showIt; - } - function getShowLinkHrefValue(link, showLink) { - var customLink = link.getAttribute('data-link'); - if (customLink === null || typeof customLink === 'undefined' || customLink === '') { - customLink = showLink.getAttribute('data-default'); - } - return customLink; - } - - /* Form settings */ - - function showInputIcon(parentClass) { - if (typeof parentClass === 'undefined') { - parentClass = ''; - } - maybeAddFieldSelection(parentClass); - jQuery(parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) input,' + parentClass + ' .frm_has_shortcodes:not(.frm-with-right-icon) textarea').wrap('').before(''); - } - - /** - * For reverse compatibility. Check for fields that were - * using the old sidebar. - */ - function maybeAddFieldSelection(parentClass) { - var i, - missingClass = jQuery(parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_message, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_to, ' + parentClass + ' :not(.frm_has_shortcodes) .frm_not_email_subject'); - for (i = 0; i < missingClass.length; i++) { - missingClass[i].parentNode.classList.add('frm_has_shortcodes'); - } - } - function showSuccessOpt() { - /*jshint validthis:true */ - var c = 'success'; - if (this.name === 'options[edit_action]') { - c = 'edit'; - } - var v = jQuery(this).val(); - jQuery('.' + c + '_action_box').hide(); - if (v === 'redirect') { - jQuery('.' + c + '_action_redirect_box.' + c + '_action_box').fadeIn('slow'); - } else if (v === 'page') { - jQuery('.' + c + '_action_page_box.' + c + '_action_box').fadeIn('slow'); - } else { - jQuery('.' + c + '_action_message_box.' + c + '_action_box').fadeIn('slow'); - } - } - function copyFormAction(event) { - if (waitForActionToLoadBeforeCopy(event.target)) { - return; - } - var targetSettings = event.target.closest('.frm_form_action_settings'); - var wysiwygs = targetSettings.querySelectorAll('.wp-editor-area'); - if (wysiwygs.length) { - // Temporary remove TinyMCE before cloning to avoid TinyMCE conflicts. - wysiwygs.forEach(function (wysiwyg) { - tinymce.EditorManager.execCommand('mceRemoveEditor', true, wysiwyg.id); - }); - } - var $action = jQuery(targetSettings).clone(); - var currentID = $action.attr('id').replace('frm_form_action_', ''); - var newID = newActionId(currentID); - $action.find('.frm_action_id, .frm-btn-group').remove(); - $action.find('input[name$="[' + currentID + '][ID]"]').val(''); - $action.find('.widget-inside').hide(); - - // the .html() gets original values, so they need to be set - $action.find('input[type=text], textarea, input[type=number]').prop('defaultValue', function () { - return this.value; - }); - $action.find('input[type=checkbox], input[type=radio]').prop('defaultChecked', function () { - return this.checked; - }); - var rename = new RegExp('\\[' + currentID + '\\]', 'g'); - var reid = new RegExp('_' + currentID + '"', 'g'); - var reclass = new RegExp('-' + currentID + '"', 'g'); - var revalue = new RegExp('"' + currentID + '"', 'g'); // if a field id matches, this could cause trouble - - var html = $action.html().replace(rename, '[' + newID + ']').replace(reid, '_' + newID + '"'); - html = html.replace(reclass, '-' + newID + '"').replace(revalue, '"' + newID + '"'); - var newAction = div({ - id: 'frm_form_action_' + newID, - className: $action.get(0).className - }); - newAction.setAttribute('data-actionkey', newID); - newAction.innerHTML = html; - newAction.querySelectorAll('.wp-editor-wrap, .wp-editor-wrap *').forEach(function (element) { - if ('string' === typeof element.className) { - element.className = element.className.replace(currentID, newID); - } - element.id = element.id.replace(currentID, newID); - }); - newAction.classList.remove('open'); - document.getElementById('frm_notification_settings').appendChild(newAction); - if (wysiwygs.length) { - // Re-initialize the original wysiwyg which was removed before cloning. - wysiwygs.forEach(function (wysiwyg) { - frmDom.wysiwyg.init(wysiwyg); - }); - newAction.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { - frmDom.wysiwyg.init(wysiwyg); - }); - } - if (newAction.classList.contains('frm_single_on_submit_settings')) { - var autocompleteInput = newAction.querySelector('input.frm-page-search'); - if (autocompleteInput) { - initAutocomplete(newAction); - } - } - initiateMultiselect(); - var hookName = 'frm_after_duplicate_action'; - wp.hooks.doAction(hookName, newAction); - } - function waitForActionToLoadBeforeCopy(element) { - var $trigger = jQuery(element), - $original = $trigger.closest('.frm_form_action_settings'), - $inside = $original.find('.widget-inside'), - $top; - if ($inside.find('p, div, table').length) { - return false; - } - $top = $original.find('.widget-top'); - $top.on('frm-action-loaded', function () { - $trigger.trigger('click'); - $original.removeClass('open'); - $inside.hide(); - }); - $top.trigger('click'); - return true; - } - function newActionId(currentID) { - var newID = parseInt(currentID, 10) + 11; - var exists = document.getElementById('frm_form_action_' + newID); - if (exists !== null) { - newID++; - newID = newActionId(newID); - } - return newID; - } - function addFormAction() { - /*jshint validthis:true */ - var type = jQuery(this).data('actiontype'); - if (isAtLimitForActionType(type)) { - return; - } - var actionId = getNewActionId(); - var formId = thisFormId; - var placeholderSetting = document.createElement('div'); - placeholderSetting.classList.add('frm_single_' + type + '_settings'); - var actionsList = document.getElementById('frm_notification_settings'); - actionsList.appendChild(placeholderSetting); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_form_action', - type: type, - list_id: actionId, - form_id: formId, - nonce: frmGlobal.nonce - }, - success: handleAddFormActionSuccess - }); - function handleAddFormActionSuccess(html) { - fieldUpdated(); - placeholderSetting.remove(); - closeOpenActions(); - var newActionContainer = div(); - newActionContainer.innerHTML = html; - var widgetTop = newActionContainer.querySelector('.widget-top'); - Array.from(newActionContainer.children).forEach(function (child) { - return actionsList.appendChild(child); - }); - jQuery('.frm_form_action_settings').fadeIn('slow'); - var newAction = document.getElementById('frm_form_action_' + actionId); - newAction.classList.add('open'); - document.getElementById('post-body-content').scroll({ - top: newAction.offsetTop + 10, - left: 0, - behavior: 'smooth' - }); - - // Check if icon should be active - checkActiveAction(type); - showInputIcon('#frm_form_action_' + actionId); - initiateMultiselect(); - initAutocomplete(newAction); - if (widgetTop) { - jQuery(widgetTop).trigger('frm-action-loaded'); - } - - /** - * Fires after added a new form action. - * - * @since 5.5.4 - * - * @param {HTMLElement} formAction Form action element. - */ - frmAdminBuild.hooks.doAction('frm_added_form_action', newAction); - } - } - function closeOpenActions() { - document.querySelectorAll('.frm_form_action_settings.open').forEach(function (setting) { - return setting.classList.remove('open'); - }); - } - function toggleActionGroups() { - /*jshint validthis:true */ - var actions = document.getElementById('frm_email_addon_menu').classList, - search = document.getElementById('actions-search-input'); - if (actions.contains('frm-all-actions')) { - actions.remove('frm-all-actions'); - actions.add('frm-limited-actions'); - } else { - actions.add('frm-all-actions'); - actions.remove('frm-limited-actions'); - } - - // Reset search. - search.value = ''; - triggerEvent(search, 'input'); - } - function getNewActionId() { - var actionSettings = document.querySelectorAll('.frm_form_action_settings'), - len = getNewRowId(actionSettings, 'frm_form_action_'); - if (typeof document.getElementById('frm_form_action_' + len) !== 'undefined') { - len = len + 100; - } - if (lastNewActionIdReturned >= len) { - len = lastNewActionIdReturned + 1; - } - lastNewActionIdReturned = len; - return len; - } - function clickAction(obj) { - var $thisobj = jQuery(obj); - if (obj.className.indexOf('selected') !== -1) { - return; - } - if (obj.className.indexOf('edit_field_type_end_divider') !== -1 && $thisobj.closest('.edit_field_type_divider').hasClass('no_repeat_section')) { - return; - } - deselectFields(); - $thisobj.addClass('selected'); - showFieldOptions(obj); - } - - /** - * When a field is selected, show the field settings in the sidebar. - */ - function showFieldOptions(obj) { - var _document$querySelect4; - var i, - singleField, - fieldId = obj.getAttribute('data-fid'), - fieldType = obj.getAttribute('data-type'), - allFieldSettings = document.querySelectorAll('.frm-single-settings:not(.frm_hidden)'); - for (i = 0; i < allFieldSettings.length; i++) { - allFieldSettings[i].classList.add('frm_hidden'); - } - singleField = document.getElementById('frm-single-settings-' + fieldId); - moveFieldSettings(singleField); - if (fieldType && 'quantity' === fieldType) { - popProductFields(jQuery(singleField).find('.frmjs_prod_field_opt')[0]); - } - - // Scroll settings panel to top - (_document$querySelect4 = document.querySelector('.frm-settings-panel.frm-scrollbar-wrapper')) === null || _document$querySelect4 === void 0 || _document$querySelect4.scrollTo({ - top: 0, - behavior: 'instant' - }); - singleField.classList.remove('frm_hidden'); - document.getElementById('frm-options-panel-tab').click(); - var editor = singleField.querySelector('.wp-editor-area'); - if (editor) { - frmDom.wysiwyg.init(editor, { - setupCallback: setupTinyMceEventHandlers - }); - } - wp.hooks.doAction('frmShowedFieldSettings', obj, singleField); - maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField); - } - function maybeAddShortcodesModalTriggerIcon(fieldType, fieldId, singleField) { - var _singleField$querySel; - if (!shouldAddShortcodesModalTriggerIcon(fieldType)) { - return; - } - var fieldSettingsSelector = '#frm-single-settings-' + fieldId; - if (document.querySelector(fieldSettingsSelector + ' .frm-show-box')) { - return; - } - (_singleField$querySel = singleField.querySelector('.wp-editor-container')) === null || _singleField$querySel === void 0 || _singleField$querySel.classList.add('frm_has_shortcodes'); - var wrapTextareaWithIconContainer = function wrapTextareaWithIconContainer() { - var textareas = document.querySelectorAll(fieldSettingsSelector + ' .frm_has_shortcodes textarea'); - textareas.forEach(function (textarea) { - var wrapperSpan = span({ - className: 'frm-with-right-icon' - }); - textarea.parentNode.insertBefore(wrapperSpan, textarea); - wrapperSpan.appendChild(createModalTriggerIcon()); - wrapperSpan.appendChild(textarea); - }); - }; - var createModalTriggerIcon = function createModalTriggerIcon() { - return frmDom.svg({ - href: '#frm_more_horiz_solid_icon', - classList: ['frm-show-box'] - }); - }; - wrapTextareaWithIconContainer(); - } - function shouldAddShortcodesModalTriggerIcon(fieldType) { - var fieldsWithShortcodesBox = wp.hooks.applyFilters('frm_fields_with_shortcode_popup', ['html']); - return fieldsWithShortcodesBox.includes(fieldType); - } - function setupTinyMceEventHandlers(editor) { - editor.on('Change', function () { - handleTinyMceChange(editor); - }); - } - function handleTinyMceChange(editor) { - if (!isTinyMceActive() || tinyMCE.activeEditor.isHidden()) { - return; - } - editor.targetElm.value = editor.getContent(); - jQuery(editor.targetElm).trigger('change'); - } - function isTinyMceActive() { - var activeSettings, wrapper; - activeSettings = document.querySelector('.frm-single-settings:not(.frm_hidden)'); - if (!activeSettings) { - return false; - } - wrapper = activeSettings.querySelector('.wp-editor-wrap'); - return null !== wrapper && wrapper.classList.contains('tmce-active'); - } - - /** - * Move the settings to the sidebar the first time they are changed or selected. - * Keep the end marker at the end of the form. - */ - function moveFieldSettings(singleField) { - var self = this; - if (singleField === null) { - // The field may have not been loaded yet via ajax. - return; - } - this.fragment = document.createDocumentFragment(); - this.initOnceInAllInstances = function () { - if ('undefined' !== typeof moveFieldSettings.prototype.endMarker) { - return; - } - // perform a single search in the DOM and use it across all moveFieldSettings instances - moveFieldSettings.prototype.endMarker = document.getElementById('frm-end-form-marker'); - }; - this.append = function (field) { - var classname = null !== field ? field.parentElement.classList : ''; - if (null === field || !classname.contains('frm_field_box') && !classname.contains('divider_section_only')) { - return; - } - self.fragment.appendChild(field); - }; - this.moveFields = function () { - builderForm.insertBefore(self.fragment, moveFieldSettings.prototype.endMarker); - }; - this.initOnceInAllInstances(); - - // Move the field if function is called as function with a singleField passed as arg. - // In this particular case only 1 field is needed to be moved so the field will get instantly moved. - // "singleField" may be undefined when it's called as a constructor instead of a function. Use the constructor to add multiple fields which are passed through "append" and move these all at once via "moveFields". - if ('undefined' !== typeof singleField) { - this.append(singleField); - this.moveFields(); - return; - } - return { - append: this.append, - moveFields: this.moveFields - }; - } - function showEmailRow() { - /*jshint validthis:true */ - var actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'); - var rowType = this.getAttribute('data-emailrow'); - jQuery('#frm_form_action_' + actionKey + ' .frm_' + rowType + '_row').fadeIn('slow'); - jQuery(this).fadeOut('slow'); - } - function hideEmailRow() { - /*jshint validthis:true */ - var actionBox = jQuery(this).closest('.frm_form_action_settings'), - rowType = this.getAttribute('data-emailrow'), - emailRowSelector = '.frm_' + rowType + '_row', - emailButtonSelector = '.frm_' + rowType + '_button'; - jQuery(actionBox).find(emailButtonSelector).fadeIn('slow'); - jQuery(actionBox).find(emailRowSelector).fadeOut('slow', function () { - jQuery(actionBox).find(emailRowSelector + ' input').val(''); - }); - } - function showEmailWarning() { - /*jshint validthis:true */ - var actionBox = jQuery(this).closest('.frm_form_action_settings'), - emailRowSelector = '.frm_from_to_match_row', - fromVal = actionBox.find('input[name$="[post_content][from]"]').val(), - toVal = actionBox.find('input[name$="[post_content][email_to]"]').val(); - if (fromVal === toVal) { - jQuery(actionBox).find(emailRowSelector).fadeIn('slow'); - } else { - jQuery(actionBox).find(emailRowSelector).fadeOut('slow'); - } - } - function checkActiveAction(type) { - var actionTriggers = document.querySelectorAll('.frm_' + type + '_action'); - if (isAtLimitForActionType(type)) { - var addAlreadyUsedClass = getLimitForActionType(type) > 0; - markActionTriggersInactive(actionTriggers, addAlreadyUsedClass); - return; - } - markActionTriggersActive(actionTriggers); - } - function markActionTriggersActive(triggers) { - triggers.forEach(function (trigger) { - if (trigger.querySelector('.frm_show_upgrade')) { - // Prevent disabled action becoming active. - return; - } - trigger.classList.remove('frm_inactive_action', 'frm_already_used'); - trigger.classList.add('frm_active_action'); - }); - } - function markActionTriggersInactive(triggers, addAlreadyUsedClass) { - triggers.forEach(function (trigger) { - trigger.classList.remove('frm_active_action'); - trigger.classList.add('frm_inactive_action'); - if (addAlreadyUsedClass) { - trigger.classList.add('frm_already_used'); - } - }); - } - function isAtLimitForActionType(type) { - var atLimit = getNumberOfActionsForType(type) >= getLimitForActionType(type); - var hookName = 'frm_action_at_limit'; - var hookArgs = { - type: type - }; - atLimit = wp.hooks.applyFilters(hookName, atLimit, hookArgs); - return atLimit; - } - function getLimitForActionType(type) { - return parseInt(jQuery('.frm_' + type + '_action').data('limit'), 10); - } - function getNumberOfActionsForType(type) { - return jQuery('.frm_single_' + type + '_settings').length; - } - function actionLimitMessage() { - var message = frmAdminJs.only_one_action; - var limit = this.dataset.limit; - if ('undefined' !== typeof limit) { - limit = parseInt(limit); - if (limit > 1) { - message = message.replace(1, limit).trim(); - } else { - message += ' ' + frmAdminJs.edit_action_text; - } - } - infoModal(message); - } - function addFormLogicRow() { - /*jshint validthis:true */ - var id = jQuery(this).data('emailkey'); - var type = jQuery(this).closest('.frm_form_action_settings').find('.frm_action_name').val(); - var formId = document.getElementById('form_id').value; - var logicRowsContainer = document.getElementById('frm_logic_row_' + id); - var logicRows = logicRowsContainer.querySelectorAll('.frm_logic_row'); - var newRowID = getNewRowId(logicRows, 'frm_logic_' + id + '_'); - var placeholder = div({ - id: 'frm_logic_' + id + '_' + newRowID, - className: 'frm_logic_row frm_hidden' - }); - logicRowsContainer.appendChild(placeholder); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_form_logic_row', - email_id: id, - form_id: formId, - meta_name: newRowID, - type: type, - nonce: frmGlobal.nonce - }, - success: function success(html) { - jQuery(document.getElementById('logic_link_' + id)).fadeOut('slow', function () { - placeholder.insertAdjacentHTML('beforebegin', html); - placeholder.remove(); - - // Show conditional logic options after "Add Conditional Logic" is clicked. - jQuery(logicRowsContainer).parent('.frm_logic_rows').fadeIn('slow'); - }); - } - }); - return false; - } - function checkDupPost() { - /*jshint validthis:true */ - var postField = jQuery('select.frm_single_post_field'); - postField.css('border-color', ''); - var $t = this; - var v = jQuery($t).val(); - if (v === '' || v === 'checkbox') { - return false; - } - postField.each(function () { - if (jQuery(this).val() === v && this.name !== $t.name) { - this.style.borderColor = 'red'; - jQuery($t).val(''); - infoModal(frmAdminJs.field_already_used); - return false; - } - }); - } - function togglePostContent() { - /*jshint validthis:true */ - var v = jQuery(this).val(); - if ('' === v) { - jQuery('.frm_post_content_opt, select.frm_dyncontent_opt').hide().val(''); - jQuery('.frm_dyncontent_opt').hide(); - } else if ('post_content' === v) { - jQuery('.frm_post_content_opt').show(); - jQuery('.frm_dyncontent_opt').hide(); - jQuery('select.frm_dyncontent_opt').val(''); - } else { - jQuery('.frm_post_content_opt').hide().val(''); - jQuery('select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt').show(); - } - } - function fillDyncontent() { - /*jshint validthis:true */ - var v = jQuery(this).val(); - var $dyn = jQuery(document.getElementById('frm_dyncontent')); - if ('' === v || 'new' === v) { - $dyn.val(''); - jQuery('.frm_dyncontent_opt').show(); - } else { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_display_get_content', - id: v, - nonce: frmGlobal.nonce - }, - success: function success(val) { - $dyn.val(val); - jQuery('.frm_dyncontent_opt').show(); - } - }); - } - } - function switchPostType() { - /*jshint validthis:true */ - // update all rows of categories/taxonomies - var curSelect, - newSelect, - catRows = document.getElementById('frm_posttax_rows').childNodes, - postParentField = document.querySelector('.frm_post_parent_field'), - postMenuOrderField = document.querySelector('.frm_post_menu_order_field'), - postType = this.value; - - // Get new category/taxonomy options - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_replace_posttax_options', - post_type: postType, - nonce: frmGlobal.nonce - }, - success: function success(html) { - // Loop through each category row, and replace the first dropdown - for (i = 0; i < catRows.length; i++) { - // Check if current element is a div - if (catRows[i].tagName !== 'DIV') { - continue; - } - - // Get current category select - curSelect = catRows[i].getElementsByTagName('select')[0]; - - // Set up new select - newSelect = document.createElement('select'); - newSelect.innerHTML = html; - newSelect.className = curSelect.className; - newSelect.name = curSelect.name; - - // Replace the old select with the new select - catRows[i].replaceChild(newSelect, curSelect); - } - } - }); - - // Get new post parent option. - if (postParentField) { - getActionOption(postParentField, postType, 'frm_get_post_parent_option', function (response, optName) { - // The replaced string is declared in FrmProFormActionController::ajax_get_post_menu_order_option() in the pro version. - postParentField.querySelector('.frm_post_parent_opt_wrapper').innerHTML = response.replaceAll('REPLACETHISNAME', optName); - initAutocomplete(postParentField); - }); - } - if (postMenuOrderField) { - getActionOption(postMenuOrderField, postType, 'frm_should_use_post_menu_order_option'); - } - } - function getActionOption(field, postType, action, successHandler) { - var opt = field.querySelector('.frm_autocomplete_value_input') || field.querySelector('select'), - optName = opt.getAttribute('name'); - jQuery.ajax({ - url: ajaxurl, - method: 'POST', - data: { - action: action, - post_type: postType, - _wpnonce: frmGlobal.nonce - }, - success: function success(response) { - if ('string' !== typeof response) { - console.error(response); - return; - } - if ('0' === response) { - // This post type does not support this field. - field.classList.add('frm_hidden'); - field.value = ''; - return; - } - field.classList.remove('frm_hidden'); - if ('function' === typeof successHandler) { - successHandler(response, optName); - } - }, - error: function error(response) { - return console.error(response); - } - }); - } - function addPosttaxRow() { - /*jshint validthis:true */ - addPostRow('tax', this); - } - function addPostmetaRow() { - /*jshint validthis:true */ - addPostRow('meta', this); - } - function addPostRow(type, button) { - var name, - id = jQuery('input[name="id"]').val(), - settings = jQuery(button).closest('.frm_form_action_settings'), - key = settings.data('actionkey'), - postType = settings.find('.frm_post_type').val(), - metaName = 0, - postTypeRows = document.querySelectorAll('.frm_post' + type + '_row'); - if (postTypeRows.length) { - name = postTypeRows[postTypeRows.length - 1].id.replace('frm_post' + type + '_', ''); - if (isNumeric(name)) { - metaName = 1 + parseInt(name, 10); - } else { - metaName = 1; - } - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_post' + type + '_row', - form_id: id, - meta_name: metaName, - tax_key: metaName, - post_type: postType, - action_key: key, - nonce: frmGlobal.nonce - }, - success: function success(html) { - var cfOpts, optIndex; - jQuery(document.getElementById('frm_post' + type + '_rows')).append(html); - jQuery('.frm_add_post' + type + '_row.button').hide(); - if (type === 'meta') { - jQuery('.frm_name_value').show(); - cfOpts = document.querySelectorAll('.frm_toggle_cf_opts'); - for (optIndex = 0; optIndex < cfOpts.length - 1; ++optIndex) { - cfOpts[optIndex].style.display = 'none'; - } - } else if (type === 'tax') { - jQuery('.frm_posttax_labels').show(); - } - } - }); - } - function isNumeric(value) { - return !isNaN(parseFloat(value)) && isFinite(value); - } - function changePosttaxRow() { - /*jshint validthis:true */ - if (!jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').length) { - return; - } - jQuery(this).closest('.frm_posttax_row').find('.frm_posttax_opt_list').html('
                                    '); - var postType = jQuery(this).closest('.frm_form_action_settings').find('select[name$="[post_content][post_type]"]').val(), - actionKey = jQuery(this).closest('.frm_form_action_settings').data('actionkey'), - taxKey = jQuery(this).closest('.frm_posttax_row').attr('id').replace('frm_posttax_', ''), - metaName = jQuery(this).val(), - showExclude = jQuery(document.getElementById(taxKey + '_show_exclude')).is(':checked') ? 1 : 0, - fieldId = jQuery('select[name$="[post_category][' + taxKey + '][field_id]"]').val(), - id = jQuery('input[name="id"]').val(); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_add_posttax_row', - form_id: id, - post_type: postType, - tax_key: taxKey, - action_key: actionKey, - meta_name: metaName, - field_id: fieldId, - show_exclude: showExclude, - nonce: frmGlobal.nonce - }, - success: function success(html) { - var $tax = jQuery(document.getElementById('frm_posttax_' + taxKey)); - $tax.replaceWith(html); - } - }); - } - function toggleCfOpts() { - /*jshint validthis:true */ - var row = jQuery(this).closest('.frm_postmeta_row'); - var cancel = row.find('.frm_cancelnew'); - var select = row.find('.frm_enternew'); - if (row.find('select.frm_cancelnew').is(':visible')) { - cancel.hide(); - select.show(); - } else { - cancel.show(); - select.hide(); - } - row.find('input.frm_enternew, select.frm_cancelnew').val(''); - return false; - } - function toggleFormOpts() { - /*jshint validthis:true */ - var changedOpt = jQuery(this); - var val = changedOpt.val(); - if (changedOpt.attr('type') === 'checkbox') { - if (this.checked === false) { - val = ''; - } - } - var toggleClass = changedOpt.data('toggleclass'); - if (val === '') { - jQuery('.' + toggleClass).hide(); - } else { - jQuery('.' + toggleClass).show(); - jQuery('.hide_' + toggleClass + '_' + val).hide(); - } - } - function submitSettings() { - if (showNameYourFormModal()) { - return; - } - - /*jshint validthis:true */ - preFormSave(this); - triggerSubmit(document.querySelector('.frm_form_settings')); - } - - /* Customization Panel */ - function insertCode(e) { - /*jshint validthis:true */ - e.preventDefault(); - insertFieldCode(jQuery(this), this.getAttribute('data-code')); - return false; - } - function insertFieldCode(element, variable) { - var rich = false, - elementId = element; - if (_typeof(element) === 'object') { - if (element.hasClass('frm_noallow')) { - return; - } - elementId = jQuery(element).closest('[data-fills]').attr('data-fills'); - if (typeof elementId === 'undefined') { - elementId = element.closest('div').attr('class'); - if (typeof elementId !== 'undefined') { - elementId = elementId.split(' ')[1]; - } - } - } - if (typeof elementId === 'undefined') { - var active = document.activeElement; - if (active.type === 'search') { - // If the search field has focus, find the correct field. - elementId = active.id.replace('-search-input', ''); - if (elementId.match(/\d/gi) === null) { - active = jQuery('.frm-single-settings:visible .' + elementId); - elementId = active.attr('id'); - } - } else { - elementId = active.id; - } - } - if (elementId) { - rich = jQuery('#wp-' + elementId + '-wrap.wp-editor-wrap').length > 0; - } - var contentBox = jQuery(document.getElementById(elementId)); - if (typeof element.attr('data-shortcode') === 'undefined' && (!contentBox.length || typeof contentBox.attr('data-shortcode') === 'undefined')) { - // this helps to exclude those that don't want shortcode-like inserted content e.g. frm-pro's summary field - var doShortcode = element.parents('ul.frm_code_list').attr('data-shortcode'); - if (doShortcode === 'undefined' || doShortcode !== 'no') { - variable = '[' + variable + ']'; - } - } - if (rich) { - wpActiveEditor = elementId; - } - if (!contentBox.length) { - return false; - } - if (variable === '[default-html]' || variable === '[default-plain]') { - var p = 0; - if (variable === '[default-plain]') { - p = 1; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_get_default_html', - form_id: jQuery('input[name="id"]').val(), - plain_text: p, - nonce: frmGlobal.nonce - }, - elementId: elementId, - success: function success(msg) { - if (rich) { - var _p = document.createElement('p'); - _p.innerText = msg; - send_to_editor(_p.innerHTML); - } else { - insertContent(contentBox, msg); - } - } - }); - } else { - variable = maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox); - if (rich) { - send_to_editor(variable); - } else { - insertContent(contentBox, variable); - } - } - return false; - } - function maybeAddSanitizeUrlToShortcodeVariable(variable, element, contentBox) { - if ('object' !== _typeof(element) || !(element instanceof jQuery) || 0 !== contentBox[0].id.indexOf('success_url_')) { - return variable; - } - element = element[0]; - if (!element.closest('#frm-insert-fields-box')) { - // Only add sanitize_url=1 to field shortcodes. - return variable; - } - if (!element.parentNode.classList.contains('frm_insert_url')) { - variable = variable.replace(']', ' sanitize_url=1]'); - } - return variable; - } - function insertContent(contentBox, variable) { - if (document.selection) { - contentBox[0].focus(); - document.selection.createRange().text = variable; - } else { - obj = contentBox[0]; - var e = obj.selectionEnd; - variable = maybeFormatInsertedContent(contentBox, variable, obj.selectionStart, e); - obj.value = obj.value.substr(0, obj.selectionStart) + variable + obj.value.substr(obj.selectionEnd, obj.value.length); - var _s = e + variable.length; - maybeRemoveLayoutClasses(obj, variable); - obj.focus(); - obj.setSelectionRange(_s, _s); - } - triggerChange(contentBox); - } - - /** - * When a layout class is added, remove any previous layout classes to avoid conflicts. - * We only expect one layout class to exist for a given field. - * For example, if a field has frm_half and we set it to frm_third, frm_half will be removed. - * - * @since 6.11 - * - * @param {HTMLElement} obj - * @param {string} variable - * @return {void} - */ - function maybeRemoveLayoutClasses(obj, variable) { - if (!obj.classList.contains('frm_classes') || !isALayoutClass(variable)) { - return; - } - var removeClasses = obj.value.split(' ').filter(isALayoutClass); - if (removeClasses.length) { - obj.value = maybeRemoveClasses(obj.value, removeClasses, variable.trim()); - } - } - - /** - * Check if a given class is a layout class. - * - * @since 6.11 - * - * @param {string} className - * @return {boolean} - */ - function isALayoutClass(className) { - var layoutClasses = ['frm_half', 'frm_third', 'frm_two_thirds', 'frm_fourth', 'frm_three_fourths', 'frm_fifth', 'frm_sixth', 'frm2', 'frm3', 'frm4', 'frm6', 'frm8', 'frm9', 'frm10', 'frm12']; - return layoutClasses.includes(className.trim()); - } - - /** - * @since 6.11 - * - * @param {string} beforeValue - * @param {Array} removeClasses - * @param {string} variable - * @return {string} - */ - function maybeRemoveClasses(beforeValue, removeClasses, variable) { - var currentClasses = beforeValue.split(' ').filter(function (currentClass) { - currentClass = currentClass.trim(); - return currentClass.length && !removeClasses.includes(currentClass); - }); - if (!currentClasses.includes(variable)) { - currentClasses.push(variable); - } - return currentClasses.join(' '); - } - function maybeFormatInsertedContent(input, textToInsert, selectionStart, selectionEnd) { - var separator = input.data('sep'); - if (undefined === separator) { - return textToInsert; - } - var value = input.val(); - if (!value.trim().length) { - return textToInsert; - } - var startPattern = new RegExp(separator + '\\s*$'); - var endPattern = new RegExp('^\\s*' + separator); - if (value.substr(0, selectionStart).trim().length && false === startPattern.test(value.substr(0, selectionStart))) { - textToInsert = separator + textToInsert; - } - if (value.substr(selectionEnd, value.length).trim().length && false === endPattern.test(value.substr(selectionEnd, value.length))) { - textToInsert += separator; - } - return textToInsert; - } - function resetLogicBuilder() { - /*jshint validthis:true */ - var id = document.getElementById('frm-id-condition'), - key = document.getElementById('frm-key-condition'); - if (this.value === 'id') { - id.classList.remove('frm_hidden'); - key.classList.add('frm_hidden'); - triggerEvent(key, 'change'); - } else { - id.classList.add('frm_hidden'); - key.classList.remove('frm_hidden'); - triggerEvent(id, 'change'); - } - } - function setLogicExample() { - var field, - code, - idKey = document.getElementById('frm-id-key-condition-id').checked ? 'frm-id-condition' : 'frm-key-condition', - is = document.getElementById('frm-is-condition').value, - text = document.getElementById('frm-text-condition').value, - result = document.getElementById('frm-insert-condition'); - idKey = document.getElementById(idKey); - field = idKey.options[idKey.selectedIndex].value; - code = 'if ' + field + ' ' + is + '="' + text + '"]'; - result.setAttribute('data-code', code + frmAdminJs.conditional_text + '[/if ' + field); - result.innerHTML = '[' + code + '[/if ' + field + ']'; - } - function maybeShowModal(input) { - var moreIcon; - if (input.parentNode.parentNode.classList.contains('frm_has_shortcodes')) { - hideShortcodes(); - moreIcon = getIconForInput(input); - if (moreIcon.tagName === 'use') { - moreIcon = moreIcon.firstElementChild; - if (moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href').indexOf('frm_close_icon') === -1) { - showShortcodeBox(moreIcon, 'nofocus'); - } - } else if (!moreIcon.classList.contains('frm_close_icon')) { - showShortcodeBox(moreIcon, 'nofocus'); - } - } - } - function showShortcodes(e) { - /*jshint validthis:true */ - e.preventDefault(); - e.stopPropagation(); - showShortcodeBox(this); - } - - /** - * Handles 'change' event on the document. - * - * @since 6.16.3 - * - * @param {Event} event - * @return {void} - */ - function handleBuilderChangeEvent(event) { - maybeShowSaveAndReloadModal(event.target); - } - - /** - * Shows 'Save and Reload' modal if the target field's type is changed. - * - * @since 6.16.3 - * - * @param {HTMLElement} target - * @return {void} - */ - function maybeShowSaveAndReloadModal(target) { - var _document$querySelect5; - if (!target.id.startsWith('field_options_type_')) { - return; - } - var idParts = target.id.split('_'); - var fieldId = idParts.length && idParts[idParts.length - 1]; - if ((_document$querySelect5 = document.querySelector("#frm-single-settings-".concat(fieldId))) !== null && _document$querySelect5 !== void 0 && _document$querySelect5.classList.contains("frm-type-".concat(target.value))) { - // Do not show modal if the field type is reverted back to the original type when builder is loaded. - return; - } - showSaveAndReloadModal(); - } - - /** - * Shows 'Save and Reload' modal with the given message. - * - * @since 6.16.3 - * - * @param {string} message - * @return {void} - */ - function showSaveAndReloadModal(message) { - if ('undefined' === typeof message) { - message = __('You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?', 'formidable'); - } - frmDom.modal.maybeCreateModal('frmSaveAndReloadModal', { - title: __('Save and Reload?', 'formidable'), - content: getModalContent(), - footer: getModalFooter() - }); - function getModalContent() { - var modalContent = div(message); - modalContent.style.padding = 'var(--gap-md)'; - return modalContent; - } - function getModalFooter() { - var continueButton = frmDom.modal.footerButton({ - text: __('Save and Reload', 'formidable'), - buttonType: 'primary' - }); - onClickPreventDefault(continueButton, function () { - saveAndReloadFormBuilder(); - }); - var cancelButton = frmDom.modal.footerButton({ - text: __('Cancel', 'formidable'), - buttonType: 'cancel' - }); - cancelButton.classList.add('dismiss'); - return frmDom.div({ - children: [cancelButton, continueButton] - }); - } - } - function updateShortcodesPopupPosition(target) { - var moreIcon; - if (target instanceof Event) { - var useElements = document.querySelectorAll('.frm-single-settings .frm-show-box.frmsvg use'); - var openTrigger = Array.from(useElements).find(function (use) { - return use.getAttribute('href') === '#frm_close_icon'; - }); - if ('undefined' === typeof openTrigger) { - return; - } - moreIcon = openTrigger.parentElement; - } else { - moreIcon = target; - } - var moreIconPosition = moreIcon.getBoundingClientRect(); - var shortCodesPopup = document.getElementById('frm_adv_info'); - var parentPos = shortCodesPopup.parentElement.getBoundingClientRect(); - shortCodesPopup.style.top = moreIconPosition.top - parentPos.top + 32 + 'px'; - shortCodesPopup.style.left = moreIconPosition.left - parentPos.left - 280 + 'px'; - } - function showShortcodeBox(moreIcon, shouldFocus) { - var input = getInputForIcon(moreIcon), - box = document.getElementById('frm_adv_info'), - classes = moreIcon.className; - if (moreIcon.tagName === 'svg') { - moreIcon = moreIcon.firstElementChild; - } - if (moreIcon.tagName === 'use') { - classes = moreIcon.getAttributeNS('http://www.w3.org/1999/xlink', 'href'); - if (null === classes) { - // If the deprecated xlink:href is not defined, check for href. - classes = moreIcon.getAttribute('href'); - } - } - if (classes.indexOf('frm_close_icon') !== -1) { - hideShortcodes(box); - } else { - updateShortcodesPopupPosition(moreIcon); - jQuery('.frm_code_list a').removeClass('frm_noallow'); - if (input.classList.contains('frm_not_email_to')) { - jQuery('#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a').addClass('frm_noallow'); - } else if (input.classList.contains('frm_not_email_subject')) { - jQuery('.frm_code_list li.hide_frm_not_email_subject a').addClass('frm_noallow'); - } - box.setAttribute('data-fills', input.id); - box.style.display = 'block'; - if (moreIcon.tagName === 'use') { - if (moreIcon.hasAttributeNS('http://www.w3.org/1999/xlink', 'href')) { - moreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); - } else { - var newMoreIcon = document.createElementNS('http://www.w3.org/2000/svg', 'use'); - newMoreIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_close_icon'); - moreIcon.parentNode.replaceChild(newMoreIcon, moreIcon); - } - } else { - moreIcon.className = classes.replace('frm_more_horiz_solid_icon', 'frm_close_icon'); - } - if (shouldFocus !== 'nofocus') { - if ('none' !== input.style.display) { - input.focus(); - } else { - jQuery(tinymce.get(input.id)).trigger('focus'); - } - } - showOrHideContextualShortcodes(input); - } - } - - /** - * Returns true if a shortcode could be shown in the search result. - * - * @since 6.16.3 - * - * @param {HTMLElement} item - * @return {Boolean} - */ - function checkContextualShortcode(item) { - if (frmAdminJs.contextualShortcodes.length === 0) { - return true; - } - return !isContextualShortcode(item) || canShowContextualShortcode(item); - } - - /** - * Returns true if a shortcode is contextual to fields. - * - * @since 6.16.3 - * - * @param {HTMLElement} item - * @return {Boolean} - */ - function isContextualShortcode(item) { - var anchor = item.querySelector('a'); - if (!anchor) { - return false; - } - var shortcode = anchor.dataset.code; - return frmAdminJs.contextualShortcodes.address.includes(shortcode) || frmAdminJs.contextualShortcodes.body.includes(shortcode); - } - - /** - * @since 6.16.3 - * - * @param {HTMLElement} item - * @return {Boolean} - */ - function canShowContextualShortcode(item) { - var shortcode = item.querySelector('a').dataset.code; - var inputId = document.getElementById('frm_adv_info').dataset.fills; - var input = document.getElementById(inputId); - var contextualShortcodes = frmAdminJs.contextualShortcodes; - if (contextualShortcodes.address.includes(shortcode)) { - return input.matches(contextualShortcodes.addressSelector); - } - return input.matches(contextualShortcodes.bodySelector); - } - - /** - * @since 6.16.3 - * - * @param {HTMLElement} input - * @return {void} - */ - function showOrHideContextualShortcodes(input) { - ['address', 'body'].forEach(function (type) { - toggleContextualShortcodes(input, type); - }); - } - - /** - * @since 6.16.3 - * - * @param {HTMLElement} input - * @param {string} type - * - * @return {void} - */ - function toggleContextualShortcodes(input, type) { - var selector, contextualShortcodes; - selector = frmAdminJs.contextualShortcodes[type + 'Selector']; - contextualShortcodes = frmAdminJs.contextualShortcodes[type]; - var shouldShowShortcodes = input.matches(selector); - var _iterator = _createForOfIteratorHelper(contextualShortcodes), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _document$querySelect6; - var shortcode = _step.value; - var shortcodeLi = (_document$querySelect6 = document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="' + shortcode + '"]')) === null || _document$querySelect6 === void 0 ? void 0 : _document$querySelect6.closest('li'); - shortcodeLi === null || shortcodeLi === void 0 || shortcodeLi.classList.toggle('frm_hidden', !shouldShowShortcodes); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - - /** - * Returns shortcodes that are contextual to the current input field. - * - * @since 6.16.3 - * - * @return {Array} - */ - function getContextualShortcodes() { - var _document$getElementB4; - var contextualShortcodes = (_document$getElementB4 = document.getElementById('frm_adv_info')) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.dataset.contextualShortcodes; - if (!contextualShortcodes) { - return []; - } - contextualShortcodes = JSON.parse(contextualShortcodes); - contextualShortcodes.addressSelector = '[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]'; - contextualShortcodes.bodySelector = '[id^=email_message_]'; - return contextualShortcodes; - } - function fieldUpdated() { - if (!fieldsUpdated) { - fieldsUpdated = 1; - window.addEventListener('beforeunload', confirmExit); - } - } - function buildSubmittedNoAjax() { - // set fieldsUpdated to 0 to avoid the unsaved changes pop up - fieldsUpdated = 0; - } - function settingsSubmitted() { - // set fieldsUpdated to 0 to avoid the unsaved changes pop up - fieldsUpdated = 0; - } - function saveAndReloadSettings() { - var page, form; - page = document.getElementById('form_settings_page'); - if (null !== page) { - form = page.querySelector('form.frm_form_settings'); - if (null !== form) { - fieldsUpdated = 0; - form.submit(); - } - } - } - function reloadIfAddonActivatedAjaxSubmitOnly() { - var submitButton = document.getElementById('frm_submit_side_top'); - if (submitButton.hasAttribute('data-new-addon-installed') && 'true' === submitButton.getAttribute('data-new-addon-installed')) { - submitButton.removeAttribute('data-new-addon-installed'); - window.location.reload(); - } - } - function saveAndReloadFormBuilder() { - var submitButton = document.getElementById('frm_submit_side_top'); - if (submitButton.classList.contains('frm_submit_ajax')) { - submitButton.setAttribute('data-new-addon-installed', true); - } - submitButton.click(); - } - function confirmExit(event) { - if (fieldsUpdated) { - event.preventDefault(); - event.returnValue = ''; - } - } - function bindClickForDialogClose($modal) { - var closeModal = function closeModal() { - $modal.dialog('close'); - }; - jQuery('.ui-widget-overlay').on('click', closeModal); - $modal.on('click', 'a.dismiss', closeModal); - } - function offsetModalY($modal, amount) { - var position = { - my: 'top', - at: 'top+' + amount, - of: window - }; - $modal.dialog('option', 'position', position); - } - - /** - * Get the input box for the selected icon or calculation field. - * - * @param {Element} moreIcon The icon element - * @return {Element} The associated input or textarea - */ - function getInputForIcon(moreIcon) { - if (moreIcon.classList.contains('frm-input-icon')) { - return moreIcon.previousElementSibling; - } - - // For regular fields - var input = moreIcon.nextElementSibling; - while (input !== null && (input.tagName !== 'INPUT' && input.tagName !== 'TEXTAREA' || input.classList.contains('frm-token-input-field'))) { - input = getInputForIcon(input); - } - - // For calculation fields - if (!input) { - var _moreIcon$closest; - input = (_moreIcon$closest = moreIcon.closest('.frm-field-formula')) === null || _moreIcon$closest === void 0 ? void 0 : _moreIcon$closest.querySelector('.frm-calc-field'); - } - return input; - } - - /** - * Get the ... icon for the selected input box. - */ - function getIconForInput(input) { - var _input$nextElementSib; - if ((_input$nextElementSib = input.nextElementSibling) !== null && _input$nextElementSib !== void 0 && _input$nextElementSib.classList.contains('frm-input-icon')) { - return input.nextElementSibling; - } - var moreIcon = input.previousElementSibling; - while (moreIcon !== null && moreIcon.tagName !== 'I' && moreIcon.tagName !== 'svg') { - moreIcon = getIconForInput(moreIcon); - } - return moreIcon; - } - function hideShortcodes(box) { - var i, u, closeIcons, closeSvg; - if (typeof box === 'undefined') { - box = document.getElementById('frm_adv_info'); - if (box === null) { - return; - } - } - if (document.getElementById('frm_dyncontent') !== null) { - // Don't run when in the sidebar. - return; - } - box.style.display = 'none'; - closeIcons = document.querySelectorAll('.frm-show-box.frm_close_icon'); - for (i = 0; i < closeIcons.length; i++) { - closeIcons[i].classList.remove('frm_close_icon'); - closeIcons[i].classList.add('frm_more_horiz_solid_icon'); - } - closeSvg = document.querySelectorAll('.frm_has_shortcodes use'); - for (u = 0; u < closeSvg.length; u++) { - if (closeSvg[u].getAttributeNS('http://www.w3.org/1999/xlink', 'href') === '#frm_close_icon') { - if (closeSvg[u].closest('.frm_remove_field')) { - // Don't change the icon for the email fields remove button. - continue; - } - closeSvg[u].setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#frm_more_horiz_solid_icon'); - } - } - } - function toggleAllowedHTML(input) { - var b, - id = input.id; - if (typeof id === 'undefined' || id.indexOf('-search-input') !== -1) { - return; - } - jQuery('#frm-adv-info-tab').attr('data-fills', id.trim()); - if (input.classList.contains('field_custom_html')) { - id = 'field_custom_html'; - } - b = ['after_html', 'before_html', 'submit_html', 'field_custom_html']; - if (jQuery.inArray(id, b) >= 0) { - jQuery('.frm_code_list li:not(.show_' + id + ')').addClass('frm_hidden'); - jQuery('.frm_code_list li.show_' + id).removeClass('frm_hidden'); - } - } - function toggleKeyID(switchTo, e) { - e.stopPropagation(); - jQuery('.frm_code_list .frmids, .frm_code_list .frmkeys').addClass('frm_hidden'); - jQuery('.frm_code_list .' + switchTo).removeClass('frm_hidden'); - jQuery('.frmids, .frmkeys').removeClass('current'); - jQuery('.' + switchTo).addClass('current'); - } - function onActionLoaded(event) { - var settings = event.target.closest('.frm_form_action_settings'); - if (settings && (settings.classList.contains('frm_single_email_settings') || settings.classList.contains('frm_single_on_submit_settings'))) { - initWysiwygOnActionLoaded(settings); - } - } - function initWysiwygOnActionLoaded(settings) { - settings.querySelectorAll('.wp-editor-area').forEach(function (wysiwyg) { - frmDom.wysiwyg.init(wysiwyg, { - height: 160, - addFocusEvents: true - }); - }); - } - - /* Global settings page */ - function loadSettingsTab(anchor) { - var holder = anchor.replace('#', ''); - var holderContainer = jQuery('.frm_' + holder + '_ajax'); - if (holderContainer.length) { - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: 'frm_settings_tab', - tab: holder.replace('_settings', ''), - nonce: frmGlobal.nonce - }, - success: function success(html) { - holderContainer.replaceWith(html); - } - }); - } - } - function uninstallNow() { - /*jshint validthis:true */ - if (confirmLinkClick(this) === true) { - jQuery('.frm_uninstall .frm-wait').css('visibility', 'visible'); - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: 'action=frm_uninstall&nonce=' + frmGlobal.nonce, - success: function success(msg) { - jQuery('.frm_uninstall').fadeOut('slow'); - window.location = msg; - } - }); - } - return false; - } - function saveAddonLicense() { - /*jshint validthis:true */ - var button = jQuery(this); - var buttonName = this.name; - var pluginSlug = this.getAttribute('data-plugin'); - var action = buttonName.replace('edd_' + pluginSlug + '_license_', ''); - var license = document.getElementById('edd_' + pluginSlug + '_license_key').value; - button.get(0).disabled = true; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'frm_addon_' + action, - license: license, - plugin: pluginSlug, - nonce: frmGlobal.nonce - }, - success: function success(msg) { - button.get(0).disabled = false; - var thisRow = button.closest('.edd_frm_license_row'); - if (action === 'deactivate') { - license = ''; - document.getElementById('edd_' + pluginSlug + '_license_key').value = ''; - } - thisRow.find('.edd_frm_license').html(license); - var eddWrapper = button.get(0).closest('.frm_form_field'); - var actionIsSuccess = msg.success === true; - eddWrapper.querySelector(".frm_icon_font.frm_action_success").classList.toggle('frm_hidden', !actionIsSuccess || action === 'deactivate'); - eddWrapper.querySelector(".frm_icon_font.frm_action_error").classList.toggle('frm_hidden', actionIsSuccess); - var messageBox = thisRow.find('.frm_license_msg'); - messageBox.html(msg.message); - if (msg.message !== '') { - setTimeout(function () { - messageBox.html(''); - thisRow.find('.frm_icon_font').addClass('frm_hidden'); - if (actionIsSuccess) { - var actionIsActivate = action === 'activate'; - thisRow.get(0).querySelector('.edd_frm_unauthorized').classList.toggle('frm_hidden', actionIsActivate); - thisRow.get(0).querySelector('.edd_frm_authorized').classList.toggle('frm_hidden', !actionIsActivate); - } - }, 2000); - } - } - }); - } - - /* Import/Export page */ - - function startFormMigration(event) { - event.preventDefault(); - var checkedBoxes = jQuery(event.target).find('input:checked'); - if (!checkedBoxes.length) { - return; - } - var ids = []; - checkedBoxes.each(function (i) { - ids[i] = this.value; - }); - - // Begin the import process. - importForms(ids, event.target); - } - - /** - * Begins the process of importing the forms. - */ - function importForms(forms, targetForm) { - // Hide the form select section. - var $form = jQuery(targetForm), - $processSettings = $form.next('.frm-importer-process'); - - // Display total number of forms we have to import. - $processSettings.find('.form-total').text(forms.length); - $processSettings.find('.form-current').text('1'); - $form.hide(); - - // Show processing status. - // '.process-completed' might have been shown earlier during a previous import, so hide now. - $processSettings.find('.process-completed').hide(); - $processSettings.show(); - - // Create global import queue. - s.importQueue = forms; - s.imported = 0; - - // Import the first form in the queue. - importForm($processSettings); - } - - /** - * Imports a single form from the import queue. - */ - function importForm($processSettings) { - var formID = s.importQueue[0], - provider = jQuery('#welcome-panel').find('input[name="slug"]').val(), - data = { - action: 'frm_import_' + provider, - form_id: formID, - nonce: frmGlobal.nonce - }; - - // Trigger AJAX import for this form. - jQuery.post(ajaxurl, data, function (res) { - if (res.success) { - var statusUpdate; - if (res.data.error) { - statusUpdate = '

                                    ' + res.data.name + ': ' + res.data.msg + '

                                    '; - } else { - statusUpdate = '

                                    Imported ' + res.data.name + '

                                    '; - } - $processSettings.find('.status').prepend(statusUpdate); - $processSettings.find('.status').show(); - - // Remove this form ID from the queue. - s.importQueue = jQuery.grep(s.importQueue, function (value) { - return value != formID; - }); - s.imported++; - if (s.importQueue.length === 0) { - $processSettings.find('.process-count').hide(); - $processSettings.find('.forms-completed').text(s.imported); - $processSettings.find('.process-completed').show(); - } else { - // Import next form in the queue. - $processSettings.find('.form-current').text(s.imported + 1); - importForm($processSettings); - } - } - }); - } - function validateExport(e) { - /*jshint validthis:true */ - e.preventDefault(); - var s = false; - var $exportForms = jQuery('input[name="frm_export_forms[]"]'); - if (!jQuery('input[name="frm_export_forms[]"]:checked').val()) { - $exportForms.closest('.frm-table-box').addClass('frm_blank_field'); - s = 'stop'; - } - var $exportType = jQuery('input[name="type[]"]'); - if (!jQuery('input[name="type[]"]:checked').val() && $exportType.attr('type') === 'checkbox') { - $exportType.closest('p').addClass('frm_blank_field'); - s = 'stop'; - } - if (s === 'stop') { - return false; - } - e.stopPropagation(); - this.submit(); - } - function removeExportError() { - /*jshint validthis:true */ - var t = jQuery(this).closest('.frm_blank_field'); - if (typeof t === 'undefined') { - return; - } - var $thisName = this.name; - if ($thisName === 'type[]' && jQuery('input[name="type[]"]:checked').val()) { - t.removeClass('frm_blank_field'); - } else if ($thisName === 'frm_export_forms[]' && jQuery(this).val()) { - t.removeClass('frm_blank_field'); - } - } - function checkCSVExtension() { - /*jshint validthis:true */ - var f = jQuery(this).val(); - var re = /\.csv$/i; - if (f.match(re) !== null) { - jQuery('.show_csv').fadeIn(); - } else { - jQuery('.show_csv').fadeOut(); - } - } - function getExportOption() { - var exportFormatSelect = document.querySelector('select[name="format"]'); - if (exportFormatSelect) { - return exportFormatSelect.value; - } - return ''; - } - function exportTypeChanged(event) { - var value = event.target.value; - showOrHideRepeaters(value); - checkExportTypes.call(event.target); - checkSelectedAllFormsCheckbox(value); - } - function checkSelectedAllFormsCheckbox(exportType) { - var selectAllCheckbox = document.getElementById('frm-export-select-all'); - if (exportType === 'csv') { - selectAllCheckbox.checked = false; - selectAllCheckbox.disabled = true; - } else { - selectAllCheckbox.disabled = false; - } - } - function checkExportTypes() { - /*jshint validthis:true */ - var $dropdown = jQuery(this); - var $selected = $dropdown.find(':selected'); - var s = $selected.data('support'); - var multiple = s.indexOf('|'); - jQuery('input[name="type[]"]').each(function () { - this.checked = false; - if (s.indexOf(this.value) >= 0) { - this.disabled = false; - if (multiple === -1) { - this.checked = true; - } - } else { - this.disabled = true; - } - }); - if ($dropdown.val() === 'csv') { - jQuery('.csv_opts').show(); - jQuery('.xml_opts').hide(); - } else { - jQuery('.csv_opts').hide(); - jQuery('.xml_opts').show(); - } - var c = $selected.data('count'); - var exportField = jQuery('input[name="frm_export_forms[]"]'); - if (c === 'single') { - exportField.prop('multiple', false); - exportField.prop('checked', false); - } else { - exportField.prop('multiple', true); - exportField.prop('disabled', false); - } - $dropdown.trigger('change'); - } - function showOrHideRepeaters(exportOption) { - if (exportOption === '') { - return; - } - var repeaters = document.querySelectorAll('.frm-is-repeater'); - if (!repeaters.length) { - return; - } - if (exportOption === 'csv') { - repeaters.forEach(function (form) { - form.classList.remove('frm_hidden'); - }); - } else { - repeaters.forEach(function (form) { - form.classList.add('frm_hidden'); - }); - } - searchContent.call(document.querySelector('.frm-auto-search')); - } - function preventMultipleExport() { - var type = jQuery('select[name=format]'), - selected = type.find(':selected'), - count = selected.data('count'), - exportField = jQuery('input[name="frm_export_forms[]"]'); - if (count === 'single') { - // Disable all other fields to prevent multiple selections. - if (this.checked) { - exportField.prop('disabled', true); - this.removeAttribute('disabled'); - } else { - exportField.prop('disabled', false); - } - } else { - exportField.prop('disabled', false); - } - } - function initiateMultiselect() { - jQuery('.frm_multiselect').hide().each(frmDom.bootstrap.multiselect.init); - } - - /* Addons page */ - function installMultipleAddons(e) { - e.preventDefault(); - toggleAddonState(this, 'frm_multiple_addons'); - } - function activateAddon(e) { - e.preventDefault(); - toggleAddonState(this, 'frm_activate_addon'); - } - function installAddon(e) { - e.preventDefault(); - toggleAddonState(this, 'frm_install_addon'); - } - function toggleAddonState(clicked, action) { - var button, plugin, el, message; - - // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated. - jQuery('.frm-addon-error').remove(); - button = jQuery(clicked); - plugin = button.attr('rel'); - el = button.parent(); - message = el.parent().find('.addon-status-label'); - button.addClass('frm_loading_button'); - - // Process the Ajax to perform the activation. - jQuery.ajax({ - url: ajaxurl, - type: 'POST', - async: true, - cache: false, - dataType: 'json', - data: { - action: action, - nonce: frmGlobal.nonce, - plugin: plugin - }, - success: function success(response) { - var _response$data, _response; - response = (_response$data = (_response = response) === null || _response === void 0 ? void 0 : _response.data) !== null && _response$data !== void 0 ? _response$data : response; - var saveAndReload; - if ('string' !== typeof response && 'string' === typeof response.message) { - if ('undefined' !== typeof response.saveAndReload) { - saveAndReload = response.saveAndReload; - } - response = response.message; - } - var error = extractErrorFromAddOnResponse(response); - if (error) { - addonError(error, el, button); - return; - } - afterAddonInstall(response, button, message, el, saveAndReload, action); - - /** - * Trigger an action after successfully toggling the addon state. - * - * @param {Object} response - */ - wp.hooks.doAction('frm_update_addon_state', response); - }, - error: function error() { - button.removeClass('frm_loading_button'); - } - }); - } - function installAddonWithCreds(e) { - // Prevent the default action, let the user know we are attempting to install again and go with it. - e.preventDefault(); - - // Now let's make another Ajax request once the user has submitted their credentials. - var proceed = jQuery(this); - var el = proceed.parent().parent(); - var plugin = proceed.attr('rel'); - proceed.addClass('frm_loading_button'); - jQuery.ajax({ - url: ajaxurl, - type: 'POST', - async: true, - cache: false, - dataType: 'json', - data: { - action: 'frm_install_addon', - nonce: frmAdminJs.nonce, - plugin: plugin, - hostname: el.find('#hostname').val(), - username: el.find('#username').val(), - password: el.find('#password').val() - }, - success: function success(response) { - var _response$data2, _response2; - response = (_response$data2 = (_response2 = response) === null || _response2 === void 0 ? void 0 : _response2.data) !== null && _response$data2 !== void 0 ? _response$data2 : response; - var error = extractErrorFromAddOnResponse(response); - if (error) { - addonError(error, el, proceed); - return; - } - afterAddonInstall(response, proceed, message, el); - }, - error: function error() { - proceed.removeClass('frm_loading_button'); - } - }); - } - function afterAddonInstall(response, button, message, el, saveAndReload) { - var action = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'frm_activate_addon'; - var addonStatuses = document.querySelectorAll('.frm-addon-status'); - addonStatuses.forEach(function (addonStatus) { - addonStatus.textContent = response; - addonStatus.style.display = 'block'; - }); - - // The Ajax request was successful, so let's update the output. - button.css({ - opacity: '0' - }); - document.querySelectorAll('.frm-oneclick').forEach(function (oneClick) { - oneClick.style.display = 'none'; - }); - jQuery('#frm_upgrade_modal h2').hide(); - jQuery('#frm_upgrade_modal .frm_lock_icon').addClass('frm_lock_open_icon'); - jQuery('#frm_upgrade_modal .frm_lock_icon use').attr('xlink:href', '#frm_lock_open_icon'); - - // Proceed with CSS changes - var actionMap = { - frm_activate_addon: { - class: 'frm-addon-active', - message: frmAdminJs.active - }, - frm_deactivate_addon: { - class: 'frm-addon-installed', - message: frmAdminJs.installed - }, - frm_uninstall_addon: { - class: 'frm-addon-not-installed', - message: frmAdminJs.not_installed - } - }; - actionMap.frm_install_addon = actionMap.frm_activate_addon; - var messageElement = message[0]; - if (messageElement) { - messageElement.textContent = actionMap[action].message; - } - var parentElement = el[0].parentElement; - parentElement.classList.remove('frm-addon-not-installed', 'frm-addon-installed', 'frm-addon-active'); - parentElement.classList.add(actionMap[action].class); - var buttonElement = button[0]; - buttonElement.classList.remove('frm_loading_button'); - - // Maybe refresh import and SMTP pages - var refreshPage = document.querySelectorAll('.frm-admin-page-import, #frm-admin-smtp, #frm-welcome'); - if (refreshPage.length > 0) { - window.location.reload(); - return; - } - if (['settings', 'form_builder'].includes(saveAndReload)) { - addonStatuses.forEach(function (addonStatus) { - var inModal = null !== addonStatus.closest('#frm_upgrade_modal'); - addonStatus.appendChild(getSaveAndReloadSettingsOptions(saveAndReload, inModal)); - }); - } - } - function getSaveAndReloadSettingsOptions(saveAndReload, inModal) { - var className = 'frm-save-and-reload-options'; - var children = [saveAndReloadSettingsButton(saveAndReload)]; - if (inModal) { - children.push(closePopupButton()); - } - return div({ - className: className, - children: children - }); - } - function saveAndReloadSettingsButton(saveAndReload) { - var button = document.createElement('button'); - button.classList.add('frm-save-and-reload', 'button', 'button-primary', 'frm-button-primary'); - button.textContent = __('Save and Reload', 'formidable'); - button.addEventListener('click', function () { - if (saveAndReload === 'form_builder') { - saveAndReloadFormBuilder(); - } else if (saveAndReload === 'settings') { - saveAndReloadSettings(); - } - }); - return button; - } - function closePopupButton() { - var a = document.createElement('a'); - a.setAttribute('href', '#'); - a.classList.add('button', 'button-secondary', 'frm-button-secondary', 'dismiss'); - a.textContent = __('Close', 'formidable'); - return a; - } - function extractErrorFromAddOnResponse(response) { - if (typeof response !== 'string') { - if (typeof response.success !== 'undefined' && response.success) { - return false; - } - if (response.form) { - if (jQuery(response.form).is('#message')) { - return { - message: jQuery(response.form).find('p').html() - }; - } - } - return response; - } - return false; - } - function addonError(response, el, button) { - if (response.form) { - jQuery('.frm-inline-error').remove(); - button.closest('.frm-card').html(response.form).css({ - padding: 5 - }).find('#upgrade').attr('rel', button.attr('rel')).on('click', installAddonWithCreds); - } else { - el.append('

                                    ' + response.message + '

                                    '); - button.removeClass('frm_loading_button'); - jQuery('.frm-addon-error').delay(4000).fadeOut(); - } - } - - /* Templates */ - function showActiveCampaignForm() { - loadApiEmailForm(); - } - function handleApiFormError(inputId, errorId, type, message) { - var $error = jQuery(errorId); - $error.removeClass('frm_hidden').attr('frm-error', type); - if (typeof message !== 'undefined') { - $error.find('span[frm-error="' + type + '"]').text(message); - } - jQuery(inputId).one('keyup', function () { - $error.addClass('frm_hidden'); - }); - } - function handleEmailAddressError(type) { - handleApiFormError('#frm_leave_email', '#frm_leave_email_error', type); - } - function loadApiEmailForm() { - var formContainer = document.getElementById('frmapi-email-form'); - jQuery.ajax({ - dataType: 'json', - url: formContainer.getAttribute('data-url'), - success: function success(json) { - var form = json.renderedHtml; - form = form.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi, ''); - formContainer.innerHTML = form; - } - }); - } - function initAutocomplete(container) { - frmDom.autocomplete.initSelectionAutocomplete(container); - } - function nextInstallStep(thisStep) { - thisStep.classList.add('frm_grey'); - thisStep.nextElementSibling.classList.remove('frm_grey'); - } - function installTemplateFieldset(e) { - /*jshint validthis:true */ - var fieldset = this.parentNode.parentNode, - action = fieldset.elements.type.value, - button = this; - e.preventDefault(); - button.classList.add('frm_loading_button'); - installNewForm(fieldset, action, button); - } - function installTemplate(e) { - /*jshint validthis:true */ - var action = this.elements.type.value, - button = this.querySelector('button'); - e.preventDefault(); - button.classList.add('frm_loading_button'); - installNewForm(this, action, button); - } - function installNewForm(form, action, button) { - var formData = formToData(form); - var formName = formData.template_name; - var formDesc = formData.template_desc; - var link = form.elements.link.value; - var data = { - action: action, - xml: link, - name: formName, - desc: formDesc, - form: JSON.stringify(formData), - nonce: frmGlobal.nonce - }; - var hookName = 'frm_before_install_new_form'; - var filterArgs = { - formData: formData - }; - data = wp.hooks.applyFilters(hookName, data, filterArgs); - postAjax(data, function (response) { - if (typeof response.redirect !== 'undefined') { - var redirect = response.redirect; - if (typeof form.elements.redirect === 'undefined') { - window.location = redirect; - } else { - var href = document.getElementById('frm-redirect-link'); - if (typeof link !== 'undefined' && href !== null) { - // Show the next installation step. - href.setAttribute('href', redirect); - href.classList.remove('frm_grey', 'disabled'); - nextInstallStep(form.parentNode.parentNode); - button.classList.add('frm_grey', 'disabled'); - } - } - } else { - jQuery('.spinner').css('visibility', 'hidden'); - - // Show response.message - if ('string' === typeof response.message) { - showInstallFormErrorModal(response.message); - } - } - button.classList.remove('frm_loading_button'); - }); - } - function showInstallFormErrorModal(message) { - var modalContent = div(message); - modalContent.style.padding = '20px 40px'; - var modal = frmDom.modal.maybeCreateModal('frmInstallFormErrorModal', { - title: __('Unable to install template', 'formidable'), - content: modalContent - }); - modal.classList.add('frm_common_modal'); - } - function handleCaptchaTypeChange(e) { - var thresholdContainer = document.getElementById('frm_captcha_threshold_container'); - if (thresholdContainer) { - thresholdContainer.classList.toggle('frm_hidden', 'v3' !== e.target.value); - } - } - function trashTemplate(e) { - /*jshint validthis:true */ - var id = this.getAttribute('data-id'); - e.preventDefault(); - data = { - action: 'frm_forms_trash', - id: id, - nonce: frmGlobal.nonce - }; - postAjax(data, function () { - var card = document.getElementById('frm-template-custom-' + id); - fadeOut(card, function () { - card.parentNode.removeChild(card); - }); - }); - } - function searchContent() { - /*jshint validthis:true */ - var i, - regEx = false, - searchText = this.value.toLowerCase(), - toSearch = this.getAttribute('data-tosearch'), - items = document.getElementsByClassName(toSearch); - if (this.tagName === 'SELECT') { - searchText = selectedOptions(this); - searchText = searchText.join('|').toLowerCase(); - regEx = true; - } - if (toSearch === 'frm-action' && searchText !== '') { - var addons = document.getElementById('frm_email_addon_menu').classList; - addons.remove('frm-all-actions'); - addons.add('frm-limited-actions'); - } - for (i = 0; i < items.length; i++) { - var innerText = items[i].innerText.toLowerCase(); - var itemCanBeShown = !(getExportOption() === 'xml' && items[i].classList.contains('frm-is-repeater')); - if (searchText === '') { - if (itemCanBeShown && checkContextualShortcode(items[i])) { - items[i].classList.remove('frm_hidden'); - } - items[i].classList.remove('frm-search-result'); - } else if (regEx && new RegExp(searchText).test(innerText) || innerText.indexOf(searchText) >= 0 || textMatchesPlural(innerText, searchText)) { - if (itemCanBeShown && checkContextualShortcode(items[i])) { - items[i].classList.remove('frm_hidden'); - } - items[i].classList.add('frm-search-result'); - } else { - items[i].classList.add('frm_hidden'); - items[i].classList.remove('frm-search-result'); - } - } - - // Updates the visibility of category headings based on search results. - updateCatHeadingVisibility(); - jQuery(this).trigger('frmAfterSearch'); - } - - /** - * Allow a search for "signatures" to still match "signature" for example when searching fields. - * - * @since 6.15 - * - * @param {string} text The text in the element we are checking for a match. - * @param {string} searchText The text value that is being searched. - * @return {boolean} - */ - function textMatchesPlural(text, searchText) { - if (searchText === 's') { - // Don't match everything when just "s" is searched. - return false; - } - if (text[text.length - 1] === 's') { - // Do not match something with double s if the text already ends in s. - return false; - } - return (text + 's').indexOf(searchText) >= 0; - } - - /** - * Updates the visibility of category headings based on search results. - * If all associated fields are hidden (indicating no search matches), - * the heading is hidden. - * - * @since 6.4.1 - */ - function updateCatHeadingVisibility() { - var insertFieldsElement = document.querySelector('#frm-insert-fields'); - if (!insertFieldsElement) { - return; - } - var headingElements = insertFieldsElement.querySelectorAll(':scope > .frm-with-line'); - headingElements.forEach(function (heading) { - var fieldsListElement = heading.nextElementSibling; - if (!fieldsListElement) { - return; - } - var listItemElements = fieldsListElement.querySelectorAll(':scope > li.frmbutton'); - var allHidden = Array.from(listItemElements).every(function (li) { - return li.classList.contains('frm_hidden'); - }); - - // Add or remove class based on `allHidden` condition - heading.classList.toggle('frm_hidden', allHidden); - }); - } - function stopPropagation(e) { - e.stopPropagation(); - } - - /* Helpers */ - - function selectedOptions(select) { - var opt, - result = [], - options = select && select.options; - for (var _i13 = 0, iLen = options.length; _i13 < iLen; _i13++) { - opt = options[_i13]; - if (opt.selected) { - result.push(opt.value); - } - } - return result; - } - function triggerEvent(element, event) { - var evt = document.createEvent('HTMLEvents'); - evt.initEvent(event, false, true); - element.dispatchEvent(evt); - } - function postAjax(data, success) { - var response; - var xmlHttp = new XMLHttpRequest(); - var params = typeof data === 'string' ? data : Object.keys(data).map(function (k) { - return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]); - }).join('&'); - xmlHttp.open('post', ajaxurl, true); - xmlHttp.onreadystatechange = function () { - if (xmlHttp.readyState > 3 && xmlHttp.status == 200) { - response = xmlHttp.responseText; - try { - response = JSON.parse(response); - } catch (e) { - // The response may not be JSON, so just return it. - } - success(response); - } - }; - xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); - xmlHttp.send(params); - return xmlHttp; - } - function fadeOut(element, success) { - element.classList.add('frm-fade'); - setTimeout(success, 1000); - } - function invisible(classes) { - jQuery(classes).css('visibility', 'hidden'); - } - function visible(classes) { - jQuery(classes).css('visibility', 'visible'); - } - function initModal(id, width) { - var $info = jQuery(id); - if (!$info.length) { - return false; - } - if (typeof width === 'undefined') { - width = '550px'; - } - var dialogArgs = { - dialogClass: 'frm-dialog', - modal: true, - autoOpen: false, - closeOnEscape: true, - width: width, - resizable: false, - draggable: false, - open: function open() { - jQuery('.ui-dialog-titlebar').addClass('frm_hidden').removeClass('ui-helper-clearfix'); - jQuery('#wpwrap').addClass('frm_overlay'); - jQuery('.frm-dialog').removeClass('ui-widget ui-widget-content ui-corner-all'); - $info.removeClass('ui-dialog-content ui-widget-content'); - bindClickForDialogClose($info); - }, - close: function close() { - jQuery('#wpwrap').removeClass('frm_overlay'); - jQuery('.spinner').css('visibility', 'hidden'); - this.removeAttribute('data-option-type'); - var optionType = document.getElementById('bulk-option-type'); - if (optionType) { - optionType.value = ''; - } - } - }; - $info.dialog(dialogArgs); - return $info; - } - function toggle(cname, id) { - if (id === '#') { - var cont = document.getElementById(cname); - var hidden = cont.style.display; - if (hidden === 'none') { - cont.style.display = 'block'; - } else { - cont.style.display = 'none'; - } - } else { - var vis = cname.is(':visible'); - if (vis) { - cname.hide(); - } else { - cname.show(); - } - } - } - function removeWPUnload() { - window.onbeforeunload = null; - var w = jQuery(window); - w.off('beforeunload.widgets'); - w.off('beforeunload.edit-post'); - } - function addMultiselectLabelListener() { - var clickListener = function clickListener(e) { - if ('LABEL' !== e.target.nodeName) { - return; - } - var labelFor = e.target.getAttribute('for'); - if (!labelFor) { - return; - } - var input = document.getElementById(labelFor); - if (!input || !input.nextElementSibling) { - return; - } - var buttonToggle = input.nextElementSibling.querySelector('button.dropdown-toggle.multiselect'); - if (!buttonToggle) { - return; - } - var triggerMultiselectClick = function triggerMultiselectClick() { - return buttonToggle.click(); - }; - setTimeout(triggerMultiselectClick, 0); - }; - document.addEventListener('click', clickListener); - } - function maybeChangeEmbedFormMsg() { - var fieldId = jQuery(this).closest('.frm-single-settings').data('fid'); - var fieldItem = document.getElementById('frm_field_id_' + fieldId); - if (null === fieldItem || 'form' !== fieldItem.dataset.type) { - return; - } - fieldItem = jQuery(fieldItem); - if (this.options[this.selectedIndex].value) { - fieldItem.find('.frm-not-set')[0].classList.add('frm_hidden'); - var embedMsg = fieldItem.find('.frm-embed-message'); - embedMsg.html(embedMsg.data('embedmsg') + this.options[this.selectedIndex].text); - fieldItem.find('.frm-embed-field-placeholder')[0].classList.remove('frm_hidden'); - } else { - fieldItem.find('.frm-not-set')[0].classList.remove('frm_hidden'); - fieldItem.find('.frm-embed-field-placeholder')[0].classList.add('frm_hidden'); - } - } - function toggleProductType() { - var settings = jQuery(this).closest('.frm-single-settings'), - container = settings.find('.frmjs_product_choices'), - heading = settings.find('.frm_prod_options_heading'), - currentVal = this.options[this.selectedIndex].value; - container.removeClass('frm_prod_type_single frm_prod_type_user_def'); - heading.removeClass('frm_prod_user_def'); - if ('single' === currentVal) { - container.addClass('frm_prod_type_single'); - } else if ('user_def' === currentVal) { - container.addClass('frm_prod_type_user_def'); - heading.addClass('frm_prod_user_def'); - } - } - - /** - * @param {Number | string} fieldId - * @return {boolean} True if the field is a product field. - */ - function isProductField(fieldId) { - var field = document.getElementById('frm_field_id_' + fieldId); - if (field === null) { - return false; - } - return 'product' === field.getAttribute('data-type'); - } - - /** - * Serialize form data with vanilla JS. - */ - function formToData(form) { - var subKey, - i, - object = {}, - formData = form.elements; - for (i = 0; i < formData.length; i++) { - var input = formData[i], - key = input.name, - value = input.value, - names = key.match(/(.*)\[(.*)\]/); - if ((input.type === 'radio' || input.type === 'checkbox') && !input.checked) { - continue; - } - if (names !== null) { - key = names[1]; - subKey = names[2]; - if (!Reflect.has(object, key)) { - object[key] = {}; - } - object[key][subKey] = value; - continue; - } - - // Reflect.has in favor of: object.hasOwnProperty(key) - if (!Reflect.has(object, key)) { - object[key] = value; - continue; - } - if (!Array.isArray(object[key])) { - object[key] = [object[key]]; - } - object[key].push(value); - } - return object; - } - - /** - * Show, hide, and sort subfields of Name field on form builder. - * - * @since 4.11 - */ - function handleNameFieldOnFormBuilder() { - /** - * Gets subfield element from cache. - * - * @param {string} fieldId Field ID. - * @param {string} key Cache key. - * @return {HTMLElement|undefined} Return the element from cache or undefined if not found. - */ - var getSubFieldElFromCache = function getSubFieldElFromCache(fieldId, key) { - window.frmCachedSubFields = window.frmCachedSubFields || {}; - window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; - return window.frmCachedSubFields[fieldId][key]; - }; - - /** - * Sets subfield element to cache. - * - * @param {string} fieldId Field ID. - * @param {string} key Cache key. - * @param {HTMLElement} el Element. - */ - var setSubFieldElToCache = function setSubFieldElToCache(fieldId, key, el) { - window.frmCachedSubFields = window.frmCachedSubFields || {}; - window.frmCachedSubFields[fieldId] = window.frmCachedSubFields[fieldId] || {}; - window.frmCachedSubFields[fieldId][key] = el; - }; - - /** - * Gets column class from the number of columns. - * - * @param {Number} colCount Number of columns. - * @return {string} - */ - var getColClass = function getColClass(colCount) { - return 'frm' + parseInt(12 / colCount); - }; - var colClasses = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(function (num) { - return 'frm' + num; - }); - var allSubFieldNames = ['first', 'middle', 'last']; - - /** - * Handles name layout change. - * - * @param {Event} event Event object. - */ - var onChangeLayout = function onChangeLayout(event) { - var value = event.target.value; - var subFieldNames = value.split('_'); - var fieldId = event.target.dataset.fieldId; - - /* - * Live update form on the form builder. - */ - var container = document.querySelector('#field_' + fieldId + '_inner_container .frm_combo_inputs_container'); - var newColClass = getColClass(subFieldNames.length); - - // Set all sub field elements to cache and hide all of them first. - allSubFieldNames.forEach(function (name) { - var subFieldEl = container.querySelector('[data-sub-field-name="' + name + '"]'); - if (subFieldEl) { - var _subFieldEl$classList; - subFieldEl.classList.add('frm_hidden'); - (_subFieldEl$classList = subFieldEl.classList).remove.apply(_subFieldEl$classList, _toConsumableArray(colClasses)); - setSubFieldElToCache(fieldId, name, subFieldEl); - } - }); - subFieldNames.forEach(function (subFieldName) { - var subFieldEl = getSubFieldElFromCache(fieldId, subFieldName); - if (!subFieldEl) { - return; - } - subFieldEl.classList.remove('frm_hidden'); - subFieldEl.classList.add(newColClass); - container.append(subFieldEl); - }); - - /* - * Live update subfield options. - */ - // Hide all subfield options. - allSubFieldNames.forEach(function (name) { - var optionsEl = document.querySelector('.frm_sub_field_options-' + name + '[data-field-id="' + fieldId + '"]'); - if (optionsEl) { - optionsEl.classList.add('frm_hidden'); - setSubFieldElToCache(fieldId, name + '_options', optionsEl); - } - }); - subFieldNames.forEach(function (subFieldName) { - var optionsEl = getSubFieldElFromCache(fieldId, subFieldName + '_options'); - if (!optionsEl) { - return; - } - optionsEl.classList.remove('frm_hidden'); - }); - }; - var dropdownSelector = '.frm_name_layout_dropdown'; - document.addEventListener('change', function (event) { - if (event.target.matches(dropdownSelector)) { - onChangeLayout(event); - } - }, false); - } - function debounce(func) { - var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100; - return frmDom.util.debounce(func, wait); - } - function addSaveAndDragIconsToOption(fieldId, liObject) { - var li, useTag, useTagHref; - var hasDragIcon = false; - var hasSaveIcon = false; - if (liObject.newOption) { - var parser = new DOMParser(); - li = parser.parseFromString(liObject.newOption, 'text/html').body.childNodes[0]; - } else { - li = liObject; - } - var liIcons = li.querySelectorAll('svg'); - liIcons.forEach(function (svg, key) { - useTag = svg.getElementsByTagNameNS('http://www.w3.org/2000/svg', 'use')[0]; - if (!useTag) { - return; - } - useTagHref = useTag.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || useTag.getAttribute('href'); - if (useTagHref === '#frm_drag_icon') { - hasDragIcon = true; - } - if (useTagHref === '#frm_save_icon') { - hasSaveIcon = true; - } - }); - if (!hasDragIcon) { - li.prepend(icons.drag.cloneNode(true)); - } - if (li.querySelector("[id^=field_key_".concat(fieldId, "-]")) && !hasSaveIcon) { - li.querySelector("[id^=field_key_".concat(fieldId, "-]")).after(icons.save.cloneNode(true)); - } - if (liObject.newOption) { - liObject.newOption = li; - } - } - function maybeAddSaveAndDragIcons(fieldId) { - var fieldOptions = document.querySelectorAll("[id^=frm_delete_field_".concat(fieldId, "-]")); - // return if there are no options. - if (fieldOptions.length < 2) { - return; - } - var options = _toConsumableArray(fieldOptions).slice(1); - options.forEach(function (li, _key) { - if (li.classList.contains('frm_other_option')) { - return; - } - addSaveAndDragIconsToOption(fieldId, li); - }); - } - - /** - * Enforce the maximum number of entries list columns dynamically. - * - * @since 6.24 - * - * @return {void} - */ - function maybeInitEntriesListPage() { - if (!document.body.classList.contains('frm-admin-page-entries')) { - return; - } - var screenOptionsWrapper = document.getElementById('screen-options-wrap'); - if (!screenOptionsWrapper) { - return; - } - var maxSelectionsNote = div({ - className: 'frm_warning_style', - text: __('Only 10 columns can be selected at a time.', 'formidable') - }); - maxSelectionsNote.style.margin = 0; - var legend = screenOptionsWrapper.querySelector('legend'); - legend.parentNode.insertBefore(maxSelectionsNote, legend.nextElementSibling); - var checkboxes = Array.from(screenOptionsWrapper.querySelectorAll('input[type="checkbox"]')); - var maximumColumns = 10; - var getSelectedCount = function getSelectedCount() { - return checkboxes.reduce(function (count, checkbox) { - return checkbox.checked ? count + 1 : count; - }, 0); - }; - var disableCheckboxesIfAtMax = function disableCheckboxesIfAtMax() { - if (getSelectedCount() >= maximumColumns) { - maxSelectionsNote.classList.remove('frm_hidden'); - checkboxes.forEach(function (checkbox) { - if (!checkbox.checked) { - checkbox.parentNode.classList.add('frm_noallow'); - checkbox.disabled = true; - } - }); - } else { - maxSelectionsNote.classList.add('frm_hidden'); - } - }; - var addCheckboxListeners = function addCheckboxListeners() { - checkboxes.forEach(function (checkbox) { - checkbox.addEventListener('change', function (event) { - if (event.target.checked) { - disableCheckboxesIfAtMax(); - } else { - maxSelectionsNote.classList.add('frm_hidden'); - - // Enable all checkboxes when a checkbox is unchecked. - checkboxes.forEach(function (checkbox) { - checkbox.parentNode.classList.remove('frm_noallow'); - checkbox.disabled = false; - }); - } - }); - }); - }; - disableCheckboxesIfAtMax(); - addCheckboxListeners(); - } - function initOnSubmitAction() { - var onChangeType = function onChangeType(event) { - if (!event.target.checked) { - return; - } - var actionEl = event.target.closest('.frm_form_action_settings'); - actionEl.querySelectorAll('.frm_on_submit_dependent_setting:not(.frm_hidden)').forEach(function (el) { - el.classList.add('frm_hidden'); - }); - var activeEls = actionEl.querySelectorAll('.frm_on_submit_dependent_setting[data-show-if-' + event.target.value + ']'); - activeEls.forEach(function (activeEl) { - activeEl.classList.remove('frm_hidden'); - }); - actionEl.setAttribute('data-on-submit-type', event.target.value); - }; - frmDom.util.documentOn('change', '.frm_on_submit_type input[type="radio"]', onChangeType); - } - - /** - * Listen for click events for an API-loaded email collection form. - * - * This is used for the Active Campaign sign-up form in the inbox page (when there are no messages). - */ - function initAddMyEmailAddress() { - jQuery(document).on('click', '#frm-add-my-email-address', function (event) { - event.preventDefault(); - addMyEmailAddress(); - }); - var emptyInbox = document.getElementById('frm_empty_inbox'); - var leaveEmailInput = document.getElementById('frm_leave_email'); - if (emptyInbox && leaveEmailInput) { - var leaveEmailModal = document.getElementById('frm-leave-email-modal'); - leaveEmailModal.classList.remove('frm_hidden'); - leaveEmailModal.querySelector('.frm_modal_footer').classList.add('frm_hidden'); - leaveEmailInput.addEventListener('keyup', function (event) { - if ('Enter' === event.key) { - var button = document.getElementById('frm-add-my-email-address'); - if (button) { - button.click(); - } - } - }); - } - } - function addMyEmailAddress() { - var email = document.getElementById('frm_leave_email').value.trim(); - if ('' === email) { - handleEmailAddressError('empty'); - return; - } - var regex = /^(([^<>()\[\]\\.,;:\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; - if (regex.test(email) === false) { - handleEmailAddressError('invalid'); - return; - } - var $hiddenForm = jQuery('#frmapi-email-form').find('form'); - var $hiddenEmailField = $hiddenForm.find('[type="email"]').not('.frm_verify'); - if (!$hiddenEmailField.length) { - return; - } - var emptyInbox = document.getElementById('frm_empty_inbox'); - if (emptyInbox) { - document.getElementById('frm-add-my-email-address').remove(); - var emailWrapper = document.getElementById('frm_leave_email_wrapper'); - if (emailWrapper) { - emailWrapper.classList.add('frm_hidden'); - var spinner = span({ - className: 'frm-wait frm_spinner' - }); - spinner.style.visibility = 'visible'; - spinner.style.float = 'none'; - spinner.style.width = 'unset'; - emailWrapper.parentElement.insertBefore(spinner, emailWrapper.nextElementSibling); - } - } - $hiddenEmailField.val(email); - jQuery.ajax({ - type: 'POST', - url: $hiddenForm.attr('action'), - data: $hiddenForm.serialize() + '&action=frm_forms_preview' - }).done(function (data) { - var message = jQuery(data).find('.frm_message').text().trim(); - if (message.indexOf('Thanks!') === -1) { - handleEmailAddressError('invalid'); - return; - } - var apiForm = document.getElementById('frmapi-email-form'); - var spinner = apiForm.parentElement.querySelector('.frm_spinner'); - if (spinner) { - spinner.remove(); - } - var showSuccessMessage = wp.hooks.applyFilters('frm_thank_you_on_signup', true); - if (showSuccessMessage) { - // Handle successful form submission. - // handle the Active Campaign form on the inbox page. - document.getElementById('frm_leave_email_wrapper').replaceWith(span(__('Thank you for signing up!', 'formidable'))); - } - }); - } - - /** - * Adds footer links to the admin body content. - * - * @return {void} - */ - function addAdminFooterLinks() { - var _document$querySelect7; - var footerLinks = document.querySelector('.frm-admin-footer-links'); - var container = (_document$querySelect7 = document.querySelector('.frm_page_container')) !== null && _document$querySelect7 !== void 0 ? _document$querySelect7 : document.getElementById('wpbody-content'); - if (!footerLinks || !container) { - return; - } - container.appendChild(footerLinks); - footerLinks.classList.remove('frm_hidden'); - } - - /** - * Apply zebra striping to a table while ignoring empty rows. - * - * @param {string} tableSelector The CSS selector for the table. - * @param {string} emptyRowClass The class name used to identify empty rows. - */ - function applyZebraStriping(tableSelector, emptyRowClass) { - // Get all non-empty table rows within the specified table - var rows = document.querySelectorAll("".concat(tableSelector, " tr").concat(emptyRowClass ? ":not(.".concat(emptyRowClass, ")") : '')); - if (rows.length < 1) { - return; - } - var isOdd = true; - rows.forEach(function (row) { - // Clean old "frm-odd" or "frm-even" classes and add the appropriate new class - row.classList.remove('frm-odd', 'frm-even'); - row.classList.add(isOdd ? 'frm-odd' : 'frm-even'); - isOdd = !isOdd; - }); - var tables = document.querySelectorAll(tableSelector); - tables.forEach(function (table) { - return table.classList.add('frm-zebra-striping'); - }); - } - function maybeHideShortcodes(e) { - if (!builderPage) { - e.stopPropagation(); - } - if (e.target.classList.contains('frm-show-box') || e.target.parentElement && e.target.parentElement.classList.contains('frm-show-box')) { - return; - } - var sidebar = document.getElementById('frm_adv_info'); - if (!sidebar) { - return; - } - if (sidebar.dataset.fills === e.target.id && typeof e.target.id !== 'undefined') { - return; - } - var isChild = e.target.closest('#frm_adv_info'); - if (!isChild && sidebar.style.display !== 'none') { - hideShortcodes(sidebar); - } - } - - /** - * Initializes and manages the visibility of dependent elements based on the selected options in dropdowns with the 'frm_select_with_dependency' class. - * It sets up initial visibility at page load and updates it on each dropdown change. - * - * @since 6.9 - * - * @return {void} - */ - function initSelectDependencies() { - var selects = document.querySelectorAll('select.frm_select_with_dependency'); - - /** - * Toggles the visibility of dependent elements associated with a select element based on its current selection. - * - * @since 6.9 - * - * @param {HTMLElement} select The select element whose dependencies need to be managed. - * @return {void} - */ - function toggleDependencyVisibility(select) { - var selectedOption = select.options[select.selectedIndex]; - select.querySelectorAll('option[data-dependency]:not([data-dependency-skip])').forEach(function (option) { - var dependencyElement = document.querySelector(option.dataset.dependency); - dependencyElement === null || dependencyElement === void 0 || dependencyElement.classList.toggle('frm_hidden', selectedOption !== option); - }); - } - - // Initial setup: Show dependencies based on the current selection in each dropdown - selects.forEach(toggleDependencyVisibility); - - // Update dependencies visibility on dropdown change - frmDom.util.documentOn('change', 'select.frm_select_with_dependency', function (event) { - return toggleDependencyVisibility(event.target); - }); - } - - /** - * Moves the focus to the next single option input field in the list and positions the cursor at the end of the text. - * - * @param {HTMLElement} currentInput The currently focused input element. - */ - function focusNextSingleOptionInput(currentInput) { - var optionsList = currentInput.closest('.frm_single_option').parentElement; - var inputs = optionsList.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'); - var inputsArray = Array.from(inputs); - - // Find the index of the currently focused input - var currentIndex = inputsArray.indexOf(currentInput); - if (currentIndex < 0) { - return; - } - - // Find the next visible input field - var nextInput = inputsArray.slice(currentIndex + 1).find(function (input) { - return input.offsetParent !== null; - }); - if (nextInput) { - nextInput.focus(); - - // Move the cursor to the end of the text in the next input field - var textLength = nextInput.value.length; - nextInput.setSelectionRange(textLength, textLength); - } - } - return { - init: function init() { - initAddMyEmailAddress(); - addAdminFooterLinks(); - s = {}; - - // Bootstrap dropdown button - jQuery('.wp-admin').on('click', function (e) { - var t = jQuery(e.target); - var $openDrop = jQuery('.dropdown.open'); - if ($openDrop.length && !t.hasClass('dropdown') && !t.closest('.dropdown').length) { - $openDrop.removeClass('open'); - } - }); - jQuery('#frm_bs_dropdown:not(.open) a').on('click', focusSearchBox); - if (typeof thisFormId === 'undefined') { - thisFormId = jQuery(document.getElementById('form_id')).val(); - } - - // Add event listener for dismissible warning messages. - document.querySelectorAll('.frm-warning-dismiss').forEach(function (dismissIcon) { - onClickPreventDefault(dismissIcon, dismissWarningMessage); - }); - frmAdminBuild.inboxBannerInit(); - if ($newFields.length > 0) { - // only load this on the form builder page - frmAdminBuild.buildInit(); - } else if (document.getElementById('frm_notification_settings') !== null) { - // only load on form settings page - frmAdminBuild.settingsInit(); - } else if (document.getElementById('frm_styling_form') !== null) { - // load styling settings js - frmAdminBuild.styleInit(); - } else if (document.getElementById('form_global_settings') !== null) { - // global settings page - frmAdminBuild.globalSettingsInit(); - } else if (document.getElementById('frm_export_xml') !== null) { - // import/export page - frmAdminBuild.exportInit(); - } else if (null !== document.querySelector('.frm-inbox-wrapper')) { - // Dashboard page inbox. - frmAdminBuild.inboxInit(); - } else if (document.getElementById('frm-welcome') !== null) { - // Solution install page - frmAdminBuild.solutionInit(); - } else { - maybeInitEntriesListPage(); - initAutocomplete(); - jQuery('[data-frmprint]').on('click', function () { - window.print(); - return false; - }); - } - jQuery(document).on('change', 'select[data-toggleclass], input[data-toggleclass]', toggleFormOpts); - initSelectDependencies(); - var $advInfo = jQuery(document.getElementById('frm_adv_info')); - if ($advInfo.length > 0 || jQuery('.frm_field_list').length > 0) { - // only load on the form, form settings, and view settings pages - frmAdminBuild.panelInit(); - } - loadTooltips(); - initUpgradeModal(); - frmDom.util.documentOn('click', '[data-modal-title]', showBasicModal); - - // used on build, form settings, and view settings - var $shortCodeDiv = jQuery(document.getElementById('frm_shortcodediv')); - if ($shortCodeDiv.length > 0) { - jQuery('a.edit-frm_shortcode').on('click', function () { - if ($shortCodeDiv.is(':hidden')) { - $shortCodeDiv.slideDown('fast'); - this.style.display = 'none'; - } - return false; - }); - jQuery('.cancel-frm_shortcode', '#frm_shortcodediv').on('click', function () { - $shortCodeDiv.slideUp('fast'); - $shortCodeDiv.siblings('a.edit-frm_shortcode').show(); - return false; - }); - } - - // tabs - jQuery(document).on('click', '#frm-nav-tabs a', clickNewTab); - jQuery('.post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a').on('click', function () { - var showUpgradeTab = this.classList.contains('frm_show_upgrade_tab'); - if (this.classList.contains('frm_noallow') && !showUpgradeTab) { - return; - } - if (showUpgradeTab) { - populateUpgradeTab(this); - } - clickTab(this); - return false; - }); - clickTab(jQuery('.starttab a'), 'auto'); - - // submit the search form with dropdown - jQuery(document).on('click', '#frm-fid-search-menu a', function () { - var val = this.id.replace('fid-', ''); - jQuery('select[name="fid"]').val(val); - triggerSubmit(document.getElementById('posts-filter')); - return false; - }); - jQuery('.frm_select_box').on('click focus', function () { - this.select(); - }); - jQuery(document).on('input search change', '.frm-auto-search:not(#frm-form-templates-page #template-search-input)', searchContent); - jQuery(document).on('focusin click', '.frm-auto-search', stopPropagation); - var autoSearch = jQuery('.frm-auto-search'); - if (autoSearch.val() !== '') { - autoSearch.trigger('keyup'); - } - - // Initialize Formidable Connection. - FrmFormsConnect.init(); - jQuery(document).on('click', '.frm-install-addon', installAddon); - jQuery(document).on('click', '.frm-activate-addon', activateAddon); - jQuery(document).on('click', '.frm-solution-multiple', installMultipleAddons); - - // prevent annoying confirmation message from WordPress - jQuery('button, input[type=submit]').on('click', removeWPUnload); - addMultiselectLabelListener(); - frmAdminBuild.hooks.addFilter('frm_before_embed_modal', function (ids, _ref4) { - var element = _ref4.element, - type = _ref4.type; - if ('form' !== type) { - return ids; - } - var formId, formKey; - var row = element.closest('tr'); - if (row) { - // Embed icon on form index. - formId = parseInt(row.querySelector('.column-id').textContent); - formKey = row.querySelector('.column-form_key').textContent; - } else { - // Embed button in form builder / form settings. - formId = document.getElementById('form_id').value; - var formKeyInput = document.getElementById('frm_form_key'); - if (formKeyInput) { - formKey = formKeyInput.value; - } else { - var previewDrop = document.getElementById('frm-previewDrop'); - if (previewDrop) { - formKey = previewDrop.nextElementSibling.querySelector('.dropdown-item a').getAttribute('href').split('form=')[1]; - } - } - } - return [formId, formKey]; - }); - document.querySelectorAll('#frm-show-fields > li, .frm_grid_container li').forEach(function (el, _key) { - el.addEventListener('click', function () { - var _this$querySelector; - var fieldId = ((_this$querySelector = this.querySelector('li')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.dataset.fid) || this.dataset.fid; - maybeAddSaveAndDragIcons(fieldId); - }); - }); - var smallScreenProceedButton = document.getElementById('frm_small_screen_proceed_button'); - if (smallScreenProceedButton) { - onClickPreventDefault(smallScreenProceedButton, function () { - var _document$getElementB5; - (_document$getElementB5 = document.getElementById('frm_small_device_message_container')) === null || _document$getElementB5 === void 0 || _document$getElementB5.remove(); - doJsonPost('small_screen_proceed', new FormData()); - }); - } - var saleBanner = document.getElementById('frm_sale_banner'); - var saleDismiss = saleBanner === null || saleBanner === void 0 ? void 0 : saleBanner.querySelector('.dismiss'); - if (saleBanner) { - onClickPreventDefault(saleBanner, function (event) { - var target = event.target; - if (target.closest('.dismiss')) { - return; - } - window.location.href = saleBanner.getAttribute('data-url'); - }); - if (saleDismiss) { - onClickPreventDefault(saleDismiss, function () { - saleBanner.remove(); - var formData = new FormData(); - doJsonPost('sale_banner_dismiss', formData); - }); - } - } - }, - buildInit: function buildInit() { - jQuery('#frm_builder_page').on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); - var loadFieldId, $builderForm, builderArea; - debouncedSyncAfterDragAndDrop = debounce(syncAfterDragAndDrop, 10); - postBodyContent = document.getElementById('post-body-content'); - $postBodyContent = jQuery(postBodyContent); - if (jQuery('.frm_field_loading').length) { - loadFieldId = jQuery('.frm_field_loading').first().attr('id'); - loadFields(loadFieldId); - } - setupSortable('ul.frm_sorting'); - document.querySelectorAll('.field_type_list > li:not(.frm_show_upgrade)').forEach(makeDraggable); - jQuery('ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a').disableSelection(); - jQuery('.frm_submit_ajax').on('click', submitBuild); - jQuery('.frm_submit_no_ajax').on('click', submitNoAjax); - addFormNameModalEvents(); - jQuery('a.edit-form-status').on('click', slideDown); - jQuery('.cancel-form-status').on('click', slideUp); - jQuery('.save-form-status').on('click', function () { - var newStatus = jQuery(document.getElementById('form_change_status')).val(); - jQuery('input[name="new_status"]').val(newStatus); - jQuery(document.getElementById('form-status-display')).html(newStatus); - jQuery('.cancel-form-status').trigger('click'); - return false; - }); - jQuery('.frm_form_builder form').first().on('submit', function () { - jQuery('.inplace_field').trigger('blur'); - }); - initiateMultiselect(); - renumberPageBreaks(); - $builderForm = jQuery(builderForm); - builderArea = document.getElementById('frm_form_editor_container'); - $builderForm.on('click', '.frm_add_logic_row', addFieldLogicRow); - $builderForm.on('click', '.frm_add_watch_lookup_row', addWatchLookupRow); - $builderForm.on('change', '.frm_get_values_form', updateGetValueFieldSelection); - $builderForm.on('change', '.frm_logic_field_opts', getFieldValues); - $builderForm.on('frm-multiselect-changed', 'select[name^="field_options[admin_only_"]', adjustVisibilityValuesForEveryoneValues); - jQuery(document.getElementById('frm-insert-fields')).on('click', '.frm_add_field', addFieldClick); - $newFields.on('click', '.frm_clone_field', duplicateField); - $builderForm.on('blur', 'input[id^="frm_calc"]', checkCalculationCreatedByUser); - $builderForm.on('change', 'input.frm_format_opt, input.frm_max_length_opt', toggleInvalidMsg); - $builderForm.on('change click', '[data-changeme]', liveChanges); - $builderForm.on('click', 'input.frm_req_field', markRequired); - $builderForm.on('click', '.frm_mark_unique', markUnique); - $builderForm.on('change', '.frm_repeat_format', toggleRepeatButtons); - $builderForm.on('change', '.frm_repeat_limit', checkRepeatLimit); - $builderForm.on('change', '.frm_js_checkbox_limit', checkCheckboxSelectionsLimit); - $builderForm.on('input', 'input[name^="field_options[add_label_"]', function () { - updateRepeatText(this, 'add'); - }); - $builderForm.on('input', 'input[name^="field_options[remove_label_"]', function () { - updateRepeatText(this, 'remove'); - }); - $builderForm.on('change', 'select[name^="field_options[data_type_"]', maybeClearWatchFields); - jQuery(builderArea).on('click', '.frm-collapse-page', maybeCollapsePage); - jQuery(builderArea).on('click', '.frm-collapse-section', maybeCollapseSection); - $builderForm.on('click', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', maybeCollapseSettings); - $builderForm.on('keydown', '.frm-single-settings h3, .frm-single-settings h4.frm-collapsible', function (event) { - // If so, only proceed if the key pressed was 'Enter' or 'Space' - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - maybeCollapseSettings.call(this, event); - } - }); - jQuery(builderArea).on('show.bs.dropdown hide.bs.dropdown', changeSectionStyle); - $builderForm.on('click', '.frm_toggle_sep_values', toggleSepValues); - $builderForm.on('click', '.frm_toggle_image_options', toggleImageOptions); - $builderForm.on('click', '.frm_remove_image_option', removeImageFromOption); - $builderForm.on('click', '.frm_choose_image_box', addImageToOption); - $builderForm.on('change', '.frm_hide_image_text', refreshOptionDisplay); - $builderForm.on('change', '.frm_field_options_image_size', setImageSize); - $builderForm.on('click', '.frm_multiselect_opt', toggleMultiselect); - $newFields.on('mousedown', 'input, textarea, select', stopFieldFocus); - $newFields.on('click', 'input[type=radio], input[type=checkbox]', stopFieldFocus); - $newFields.on('click', '.frm_delete_field', clickDeleteField); - $newFields.on('click', '.frm_select_field', clickSelectField); - jQuery(document).on('click', '.frm_delete_field_group', clickDeleteFieldGroup); - jQuery(document).on('click', '.frm_clone_field_group', duplicateFieldGroup); - jQuery(document).on('click', '#frm_field_group_controls > span:first-child', clickFieldGroupLayout); - jQuery(document).on('click', '.frm-row-layout-option', handleFieldGroupLayoutOptionClick); - jQuery(document).on('click', '.frm-merge-fields-into-row .frm-row-layout-option', handleFieldGroupLayoutOptionInsideMergeClick); - jQuery(document).on('click', '.frm-custom-field-group-layout', customFieldGroupLayoutClick); - jQuery(document).on('click', '.frm-merge-fields-into-row .frm-custom-field-group-layout', customFieldGroupLayoutInsideMergeClick); - jQuery(document).on('click', '.frm-break-field-group', breakFieldGroupClick); - $newFields.on('click', '#frm_field_group_popup .frm_grid_container input', focusFieldGroupInputOnClick); - jQuery(document).on('click', '.frm-cancel-custom-field-group-layout', cancelCustomFieldGroupClick); - jQuery(document).on('click', '.frm-save-custom-field-group-layout', saveCustomFieldGroupClick); - $newFields.on('click', 'ul.frm_sorting', fieldGroupClick); - jQuery(document).on('click', '.frm-merge-fields-into-row', mergeFieldsIntoRowClick); - jQuery(document).on('click', '.frm-delete-field-groups', deleteFieldGroupsClick); - $newFields.on('click', '.frm-field-action-icons [data-toggle="dropdown"]', function () { - this.closest('li.form-field').classList.add('frm-field-settings-open'); - jQuery(document).on('click', '#frm_builder_page', handleClickOutsideOfFieldSettings); - }); - $newFields.on('mousemove', 'ul.frm_sorting', checkForMultiselectKeysOnMouseMove); - $newFields.on('show.bs.dropdown', '.frm-field-action-icons', onFieldActionDropdownShow); - jQuery(document).on('show.bs.dropdown', '#frm_field_group_controls', onFieldGroupActionDropdownShow); - $builderForm.on('click', '.frm_single_option a[data-removeid]', deleteFieldOption); - $builderForm.on('mousedown', '.frm_single_option input[type=radio]', maybeUncheckRadio); - $builderForm.on('focusin', '.frm_single_option input[type=text]', maybeClearOptText); - $builderForm.on('click', '.frm_add_opt', addFieldOption); - $builderForm.on('change', '.frm_single_option input', resetOptOnChange); - $builderForm.on('change', '.frm_image_id', resetOptOnChange); - $builderForm.on('change', '.frm_toggle_mult_sel', toggleMultSel); - $newFields.on('click', '.frm_primary_label', clickLabel); - $newFields.on('click', '.frm_description', clickDescription); - $newFields.on('click', 'li.ui-state-default:not(.frm_noallow)', clickVis); - $newFields.on('dblclick', 'li.ui-state-default', openAdvanced); - $builderForm.on('change', '.frm_tax_form_select', toggleFormTax); - $builderForm.on('change', 'select.conf_field', addConf); - $builderForm.on('change', '.frm_get_field_selection', getFieldSelection); - $builderForm.on('click', '.frm-show-inline-modal', maybeShowInlineModal); - $builderForm.on('keydown', '.frm-show-inline-modal', function (event) { - var key = event.key; - if (key === 'Enter' || key === ' ') { - event.preventDefault(); - maybeShowInlineModal.call(this, event); - } - }); - $builderForm.on('click', '.frm-inline-modal .dismiss', dismissInlineModal); - jQuery(document).on('change', '[data-frmchange]', changeInputtedValue); - document.addEventListener('click', closeModalOnOutsideClick); - $builderForm.on('change', '.frm_include_extras_field', rePopCalcFieldsForSummary); - $builderForm.on('change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg); - jQuery(document).on('submit', '#frm_js_build_form', buildSubmittedNoAjax); - jQuery(document).on('change', '#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea', fieldUpdated); - popAllProductFields(); - jQuery(document).on('change', '.frmjs_prod_data_type_opt', toggleProductType); - jQuery(document).on('focus', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextFocus); - jQuery(document).on('blur', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextBlur); - frmDom.util.documentOn('click', '.frm-show-field-settings', clickVis); - frmDom.util.documentOn('change', 'select.frm_format_dropdown, select.frm_phone_type_dropdown', maybeUpdateFormatInput); - - // Navigate to the next input field on pressing Enter in a single option field - $builderForm.on('keydown', '.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]', function (event) { - if ('Enter' === event.key) { - focusNextSingleOptionInput(event.currentTarget); - } - }); - initBulkOptionsOverlay(); - hideEmptyEle(); - document.addEventListener('frm_added_field', hideEmptyEle); - maybeHideQuantityProductFieldOption(); - handleNameFieldOnFormBuilder(); - toggleSectionHolder(); - handleShowPasswordLiveUpdate(); - document.addEventListener('scroll', updateShortcodesPopupPosition, true); - document.addEventListener('change', handleBuilderChangeEvent); - document.querySelector('.frm_form_builder').addEventListener('mousedown', function (event) { - if (event.shiftKey) { - event.preventDefault(); - } - }); - wp.hooks.addAction('frmShowedFieldSettings', 'formidableAdmin', function (showBtn, fieldSettingsEl) { - fieldSettingsEl.querySelectorAll('.frm-collapse-me').forEach(addSlideAnimationCssVars); - }, 9999); - }, - settingsInit: function settingsInit() { - var $formActions = jQuery(document.getElementById('frm_notification_settings')); - var formSettings, $loggedIn, $cookieExp, $editable; - - // BCC, CC, and Reply To button functionality - $formActions.on('click', '.frm_email_buttons', showEmailRow); - $formActions.on('click', '.frm_remove_field', hideEmailRow); - $formActions.on('change', '.frm_to_row, .frm_from_row', showEmailWarning); - $formActions.on('change', '.frm_tax_selector', changePosttaxRow); - $formActions.on('change', 'select.frm_single_post_field', checkDupPost); - $formActions.on('change', 'select.frm_toggle_post_content', togglePostContent); - $formActions.on('change', 'select.frm_dyncontent_opt', fillDyncontent); - $formActions.on('change', '.frm_post_type', switchPostType); - $formActions.on('click', '.frm_add_postmeta_row', addPostmetaRow); - $formActions.on('click', '.frm_add_posttax_row', addPosttaxRow); - $formActions.on('click', '.frm_toggle_cf_opts', toggleCfOpts); - $formActions.on('click', '.frm_duplicate_form_action', copyFormAction); - jQuery('.frm_actions_list').on('click', '.frm_active_action', addFormAction); - jQuery('#frm-show-groups, #frm-hide-groups').on('click', toggleActionGroups); - initiateMultiselect(); - - //set actions icons to inactive - jQuery('ul.frm_actions_list li').each(function () { - checkActiveAction(jQuery(this).children('a').data('actiontype')); - - // If the icon is a background image, don't add BG color. - var icon = jQuery(this).find('i'); - if (icon.css('background-image') !== 'none') { - icon.addClass('frm-inverse'); - } - }); - jQuery('.frm_submit_settings_btn').on('click', submitSettings); - addFormNameModalEvents(); - formSettings = jQuery('.frm_form_settings'); - formSettings.on('click', '.frm_add_form_logic', addFormLogicRow); - formSettings.on('click', '.frm_already_used', actionLimitMessage); - document.addEventListener('click', function handleImageUploadClickEvents(event) { - var target = event.target; - if (!target.closest('.frm_image_preview_wrapper')) { - return; - } - if (target.closest('.frm_choose_image_box')) { - addImageToOption.bind(target)(event); - return; - } - if (target.closest('.frm_remove_image_option')) { - removeImageFromOption.bind(target)(event); - } - }); - - // Close shortcode modal on click. - formSettings.on('mouseup', '*:not(.frm-show-box)', maybeHideShortcodes); - - //Warning when user selects "Do not store entries ..." - jQuery(document.getElementById('no_save')).on('change', function () { - if (this.checked) { - if (confirm(frmAdminJs.no_save_warning) !== true) { - // Uncheck box if user hits "Cancel" - jQuery(this).attr('checked', false); - } - } - }); - jQuery('select[name="options[edit_action]"]').on('change', showSuccessOpt); - $loggedIn = document.getElementById('logged_in'); - jQuery($loggedIn).on('change', function () { - if (this.checked) { - visible('.hide_logged_in'); - } else { - invisible('.hide_logged_in'); - } - }); - $cookieExp = jQuery(document.getElementById('frm_cookie_expiration')); - jQuery(document.getElementById('frm_single_entry_type')).on('change', function () { - if (this.value === 'cookie') { - $cookieExp.fadeIn('slow'); - } else { - $cookieExp.fadeOut('slow'); - } - }); - var $singleEntry = document.getElementById('single_entry'); - jQuery($singleEntry).on('change', function () { - if (this.checked) { - visible('.hide_single_entry'); - } else { - invisible('.hide_single_entry'); - } - if (this.checked && jQuery(document.getElementById('frm_single_entry_type')).val() === 'cookie') { - $cookieExp.fadeIn('slow'); - } else { - $cookieExp.fadeOut('slow'); - } - }); - jQuery('.hide_save_draft').hide(); - var $saveDraft = jQuery(document.getElementById('save_draft')); - $saveDraft.on('change', function () { - if (this.checked) { - jQuery('.hide_save_draft').fadeIn('slow'); - } else { - jQuery('.hide_save_draft').fadeOut('slow'); - } - }); - triggerChange($saveDraft); - - //If Allow editing is checked/unchecked - $editable = document.getElementById('editable'); - jQuery($editable).on('change', function () { - if (this.checked) { - jQuery('.hide_editable').fadeIn('slow'); - triggerChange(document.getElementById('edit_action')); - } else { - jQuery('.hide_editable').fadeOut('slow'); - jQuery('.edit_action_message_box').fadeOut('slow'); //Hide On Update message box - } - }); - - //If File Protection is checked/unchecked - jQuery(document).on('change', '#protect_files', function () { - if (this.checked) { - jQuery('.hide_protect_files').fadeIn('slow'); - } else { - jQuery('.hide_protect_files').fadeOut('slow'); - } - }); - jQuery(document).on('frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues); - jQuery(document).on('submit', '.frm_form_settings', settingsSubmitted); - jQuery(document).on('change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated); - - // Page Selection Autocomplete - initAutocomplete(); - jQuery(document).on('frm-action-loaded', onActionLoaded); - initOnSubmitAction(); - }, - panelInit: function panelInit() { - var customPanel, settingsPage, viewPage, insertFieldsTab; - jQuery('.frm_wrap, #postbox-container-1').on('click', '.frm_insert_code', insertCode); - jQuery(document).on('change', '.frm_insert_val', function () { - insertFieldCode(jQuery(this).data('target'), jQuery(this).val()); - jQuery(this).val(''); - }); - jQuery(document).on('click change', '[name="frm-id-key-condition"]', resetLogicBuilder); - jQuery(document).on('keyup change', '.frm-build-logic', setLogicExample); - showInputIcon(); - jQuery(document).on('frmElementAdded', function (event, parentEle) { - /* This is here for add-ons to trigger */ - showInputIcon(parentEle); - }); - jQuery(document).on('mousedown', '.frm-show-box', showShortcodes); - settingsPage = document.getElementById('form_settings_page'); - viewPage = document.body.classList.contains('post-type-frm_display'); - insertFieldsTab = document.getElementById('frm_insert_fields_tab'); - if (settingsPage !== null || viewPage || builderPage) { - jQuery(document).on('focusin', 'form input, form textarea', function (e) { - var htmlTab; - e.stopPropagation(); - maybeShowModal(this); - if (jQuery(this).is(':not(:submit, input[type=button], .frm-search-input, input[type=checkbox])')) { - if (jQuery(e.target).closest('#frm_adv_info').length) { - // Don't trigger for fields inside of the modal. - return; - } - if (settingsPage !== null || builderPage) { - /* form settings page */ - htmlTab = jQuery('#frm_html_tab'); - if (jQuery(this).closest('#html_settings').length > 0) { - htmlTab.show(); - htmlTab.siblings().hide(); - jQuery('#frm_html_tab a').trigger('click'); - toggleAllowedHTML(this); - } else { - showElement(jQuery('.frm-category-tabs li')); - insertFieldsTab.click(); - htmlTab.hide(); - htmlTab.siblings().show(); - } - } else if (viewPage) { - var event = new CustomEvent('frm_legacy_views_handle_field_focus'); - event.frmData = { - idAttrValue: this.id - }; - document.dispatchEvent(event); - } - } - }); - } - jQuery('.frm_wrap, #postbox-container-1').on('mousedown', '#frm_adv_info a, .frm_field_list a', function (e) { - e.preventDefault(); - }); - customPanel = jQuery('#frm_adv_info'); - customPanel.on('click', '.subsubsub a.frmids', function (e) { - toggleKeyID('frmids', e); - }); - customPanel.on('click', '.subsubsub a.frmkeys', function (e) { - toggleKeyID('frmkeys', e); - }); - }, - inboxInit: function inboxInit() { - var _document$getElementB6; - jQuery('.frm_inbox_dismiss').on('click', function (e) { - var message = this.parentNode.parentNode; - var key = message.getAttribute('data-message'); - var href = this.getAttribute('href'); - var dismissedMessage = message.cloneNode(true); - var dismissedMessagesWrapper = document.querySelector('.frm-dismissed-inbox-messages'); - if ('free_templates' === key && !this.classList.contains('frm_inbox_dismiss')) { - return; - } - e.preventDefault(); - data = { - action: 'frm_inbox_dismiss', - key: key, - nonce: frmGlobal.nonce - }; - var isInboxSlideIn = 'frm_inbox_slide_in' === message.id; - if (isInboxSlideIn) { - message.classList.remove('s11-fadein'); - message.classList.add('s11-fadeout'); - message.addEventListener('animationend', function () { - return message.remove(); - }, { - once: true - }); - } - postAjax(data, function () { - if (isInboxSlideIn) { - return; - } - if (href !== '#') { - window.location = href; - return true; - } - fadeOut(message, function () { - if (null !== dismissedMessagesWrapper) { - var _dismissedMessage$que; - dismissedMessage.classList.remove('frm-fade'); - (_dismissedMessage$que = dismissedMessage.querySelector('.frm-inbox-message-heading')) === null || _dismissedMessage$que === void 0 || _dismissedMessage$que.removeChild(dismissedMessage.querySelector('.frm-inbox-message-heading .frm_inbox_dismiss')); - dismissedMessagesWrapper.append(dismissedMessage); - } - if (1 === message.parentNode.querySelectorAll('.frm-inbox-message-container').length) { - document.getElementById('frm_empty_inbox').classList.remove('frm_hidden'); - message.parentNode.closest('.frm-active').classList.add('frm-empty-inbox'); - showActiveCampaignForm(); - } - message.parentNode.removeChild(message); - }); - }); - }); - if (false === ((_document$getElementB6 = document.getElementById('frm_empty_inbox')) === null || _document$getElementB6 === void 0 ? void 0 : _document$getElementB6.classList.contains('frm_hidden'))) { - showActiveCampaignForm(); - } - }, - solutionInit: function solutionInit() { - jQuery(document).on('submit', '#frm-new-template', installTemplate); - }, - styleInit: function styleInit() { - var $previewWrapper = jQuery('.frm_image_preview_wrapper'); - $previewWrapper.on('click', '.frm_choose_image_box', addImageToOption); - $previewWrapper.on('click', '.frm_remove_image_option', removeImageFromOption); - wp.hooks.doAction('frm_style_editor_init'); - }, - customCSSInit: function customCSSInit() { - console.warn('Calling frmAdminBuild.customCSSInit is deprecated.'); - }, - globalSettingsInit: function globalSettingsInit() { - var licenseTab; - jQuery(document).on('click', '[data-frmuninstall]', uninstallNow); - initiateMultiselect(); - - // activate addon licenses - licenseTab = document.getElementById('licenses_settings'); - if (licenseTab !== null) { - jQuery(licenseTab).on('click', '.edd_frm_save_license', saveAddonLicense); - } - - // Solution install page - jQuery(document).on('click', '#frm-new-template button', installTemplateFieldset); - jQuery('#frm-dismissable-cta .dismiss').on('click', function (event) { - event.preventDefault(); - jQuery.post(ajaxurl, { - action: 'frm_lite_settings_upgrade', - nonce: frmGlobal.nonce - }); - jQuery('.settings-lite-cta').remove(); - }); - var captchaType = document.getElementById('frm_re_type'); - if (captchaType) { - captchaType.addEventListener('change', handleCaptchaTypeChange); - } - document.querySelector('.frm_captchas').addEventListener('change', function (event) { - var _document$querySelect8; - var captchaValueOnLoad = (_document$querySelect8 = document.querySelector('.frm_captchas input[checked="checked"]')) === null || _document$querySelect8 === void 0 ? void 0 : _document$querySelect8.value; - var showNote = event.target.value !== captchaValueOnLoad; - document.querySelector('.captcha_settings .frm_note_style').classList.toggle('frm_hidden', !showNote); - }); - - // Set fieldsUpdated to 0 to avoid the unsaved changes pop up. - frmDom.util.documentOn('submit', '.frm_settings_form', function () { - return fieldsUpdated = 0; - }); - var manageStyleSettings = document.getElementById('manage_styles_settings'); - if (manageStyleSettings) { - manageStyleSettings.addEventListener('change', function (event) { - var target = event.target; - if ('SELECT' !== target.nodeName || !target.dataset.name || target.getAttribute('name')) { - return; - } - target.setAttribute('name', target.dataset.name); - }); - } - var paymentsSettings = document.getElementById('payments_settings'); - var paymentSettingsTabs = paymentsSettings === null || paymentsSettings === void 0 ? void 0 : paymentsSettings.querySelectorAll('[name="frm_payment_section"]'); - if (paymentSettingsTabs) { - paymentSettingsTabs.forEach(function (element) { - element.addEventListener('change', function () { - if (!element.checked) { - return; - } - var label = paymentsSettings.querySelector("label[for=\"".concat(element.id, "\"]")); - if (label) { - label.setAttribute('aria-selected', 'true'); - } - paymentSettingsTabs.forEach(function (tab) { - if (tab === element) { - return; - } - var label = paymentsSettings.querySelector("label[for=\"".concat(tab.id, "\"]")); - if (label) { - label.setAttribute('aria-selected', 'false'); - } - }); - }); - }); - } - }, - exportInit: function exportInit() { - jQuery('.frm_form_importer').on('submit', startFormMigration); - jQuery(document.getElementById('frm_export_xml')).on('submit', validateExport); - jQuery('#frm_export_xml input, #frm_export_xml select').on('change', removeExportError); - jQuery('input[name="frm_import_file"]').on('change', checkCSVExtension); - document.querySelector('select[name="format"]').addEventListener('change', exportTypeChanged); - jQuery('input[name="frm_export_forms[]"]').on('click', preventMultipleExport); - initiateMultiselect(); - jQuery('.frm-feature-banner .dismiss').on('click', function (event) { - event.preventDefault(); - jQuery.post(ajaxurl, { - action: 'frm_dismiss_migrator', - plugin: this.id, - nonce: frmGlobal.nonce - }); - this.parentElement.remove(); - }); - showOrHideRepeaters(getExportOption()); - document.querySelector('#frm-export-select-all').addEventListener('change', function (event) { - document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function (cb) { - return cb.checked = event.target.checked; - }); - }); - }, - inboxBannerInit: function inboxBannerInit() { - var banner = document.getElementById('frm_banner'); - if (!banner) { - return; - } - var dismissButton = banner.querySelector('.frm-banner-dismiss'); - document.addEventListener('click', function (event) { - if (event.target !== dismissButton) { - return; - } - var data = { - action: 'frm_inbox_dismiss', - key: banner.dataset.key, - nonce: frmGlobal.nonce - }; - postAjax(data, function () { - jQuery(banner).fadeOut(400, function () { - banner.remove(); - }); - }); - }); - }, - updateOpts: function updateOpts(fieldId, opts, modal) { - var separate = usingSeparateValues(fieldId), - action = isProductField(fieldId) ? 'frm_bulk_products' : 'frm_import_options'; - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: { - action: action, - field_id: fieldId, - opts: opts, - separate: separate, - nonce: frmGlobal.nonce - }, - success: function success(html) { - document.getElementById('frm_field_' + fieldId + '_opts').innerHTML = html; - wp.hooks.doAction('frm_after_bulk_edit_opts', fieldId); - resetDisplayedOpts(fieldId); - if (typeof modal !== 'undefined') { - modal.dialog('close'); - document.getElementById('frm-update-bulk-opts').classList.remove('frm_loading_button'); - } - } - }); - }, - /* remove conditional logic if the field doesn't exist */ - triggerRemoveLogic: function triggerRemoveLogic(fieldID, metaName) { - jQuery('#frm_logic_' + fieldID + '_' + metaName + ' .frm_remove_tag').trigger('click'); - }, - downloadXML: function downloadXML(controller, ids, isTemplate) { - var url = ajaxurl + '?action=frm_' + controller + '_xml&ids=' + ids; - if (isTemplate !== null) { - url = url + '&is_template=' + isTemplate; - } - location.href = url; - }, - /** - * @since 5.0.04 - */ - hooks: { - applyFilters: function applyFilters(hookName) { - var _wp$hooks; - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - return (_wp$hooks = wp.hooks).applyFilters.apply(_wp$hooks, [hookName].concat(args)); - }, - addFilter: function addFilter(hookName, callback, priority) { - return wp.hooks.addFilter(hookName, 'formidable', callback, priority); - }, - doAction: function doAction(hookName) { - var _wp$hooks2; - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key3 = 1; _key3 < _len2; _key3++) { - args[_key3 - 1] = arguments[_key3]; - } - return (_wp$hooks2 = wp.hooks).doAction.apply(_wp$hooks2, [hookName].concat(args)); - }, - addAction: function addAction(hookName, callback, priority) { - return wp.hooks.addAction(hookName, 'formidable', callback, priority); - } - }, - applyZebraStriping: applyZebraStriping, - initModal: initModal, - infoModal: infoModal, - offsetModalY: offsetModalY, - adjustConditionalLogicOptionOrders: adjustConditionalLogicOptionOrders, - addRadioCheckboxOpt: addRadioCheckboxOpt, - installNewForm: installNewForm, - toggleAddonState: toggleAddonState, - purifyHtml: purifyHtml, - loadApiEmailForm: loadApiEmailForm, - addMyEmailAddress: addMyEmailAddress, - fillDropdownOpts: fillDropdownOpts, - showSaveAndReloadModal: showSaveAndReloadModal, - clearSettingsBox: clearSettingsBox, - deleteField: deleteField, - insertFormField: insertFormField, - confirmLinkClick: confirmLinkClick, - handleInsertFieldByDraggingResponse: handleInsertFieldByDraggingResponse, - handleAddFieldClickResponse: handleAddFieldClickResponse, - syncLayoutClasses: syncLayoutClasses, - moveFieldSettings: moveFieldSettings - }; -}; -window.frmAdminBuild = frmAdminBuildJS(); -jQuery(document).ready(function () { - var _document$querySelect9; - frmAdminBuild.init(); - frmDom.bootstrap.setupBootstrapDropdowns(convertOldBootstrapDropdownsToBootstrap4); - (_document$querySelect9 = document.querySelector('.preview.dropdown .frm-dropdown-toggle')) === null || _document$querySelect9 === void 0 || _document$querySelect9.setAttribute('data-toggle', 'dropdown'); - function convertOldBootstrapDropdownsToBootstrap4(frmDropdownMenu) { - var toggle = frmDropdownMenu.querySelector('.frm-dropdown-toggle'); - if (toggle) { - if (!toggle.hasAttribute('role')) { - toggle.setAttribute('role', 'button'); - } - if (!toggle.hasAttribute('tabindex')) { - toggle.setAttribute('tabindex', 0); - } - } - - // Convert
                                  • and
                                      tags. - if ('UL' === frmDropdownMenu.tagName) { - convertBootstrapUl(frmDropdownMenu); - } - } - function convertBootstrapUl(ul) { - var html = ul.outerHTML; - html = html.replace('
                                        ', ''); - html = html.replaceAll('
                                      • ', '
                                      • ', ''); - ul.outerHTML = html; - } -}); -window.frm_show_div = function (div, value, showIf, classId) { - // eslint-disable-line camelcase - if (value == showIf) { - jQuery(classId + div).fadeIn('slow').css('visibility', 'visible'); - } else { - jQuery(classId + div).fadeOut('slow'); - } -}; -window.frmCheckAll = function (checked, n) { - jQuery('input[name^="' + n + '"]').prop('checked', !!checked); -}; -window.frmCheckAllLevel = function (checked, n, level) { - var $kids = jQuery('.frm_catlevel_' + level).children('.frm_checkbox').children('label'); - $kids.children('input[name^="' + n + '"]').prop('checked', !!checked); -}; -window.frmGetFieldValues = function (fieldId, cur, rowNumber, fieldType, htmlName, callback) { - if (!fieldId) { - return; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: 'action=frm_get_field_values¤t_field=' + cur + '&field_id=' + fieldId + '&name=' + htmlName + '&t=' + fieldType + '&form_action=' + jQuery('input[name="frm_action"]').val() + '&nonce=' + frmGlobal.nonce, - success: function success(msg) { - document.getElementById('frm_show_selected_values_' + cur + '_' + rowNumber).innerHTML = msg; - if ('function' === typeof callback) { - callback(); - } - } - }); -}; -window.frmImportCsv = function (formID) { - var urlVars = ''; - if (typeof __FRMURLVARS !== 'undefined') { - urlVars = __FRMURLVARS; - } - jQuery.ajax({ - type: 'POST', - url: ajaxurl, - data: 'action=frm_import_csv&nonce=' + frmGlobal.nonce + '&frm_skip_cookie=1' + urlVars, - success: function success(count) { - var max = jQuery('.frm_admin_progress_bar').attr('aria-valuemax'); - var imported = max - count; - var percent = imported / max * 100; - jQuery('.frm_admin_progress_bar').css('width', percent + '%').attr('aria-valuenow', imported); - if (parseInt(count, 10) > 0) { - jQuery('.frm_csv_remaining').html(count); - frmImportCsv(formID); - } else { - jQuery(document.getElementById('frm_import_message')).html(frm_admin_js.import_complete); // eslint-disable-line camelcase - setTimeout(function () { - location.href = '?page=formidable-entries&frm_action=list&form=' + formID + '&import-message=1'; - }, 2000); - } - } - }); -}; -/******/ })() -; -//# sourceMappingURL=formidable_admin.js.map \ No newline at end of file +(()=>{function e(t){return e="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},e(t)}function t(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||r(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&(e="",t=""):0===i.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().length&&(""!==e&&(e+=","),e+="#"+jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().attr("id")+" .frm_toggle_cf_opts"));var o=document.getElementById(i),a=jQuery(o);return a.fadeOut(300,(function(){var r;a.remove(),Di(),""!==t&&jQuery(t).hide(),""!==e&&jQuery(e+" a,"+e).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){li(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()})),void 0!==r&&(r=jQuery(r)).fadeOut(400,(function(){r.remove()})),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",i,o),!1}}function $(e,t){void 0===t&&(t=this),Ze(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var i=n.parentElement.className;if("string"==typeof i&&(i.indexOf("frm_email_icons")>-1||i.indexOf("frm_toggle")>-1))return void e.stopPropagation()}var o=r.children(".widget-inside");if(r.length&&o.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(o.html(''),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){o.html(e),ao(),Kn("#"+r.attr("id")),bo(o),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",o)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&-1!==t.className.indexOf("widget-action")||jQuery(t).closest(".start_divider").length<1||((o=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?o.slideDown("fast"):o.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Je(),!1}function V(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,i,o=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(o).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(i=jQuery(".frm_"+n+"_ajax")).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){i.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(o).show(),$i(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id="+jQuery('.frm_form_settings input[name="id"]').val()+"&t="+r.replace("#","")):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t="+r.replace("#","")))}}function U(e){var t,r;document.querySelectorAll(e).forEach((function(e){J(e),Array.from(e.children).forEach((function(e){return X(e,".frm-move")}));var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&J(t)})),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return x=t.clone().insertAfter(t),t.clone()},stop:function(e,t){x&&x.remove(),rn(t.item.attr("id").replace("frm_delete_field_","").replace("-"+t.item.data("optkey")+"_container","")),Di()}},jQuery(t).sortable(r)}function J(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:K,out:Y,tolerance:"pointer"})}function K(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!Qe(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach((function(e){return e.classList.remove("frm-over-droppable")})),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function Y(e){e.target.classList.remove("frm-over-droppable")}function X(e,t){var r={helper:Z,revert:"invalid",delay:10,start:ee,stop:te,drag:re,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function Z(e){var t,r=e.delegateTarget;if(Ee(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=B("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var i=r.getAttribute("data-ftype");if((t=(t=document.getElementById("frm-insert-fields").querySelector(".frm_t"+i)).cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t)return t.cloneNode(!0)}return d({className:"frmbutton"})}function ee(e,t){q.dragging=!0;var r,n=h;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),gr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach((function(e){[].slice.call(e.children).forEach((function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()}))})),Me(),Te(),R()}function te(){h.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function re(e,t){!function(e){v.scrollTop((function(t,r){var n=e.clientY,i=h.offsetHeight,o=e.clientY-h.offsetTop,a=o-i/2;return o>i-50&&n>5?r+.1*a:o<70&&n<130?r-Math.abs(.1*a):r}))}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),i=document.getElementById("frm_drag_placeholder");if(Qe(r,n,e)){i||(i=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var o,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY("+(o=t.helper,h.scrollTop-o.initialOffset+"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return i.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,i=jQuery(e.droppable);if($children=i.children().not(".edit_field_type_end_divider"),0===$children.length)i.prepend(n),t=0;else{var o=ie(i,r);if(o===$children.length){var a=jQuery($children.get(o-1));t=a.offset().top+a.outerHeight(),i.append(n);var l=i.children(".edit_field_type_end_divider");l.length&&i.append(l)}else t=jQuery($children.get(o)).offset().top,jQuery($children.get(o)).before(n)}t-=i.offset().top,n.style.top=t+"px"}({droppable:n,y:e.clientY,placeholder:i});i.style.top="",function(e){var t,r=e.x,n=e.placeholder,i=jQuery(e.droppable),o=ae(i);if(o.length){var a=function(e,t){var r,n,i,o,a=ae(e);for(o=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().left)){o=r,t>i+jQuery(n).outerWidth()/2&&(o=r+1);break}return o}(i,r);if(a===o.length){var l=jQuery(o.get(a-1));t=l.offset().left+l.outerWidth(),i.append(n)}else t=jQuery(o.get(a)).offset().left,jQuery(o.get(a)).before(n),t-=0===a?4:8;t-=i.offset().left,n.style.left=t+"px"}}({droppable:n,x:e.clientX,placeholder:i})}else i&&i.remove()}function ne(e,t){if(q.dragging){q.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void y();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var i=t.helper.parent(),o=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(ge(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r=e.replace("|","-")+"_"+we(),n=s("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),i=jQuery(n),o=fe(jQuery(t)),a=ue(o),l=me(o);t.parentNode.insertBefore(n,t),t.remove(),le(i);var d=0;"summary"===e&&(d=jQuery(".frmbutton_loadingnow#"+r).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:pe(e,l,a,d),success:function(t){ye(t,i);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:je})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&X(t,".frm-move")}}(n.parentElement));var l=o?parseInt(o.closest(".edit_field_type_divider").getAttribute("data-fid")):0,d=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var c=i.length?ae(i):[];!function(e,t){var r;e.length&&(t.length?le(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(i,c),function(e,t){0===t.length&&1===ae(jQuery(e.parentNode)).length||le(jQuery(e))}(r,c),l!==d&&_e(jQuery(r),o),y()}}function ie(e,t){var r,n,i,o,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(o=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().top)){o=r,t>i+jQuery(n).outerHeight()/2&&(o=r+1);break}return o}function oe(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach((function(e){e.childNodes.forEach((function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))}))})),xn(),document.querySelectorAll(".edit_field_type_end_divider").forEach((function(e){return e.parentNode.appendChild(e)})),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach((function(e){return!e.children.length&&e.remove()})),Qn();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ae(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach((function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}})),t):t}function le(e,t){var r,n,i,o;void 0===t&&(t="even"),r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),n=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"],"even"===t&&5!==n?r.each(ce(i,Vt(n))):"clear"===t?r.each(ce(i,"")):(o=-1!==["left","right","middle","even"].indexOf(t)?function(e){return Wt(n,t,e)}:function(e){return ar(t[e])},r.each(ce(i,o))),se(e.parent(),r.length)}function se(e,t){var r,n;if(void 0!==e.offset()){if(r=t>=2,null===(n=document.getElementById("frm_field_group_controls"))){if(!r)return;(n=d()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t,r;(t=document.createElement("span")).innerHTML='';var n=B("Set Row Layout","formidable");de(t,n),zt(t,n),(r=document.createElement("span")).innerHTML='',r.classList.add("frm-move");var i=B("Move Field Group","formidable");de(r,i),zt(r,i),e.innerHTML="",e.appendChild(t),e.appendChild(r),e.appendChild(function(){var e=c({className:"dropdown"}),t=f({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[c({child:u({href:"#frm_thick_more_vert_icon"})}),c({className:"screen-reader-text",text:B("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:B("More Options","formidable"),"data-toggle":"dropdown","data-container":"body"}),zt(t,B("More Options","formidable")),e.appendChild(t);var r=d({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.appendChild(r),e}())}(n),D.appendChild(n)}e.append(n),n.style.display=r?"block":"none"}}function de(e,t){e.setAttribute("data-toggle","tooltip"),e.setAttribute("data-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",(function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()}))}function ce(e,t){return function(r){var n,i,o,a,l,s,d;for(n="function"==typeof t?t(r):t,i=e.length,l=!1,o=0;ot.childElementCount-1:s<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(a)return!(t.classList.contains("start_divider")||!xe(t.parentElement)&&(!xe(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));if(t.classList.contains("start_divider")&&(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)&&t.closest(".repeat_section"))return!1;if(!t.classList.contains("start_divider")){if(n=ae(jQuery(t)),i=jQuery(e),!(n.length<6)&&(n.length>6||(o=i.attr("data-fid"),1!==jQuery(n).filter('[data-fid="'+o+'"]').length)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),i=r.contains("frm_thidden"),o=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||i||o||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!o):!(ke(t)||i||n||l)}(e,t):function(e,t){if(Ee(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(ke(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!r&&!n}(e,t)}(e,t)}function xe(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Ee(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function ke(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Le(e){var t=document.getElementById(e),r=jQuery(t),n=[],i=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)},o=t;i(o);for(var a=Se(o);a&&n.length<15;)i(a),o=a,a=Se(a);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:k,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,i;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))jQuery("#frm_field_id_"+n).replaceWith(e[n]),U("#frm_field_id_"+n+".edit_field_type_divider ul.frm_sorting"),X(document.getElementById("frm_field_id_"+n));((i=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(i=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Le(i.attr("id")),ao(),Tr(),Be();var o=new Event("frm_ajax_loaded_field",{bubbles:!1});o.frmFields=r.map((function(e){return JSON.parse(e)})),document.dispatchEvent(o)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Se(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ae(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton").attr("id");if(!ge(t)){var r=0;"summary"===t&&(r=j.children('li[data-type="break"]').length>0?1:0);var n=k;return jQuery.ajax({type:"POST",url:ajaxurl,data:pe(t,0,n,r),success:function(e){Ie(e);var r=he(e);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:r,fieldType:t,form_id:n})},error:je}),!1}}function Ie(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=$e(e),r=j[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):j.append(t),Ve(e,!0),t.each((function(){J(this.querySelector("ul.frm_sorting")),X(this.querySelector(".form-field"),".frm-move")}))}function Be(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");j.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r',i.appendChild(document.createTextNode(" ")),i.appendChild(o),n.appendChild(i),e.appendChild(n)}))}(t,!0===e),(r=jQuery(t)).offset().left>jQuery(window).width()-r.outerWidth()&&(t.style.left=-r.outerWidth()+"px");var n=t.firstElementChild.querySelector("a");n&&n.focus()}}),0)}function Pe(){He(!0)}function ze(e){var t=e.target.closest(".frm-section-collapsed");t&&("show"===e.type?t.style.zIndex=3:t.style.zIndex=1)}function Re(e){var t={class:"frm_delete",icon:"frm_delete_icon"};return t.label=B(e?"Delete Group":"Delete","formidable"),t}function Ge(e){var t={class:"frm_clone",icon:"frm_clone_icon"};return t.label=B(e?"Duplicate Group":"Duplicate","formidable"),t}function $e(e){var t=d();"string"==typeof e?t.innerHTML=e:t.appendChild(e);var r=jQuery();return Array.from(t.children).forEach((function(e){r=r.add(jQuery("
                                      • ").addClass("frm_field_box").html(jQuery("
                                          ").addClass("frm_grid_container frm_sorting").append(e)))})),r}function We(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),r=s("li",{className:"frm_field_box",child:t});e.replaceWith(r),t.appendChild(e),J(t),X(r,".frm-move")}function Ve(e,t){var r,n,i=/id="(\S+)"/.exec(e),o=document.getElementById(i[1]),a="#"+i[1]+".edit_field_type_divider ul.frm_sorting.start_divider",l=jQuery(a),s=o.getAttribute("data-type");r=e,(n=d()).innerHTML=r,n.querySelectorAll(".form-field").forEach(Ue);var c,f,u=!1;if(Di(),U(a),"quantity"===s&&function(e){var t=e.getAttribute("data-fid"),r=document.getElementById("field_options[product_field_"+t+"]");null!==r&&(rt(r),ni(document.getElementById("frm-single-settings-"+t)))}(o),"product"!==s&&"quantity"!==s||Be(),l.length)l.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var m=jQuery(o).closest("ul.frm_sorting.start_divider");m.length&&(En(m),u=!0)}if(-1!==e.indexOf("frm-collapse-page")&&Tr(),f="frm-newly-added",(c=o).classList?c.classList.add(f):c.className+=" "+f,setTimeout((function(){o.classList.remove("frm-newly-added")}),1e3),t){var _=o.getBoundingClientRect(),p=document.getElementById("post-body-content");_.top>=0&&_.left>=0&&_.right<=(window.innerWidth||document.documentElement.clientWidth)&&_.bottom<=(window.innerHeight||document.documentElement.clientHeight)||p.scroll({top:p.scrollHeight,left:0,behavior:"smooth"}),!1===u&&En(l)}Ke(),ao(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable");var g=new Event("frm_added_field",{bubbles:!1});g.frmField=o,g.frmSection=a,g.frmType=s,g.frmToggles=u,document.dispatchEvent(g)}function Ue(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=","+e.dataset.fid))}}function Je(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Ke(e)}function Ke(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||gr()}function Ye(){var e=this.value,t=function(e){var t,r=[],n=e.split(""),i=n.length,o=["{","[","("],l={"}":"{",")":"(","]":"["},s=[];for(t=0;t0||s.length>0?a.unmatched_parens+"\n\n":""}(e);t+=function(e,t){var r=function(e,t){var r="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(r=a.text_shortcodes+"\n\n"),r}(e,t);return r+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+=a.view_shortcodes+"\n\n"),t}(e)}(e,this),""!==t&&H(e+"\n\n"+t)}function Xe(e,t){for(var r,n,i,o=!1,a=0;a"+l[t].fieldName+"")):(r=r?" checked":"",i.push('"));e.innerHTML=i.join("")}function nt(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t'):(n.innerHTML=mn(r),"TEXTAREA"===n.nodeName&&n.classList.contains("wp-editor-area")&&jQuery(n).trigger("change"),n.classList.contains("frm_primary_label")&&"break"===n.nextElementSibling.getAttribute("data-ftype")&&(n.nextElementSibling.querySelector(".frm_button_submit").textContent=r)))}function at(e){var t=parseFloat(e.getAttribute("max")),r=parseFloat(e.getAttribute("min"));return(t-r)/2+r}function lt(){var e,t=this.getAttribute("data-fid"),r="";["field_options_max_","frm_format_"].forEach((function(e){var n=document.getElementById(e+t);n&&(r+=n.value)})),"text"===(e=document.getElementsByName("field_options[type_"+t+"]")[0]).options[e.selectedIndex].value&&dt(""!==r,".frm_invalid_msg"+t)}function st(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,r=jQuery("#field_label_"+e+" .frm_required");if(dt(t,".frm_required_details"+e),t){var n=jQuery('input[name="field_options[required_indicator_'+e+']"]');""===n.val()&&n.val("*"),r.removeClass("frm_hidden")}else r.addClass("frm_hidden")}function dt(e,t){if($msg=jQuery(t),e)$msg.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var r=$msg.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not("+t+"):visible").length;r.css("display",""),0===n&&$msg.closest(".frm_validation_msg").fadeOut("fast")}}function ct(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details"+e);if(this.checked)t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast"),$unqDetail=jQuery(".frm_unique_details"+e+" input"),""===$unqDetail.val()&&$unqDetail.val(a.default_unique);else{var r=t.fadeOut("fast").closest(".frm_validation_box"),n=r.css("display","block").children(":not(.frm_unique_details"+e+"):visible").length;r.css("display",""),0===n&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ft(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),r=jQuery(document.getElementById("frm_field_id_"+e));if(dt(""!==t,".frm_conf_details"+e),""!==t){var n=jQuery(".frm_validation_box .frm_conf_details"+e+" input");""===n.val()&&n.val(a.default_conf),function(e){var t=document.getElementsByName("field_options[type_"+e+"]")[0].value;ut(document.getElementById("field_description_"+e),"field_options[description_"+e+"]",a["enter_"+t]),ut(document.getElementById("conf_field_description_"+e),"field_options[conf_desc_"+e+"]",a["confirm_"+t])}(e),"inline"===t?r.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&r.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-"+e).removeClass("frm_hidden")}else jQuery(".frm-conf-box-"+e).addClass("frm_hidden"),setTimeout((function(){r.removeClass("frm_conf_inline frm_conf_below")}),200)}function ut(e,t,r){e.innerHTML===a.desc&&(e.innerHTML=r,document.getElementsByName(t)[0].value=r)}function mt(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function _t(){var e,t=jQuery(this).closest(".frm-single-settings").data("fid"),r=jQuery("#frm_field_"+t+"_opts .frm_option_template").prop("outerHTML"),n=jQuery(this).data("opttype"),i=0,o=function(e){for(var t=0,r=0,n=jQuery("#frm_field_"+e+"_opts li"),i=0;ti||"000"===i)&&(i=r)}return i}(t);if("000"!==o&&(i=o+1),"other"===n){document.getElementById("other_input_"+t).value=1;var a=jQuery(this).data("ftype");"radio"!==a&&"select"!==a||jQuery(this).fadeOut("slow");var l={action:"frm_add_field_option",field_id:t,opt_key:i,opt_type:n,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,l,(function(e){jQuery(document.getElementById("frm_field_"+t+"_opts")).append(e),rn(t)}))}else r=(r=(r=(r=(r=r.replace(new RegExp('optkey="000"',"g"),'optkey="'+i+'"')).replace(new RegExp("-000_","g"),"-"+i+"_")).replace(new RegExp('-000"',"g"),"-"+i+'"')).replace(new RegExp("\\[000\\]","g"),"["+i+"]")).replace("frm_hidden frm_option_template",""),Po(t,r={newOption:r}),this.closest(".frm_single_option").after(r.newOption),rn(t);null===(e=this.closest(".frm_sortable_field_opts"))||void 0===e||null===(e=e.querySelectorAll(".frm_remove_tag.frm_disabled"))||void 0===e||e.forEach((function(e){return e.classList.remove("frm_disabled")})),Di()}function pt(){gt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function gt(e,t){var r=jQuery(".frm_multiple_cont_"+e);"select"===t?r.fadeIn("fast"):r.fadeOut("fast")}function yt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");To(jQuery(".field_"+e+"_option_key")),jQuery(".field_"+e+"_option").toggleClass("frm_with_key")}function ht(){var e,t,r=jQuery(this).closest(".frm-single-settings"),n=r.data("fid"),i=document.getElementById("frm_field_id_"+n);wt(jQuery(this)),To(jQuery(".field_"+n+"_image_id")),To(jQuery(".frm_toggle_image_options_"+n)),To(jQuery(".frm_image_size_"+n)),To(jQuery(".frm_alignment_"+n)),To(jQuery(".frm-add-other#frm_add_field_"+n)),(e=gn(n))?(bt(n,"inline"),vt(i),t=tn(n),i.classList.add("frm_image_options"),i.classList.add("frm_image_size_"+t),r.find(".frm-bulk-edit-link").hide()):(i.classList.remove("frm_image_options"),vt(i),bt(n,"block"),r.find(".frm-bulk-edit-link").show()),wp.hooks.doAction("frm_image_options_toggled",r[0],e)}function vt(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function bt(e,t){jQuery("#field_options_align_"+e).val(t).trigger("change")}function jt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);Qt(),gn(e)&&(vt(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_"+tn(e)))}function wt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_"+t+"_option").trigger("change")}function Qt(){wt(jQuery(this))}function xt(e){var t=e.target.closest(".frm_image_preview_wrapper");e.preventDefault(),wp.media.model.settings.post.id=0;var r=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});r.on("select",(function(){var e=r.state().get("selection").first().toJSON(),n=t.querySelector("img");n.setAttribute("src",e.url),n.classList.remove("frm_hidden"),n.removeAttribute("srcset"),t.querySelector(".frm_image_preview_frame").style.display="block",t.querySelector(".frm_image_preview_title").textContent=e.filename,t.querySelector(".frm_choose_image_box").style.display="none";var i=jQuery(t);i.siblings('input[name*="[label]"]').data("frmimgurl",e.url),i.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0})),r.open()}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function kt(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function Lt(){var e=document.getElementById("dropform-search-input");null!==e&&setTimeout((function(){e.focus()}),100)}function St(e){var t=e.target,r=t.closest(".frm_warning_style");jQuery(r).fadeOut(400,(function(){return r.remove()}));var n=t.dataset.action,i=new FormData;g(n,i)}function At(e){e.preventDefault()}function It(){var e,t=this.parentNode,r=t.parentNode,n=r.querySelectorAll("li:not(.frm_hidden)");2===n.length&&(null===(e=Array.from(n).find((function(e){return e!==t})).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i,o=this.getAttribute("data-fid");jQuery(t).fadeOut("fast",(function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(t).remove(),jQuery(r).find(".frm_other_option").length<1&&(null!==(i=document.getElementById("other_input_"+o))&&(i.value=0),jQuery("#other_button_"+o).fadeIn("fast"))})),Di()}function Bt(){var e,t,r,n;(e=jQuery(this)).is(":checked")&&(t=function(){setTimeout((function(){e.prop("checked",!1)}),0)},r=function(){e.off("mouseup",n)},n=function(){t(),r()},e.on("mouseup",n),e.one("mouseout",r))}function Ct(){this.value===a.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function qt(e){return C(B("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Nt(){var e=a.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,r=t.parentNode,n=jQuery(this).closest("li.form-field"),i=n.data("fid");if("divider"===n.data("ftype")){var o=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;o.forEach((function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)})),l&&(e=qt(++l))}return r.classList.contains("frm-section-collapsed")||r.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=a.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",i),Te(),F(this)),!1}function Tt(){this.closest("li.form-field").click()}function Ot(){var e,t;null!==(e=document.querySelector(".frm-field-group-hover-target"))&&(e.classList.add("frm-selected-field-group"),(t=document.createElement("div")).classList.add("frm-delete-field-groups","frm_hidden"),document.body.appendChild(t),t.click())}function Dt(){var e=document.querySelector(".frm-field-group-hover-target");if(null!==e){var t="frm_field_group_"+we(),r=document.createTextNode("");We(r);var n=jQuery(r).closest("li").get(0);n.classList.add("frm_hidden");var i=n.querySelector("ul");i.id=t,jQuery(e.closest("li.frm_field_box")).after(n);var o=ae(jQuery(e)),a=[],l=[],s=o.length,d={},c=0;jQuery(n).on("frm_added_duplicated_field_to_row",(function(e,t){if(d[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++c)){var r=jQuery(i),o=ae(r);l.forEach((function(e){e.remove()}));for(var f=0;f0&&ir(Vt(t)))&&l>=12&&(l=Math.floor(12/t)),s=0;s',""),t);e.prepend(r),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",(function(){mr(document.getElementById("frm-field-group-message"))}))}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var r=document.querySelector(".frm-field-group-hover-target");if(r){var n=e.ctrlKey||e.metaKey,i=e.shiftKey,o=r.classList.contains("frm-selected-field-group"),a=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=_r();if(t){var r=t.closest("ul");if(r&&1===ae(jQuery(r)).length)return r.classList.add("frm-selected-field-group"),jQuery(r)}return jQuery()}(),l=a.length;if(n||i){var s=_r();if(null===s||jQuery(s).siblings("li.form-field").length||(s.parentNode.classList.add("frm-selected-field-group"),++l),n){if(o)return--l,r.classList.remove("frm-selected-field-group"),void pr(l);++l}else i&&!o&&(++l,function(e,r){var n,i,o,a=r.closest(".edit_field_type_divider");a&&(n=a.closest("ul").closest(".frm_field_box.ui-draggable"),o=t(a.querySelectorAll(".frm_field_box.ui-draggable")).filter((function(e){return 2===e.classList.length})));var l=r.closest("li");return e.parent().index()=2||1===e&&ae(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e,t,r,n,i;if(null!==(e=document.getElementById("frm_field_multiselect_popup")))return e.classList.toggle("frm-unmergable",!hr()),e;(e=d()).id="frm_field_multiselect_popup",hr()||e.classList.add("frm-unmergable"),(t=d()).classList.add("frm-merge-fields-into-row"),t.textContent=B("Merge into row","formidable"),(r=document.createElement("a")).style.marginLeft="5px",r.classList.add("frm_icon_font","frm_arrowdown6_icon"),r.setAttribute("href","#"),t.appendChild(r),e.appendChild(t),(n=d()).classList.add("frm-multiselect-popup-separator"),e.appendChild(n),(i=d()).classList.add("frm-delete-field-groups"),i.appendChild(Rt("frm_trash_svg")),e.appendChild(i),document.getElementById("post-body-content").appendChild(e),jQuery(e).hide().fadeIn()}():yr(),Me()}function gr(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",gr),yr()}function yr(){var e=document.getElementById("frm_field_multiselect_popup");null!==e&&e.remove()}function hr(){var e,t,r,n,i;if(1===(r=(e=document.querySelectorAll(".frm-selected-field-group")).length))return!1;for(t=0,n=0;n6)return!1}return!0}function vr(e){var t;null===e.originalEvent.target.closest("#frm_field_group_popup")&&(e.originalEvent.target.classList.contains("frm-custom-field-group-layout")||(t=Pt(br(),document.querySelector(".frm-selected-field-group").firstChild),this.appendChild(t)))}function br(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each((function(){e+=ae(jQuery(this)).length})),e}function jr(){var e,t,r,n;n=[],jQuery(".frm-selected-field-group > li.form-field").each((function(){n.push(this.dataset.fid)})),t=function(e){return function(t){t.preventDefault(),function(e){e.forEach((function(e){Qr(e)}))}(e)}}(e=n),null!==(r=document.getElementById("frm_field_multiselect_popup"))&&r.remove(),this.setAttribute("data-frmverify",qt(e.length)),F(this);var i=document.getElementById("frm-confirmed-click");null==i||i.removeAttribute("data-deletefield"),jQuery(i).on("click",t),jQuery("#frm_confirm_modal").one("dialogclose",(function(){jQuery(i).off("click",t)}))}function wr(){Qr(this.getAttribute("data-deletefield"))}function Qr(e){var t=jQuery("#frm_field_id_"+e);xr(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each((function(){xr(this.getAttribute("data-fid"))})),xn()}function xr(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,r=jQuery(document.getElementById("frm_field_id_"+e)),n=jQuery("#frm-single-settings-"+e);n.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach((function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").appendChild(e)}))}(n),n.remove(),r.fadeOut("slow",(function(){var e,t=r.closest(".start_divider"),n=r.data("type"),i=r.siblings("li.form-field");if(i.length||(r.is(".edit_field_type_end_divider")?i.length=r.closest("li.form-field").siblings():e=r.closest("ul.frm_sorting").parent()),r.remove(),"break"===n?Tr():"product"===n&&(Be(),nt()),i.length?le(i.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(j.get(0).childElementCount>1)return!1;var e=j.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var o=document.getElementById("frm_form_editor_container");o.classList.remove("frm-has-fields"),o.classList.add("frm-empty-fields")}else t.length&&En(t);R()})),r.length&&wp.hooks.doAction("frm_after_delete_field",r[0])}})}function Er(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_logic_row_"+e).querySelectorAll(".frm_logic_row");return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_logic_row",form_id:t,field_id:e,nonce:frmGlobal.nonce,meta_name:kr(r,"frm_logic_"+e+"_"),fields:tt()},success:function(t){jQuery(document.getElementById("logic_"+e)).fadeOut("fast",(function(){var r=document.getElementById("frm_logic_row_"+e);r.insertAdjacentHTML("beforeend",t);var n=r.querySelector(".frm_logic_row:last-child .frm-logic-rule-text");n&&(n.textContent=r.dataset.ruleText);var i=r.closest(".frm_logic_rows");i.style.height="auto",jQuery(i).fadeIn("fast")}))}}),!1}function kr(e,t,r){return e.length?parseInt(e[e.length-1].id.replace(t,""),10)+1:void 0!==r?r:0}function Lr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=k,r=document.getElementById("frm_watch_lookup_block_"+e).children;return jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_watch_lookup_row",form_id:t,field_id:e,row_key:kr(r,"frm_watch_lookup_"+e+"_"),nonce:frmGlobal.nonce},success:function(t){var r,n=jQuery(document.getElementById("frm_watch_lookup_block_"+e));n.append(t),n.fadeIn("slow"),null===(r=document.getElementById("frm_watch_lookup_label_".concat(e)))||void 0===r||r.classList.remove("frm-force-hidden")}}),!1}function Sr(e){var t,r,n=jQuery(e).closest(".frm-single-settings").attr("data-fid"),i=jQuery(e).closest("ul").get(0).querySelectorAll(".field_"+n+"_option");for(t in i)if((r=i[t]).id!==e.id&&r.value===e.value&&"true"!==r.getAttribute("data-duplicate"))return!0;return!1}function Ar(){var e,t;null===this.getAttribute("data-value-on-load")&&(this.setAttribute("data-value-on-load",this.value),t=jQuery(this).closest(".frm-single-settings").attr("data-fid"),(e=document.createElement("input")).value=this.value,e.setAttribute("type","hidden"),e.setAttribute("name","optionmap["+t+"]["+this.value+"]"),this.parentNode.appendChild(e),void 0===S[t]&&(S[t]={}),S[t][this.value]=e),"true"===this.getAttribute("data-duplicate")&&(this.removeAttribute("data-duplicate"),Sr(this))?this.setAttribute("data-value-on-focus",this.getAttribute("data-value-on-load")):""===this.value&&a.new_option===this.getAttribute("data-value-on-focus")||this.setAttribute("data-value-on-focus",this.value)}function Ir(e){var t,r=e.closest(".frm_single_option");return e.parentElement.classList.contains("frm_single_option")?{newValue:r.querySelector('.frm_option_key input[type="text"]').value,newLabel:t=e.value}:(t=r.querySelector('input[type="text"]').value,{newValue:e.value,newLabel:t})}function Br(){var e,t,r,n,i,o,a,l,s,d,c,f,u=function(e){var t=function(e){var t,r,n=null!==(t=null===(r=e.closest(".frm-single-settings").querySelector(".frm_toggle_sep_values"))||void 0===r?void 0:r.checked)&&void 0!==t&&t,i=e.closest(".frm_single_option");return n&&e.parentElement.classList.contains("frm_single_option")?{oldValue:i.querySelector('.frm_option_key input[type="text"]').getAttribute("data-value-on-focus"),oldLabel:e.getAttribute("data-value-on-focus")}:{oldValue:e.getAttribute("data-value-on-focus"),oldLabel:i.querySelector('input[type="text"]').getAttribute("data-value-on-focus")}}(e),r=t.oldValue,n=t.oldLabel,i=Ir(e);return{oldValue:r,oldLabel:n,newValue:i.newValue,newLabel:i.newLabel}}(this),m=u.oldValue,_=u.oldLabel,p=u.newValue,g=u.newLabel;if(m!==p||_!==g){var y=this.closest(".frm-single-settings");if(t=y.getAttribute("data-fid"),e=this.getAttribute("data-value-on-load"),Sr(this))return this.setAttribute("data-duplicate","true"),void(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=e));for(void 0!==S[t]&&void 0!==S[t][e]&&(S[t][e].value=p),s=[],rows=D.querySelectorAll(".frm_logic_row"),o=rows.length,a=0;a1)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(H(a.repeat_limit_min),this.value="")}function Kr(){var e=this.value;""!==e&&(e<1||e>200)&&(H(a.checkbox_limit),this.value="")}function Yr(e,t){jQuery(e).closest(".frm_field_box").find(".frm_"+t+"_form_row .frm_repeat_label").text(e.value)}function Xr(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,r=document.getElementById("frm_show_selected_fields_"+e),n=document.getElementById("frm_show_selected_forms_"+e);jQuery(n).find("select").val(""),"form"===t?(n.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.removeChild(e.firstChild)}(r)):(r.style.display="none",n.style.display="none",wn(t,e))}function Zr(){var e,t;(e=en(this))&&(t=jQuery(this).closest(".frm_single_option"),function(e,t,r){var n,i,o,a,l,s,c=r.data("optkey"),f=pn(e),u=jQuery('label[for="field_'+t+"-"+c+'"]'),m="field_options[options_"+e+"]["+c+"]",_=jQuery('input[name="'+m+'[label]"]');if(u.length<1)return rn(e),void((o=r.find('input[name^="default_value_"]')).is(":checked")&&_.length>0&&jQuery('select[name^="item_meta['+e+']"]').val(_.val()));if(a=u.children("input"),n=_.length<1?(_=jQuery('input[name="'+m+'"]')).val():f?jQuery('input[name="'+m+'[value]"]').val():_.val(),!(_.length<1)){if(i=u[0].childNodes,gn(e))l=function(e,t,r){var n,i,o;return(n=e.find("img"))&&(i=n.attr("src")),o=yn(t),fn(t),_n(r.val(),o,i)}(r,e,_),(s=u.find(".frm_image_option_container")).length>0?s.replaceWith(l):(i[i.length-1].nodeValue="",u.append(l));else{var p=!1;i.forEach((function(t,r){if(!1===p)"INPUT"===t.tagName&&(p=r);else if(r===p+1){var n="";!function(e){var t=document.getElementsByName("field_options[image_options_"+e+"]"),r=Array.from(t).find((function(e){return e.checked&&"buttons"===e.value}));return void 0!==r}(e)?t.nodeValue=" "+_.val():(n=d({className:"frm_label_button_container",text:" "+_.val()}),u[0].replaceChild(n,t))}else u[0].removeChild(t)}))}a.val(n),o=r.find('input[name^="default_value_"]'),a.prop("checked",!!o.is(":checked"))}}(e.fieldId,e.fieldKey,t))}function en(e){var t;return!!(t=jQuery(e).closest(".frm_sortable_field_opts")).length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function tn(e){var t,r=document.getElementById("field_options_image_size_"+e),n="";return null!==r&&""!==(t=r.value)&&(n=t),n}function rn(e){var t,r,n,i,o,a=jQuery('[name^="item_meta['+e+']"]');if(!(a.length<1)){if(a.is("select"))null!==(i=document.getElementById("frm_placeholder_"+e))&&""===i.value?sn(a[0],{sourceID:e}):sn(a[0],{sourceID:e,placeholder:i.value});else{r=cn(e),jQuery("#field_"+e+"_inner_container > .frm_form_fields").html(""),o=en(jQuery("#frm_delete_field_"+e+"-000_container"));var l=jQuery("#field_"+e+"_inner_container > .frm_form_fields"),s=gn(e),d=s?tn(e):"",c=s?"frm_image_option frm_image_"+d+" ":"",f=Fo(e);for(n="hidden"===a.attr("type")?a.data("field-type"):a.attr("type"),t=0;t=0;a--){var u;l=d[a];var m=null===(u=document.getElementById("frm_field_"+e+"_opts").querySelector('.frm_option_key input[type="text"]'))||void 0===u?void 0:u.value;m||(m=l),s=i.querySelector('option[value="'+m+'"]');var _=nn(e,l),p=_.newValue,g=_.newLabel,y=document.querySelectorAll("#frm_field_"+e+"_opts input[data-value-on-focus]"),h=Array.from(y).find((function(e){return e.value===l}));if(h){var v=h.dataset.valueOnFocus;if(v&&i.querySelector('option[value="'+v+'"]'))continue}an(i,s,p,g)}null!==(s=i.querySelector('option[value=""]'))&&i.prepend(s)}}function an(e,t,r,n){null!==t||e.querySelector('option[value="'+r+'"]')||((t=frmDom.tag("option",{text:n})).value=r),e.prepend(t)}function ln(e,t,r,n,i,o){var a,l="",s=-1!==t.key.indexOf("other"),d="field_"+n+"-"+t.key,c="scale"===e?"radio":e;return a='',this.getSingle=function(){return""!==(l=wp.hooks.applyFilters("frm_admin.build_single_option_template",l,{opt:t,type:e,fieldId:r,classes:o,id:d}))?l:'
                                          "+(s?a:"")+"
                                          "},this.getSingle()}function sn(e,t){if(null!==e){var r=t.sourceID,n=t.placeholder,i=Fo(r),o=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=cn(r),l=void 0!==n,s=0;s0||d[t].name.indexOf("[value]")>0||d[t].name.indexOf("[image]")>0||d[t].name.indexOf("[price]")>0||(i=r=d[t].value,o=d[t].name.replace("field_options[options_"+e+"][","").replace("[label]","").replace("]",""),m&&(n=d[t].name.replace("[label]","[value]"),r=jQuery('input[name="'+n+'"]').val()),u&&(i=_n(i,f,un(d[t]),fn(e))),a={saved:r,label:i=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",i,e,d[t],u),checked:(l=d[t].id,field=jQuery("#"+l),0!==field.length&&(checkbox=field.siblings("input[type=checkbox]"),checkbox.length&&checkbox.prop("checked"))),key:o},c&&(n=d[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'+n+'"]').val()),s.push(a));return s}function fn(e){var t=document.getElementById("frm-single-settings-"+e);return null===t?"radio":t.classList.contains("frm-type-checkbox")?"checkbox":"radio"}function un(e){var t,r=jQuery(e).siblings(".frm_image_preview_wrapper");return r.length&&(t=r.find("img")).length?t.attr("src"):""}function mn(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce((function(e,t){var r=frmDom.cleanNode(t);return"#text"===r.nodeName?e+r.textContent:e+r.outerHTML}),"");return t!==e?mn(t):t}function _n(e,t,r,n){var i,o,l,c=e;return c=mn(c),r?o=m({src:r,alt:c}):(o=d({className:"frm_empty_url"})).innerHTML=a.image_placeholder_icon,i=t?" frm_label_with_image":"",(l=s("span",{className:"frm_text_label_for_image_inner"})).innerHTML=c,s("span",{className:"frm_image_option_container"+i,children:[o,s("span",{className:"frm_text_label_for_image",child:l})]})}function pn(e){return hn("separate_value_"+e)}function gn(e){for(var t=!1,r=document.getElementsByName("field_options[image_options_"+e+"]"),n=0;n=0&&(r.splice(t,1),e.val(r),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function An(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function In(){jQuery(".frm-hide-empty").each((function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()}))}function Bn(e){e.preventDefault(),function(e,t,r){var n=document.getElementById(e.getAttribute("data-open")),i=jQuery(e).closest("p,ul"),o=void 0!==t;if(i.hasClass("frm-open"))i.removeClass("frm-open"),n.classList.add("frm_hidden");else{if(o||(t=Ri(e)),null!==t){if(!o){var a=r.key;"Enter"!==a&&" "!==a&&t.focus()}i.after(n),n.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===n.id.indexOf("frm-calc-box")&&Ze(n,!0)}i.addClass("frm-open"),n.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",n,e)}}(this,void 0,e)}function Cn(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'+this.parentNode.id+'"]').closest(".frm-open").removeClass("frm-open")}function qn(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")}))}function Nn(){var e,t,r,n,i,o,a,l=this.getAttribute("data-frmchange").split(",");for(e=0;e',r)),o.innerHTML=c,e.dataset.upsellImage&&o.appendChild(m({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),a.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,a),s.style.display="none",i.style.display=_,l.style.display="block"===_?"inline-block":_,o.style.display=u,a.style.display="block"===f?"inline-block":f}function Kn(e){void 0===e&&(e=""),function(e){var t,r=jQuery(e+" :not(.frm_has_shortcodes) .frm_not_email_message, "+e+" :not(.frm_has_shortcodes) .frm_not_email_to, "+e+" :not(.frm_has_shortcodes) .frm_not_email_subject");for(t=0;t').before('')}function Yn(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery("."+e+"_action_box").hide(),"redirect"===t?jQuery("."+e+"_action_redirect_box."+e+"_action_box").fadeIn("slow"):"page"===t?jQuery("."+e+"_action_page_box."+e+"_action_box").fadeIn("slow"):jQuery("."+e+"_action_message_box."+e+"_action_box").fadeIn("slow")}function Xn(e){if(m=e.target,p=jQuery(m),g=p.closest(".frm_form_action_settings"),(y=g.find(".widget-inside")).find("p, div, table").length||((_=g.find(".widget-top")).on("frm-action-loaded",(function(){p.trigger("click"),g.removeClass("open"),y.hide()})),_.trigger("click"),0)){var t=e.target.closest(".frm_form_action_settings"),r=t.querySelectorAll(".wp-editor-area");r.length&&r.forEach((function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)}));var n=jQuery(t).clone(),i=n.attr("id").replace("frm_form_action_",""),o=Zn(i);n.find(".frm_action_id, .frm-btn-group").remove(),n.find('input[name$="['+i+'][ID]"]').val(""),n.find(".widget-inside").hide(),n.find("input[type=text], textarea, input[type=number]").prop("defaultValue",(function(){return this.value})),n.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",(function(){return this.checked}));var a=new RegExp("\\["+i+"\\]","g"),l=new RegExp("_"+i+'"',"g"),s=new RegExp("-"+i+'"',"g"),c=new RegExp('"'+i+'"',"g"),f=n.html().replace(a,"["+o+"]").replace(l,"_"+o+'"');f=f.replace(s,"-"+o+'"').replace(c,'"'+o+'"');var u=d({id:"frm_form_action_"+o,className:n.get(0).className});u.setAttribute("data-actionkey",o),u.innerHTML=f,u.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach((function(e){"string"==typeof e.className&&(e.className=e.className.replace(i,o)),e.id=e.id.replace(i,o)})),u.classList.remove("open"),document.getElementById("frm_notification_settings").appendChild(u),r.length&&(r.forEach((function(e){frmDom.wysiwyg.init(e)})),u.querySelectorAll(".wp-editor-area").forEach((function(e){frmDom.wysiwyg.init(e)}))),u.classList.contains("frm_single_on_submit_settings")&&u.querySelector("input.frm-page-search")&&bo(u),ao(),wp.hooks.doAction("frm_after_duplicate_action",u)}var m,_,p,g,y}function Zn(e){var t=parseInt(e,10)+11;return null!==document.getElementById("frm_form_action_"+t)&&(t=Zn(++t)),t}function ei(){var e,t=jQuery(this).data("actiontype");if(!si(t)){var r=(e=kr(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_"+e)&&(e+=100),A>=e&&(e=A+1),A=e,e),n=k,i=document.createElement("div");i.classList.add("frm_single_"+t+"_settings");var o=document.getElementById("frm_notification_settings");o.appendChild(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:r,form_id:n,nonce:frmGlobal.nonce},success:function(e){Di(),i.remove(),document.querySelectorAll(".frm_form_action_settings.open").forEach((function(e){return e.classList.remove("open")}));var n=d();n.innerHTML=e;var a=n.querySelector(".widget-top");Array.from(n.children).forEach((function(e){return o.appendChild(e)})),jQuery(".frm_form_action_settings").fadeIn("slow");var l=document.getElementById("frm_form_action_"+r);l.classList.add("open"),document.getElementById("post-body-content").scroll({top:l.offsetTop+10,left:0,behavior:"smooth"}),li(t),Kn("#frm_form_action_"+r),ao(),bo(l),a&&jQuery(a).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",l)}})}}function ti(){var e=document.getElementById("frm_email_addon_menu").classList,t=document.getElementById("actions-search-input");e.contains("frm-all-actions")?(e.remove("frm-all-actions"),e.add("frm-limited-actions")):(e.add("frm-all-actions"),e.remove("frm-limited-actions")),t.value="",Ao(t,"input")}function ri(e){e.on("Change",(function(){!function(e){var t,r;(t=document.querySelector(".frm-single-settings:not(.frm_hidden)"))&&null!==(r=t.querySelector(".wp-editor-wrap"))&&r.classList.contains("tmce-active")&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)}))}function ni(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===ni.prototype.endMarker&&(ni.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var r=null!==e?e.parentElement.classList:"";null!==e&&(r.contains("frm_field_box")||r.contains("divider_section_only"))&&t.fragment.appendChild(e)},this.moveFields=function(){w.insertBefore(t.fragment,ni.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function ii(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_"+e+" .frm_"+t+"_row").fadeIn("slow"),jQuery(this).fadeOut("slow")}function oi(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),r=".frm_"+t+"_row",n=".frm_"+t+"_button";jQuery(e).find(n).fadeIn("slow"),jQuery(e).find(r).fadeOut("slow",(function(){jQuery(e).find(r+" input").val("")}))}function ai(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function li(e){var t,r,n=document.querySelectorAll(".frm_"+e+"_action");si(e)?(t=n,r=di(e)>0,t.forEach((function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),r&&e.classList.add("frm_already_used")}))):n.forEach((function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))}))}function si(e){var t=function(e){return jQuery(".frm_single_"+e+"_settings").length}(e)>=di(e),r={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,r)}function di(e){return parseInt(jQuery(".frm_"+e+"_action").data("limit"),10)}function ci(){var e=a.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" "+a.edit_action_text),H(e)}function fi(){var e=jQuery(this).data("emailkey"),t=jQuery(this).closest(".frm_form_action_settings").find(".frm_action_name").val(),r=document.getElementById("form_id").value,n=document.getElementById("frm_logic_row_"+e),i=kr(n.querySelectorAll(".frm_logic_row"),"frm_logic_"+e+"_"),o=d({id:"frm_logic_"+e+"_"+i,className:"frm_logic_row frm_hidden"});return n.appendChild(o),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:r,meta_name:i,type:t,nonce:frmGlobal.nonce},success:function(t){jQuery(document.getElementById("logic_link_"+e)).fadeOut("slow",(function(){o.insertAdjacentHTML("beforebegin",t),o.remove(),jQuery(n).parent(".frm_logic_rows").fadeIn("slow")}))}}),!1}function ui(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,r=jQuery(t).val();if(""===r||"checkbox"===r)return!1;e.each((function(){if(jQuery(this).val()===r&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),H(a.field_already_used),!1}))}function mi(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function _i(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function pi(){var e,t,r=document.getElementById("frm_posttax_rows").childNodes,n=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),a=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:a,nonce:frmGlobal.nonce},success:function(n){for(i=0;i');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),i=jQuery(document.getElementById(r+"_show_exclude")).is(":checked")?1:0,o=jQuery('select[name$="[post_category]['+r+'][field_id]"]').val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:o,show_exclude:i,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_"+r)).replaceWith(e)}})}}function ji(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function wi(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery("."+r).hide():(jQuery("."+r).show(),jQuery(".hide_"+r+"_"+t).hide())}function Qi(){zn()||($n(this),Fn(document.querySelector(".frm_form_settings")))}function xi(e){return e.preventDefault(),Ei(jQuery(this),this.getAttribute("data-code")),!1}function Ei(t,r){var n=!1,i=t;if("object"===e(t)){if(t.hasClass("frm_noallow"))return;void 0===(i=jQuery(t).closest("[data-fills]").attr("data-fills"))&&void 0!==(i=t.closest("div").attr("class"))&&(i=i.split(" ")[1])}if(void 0===i){var o=document.activeElement;"search"===o.type?null===(i=o.id.replace("-search-input","")).match(/\d/gi)&&(i=(o=jQuery(".frm-single-settings:visible ."+i)).attr("id")):i=o.id}i&&(n=jQuery("#wp-"+i+"-wrap.wp-editor-wrap").length>0);var a=jQuery(document.getElementById(i));if(void 0===t.attr("data-shortcode")&&(!a.length||void 0===a.attr("data-shortcode"))){var l=t.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(r="["+r+"]")}if(n&&(wpActiveEditor=i),!a.length)return!1;if("[default-html]"===r||"[default-plain]"===r){var s=0;"[default-plain]"===r&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:i,success:function(e){if(n){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else ki(a,e)}})}else r=function(t,r,n){return"object"===e(r)&&r instanceof jQuery&&0===n[0].id.indexOf("success_url_")&&(r=r[0]).closest("#frm-insert-fields-box")?(r.parentNode.classList.contains("frm_insert_url")||(t=t.replace("]"," sanitize_url=1]")),t):t}(r,t,a),n?send_to_editor(r):ki(a,r);return!1}function ki(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{obj=e[0];var r=obj.selectionEnd;t=function(e,t,r,n){var i=e.data("sep");if(void 0===i)return t;var o=e.val();if(!o.trim().length)return t;var a=new RegExp(i+"\\s*$"),l=new RegExp("^\\s*"+i);return o.substr(0,r).trim().length&&!1===a.test(o.substr(0,r))&&(t=i+t),o.substr(n,o.length).trim().length&&!1===l.test(o.substr(n,o.length))&&(t+=i),t}(e,t,obj.selectionStart,r),obj.value=obj.value.substr(0,obj.selectionStart)+t+obj.value.substr(obj.selectionEnd,obj.value.length);var n=r+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Li(t)){var r=e.value.split(" ").filter(Li);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter((function(e){return(e=e.trim()).length&&!t.includes(e)}));return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(obj,t),obj.focus(),obj.setSelectionRange(n,n)}Hn(e)}function Li(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Si(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),Ao(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),Ao(e,"change"))}function Ai(){var e,t,r=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",n=document.getElementById("frm-is-condition").value,i=document.getElementById("frm-text-condition").value,o=document.getElementById("frm-insert-condition");t="if "+(e=(r=document.getElementById(r)).options[r.selectedIndex].value)+" "+n+'="'+i+'"]',o.setAttribute("data-code",t+a.conditional_text+"[/if "+e),o.innerHTML="["+t+"[/if "+e+"]"}function Ii(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&($i(),"use"===(t=Gi(e)).tagName?-1===(t=t.firstElementChild).getAttributeNS("http://www.w3.org/1999/xlink","href").indexOf("frm_close_icon")&&Ti(t,"nofocus"):t.classList.contains("frm_close_icon")||Ti(t,"nofocus"))}function Bi(e){e.preventDefault(),e.stopPropagation(),Ti(this)}function Ci(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||qi()}}(e.target)}function qi(e){var t;void 0===e&&(e=B("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:B("Save and Reload?","formidable"),content:(t=d(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:B("Save and Reload","formidable"),buttonType:"primary"});_(e,(function(){Hi()}));var t=frmDom.modal.footerButton({text:B("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Ni(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find((function(e){return"#frm_close_icon"===e.getAttribute("href")}));if(void 0===n)return;t=n.parentElement}else t=e;var i=t.getBoundingClientRect(),o=document.getElementById("frm_adv_info"),a=o.parentElement.getBoundingClientRect();o.style.top=i.top-a.top+32+"px",o.style.left=i.left-a.left-280+"px"}function Ti(e,t){var n=Ri(e),i=document.getElementById("frm_adv_info"),o=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&null===(o=e.getAttributeNS("http://www.w3.org/1999/xlink","href"))&&(o=e.getAttribute("href")),-1!==o.indexOf("frm_close_icon"))$i(i);else{if(Ni(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),n.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):n.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),i.setAttribute("data-fills",n.id),i.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=o.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==n.style.display?n.focus():jQuery(tinymce.get(n.id)).trigger("focus")),function(e){["address","body"].forEach((function(t){!function(e,t){var n,i;n=a.contextualShortcodes[t+"Selector"],i=a.contextualShortcodes[t];var o,l=e.matches(n),s=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=r(e))){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==t.return||t.return()}finally{if(l)throw o}}}}(i);try{for(s.s();!(o=s.n()).done;){var d,c=o.value,f=null===(d=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'+c+'"]'))||void 0===d?void 0:d.closest("li");null==f||f.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)}))}(n)}}function Oi(e){return 0===a.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return a.contextualShortcodes.address.includes(r)||a.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),i=a.contextualShortcodes;return i.address.includes(t)?n.matches(i.addressSelector):n.matches(i.bodySelector)}(e)}function Di(){E||(E=1,window.addEventListener("beforeunload",Pi))}function Mi(){E=0}function Fi(){E=0}function Hi(){var e=document.getElementById("frm_submit_side_top");e.classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()}function Pi(e){E&&(e.preventDefault(),e.returnValue="")}function zi(e,t){var r={my:"top",at:"top+"+t,of:window};e.dialog("option","position",r)}function Ri(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;null!==r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Ri(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Gi(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Gi(r);return r}function $i(e){var t,r,n,i;if((void 0!==e||null!==(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){for(e.style.display="none",n=document.querySelectorAll(".frm-show-box.frm_close_icon"),t=0;t"+r.data.name+": "+r.data.msg+"

                                          ":'

                                          Imported '+r.data.name+"

                                          ",e.find(".status").prepend(n),e.find(".status").show(),N.importQueue=jQuery.grep(N.importQueue,(function(e){return e!=t})),N.imported++,0===N.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(N.imported),e.find(".process-completed").show()):(e.find(".form-current").text(N.imported+1),Yi(e)))}))}function Xi(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function Zi(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function eo(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function to(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function ro(e){var t,r,n=e.target.value;io(n),no.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function no(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each((function(){this.checked=!1,r.indexOf(this.value)>=0?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0})),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var i=t.data("count"),o=jQuery('input[name="frm_export_forms[]"]');"single"===i?(o.prop("multiple",!1),o.prop("checked",!1)):(o.prop("multiple",!0),o.prop("disabled",!1)),e.trigger("change")}function io(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach((function(e){e.classList.remove("frm_hidden")})):t.forEach((function(e){e.classList.add("frm_hidden")})),ko.call(document.querySelector(".frm-auto-search")))}}function oo(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ao(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function lo(e){e.preventDefault(),fo(this,"frm_multiple_addons")}function so(e){e.preventDefault(),fo(this,"frm_activate_addon")}function co(e){e.preventDefault(),fo(this,"frm_install_addon")}function fo(e,t){var r,n,i,o;jQuery(".frm-addon-error").remove(),n=(r=jQuery(e)).attr("rel"),i=r.parent(),o=i.parent().find(".addon-status-label"),r.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:t,nonce:frmGlobal.nonce,plugin:n},success:function(e){var n,a,l;"string"!=typeof(e=null!==(n=null===(a=e)||void 0===a?void 0:a.data)&&void 0!==n?n:e)&&"string"==typeof e.message&&(void 0!==e.saveAndReload&&(l=e.saveAndReload),e=e.message);var s=po(e);s?go(s,i,r):(mo(e,r,o,i,l,t),wp.hooks.doAction("frm_update_addon_state",e))},error:function(){r.removeClass("frm_loading_button")}})}function uo(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:a.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,i,o=po(e=null!==(n=null===(i=e)||void 0===i?void 0:i.data)&&void 0!==n?n:e);o?go(o,r,t):mo(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}function mo(e,t,r,n,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",l=document.querySelectorAll(".frm-addon-status");l.forEach((function(t){t.textContent=e,t.style.display="block"})),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach((function(e){e.style.display="none"})),jQuery("#frm_upgrade_modal h2").hide(),jQuery("#frm_upgrade_modal .frm_lock_icon").addClass("frm_lock_open_icon"),jQuery("#frm_upgrade_modal .frm_lock_icon use").attr("xlink:href","#frm_lock_open_icon");var s={frm_activate_addon:{class:"frm-addon-active",message:a.active},frm_deactivate_addon:{class:"frm-addon-installed",message:a.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:a.not_installed}};s.frm_install_addon=s.frm_activate_addon;var c=r[0];c&&(c.textContent=s[o].message);var f=n[0].parentElement;f.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),f.classList.add(s[o].class),t[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(i)&&l.forEach((function(e){var t=null!==e.closest("#frm_upgrade_modal");e.appendChild(function(e,t){var r=[_o(e)];return t&&r.push(function(){var e=document.createElement("a");return e.setAttribute("href","#"),e.classList.add("button","button-secondary","frm-button-secondary","dismiss"),e.textContent=B("Close","formidable"),e}()),d({className:"frm-save-and-reload-options",children:r})}(i,t))}))}function _o(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=B("Save and Reload","formidable"),t.addEventListener("click",(function(){var t,r;"form_builder"===e?Hi():"settings"===e&&null!==(t=document.getElementById("form_settings_page"))&&null!==(r=t.querySelector("form.frm_form_settings"))&&(E=0,r.submit())})),t}function po(e){return"string"!=typeof e&&(void 0===e.success||!e.success)&&(e.form&&jQuery(e.form).is("#message")?{message:jQuery(e.form).find("p").html()}:e)}function go(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",uo)):(t.append('

                                          '+e.message+"

                                          "),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function yo(){vo()}function ho(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",(function(){n.addClass("frm_hidden")}))}(0,0,e)}function vo(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function bo(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function jo(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),Qo(t,r,this)}function wo(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),Qo(this,t,r)}function Qo(e,t,r){var n=function(e){var t,r,n={},i=e.elements;for(r=0;r=0||Lo(l,n)?(s&&Oi(o[e])&&o[e].classList.remove("frm_hidden"),o[e].classList.add("frm-search-result")):(o[e].classList.add("frm_hidden"),o[e].classList.remove("frm-search-result"))}(t=document.querySelector("#frm-insert-fields"))&&t.querySelectorAll(":scope > .frm-with-line").forEach((function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every((function(e){return e.classList.contains("frm_hidden")}));e.classList.toggle("frm_hidden",n)}})),jQuery(this).trigger("frmAfterSearch")}function Lo(e,t){return"s"!==t&&"s"!==e[e.length-1]&&(e+"s").indexOf(t)>=0}function So(e){e.stopPropagation()}function Ao(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Io(e,t){var r,n=new XMLHttpRequest,i="string"==typeof e?e:Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(i),n}function Bo(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Co(e){jQuery(e).css("visibility","hidden")}function qo(e){jQuery(e).css("visibility","visible")}function No(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="550px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function To(e,t){if("#"===t){var r=document.getElementById(e),n=r.style.display;r.style.display="none"===n?"block":"none"}else e.is(":visible")?e.hide():e.show()}function Oo(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Do(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_"+e);if(null!==t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Mo(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value;t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def"))}function Fo(e){var t=document.getElementById("frm_field_id_"+e);return null!==t&&"product"===t.getAttribute("data-type")}function Ho(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},r=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},n=[1,2,3,4,5,6,7,8,9,10,11,12].map((function(e){return"frm"+e})),i=["first","middle","last"];document.addEventListener("change",(function(o){o.target.matches(".frm_name_layout_dropdown")&&function(o){var a,l=o.target.value.split("_"),s=o.target.dataset.fieldId,d=document.querySelector("#field_"+s+"_inner_container .frm_combo_inputs_container"),c=(a=l.length,"frm"+parseInt(12/a));i.forEach((function(e){var i,o=d.querySelector('[data-sub-field-name="'+e+'"]');o&&(o.classList.add("frm_hidden"),(i=o.classList).remove.apply(i,t(n)),r(s,e,o))})),l.forEach((function(t){var r=e(s,t);r&&(r.classList.remove("frm_hidden"),r.classList.add(c),d.append(r))})),i.forEach((function(e){var t=document.querySelector(".frm_sub_field_options-"+e+'[data-field-id="'+s+'"]');t&&(t.classList.add("frm_hidden"),r(s,e+"_options",t))})),l.forEach((function(t){var r=e(s,t+"_options");r&&r.classList.remove("frm_hidden")}))}(o)}),!1)}function Po(e,t){var r,n,i,o=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach((function(e,t){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(i=n.getAttributeNS("http://www.w3.org/1999/xlink","href")||n.getAttribute("href"))&&(o=!0),"#frm_save_icon"===i&&(a=!0))})),o||r.prepend(b.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(b.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function zo(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\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(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var i=c({className:"frm-wait frm_spinner"});i.style.visibility="visible",i.style.float="none",i.style.width="unset",n.parentElement.insertBefore(i,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:t.serialize()+"&action=frm_forms_preview"}).done((function(e){if(-1!==jQuery(e).find(".frm_message").text().trim().indexOf("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(c(B("Thank you for signing up!","formidable")))}else ho("invalid")}))}}else ho("invalid");else ho("empty")}function Ro(e){if(D||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||e.target.parentElement&&e.target.parentElement.classList.contains("frm-show-box"))){var t=document.getElementById("frm_adv_info");t&&(t.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===t.style.display||$i(t))}}return{init:function(){var e,r,n,i,o,a,l;!function(){jQuery(document).on("click","#frm-add-my-email-address",(function(e){e.preventDefault(),zo()}));var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",(function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}}))}}(),r=document.querySelector(".frm-admin-footer-links"),n=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),r&&n&&(n.appendChild(r),r.classList.remove("frm_hidden")),N={},jQuery(".wp-admin").on("click",(function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")})),jQuery("#frm_bs_dropdown:not(.open) a").on("click",Lt),void 0===k&&(k=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach((function(e){_(e,St)})),frmAdminBuild.inboxBannerInit(),j.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=d({className:"frm_warning_style",text:B("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),i=function(){n.reduce((function(e,t){return t.checked?e+1:e}),0)>=10?(t.classList.remove("frm_hidden"),n.forEach((function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)}))):t.classList.add("frm_hidden")};i(),n.forEach((function(e){e.addEventListener("change",(function(e){e.target.checked?i():(t.classList.add("frm_hidden"),n.forEach((function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1})))}))}))}}}(),bo(),jQuery("[data-frmprint]").on("click",(function(){return window.print(),!1}))),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",wi),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach((function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)}))}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",(function(t){return e(t.target)}))}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),o=document.getElementById("frm_confirm_modal"),a=!1,l=!1,jQuery(o).on("click","[data-deletefield]",wr),jQuery(o).on("click","[data-removeid]",G),jQuery(o).on("click","[data-trashtemplate]",Eo),i.on("click",".frm_remove_tag, .frm_remove_form_action",G),i.on("click","a[data-frmverify]",M),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",z),i.on("change","input[data-frmhide], input[data-frmshow]",z),i.on("click",".widget-top,a.widget-action",$),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",(function(){jQuery(this).off("mouseenter.frm"),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(this).tooltip("show")})),jQuery(".frm_bstooltip, .frm_help").tooltip(),jQuery(document).on("click","#doaction, #doaction2",(function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-"+t),n=document.getElementById("confirm-bulk-delete-"+t);if(null!==r&&null!==n){if(a=this,!l&&"bulk_delete"===r.value)return e.preventDefault(),F(n),!1}else a=!1})),jQuery(document).on("click","#frm-confirmed-click",(function(e){if(!1!==a&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),l=!0,a.click(),!1):void 0})),function(){var e=No("#frm_upgrade_modal");function t(t){var r,n,i;if((r=t.target).classList){var o=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var a=r.options[r.selectedIndex];a&&a.dataset.upgrade&&(r=a)}if(!r.dataset.upgrade){var l=r.closest("[data-upgrade]");if(!l){if(!(l=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=l}if(o)wp.hooks.doAction("frm_show_expired_modal",r);else{var s=r.dataset.upgrade;if(s&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var d=e.get(0),c=d.querySelector(".frm_lock_icon");c&&(c.style.display="block",c.classList.remove("frm_lock_open_icon"),c.querySelector("use").setAttribute("href","#frm_lock_icon"));var f="frm_upgrade_modal_image",u=document.getElementById(f);u&&u.remove(),r.dataset.image&&(c&&(c.style.display="none"),c.parentNode.insertBefore(m({id:f,src:frmGlobal.url+"/images/"+r.dataset.image}),c));var _=d.querySelector(".license-level");_&&(_.textContent=Vn(r)),Jn(r,"modal",s),d.querySelector(".frm_are_not_installed").style.display=r.dataset.image?"none":"inline-block",d.querySelector(".frm_feature_label").textContent=s,d.querySelector("h2").style.display="block",e.dialog("open");var p=d.querySelector(".button-primary:not(.frm-oneclick-button)");n=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1"+r.getAttribute("data-medium")),null===(i=r.getAttribute("data-content"))&&(i=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1"+i),p.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}(),frmDom.util.documentOn("click","[data-modal-title]",Wn);var s=jQuery(document.getElementById("frm_shortcodediv"));s.length>0&&(jQuery("a.edit-frm_shortcode").on("click",(function(){return s.is(":hidden")&&(s.slideDown("fast"),this.style.display="none"),!1})),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",(function(){return s.slideUp("fast"),s.siblings("a.edit-frm_shortcode").show(),!1}))),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",(function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Un(this),V(this),!1})),V(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",(function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Fn(document.getElementById("posts-filter")),!1})),jQuery(".frm_select_box").on("click focus",(function(){this.select()})),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",ko),jQuery(document).on("focusin click",".frm-auto-search",So);var c=jQuery(".frm-auto-search");""!==c.val()&&c.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",co),jQuery(document).on("click",".frm-activate-addon",so),jQuery(document).on("click",".frm-solution-multiple",lo),jQuery("button, input[type=submit]").on("click",Oo),document.addEventListener("click",(function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout((function(){return n.click()}),0)}}}})),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",(function(e,t){var r,n,i=t.element;if("form"!==t.type)return e;var o=i.closest("tr");if(o)r=parseInt(o.querySelector(".column-id").textContent),n=o.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]})),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach((function(e,r){e.addEventListener("click",(function(){var e,r,n;r=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(n=document.querySelectorAll("[id^=frm_delete_field_".concat(r,"-]"))).length<2||t(n).slice(1).forEach((function(e,t){e.classList.contains("frm_other_option")||Po(r,e)}))}))}));var f=document.getElementById("frm_small_screen_proceed_button");f&&_(f,(function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),g("small_screen_proceed",new FormData)}));var u=document.getElementById("frm_sale_banner"),p=null==u?void 0:u.querySelector(".dismiss");u&&(_(u,(function(e){e.target.closest(".dismiss")||(window.location.href=u.getAttribute("data-url"))})),p&&_(p,(function(){u.remove();var e=new FormData;g("sale_banner_dismiss",e)})))},buildInit:function(){var e,t,r;jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Ro),y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(oe,10),h=document.getElementById("post-body-content"),v=jQuery(h),jQuery(".frm_field_loading").length&&Le(jQuery(".frm_field_loading").first().attr("id")),U("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade)").forEach(X),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",Mn),jQuery(".frm_submit_no_ajax").on("click",Pn),Rn(),jQuery("a.edit-form-status").on("click",kn),jQuery(".cancel-form-status").on("click",Ln),jQuery(".save-form-status").on("click",(function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1})),jQuery(".frm_form_builder form").first().on("submit",(function(){jQuery(".inplace_field").trigger("blur")})),ao(),Tr(),e=jQuery(w),t=document.getElementById("frm_form_editor_container"),e.on("click",".frm_add_logic_row",Er),e.on("click",".frm_add_watch_lookup_row",Lr),e.on("change",".frm_get_values_form",qr),e.on("change",".frm_logic_field_opts",bn),e.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',Sn),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Ae),j.on("click",".frm_clone_field",Ce),e.on("blur",'input[id^="frm_calc"]',Ye),e.on("change","input.frm_format_opt, input.frm_max_length_opt",lt),e.on("change click","[data-changeme]",ot),e.on("click","input.frm_req_field",st),e.on("click",".frm_mark_unique",ct),e.on("change",".frm_repeat_format",Ur),e.on("change",".frm_repeat_limit",Jr),e.on("change",".frm_js_checkbox_limit",Kr),e.on("input",'input[name^="field_options[add_label_"]',(function(){Yr(this,"add")})),e.on("input",'input[name^="field_options[remove_label_"]',(function(){Yr(this,"remove")})),e.on("change",'select[name^="field_options[data_type_"]',Nr),jQuery(t).on("click",".frm-collapse-page",Or),jQuery(t).on("click",".frm-collapse-section",Fr),e.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Hr),e.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",(function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Hr.call(this,e))})),jQuery(t).on("show.bs.dropdown hide.bs.dropdown",ze),e.on("click",".frm_toggle_sep_values",yt),e.on("click",".frm_toggle_image_options",ht),e.on("click",".frm_remove_image_option",Et),e.on("click",".frm_choose_image_box",xt),e.on("change",".frm_hide_image_text",Qt),e.on("change",".frm_field_options_image_size",jt),e.on("click",".frm_multiselect_opt",kt),j.on("mousedown","input, textarea, select",At),j.on("click","input[type=radio], input[type=checkbox]",At),j.on("click",".frm_delete_field",Nt),j.on("click",".frm_select_field",Tt),jQuery(document).on("click",".frm_delete_field_group",Ot),jQuery(document).on("click",".frm_clone_field_group",Dt),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Mt),jQuery(document).on("click",".frm-row-layout-option",Yt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",Xt),jQuery(document).on("click",".frm-custom-field-group-layout",er),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",rr),jQuery(document).on("click",".frm-break-field-group",lr),j.on("click","#frm_field_group_popup .frm_grid_container input",sr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",dr),jQuery(document).on("click",".frm-save-custom-field-group-layout",fr),j.on("click","ul.frm_sorting",ur),jQuery(document).on("click",".frm-merge-fields-into-row",vr),jQuery(document).on("click",".frm-delete-field-groups",jr),j.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',(function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Oe)})),j.on("mousemove","ul.frm_sorting",De),j.on("show.bs.dropdown",".frm-field-action-icons",He),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",Pe),e.on("click",".frm_single_option a[data-removeid]",It),e.on("mousedown",".frm_single_option input[type=radio]",Bt),e.on("focusin",".frm_single_option input[type=text]",Ct),e.on("click",".frm_add_opt",_t),e.on("change",".frm_single_option input",Zr),e.on("change",".frm_image_id",Zr),e.on("change",".frm_toggle_mult_sel",pt),j.on("click",".frm_primary_label",zr),j.on("click",".frm_description",Rr),j.on("click","li.ui-state-default:not(.frm_noallow)",$r),j.on("dblclick","li.ui-state-default",Vr),e.on("change",".frm_tax_form_select",Xr),e.on("change","select.conf_field",ft),e.on("change",".frm_get_field_selection",jn),e.on("click",".frm-show-inline-modal",Bn),e.on("keydown",".frm-show-inline-modal",(function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Bn.call(this,e))})),e.on("click",".frm-inline-modal .dismiss",Cn),jQuery(document).on("change","[data-frmchange]",Nn),document.addEventListener("click",qn),e.on("change",".frm_include_extras_field",et),e.on("change",'select[name^="field_options[form_select_"]',Do),jQuery(document).on("submit","#frm_js_build_form",Mi),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Di),nt(),jQuery(document).on("change",".frmjs_prod_data_type_opt",Mo),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Ar),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),frmDom.util.documentOn("click",".frm-show-field-settings",$r),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Wr),e.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',(function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var i=r.slice(n+1).find((function(e){return null!==e.offsetParent}));if(i){i.focus();var o=i.value.length;i.setSelectionRange(o,o)}}}(e.currentTarget)})),!1!==(r=No("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",mt),jQuery(w).on("click","a.frm-bulk-edit-link",(function(e){e.preventDefault();var t,n,i,o,a,l="",s=jQuery(this).closest("[data-fid]").data("fid"),d=pn(s),c=Fo(s);if(o=document.getElementById("frm_field_"+s+"_opts")){for(a=o.getElementsByTagName("li"),document.getElementById("bulk-field-id").value=s,t=0;t=a.length-1&&(document.getElementById("frm_bulk_options").value=l);return r.dialog("open"),!1}})),jQuery("#frm-update-bulk-opts").on("click",(function(){var e=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(e,document.getElementById("frm_bulk_options").value,r),Di())}))),In(),document.addEventListener("frm_added_field",In),Be(),Ho(),xn(),frmDom.util.documentOn("change",".frm_show_password_setting_input",(function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_"+t);r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)})),document.addEventListener("scroll",Ni,!0),document.addEventListener("change",Ci),document.querySelector(".frm_form_builder").addEventListener("mousedown",(function(e){e.shiftKey&&e.preventDefault()})),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",(function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Pr)}),9999)},settingsInit:function(){var e,t,r,n,i=jQuery(document.getElementById("frm_notification_settings"));i.on("click",".frm_email_buttons",ii),i.on("click",".frm_remove_field",oi),i.on("change",".frm_to_row, .frm_from_row",ai),i.on("change",".frm_tax_selector",bi),i.on("change","select.frm_single_post_field",ui),i.on("change","select.frm_toggle_post_content",mi),i.on("change","select.frm_dyncontent_opt",_i),i.on("change",".frm_post_type",pi),i.on("click",".frm_add_postmeta_row",hi),i.on("click",".frm_add_posttax_row",yi),i.on("click",".frm_toggle_cf_opts",ji),i.on("click",".frm_duplicate_form_action",Xn),jQuery(".frm_actions_list").on("click",".frm_active_action",ei),jQuery("#frm-show-groups, #frm-hide-groups").on("click",ti),ao(),jQuery("ul.frm_actions_list li").each((function(){li(jQuery(this).children("a").data("actiontype"));var e=jQuery(this).find("i");"none"!==e.css("background-image")&&e.addClass("frm-inverse")})),jQuery(".frm_submit_settings_btn").on("click",Qi),Rn(),(e=jQuery(".frm_form_settings")).on("click",".frm_add_form_logic",fi),e.on("click",".frm_already_used",ci),document.addEventListener("click",(function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?xt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))})),e.on("mouseup","*:not(.frm-show-box)",Ro),jQuery(document.getElementById("no_save")).on("change",(function(){this.checked&&!0!==confirm(a.no_save_warning)&&jQuery(this).attr("checked",!1)})),jQuery('select[name="options[edit_action]"]').on("change",Yn),t=document.getElementById("logged_in"),jQuery(t).on("change",(function(){this.checked?qo(".hide_logged_in"):Co(".hide_logged_in")})),r=jQuery(document.getElementById("frm_cookie_expiration")),jQuery(document.getElementById("frm_single_entry_type")).on("change",(function(){"cookie"===this.value?r.fadeIn("slow"):r.fadeOut("slow")}));var o=document.getElementById("single_entry");jQuery(o).on("change",(function(){this.checked?qo(".hide_single_entry"):Co(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?r.fadeIn("slow"):r.fadeOut("slow")})),jQuery(".hide_save_draft").hide();var l=jQuery(document.getElementById("save_draft"));l.on("change",(function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")})),Hn(l),n=document.getElementById("editable"),jQuery(n).on("change",(function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Hn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))})),jQuery(document).on("change","#protect_files",(function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")})),jQuery(document).on("frm-multiselect-changed","#protect_files_role",Sn),jQuery(document).on("submit",".frm_form_settings",Fi),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Di),bo(),jQuery(document).on("frm-action-loaded",Vi),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',(function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach((function(e){e.classList.add("frm_hidden")})),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-"+e.target.value+"]").forEach((function(e){e.classList.remove("frm_hidden")})),t.setAttribute("data-on-submit-type",e.target.value)}}))},panelInit:function(){var e,t,r,n;jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",xi),jQuery(document).on("change",".frm_insert_val",(function(){Ei(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")})),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Si),jQuery(document).on("keyup change",".frm-build-logic",Ai),Kn(),jQuery(document).on("frmElementAdded",(function(e,t){Kn(t)})),jQuery(document).on("mousedown",".frm-show-box",Bi),t=document.getElementById("form_settings_page"),r=document.body.classList.contains("post-type-frm_display"),n=document.getElementById("frm_insert_fields_tab"),(null!==t||r||D)&&jQuery(document).on("focusin","form input, form textarea",(function(e){var i,o,a,l;if(e.stopPropagation(),Ii(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(e.target).closest("#frm_adv_info").length)return;if(null!==t||D)i=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(i.show(),i.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0!==(l=this.id)&&-1===l.indexOf("-search-input")&&(jQuery("#frm-adv-info-tab").attr("data-fills",l.trim()),this.classList.contains("field_custom_html")&&(l="field_custom_html"),a=["after_html","before_html","submit_html","field_custom_html"],jQuery.inArray(l,a)>=0&&(jQuery(".frm_code_list li:not(.show_"+l+")").addClass("frm_hidden"),jQuery(".frm_code_list li.show_"+l).removeClass("frm_hidden")))):((o=jQuery(".frm-category-tabs li"))[0]&&(o[0].style.display=""),n.click(),i.hide(),i.siblings().show());else if(r){var s=new CustomEvent("frm_legacy_views_handle_field_focus");s.frmData={idAttrValue:this.id},document.dispatchEvent(s)}}})),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",(function(e){e.preventDefault()})),(e=jQuery("#frm_adv_info")).on("click",".subsubsub a.frmids",(function(e){Wi("frmids",e)})),e.on("click",".subsubsub a.frmkeys",(function(e){Wi("frmkeys",e)}))},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",(function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),i=t.cloneNode(!0),o=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault(),data={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce};var a="frm_inbox_slide_in"===t.id;a&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",(function(){return t.remove()}),{once:!0})),Io(data,(function(){if(!a)return"#"!==n?(window.location=n,!0):void Bo(t,(function(){var e;null!==o&&(i.classList.remove("frm-fade"),null===(e=i.querySelector(".frm-inbox-message-heading"))||void 0===e||e.removeChild(i.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss")),o.append(i)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),yo()),t.parentNode.removeChild(t)}))}))}})),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&yo()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",wo)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",xt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){var e;jQuery(document).on("click","[data-frmuninstall]",Ui),ao(),null!==(e=document.getElementById("licenses_settings"))&&jQuery(e).on("click",".edd_frm_save_license",Ji),jQuery(document).on("click","#frm-new-template button",jo),jQuery("#frm-dismissable-cta .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()}));var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",xo),document.querySelector(".frm_captchas").addEventListener("change",(function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)})),frmDom.util.documentOn("submit",".frm_settings_form",(function(){return E=0}));var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",(function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)}));var n=document.getElementById("payments_settings"),i=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');i&&i.forEach((function(e){e.addEventListener("change",(function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),i.forEach((function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}}))}}))}))},exportInit:function(){jQuery(".frm_form_importer").on("submit",Ki),jQuery(document.getElementById("frm_export_xml")).on("submit",Xi),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",Zi),jQuery('input[name="frm_import_file"]').on("change",eo),document.querySelector('select[name="format"]').addEventListener("change",ro),jQuery('input[name="frm_export_forms[]"]').on("click",oo),ao(),jQuery(".frm-feature-banner .dismiss").on("click",(function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()})),io(to()),document.querySelector("#frm-export-select-all").addEventListener("change",(function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach((function(t){return t.checked=e.target.checked}))}))},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",(function(r){r.target===t&&Io({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},(function(){jQuery(e).fadeOut(400,(function(){e.remove()}))}))}))}},updateOpts:function(e,t,r){var n=pn(e),i=Fo(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:i,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_"+e+"_opts").innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),rn(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_"+e+"_"+t+" .frm_remove_tag").trigger("click")},downloadXML:function(e,t,r){var n=ajaxurl+"?action=frm_"+e+"_xml&ids="+t;null!==r&&(n=n+"&is_template="+r),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(r){var n=k,i=0;"summary"===e&&(i=j.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(pe(e,0,n,i),{field_options:t}),success:function(t){r(t),setTimeout((function(){Qn(),Ve(t,!0);var r=he(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})}),10)},error:je})}))},confirmLinkClick:F,handleInsertFieldByDraggingResponse:ye,handleAddFieldClickResponse:Ie,syncLayoutClasses:le,moveFieldSettings:ni}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready((function(){var e;frmAdminBuild.init(),frmDom.bootstrap.setupBootstrapDropdowns((function(e){var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("
                                            ","")).replaceAll("
                                          • ",'
                                          • ",""),t.outerHTML=r)})),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-toggle","dropdown")})),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'+t+'"]').prop("checked",!!e)},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_"+r).children(".frm_checkbox").children("label").children('input[name^="'+t+'"]').prop("checked",!!e)},window.frmGetFieldValues=function(e,t,r,n,i,o){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field="+t+"&field_id="+e+"&name="+i+"&t="+n+"&form_action="+jQuery('input[name="frm_action"]').val()+"&nonce="+frmGlobal.nonce,success:function(e){document.getElementById("frm_show_selected_values_"+t+"_"+r).innerHTML=e,"function"==typeof o&&o()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce="+frmGlobal.nonce+"&frm_skip_cookie=1"+t,success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,i=n/r*100;jQuery(".frm_admin_progress_bar").css("width",i+"%").attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout((function(){location.href="?page=formidable-entries&frm_action=list&form="+e+"&import-message=1"}),2e3))}})}})(); \ No newline at end of file diff --git a/js/formidable_blocks.js b/js/formidable_blocks.js index f6a7dd57bb..954846e136 100644 --- a/js/formidable_blocks.js +++ b/js/formidable_blocks.js @@ -1,2718 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./js/src/api/class-addon-api.js": -/*!***************************************!*\ - !*** ./js/src/api/class-addon-api.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAddonAPI: () => (/* binding */ frmAddonAPI) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAddonAPI = /*#__PURE__*/function () { - function frmAddonAPI() { - _classCallCheck(this, frmAddonAPI); - } - return _createClass(frmAddonAPI, null, [{ - key: "toggleAddonState", - value: - /** - * A function designed to toggle different addon states. - * - * @param {'frm_install_addon'|'frm_activate_addon'|'frm_multiple_addons'} action The addon state action type. - * @param {string} addon The addon path. Ex: formidable-views/formidable-views.php - * - * @return {Promise} The response from the server. - */ - function toggleAddonState(action, addon) { - return fetch(ajaxurl, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - action: action, - nonce: frmGlobal.nonce, - plugin: addon - }) - }).then(function (response) { - return response.json(); - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/api/index.js": -/*!*****************************!*\ - !*** ./js/src/api/index.js ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAddonAPI: () => (/* reexport safe */ _class_addon_api__WEBPACK_IMPORTED_MODULE_0__.frmAddonAPI) -/* harmony export */ }); -/* harmony import */ var _class_addon_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./class-addon-api */ "./js/src/api/class-addon-api.js"); - - -/***/ }), - -/***/ "./js/src/common/components/icon.js": -/*!******************************************!*\ - !*** ./js/src/common/components/icon.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ FormidableIcon) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Formidable Forms icon - */ -var Component = wp.element.Component; -var Dashicon = wp.components.Dashicon; -var FormidableIcon = /*#__PURE__*/function (_Component) { - function FormidableIcon() { - _classCallCheck(this, FormidableIcon); - return _callSuper(this, FormidableIcon, arguments); - } - _inherits(FormidableIcon, _Component); - return _createClass(FormidableIcon, [{ - key: "loadCustomSvgIcon", - value: function loadCustomSvgIcon() { - var icon = formidable_form_selector.icon; - if (icon.match(/frm_white_label_icon/)) { - return wp.element.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 20 20", - width: "120", - height: "120" - }, wp.element.createElement("path", { - d: "M18.1 1.3H2C.9 1.3 0 2 0 3V17c0 1 .8 1.9 1.9 1.9H18c1 0 1.9-.9 1.9-2V3.2c0-1-.8-1.9-1.9-1.9zM18 16.9H2a.2.2 0 0 1-.2-.3V3.4c0-.2 0-.3.2-.3H18c.1 0 .2.1.2.3v13.2c0 .2 0 .3-.2.3zm-1.6-3.6v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm0-3.8v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.4v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.4zm0-3.7v1c0 .2-.3.4-.5.4H8a.5.5 0 0 1-.5-.5v-1c0-.2.2-.4.5-.4h7.8c.2 0 .4.2.4.5zm-9.9.5a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.7a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0zm0 3.8a1.4 1.4 0 1 1-2.8 0 1.4 1.4 0 0 1 2.8 0z" - })); - } - return false; - } - }, { - key: "render", - value: function render() { - if (false !== this.loadCustomSvgIcon()) { - return this.loadCustomSvgIcon(); - } - if (formidable_form_selector.icon !== 'svg') { - return wp.element.createElement(Dashicon, { - icon: formidable_form_selector.icon - }); - } - return wp.element.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 599.68 601.37", - width: "120", - height: "120" - }, wp.element.createElement("path", { - className: "cls-1 orange", - d: "M289.6 384h140v76h-140z" - }), wp.element.createElement("path", { - className: "cls-1", - d: "M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z" - }), wp.element.createElement("path", { - className: "cls-1", - d: "M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z" - })); - } - }]); -}(Component); - - -/***/ }), - -/***/ "./js/src/common/components/itemselect.js": -/*!************************************************!*\ - !*** ./js/src/common/components/itemselect.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ItemSelect) -/* harmony export */ }); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -var _wp$i18n = wp.i18n, - __ = _wp$i18n.__, - sprintf = _wp$i18n.sprintf; - -var Component = wp.element.Component; -var SelectControl = wp.components.SelectControl; - -/** - * Displays a Select control with the specified items as options - * - */ -var ItemSelect = /*#__PURE__*/function (_Component) { - function ItemSelect() { - _classCallCheck(this, ItemSelect); - return _callSuper(this, ItemSelect, arguments); - } - _inherits(ItemSelect, _Component); - return _createClass(ItemSelect, [{ - key: "createOptions", - value: function createOptions(items, itemName) { - var options = items.map(function (item) { - return { - label: item.label, - value: item.value - }; - }); - return [{ - // translators: %s is the name of the item - label: sprintf(__('Select a %s', 'formidable'), itemName), - value: '' - }].concat(_toConsumableArray(options)); - } - }, { - key: "render", - value: function render() { - var _this$props = this.props, - selected = _this$props.selected, - items = _this$props.items, - onChange = _this$props.onChange, - itemName = _this$props.itemName, - itemNamePlural = _this$props.itemNamePlural, - label = _this$props.label, - help = _this$props.help; - if (!items || items.length === 0) { - return wp.element.createElement("p", { - className: "frm-block-select-no-items" - }, sprintf( - // translators: %s is the name of the item - __('Currently, there are no %s', 'formidable'), itemNamePlural)); - } - return wp.element.createElement(SelectControl, { - value: selected, - options: this.createOptions(items, itemName), - label: label, - help: help, - onChange: onChange - }); - } - }]); -}(Component); - -ItemSelect.defaultProps = { - itemName: 'item', - itemNamePlural: 'items' -}; -ItemSelect.propTypes = { - selected: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number)]), - //selected item - items: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().array), - //list of possible items - onChange: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func), - itemName: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), - //name for item in select label - itemNamePlural: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), - //plural of items, used in some labels - label: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), - help: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string) -}; - -/***/ }), - -/***/ "./js/src/common/utilities/values.js": -/*!*******************************************!*\ - !*** ./js/src/common/utilities/values.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ cssHideAdvancedSettings: () => (/* binding */ cssHideAdvancedSettings), -/* harmony export */ getSubDir: () => (/* binding */ getSubDir), -/* harmony export */ setTextAttribute: () => (/* binding */ setTextAttribute), -/* harmony export */ updateAttribute: () => (/* binding */ updateAttribute) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Updates an attribute with the specified new value - * - * @param {string} attributeName Name of block attribute to be updated - * @param {*} attributeValue Value of block attribute to be updated - * @param {Function} setAttributes Function to set the block attribute to be updated - */ -function updateAttribute(attributeName, attributeValue, setAttributes) { - setAttributes(_defineProperty({}, attributeName, attributeValue)); -} - -/** - * Sets text attribute for a shortcode from a key value pair - * - * @param {*} value Value of text attribute to be set - * @param {string} attributeName Name of text attribute to be set - * @return {string} String of the text attribute in the format " id=10" - */ -function setTextAttribute(value, attributeName) { - if (value) { - return " ".concat(attributeName, "=\"").concat(value, "\""); - } - return ''; -} - -/** - * Gets subdirectory of current site, if the site isn't on the top level of the domain - * - * @return {string} The subdirectory of the current site - */ -function getSubDir() { - var page = window.location.pathname; - var index = page.indexOf('wp-admin'); - var subDir = '/'; - if (index > -1) { - subDir = page.substr(0, index); - } - return subDir; -} -var cssHideAdvancedSettings = "\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"; - -/***/ }), - -/***/ "./js/src/form/block.js": -/*!******************************!*\ - !*** ./js/src/form/block.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); -/* harmony import */ var _inspector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inspector */ "./js/src/form/inspector.js"); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); -/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); -/** - * BLOCK: formidable/simple-form - * - * Block to display selected Formidable form with limited setting options - */ - - - - - -var Fragment = wp.element.Fragment; -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var _wp = wp, - ServerSideRender = _wp.serverSideRender; -registerBlockType('formidable/simple-form', { - title: formidable_form_selector.name, - description: __('Display a Form', 'formidable'), - icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], - category: 'widgets', - keywords: [__('contact forms', 'formidable'), 'formidable'], - edit: function edit(_ref) { - var setAttributes = _ref.setAttributes, - attributes = _ref.attributes, - isSelected = _ref.isSelected; - var formId = attributes.formId; - var forms = formidable_form_selector.forms; - if (forms.length === 0) { - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, __('This site does not have any forms.', 'formidable')); - } - if (!formId) { - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_2__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, formidable_form_selector.name), wp.element.createElement("div", { - className: "frm-block-selector-screen" - }, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_3__["default"], { - formId: formId, - setAttributes: setAttributes, - forms: forms - })))); - } - return wp.element.createElement(Fragment, null, wp.element.createElement(_inspector__WEBPACK_IMPORTED_MODULE_1__["default"], { - attributes: attributes, - setAttributes: setAttributes, - forms: forms - }), isSelected && wp.element.createElement("style", null, _common_utilities_values__WEBPACK_IMPORTED_MODULE_4__.cssHideAdvancedSettings), wp.element.createElement(ServerSideRender, { - block: "formidable/simple-form", - attributes: attributes - })); - }, - save: function save(props) { - var attributes = props.attributes; - var formId = attributes.formId; - return formId === undefined ? '' : wp.element.createElement(Fragment, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_0__["default"], attributes)); - } -}); - -/***/ }), - -/***/ "./js/src/form/calculator.js": -/*!***********************************!*\ - !*** ./js/src/form/calculator.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/** - * BLOCK: formidable/calculator - * - * Block to display selected Formidable calculator form - */ - -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var FrmCalcIcon = wp.element.createElement('svg', { - width: 20, - height: 20 -}, wp.element.createElement('path', { - d: 'M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z' -})); -registerBlockType('formidable/calculator', { - title: __('Calculator Form', 'formidable'), - description: __('Display a Calculator Form', 'formidable'), - icon: FrmCalcIcon, - category: 'widgets', - keywords: ['calculation', 'formidable'], - edit: function edit(_ref) { - var setAttributes = _ref.setAttributes, - attributes = _ref.attributes; - var formId = attributes.formId; - var forms = formidable_form_selector.forms; - if (forms.length === 0) { - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, __('This site does not have any forms.', 'formidable')); - } - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, __('Calculator Form', 'formidable')), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip" - }, wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, __('This site does not have any calculator forms.', 'formidable'), wp.element.createElement("br", null), wp.element.createElement("a", { - href: formidable_form_selector.link, - target: "_blank" - }, __('Upgrade Formidable Forms.', 'formidable'))), wp.element.createElement("img", { - src: formidable_form_selector.url + '/images/conversion-calc.jpg', - alt: __('Calculator Form', 'formidable') - })))); - } -}); - -/***/ }), - -/***/ "./js/src/form/formselect.js": -/*!***********************************!*\ - !*** ./js/src/form/formselect.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ FormSelect) -/* harmony export */ }); -/* harmony import */ var _common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/itemselect */ "./js/src/common/components/itemselect.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Form selector - */ - - -var __ = wp.i18n.__; -var Component = wp.element.Component; -var FormSelect = /*#__PURE__*/function (_Component) { - function FormSelect() { - _classCallCheck(this, FormSelect); - return _callSuper(this, FormSelect, arguments); - } - _inherits(FormSelect, _Component); - return _createClass(FormSelect, [{ - key: "render", - value: function render() { - var _this$props = this.props, - formId = _this$props.formId, - setAttributes = _this$props.setAttributes, - forms = _this$props.forms; - return wp.element.createElement(_common_components_itemselect__WEBPACK_IMPORTED_MODULE_0__["default"], { - selected: formId, - itemName: __('form', 'formidable'), - itemNamePlural: __('forms', 'formidable'), - items: forms, - onChange: function onChange(newFormId) { - setAttributes({ - formId: newFormId - }); - } - }); - } - }]); -}(Component); - -FormSelect.propTypes = { - formId: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string), - //current formId - setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func).isRequired //setAttributes of block -}; - -/***/ }), - -/***/ "./js/src/form/formshortcode.js": -/*!**************************************!*\ - !*** ./js/src/form/formshortcode.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ FormShortcode) -/* harmony export */ }); -/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Form shortcode of current form - */ -var Component = wp.element.Component; - -function createParamsText(atts) { - var formId = atts.formId, - title = atts.title, - description = atts.description, - minimize = atts.minimize; - var paramsText = ''; - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(formId, 'id'); - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(title, 'title'); - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(description, 'description'); - paramsText += (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_0__.setTextAttribute)(minimize, 'minimize'); - return paramsText; -} -var FormShortcode = /*#__PURE__*/function (_Component) { - function FormShortcode() { - _classCallCheck(this, FormShortcode); - return _callSuper(this, FormShortcode, arguments); - } - _inherits(FormShortcode, _Component); - return _createClass(FormShortcode, [{ - key: "render", - value: function render() { - return wp.element.createElement("div", null, "[formidable", createParamsText(this.props), "]"); - } - }]); -}(Component); - - -/***/ }), - -/***/ "./js/src/form/graph.js": -/*!******************************!*\ - !*** ./js/src/form/graph.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* global formidable_form_selector */ - - -(function () { - 'use strict'; - - if (formidable_form_selector.chartsAddon.installed) { - return; - } - var __ = wp.i18n.__; - var registerBlockType = wp.blocks.registerBlockType; - var Notice = wp.components.Notice; - var UpgradeNotice = function UpgradeNotice(_ref) { - var text = _ref.text, - buttonText = _ref.buttonText, - link = _ref.link; - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, text, wp.element.createElement("br", null), wp.element.createElement("a", { - href: link, - target: "_blank" - }, buttonText)); - }; - var blockName = __('Formidable Chart', 'formidable'); - registerBlockType('frm-charts/graph', { - title: blockName, - description: __('Display a chart or graph', 'formidable'), - icon: wp.element.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - fill: "none", - viewBox: "0 0 25 23" - }, wp.element.createElement("path", { - stroke: "currentColor", - strokeLinecap: "round", - strokeWidth: "2.5", - d: "M23 2v19m-7-7.5V21M9 10.8V21m-7-2.9V21" - })), - category: 'design', - edit: function edit() { - var imageWrapperStyles = { - padding: '38px', - margin: '0 auto', - maxWidth: '600px' - }; - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, blockName), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip", - style: { - alignSelf: 'stretch' - } - }, formidable_form_selector.chartsAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { - text: __('This site does not have Formidable Charts active.', 'formidable'), - buttonText: __('Install Formidable Charts', 'formidable'), - link: formidable_form_selector.chartsAddon.link - }) : wp.element.createElement(UpgradeNotice, { - text: __('This site does not have Formidable Charts installed.', 'formidable'), - buttonText: __('Upgrade Formidable Forms', 'formidable'), - link: formidable_form_selector.link - }), wp.element.createElement("div", { - style: imageWrapperStyles - }, wp.element.createElement("img", { - src: formidable_form_selector.url + '/images/demo-graph.svg', - alt: blockName - }))))); - } - }); -})(); - -/***/ }), - -/***/ "./js/src/form/inspector.js": -/*!**********************************!*\ - !*** ./js/src/form/inspector.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Inspector) -/* harmony export */ }); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); -/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _formselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formselect */ "./js/src/form/formselect.js"); -/* harmony import */ var _formshortcode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formshortcode */ "./js/src/form/formshortcode.js"); -/* harmony import */ var _common_utilities_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utilities/values */ "./js/src/common/utilities/values.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -/** - * Inspector controls for Formidable Simple Form block - */ - -var __ = wp.i18n.__; -var Component = wp.element.Component; -var InspectorControls = wp.blockEditor.InspectorControls; -var _wp$components = wp.components, - PanelBody = _wp$components.PanelBody, - PanelRow = _wp$components.PanelRow, - ToggleControl = _wp$components.ToggleControl, - ExternalLink = _wp$components.ExternalLink; - - - - -var Inspector = /*#__PURE__*/function (_Component) { - function Inspector() { - _classCallCheck(this, Inspector); - return _callSuper(this, Inspector, arguments); - } - _inherits(Inspector, _Component); - return _createClass(Inspector, [{ - key: "render", - value: function render() { - var _this$props = this.props, - setAttributes = _this$props.setAttributes, - attributes = _this$props.attributes, - forms = _this$props.forms; - var formId = attributes.formId, - title = attributes.title, - description = attributes.description, - minimize = attributes.minimize; - return wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, { - title: __('Select Form', 'formidable'), - initialOpen: true - }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formselect__WEBPACK_IMPORTED_MODULE_0__["default"], { - formId: formId, - setAttributes: setAttributes, - forms: forms - })), formId && wp.element.createElement(PanelRow, null, wp.element.createElement(ExternalLink, { - href: (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.getSubDir)() + "wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(formId) - }, __('Go to form', 'formidable')))), wp.element.createElement(PanelBody, { - title: __('Options', 'formidable'), - initialOpen: false - }, wp.element.createElement(ToggleControl, { - label: __('Show Form Title', 'formidable'), - checked: title, - onChange: function onChange(response) { - (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('title', response ? '1' : '', setAttributes); - } - }), wp.element.createElement(ToggleControl, { - label: __('Show Form Description', 'formidable'), - checked: description, - onChange: function onChange(response) { - (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('description', response ? '1' : '', setAttributes); - } - }), wp.element.createElement(ToggleControl, { - label: __('Minimize HTML', 'formidable'), - checked: minimize, - onChange: function onChange(response) { - (0,_common_utilities_values__WEBPACK_IMPORTED_MODULE_2__.updateAttribute)('minimize', response ? '1' : '', setAttributes); - } - })), wp.element.createElement(PanelBody, { - title: __('Shortcode', 'formidable'), - initialOpen: false - }, wp.element.createElement(PanelRow, null, wp.element.createElement(_formshortcode__WEBPACK_IMPORTED_MODULE_1__["default"], this.props.attributes)))); - } - }]); -}(Component); - -Inspector.propTypes = { - attributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object), - //block attributes - setAttributes: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func) //setAttributes of block -}; - -/***/ }), - -/***/ "./js/src/form/modal.js": -/*!******************************!*\ - !*** ./js/src/form/modal.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* global formidable_form_selector */ - - -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var UpgradeNotice = function UpgradeNotice(_ref) { - var text = _ref.text, - buttonText = _ref.buttonText, - link = _ref.link; - return wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, text, wp.element.createElement("br", null), wp.element.createElement("a", { - href: link, - target: "_blank" - }, buttonText)); -}; -registerBlockType('frm-modal/modal', { - title: formidable_form_selector.name + ' ' + __('Modal', 'formidable'), - description: __('Display a modal', 'formidable'), - icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], - category: 'widgets', - keywords: ['modal', 'formidable'], - edit: function edit(_ref2) { - var setAttributes = _ref2.setAttributes, - attributes = _ref2.attributes; - var blockName = __('Bootstrap modal popup', 'formidable'); - var imageStyles = { - maxWidth: '504px', - height: 'auto', - borderRadius: '12px' - }; - var imageWrapperStyles = { - padding: '38px', - textAlign: 'center', - backgroundColor: '#f2f4f7', - marginTop: '24px' - }; - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, blockName), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip", - style: { - alignSelf: 'stretch' - } - }, formidable_form_selector.modalAddon.hasAccess ? wp.element.createElement(UpgradeNotice, { - text: __('This site does not have popup modals active.', 'formidable'), - buttonText: __('Install Formidable Modals', 'formidable'), - link: formidable_form_selector.modalAddon.link - }) : wp.element.createElement(UpgradeNotice, { - text: __('This site does not have popup modals.', 'formidable'), - buttonText: __('Upgrade Formidable Forms', 'formidable'), - link: formidable_form_selector.link - }), wp.element.createElement("div", { - style: imageWrapperStyles - }, wp.element.createElement("img", { - src: formidable_form_selector.url + '/images/modal.png', - alt: blockName, - style: imageStyles - }))))); - } -}); - -/***/ }), - -/***/ "./js/src/form/views.js": -/*!******************************!*\ - !*** ./js/src/form/views.js ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _common_components_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/components/icon */ "./js/src/common/components/icon.js"); -/* harmony import */ var _api_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api/index */ "./js/src/api/index.js"); -/* harmony import */ var _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./css/button.module.css */ "./js/src/form/css/button.module.css"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } -/* global formidable_form_selector */ - - - -var __ = wp.i18n.__; -var registerBlockType = wp.blocks.registerBlockType; -var Notice = wp.components.Notice; -var _wp$element = wp.element, - useState = _wp$element.useState, - useEffect = _wp$element.useEffect; -var blockData = formidable_form_selector; // eslint-disable-line camelcase -var upgradeLink = blockData.viewsAddon.hasAccess ? blockData.viewsAddon.link : blockData.link; -registerBlockType('formidable/simple-view', { - title: __('Formidable Views', 'formidable'), - description: __('Display a Visual View', 'formidable'), - icon: _common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], - category: 'widgets', - keywords: ['views', 'formidable'], - edit: function edit() { - var _useState = useState({ - // eslint-disable-line react-hooks/rules-of-hooks - defaultClassname: 'frm-activate-addon frm-button-primary button button-primary', - loadingClassname: _css_button_module_css__WEBPACK_IMPORTED_MODULE_2__["default"]["frm-loading"], - classnames: 'frm-activate-addon frm-button-primary button button-primary', - label: !blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess ? __('Install', 'formidable') : __('Activate', 'formidable'), - isLoading: false - }), - _useState2 = _slicedToArray(_useState, 2), - addonActivateButton = _useState2[0], - updateAddonActivateButton = _useState2[1]; - var activateViewsAddon = function activateViewsAddon() { - if (true === addonActivateButton.isLoading) { - return; - } - updateAddonActivateButton(_objectSpread(_objectSpread({}, addonActivateButton), {}, { - isLoading: true, - classnames: addonActivateButton.defaultClassname + ' ' + addonActivateButton.loadingClassname - })); - if (!blockData.viewsAddon.installed && blockData.viewsAddon.hasAccess) { - _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_install_addon', blockData.viewsAddon.url).then(function () { - window.location.reload(); - }); - return; - } - _api_index__WEBPACK_IMPORTED_MODULE_1__.frmAddonAPI.toggleAddonState('frm_activate_addon', 'formidable-views/formidable-views.php').then(function () { - window.location.reload(); - }); - }; - var blockName = __('Formidable Views', 'formidable'); - var imageStyles = { - maxWidth: '504px', - height: 'auto', - borderRadius: '12px' - }; - var imageWrapperStyles = { - padding: '38px', - textAlign: 'center', - backgroundColor: '#f2f4f7', - marginTop: '24px' - }; - return wp.element.createElement("div", { - className: "frm-block-intro-screen" - }, wp.element.createElement("div", { - className: "frm-block-intro-content" - }, wp.element.createElement(_common_components_icon__WEBPACK_IMPORTED_MODULE_0__["default"], null), wp.element.createElement("div", { - className: "frm-block-title" - }, blockName), wp.element.createElement("div", { - className: "frm-block-selector-screen frm_pro_tip", - style: { - alignSelf: 'stretch' - } - }, !blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, wp.element.createElement("div", { - style: { - maxWidth: '500px', - margin: 'auto' - } - }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("a", { - href: upgradeLink, - rel: "noreferrer", - target: "_blank" - }, __('Upgrade Formidable Forms', 'formidable'))), blockData.viewsAddon.hasAccess && wp.element.createElement(Notice, { - status: "warning", - isDismissible: false - }, wp.element.createElement("div", { - style: { - maxWidth: '500px', - margin: 'auto' - } - }, __('Effortlessly transform form data into webpages with Views, the only integrated form & application builder.', 'formidable')), wp.element.createElement("br", null), wp.element.createElement("button", { - className: addonActivateButton.classnames, - onClick: activateViewsAddon, - type: "button" - }, " ", addonActivateButton.label, " ")), wp.element.createElement("div", { - style: imageWrapperStyles - }, wp.element.createElement("img", { - src: blockData.url + '/images/blocks/views-block-placeholder.jpg', - alt: blockName, - style: imageStyles - }))))); - } -}); - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css": -/*!*********************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css ***! - \*********************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ "frm-loading": () => (/* binding */ _1), -/* harmony export */ spin: () => (/* binding */ spin) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `button.t3RQZV1ZQbHGYyQUnhIY { - cursor: progress; - opacity: 0.7; - position: relative; - text-indent: -999px; - min-width: 70px; - overflow: hidden; -} -button.t3RQZV1ZQbHGYyQUnhIY:before { - content: ''; - display: inline-block; - position: absolute; - background: transparent; - border: 1px solid #fff; - border-top-color: transparent; - border-left-color: transparent; - border-radius: 50%; - - box-sizing: border-box; - top: 50%; - left: 50%; - margin-top: -10px; - margin-left: -10px; - width: 20px; - height: 20px; - - animation: Ts7haRQUDk0YMfLiQW00 2s linear infinite; -}`, "",{"version":3,"sources":["webpack://./js/src/form/css/button.module.css"],"names":[],"mappings":"AAAA;CACC,gBAAgB;CAChB,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB,eAAe;CACf,gBAAgB;AACjB;AACA;CACC,WAAW;CACX,qBAAqB;CACrB,kBAAkB;CAClB,uBAAuB;CACvB,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,kBAAkB;;CAElB,sBAAsB;CACtB,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,kBAAkB;CAClB,WAAW;CACX,YAAY;;CAEZ,kDAAkC;AACnC","sourcesContent":["button.frm-loading {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.frm-loading:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: spin 2s linear infinite;\n}"],"sourceRoot":""}]); -// Exports -var _1 = `t3RQZV1ZQbHGYyQUnhIY`; - -var spin = `Ts7haRQUDk0YMfLiQW00`; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/runtime/api.js": -/*!*****************************************************!*\ - !*** ./node_modules/css-loader/dist/runtime/api.js ***! - \*****************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -module.exports = function (cssWithMappingToString) { - var list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map(function (item) { - var content = ""; - var needLayer = typeof item[5] !== "undefined"; - if (item[4]) { - content += "@supports (".concat(item[4], ") {"); - } - if (item[2]) { - content += "@media ".concat(item[2], " {"); - } - if (needLayer) { - content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); - } - content += cssWithMappingToString(item); - if (needLayer) { - content += "}"; - } - if (item[2]) { - content += "}"; - } - if (item[4]) { - content += "}"; - } - return content; - }).join(""); - }; - - // import a list of modules into the list - list.i = function i(modules, media, dedupe, supports, layer) { - if (typeof modules === "string") { - modules = [[null, modules, undefined]]; - } - var alreadyImportedModules = {}; - if (dedupe) { - for (var k = 0; k < this.length; k++) { - var id = this[k][0]; - if (id != null) { - alreadyImportedModules[id] = true; - } - } - } - for (var _k = 0; _k < modules.length; _k++) { - var item = [].concat(modules[_k]); - if (dedupe && alreadyImportedModules[item[0]]) { - continue; - } - if (typeof layer !== "undefined") { - if (typeof item[5] === "undefined") { - item[5] = layer; - } else { - item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); - item[5] = layer; - } - } - if (media) { - if (!item[2]) { - item[2] = media; - } else { - item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); - item[2] = media; - } - } - if (supports) { - if (!item[4]) { - item[4] = "".concat(supports); - } else { - item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); - item[4] = supports; - } - } - list.push(item); - } - }; - return list; -}; - -/***/ }), - -/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": -/*!************************************************************!*\ - !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! - \************************************************************/ -/***/ ((module) => { - -"use strict"; - - -module.exports = function (item) { - var content = item[1]; - var cssMapping = item[3]; - if (!cssMapping) { - return content; - } - if (typeof btoa === "function") { - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); - var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); - var sourceMapping = "/*# ".concat(data, " */"); - return [content].concat([sourceMapping]).join("\n"); - } - return [content].join("\n"); -}; - -/***/ }), - -/***/ "./node_modules/object-assign/index.js": -/*!*********************************************!*\ - !*** ./node_modules/object-assign/index.js ***! - \*********************************************/ -/***/ ((module) => { - -"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - - -/***/ }), - -/***/ "./node_modules/prop-types/checkPropTypes.js": -/*!***************************************************!*\ - !*** ./node_modules/prop-types/checkPropTypes.js ***! - \***************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var printWarning = function() {}; - -if (true) { - var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); - var loggedTypeFailures = {}; - var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); - - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) { /**/ } - }; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (true) { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + - 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } -} - -/** - * Resets warning cache when testing. - * - * @private - */ -checkPropTypes.resetWarningCache = function() { - if (true) { - loggedTypeFailures = {}; - } -} - -module.exports = checkPropTypes; - - -/***/ }), - -/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": -/*!************************************************************!*\ - !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! - \************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); -var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); - -var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js"); -var has = __webpack_require__(/*! ./lib/has */ "./node_modules/prop-types/lib/has.js"); -var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js"); - -var printWarning = function() {}; - -if (true) { - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; -} - -function emptyFunctionThatReturnsNull() { - return null; -} - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bigint: createPrimitiveTypeChecker('bigint'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - elementType: createElementTypeTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message, data) { - this.message = message; - this.data = data && typeof data === 'object' ? data: {}; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (true) { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - } else if ( true && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - printWarning( - 'You are manually calling a React.PropTypes validation ' + - 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), - {expectedType: expectedType} - ); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunctionThatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!ReactIs.isValidElementType(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - if (true) { - if (arguments.length > 1) { - printWarning( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - var expectedTypes = []; - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); - if (checkerResult == null) { - return null; - } - if (checkerResult.data && has(checkerResult.data, 'expectedType')) { - expectedTypes.push(checkerResult.data.expectedType); - } - } - var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function invalidValidatorError(componentName, location, propFullName, key, type) { - return new PropTypeError( - (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' - ); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (typeof checker !== 'function') { - return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (has(shapeTypes, key) && typeof checker !== 'function') { - return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); - } - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - - -/***/ }), - -/***/ "./node_modules/prop-types/index.js": -/*!******************************************!*\ - !*** ./node_modules/prop-types/index.js ***! - \******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (true) { - var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/prop-types/node_modules/react-is/index.js"); - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess); -} else {} - - -/***/ }), - -/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": -/*!*************************************************************!*\ - !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! - \*************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), - -/***/ "./node_modules/prop-types/lib/has.js": -/*!********************************************!*\ - !*** ./node_modules/prop-types/lib/has.js ***! - \********************************************/ -/***/ ((module) => { - -module.exports = Function.call.bind(Object.prototype.hasOwnProperty); - - -/***/ }), - -/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; -/** @license React v16.13.1 - * react-is.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - - - -if (true) { - (function() { -'use strict'; - -// The Symbol used to tag the ReactElement-like types. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. -var hasSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; -var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; -var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; -var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; -var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; -var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; -var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary -// (unstable) APIs that have been removed. Can we remove the symbols? - -var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; -var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; -var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; -var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; -var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; -var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; -var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; -var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; -var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; -var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; -var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; - -function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); -} - -function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - - default: - return $$typeof; - } - - } - - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; -} // AsyncMode is deprecated along with isAsyncMode - -var AsyncMode = REACT_ASYNC_MODE_TYPE; -var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; -var ContextConsumer = REACT_CONTEXT_TYPE; -var ContextProvider = REACT_PROVIDER_TYPE; -var Element = REACT_ELEMENT_TYPE; -var ForwardRef = REACT_FORWARD_REF_TYPE; -var Fragment = REACT_FRAGMENT_TYPE; -var Lazy = REACT_LAZY_TYPE; -var Memo = REACT_MEMO_TYPE; -var Portal = REACT_PORTAL_TYPE; -var Profiler = REACT_PROFILER_TYPE; -var StrictMode = REACT_STRICT_MODE_TYPE; -var Suspense = REACT_SUSPENSE_TYPE; -var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated - -function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; -} -function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; -} -function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; -} -function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; -} -function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -} -function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; -} -function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; -} -function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; -} -function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; -} -function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; -} -function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; -} -function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; -} -function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; -} - -exports.AsyncMode = AsyncMode; -exports.ConcurrentMode = ConcurrentMode; -exports.ContextConsumer = ContextConsumer; -exports.ContextProvider = ContextProvider; -exports.Element = Element; -exports.ForwardRef = ForwardRef; -exports.Fragment = Fragment; -exports.Lazy = Lazy; -exports.Memo = Memo; -exports.Portal = Portal; -exports.Profiler = Profiler; -exports.StrictMode = StrictMode; -exports.Suspense = Suspense; -exports.isAsyncMode = isAsyncMode; -exports.isConcurrentMode = isConcurrentMode; -exports.isContextConsumer = isContextConsumer; -exports.isContextProvider = isContextProvider; -exports.isElement = isElement; -exports.isForwardRef = isForwardRef; -exports.isFragment = isFragment; -exports.isLazy = isLazy; -exports.isMemo = isMemo; -exports.isPortal = isPortal; -exports.isProfiler = isProfiler; -exports.isStrictMode = isStrictMode; -exports.isSuspense = isSuspense; -exports.isValidElementType = isValidElementType; -exports.typeOf = typeOf; - })(); -} - - -/***/ }), - -/***/ "./node_modules/prop-types/node_modules/react-is/index.js": -/*!****************************************************************!*\ - !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! - \****************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -if (false) {} else { - module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js"); -} - - -/***/ }), - -/***/ "./js/src/form/css/button.module.css": -/*!*******************************************!*\ - !*** ./js/src/form/css/button.module.css ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ "frm-loading": () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["frm-loading"]), -/* harmony export */ spin: () => (/* reexport safe */ _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__.spin) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!./button.module.css */ "./node_modules/css-loader/dist/cjs.js!./js/src/form/css/button.module.css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_button_module_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": -/*!****************************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! - \****************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -var stylesInDOM = []; -function getIndexByIdentifier(identifier) { - var result = -1; - for (var i = 0; i < stylesInDOM.length; i++) { - if (stylesInDOM[i].identifier === identifier) { - result = i; - break; - } - } - return result; -} -function modulesToDom(list, options) { - var idCountMap = {}; - var identifiers = []; - for (var i = 0; i < list.length; i++) { - var item = list[i]; - var id = options.base ? item[0] + options.base : item[0]; - var count = idCountMap[id] || 0; - var identifier = "".concat(id, " ").concat(count); - idCountMap[id] = count + 1; - var indexByIdentifier = getIndexByIdentifier(identifier); - var obj = { - css: item[1], - media: item[2], - sourceMap: item[3], - supports: item[4], - layer: item[5] - }; - if (indexByIdentifier !== -1) { - stylesInDOM[indexByIdentifier].references++; - stylesInDOM[indexByIdentifier].updater(obj); - } else { - var updater = addElementStyle(obj, options); - options.byIndex = i; - stylesInDOM.splice(i, 0, { - identifier: identifier, - updater: updater, - references: 1 - }); - } - identifiers.push(identifier); - } - return identifiers; -} -function addElementStyle(obj, options) { - var api = options.domAPI(options); - api.update(obj); - var updater = function updater(newObj) { - if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { - return; - } - api.update(obj = newObj); - } else { - api.remove(); - } - }; - return updater; -} -module.exports = function (list, options) { - options = options || {}; - list = list || []; - var lastIdentifiers = modulesToDom(list, options); - return function update(newList) { - newList = newList || []; - for (var i = 0; i < lastIdentifiers.length; i++) { - var identifier = lastIdentifiers[i]; - var index = getIndexByIdentifier(identifier); - stylesInDOM[index].references--; - } - var newLastIdentifiers = modulesToDom(newList, options); - for (var _i = 0; _i < lastIdentifiers.length; _i++) { - var _identifier = lastIdentifiers[_i]; - var _index = getIndexByIdentifier(_identifier); - if (stylesInDOM[_index].references === 0) { - stylesInDOM[_index].updater(); - stylesInDOM.splice(_index, 1); - } - } - lastIdentifiers = newLastIdentifiers; - }; -}; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": -/*!********************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! - \********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -var memo = {}; - -/* istanbul ignore next */ -function getTarget(target) { - if (typeof memo[target] === "undefined") { - var styleTarget = document.querySelector(target); - - // Special case to return head of iframe instead of iframe itself - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch (e) { - // istanbul ignore next - styleTarget = null; - } - } - memo[target] = styleTarget; - } - return memo[target]; -} - -/* istanbul ignore next */ -function insertBySelector(insert, style) { - var target = getTarget(insert); - if (!target) { - throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); - } - target.appendChild(style); -} -module.exports = insertBySelector; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": -/*!**********************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! - \**********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function insertStyleElement(options) { - var element = document.createElement("style"); - options.setAttributes(element, options.attributes); - options.insert(element, options.options); - return element; -} -module.exports = insertStyleElement; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! - \**********************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -/* istanbul ignore next */ -function setAttributesWithoutAttributes(styleElement) { - var nonce = true ? __webpack_require__.nc : 0; - if (nonce) { - styleElement.setAttribute("nonce", nonce); - } -} -module.exports = setAttributesWithoutAttributes; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": -/*!***************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! - \***************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function apply(styleElement, options, obj) { - var css = ""; - if (obj.supports) { - css += "@supports (".concat(obj.supports, ") {"); - } - if (obj.media) { - css += "@media ".concat(obj.media, " {"); - } - var needLayer = typeof obj.layer !== "undefined"; - if (needLayer) { - css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); - } - css += obj.css; - if (needLayer) { - css += "}"; - } - if (obj.media) { - css += "}"; - } - if (obj.supports) { - css += "}"; - } - var sourceMap = obj.sourceMap; - if (sourceMap && typeof btoa !== "undefined") { - css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); - } - - // For old IE - /* istanbul ignore if */ - options.styleTagTransform(css, styleElement, options.options); -} -function removeStyleElement(styleElement) { - // istanbul ignore if - if (styleElement.parentNode === null) { - return false; - } - styleElement.parentNode.removeChild(styleElement); -} - -/* istanbul ignore next */ -function domAPI(options) { - if (typeof document === "undefined") { - return { - update: function update() {}, - remove: function remove() {} - }; - } - var styleElement = options.insertStyleElement(options); - return { - update: function update(obj) { - apply(styleElement, options, obj); - }, - remove: function remove() { - removeStyleElement(styleElement); - } - }; -} -module.exports = domAPI; - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": -/*!*********************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! - \*********************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function styleTagTransform(css, styleElement) { - if (styleElement.styleSheet) { - styleElement.styleSheet.cssText = css; - } else { - while (styleElement.firstChild) { - styleElement.removeChild(styleElement.firstChild); - } - styleElement.appendChild(document.createTextNode(css)); - } -} -module.exports = styleTagTransform; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/nonce */ -/******/ (() => { -/******/ __webpack_require__.nc = undefined; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!**************************!*\ - !*** ./js/src/blocks.js ***! - \**************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _form_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form/block */ "./js/src/form/block.js"); -/* harmony import */ var _form_calculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form/calculator */ "./js/src/form/calculator.js"); -/* harmony import */ var _form_modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./form/modal */ "./js/src/form/modal.js"); -/* harmony import */ var _form_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./form/graph */ "./js/src/form/graph.js"); -/* harmony import */ var _form_views__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form/views */ "./js/src/form/views.js"); -/** - * Formidable Simple Blocks - * - */ - - - - - - -})(); - -/******/ })() -; -//# sourceMappingURL=formidable_blocks.js.map \ No newline at end of file +(()=>{var e={532:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l});var n=r(601),o=r.n(n),i=r(314),a=r.n(i)()(o());a.push([e.id,"button.t3RQZV1ZQbHGYyQUnhIY {\n\tcursor: progress;\n\topacity: 0.7;\n\tposition: relative;\n\ttext-indent: -999px;\n\tmin-width: 70px;\n\toverflow: hidden;\n}\nbutton.t3RQZV1ZQbHGYyQUnhIY:before {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground: transparent;\n\tborder: 1px solid #fff;\n\tborder-top-color: transparent;\n\tborder-left-color: transparent;\n\tborder-radius: 50%;\n\n\tbox-sizing: border-box;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -10px;\n\tmargin-left: -10px;\n\twidth: 20px;\n\theight: 20px;\n\n\tanimation: Ts7haRQUDk0YMfLiQW00 2s linear infinite;\n}",""]);const l=a},314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var l=0;l0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},601:e=>{"use strict";e.exports=function(e){return e[1]}},694:(e,t,r)=>{"use strict";var n=r(925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,a){if(a!==n){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},556:(e,t,r)=>{e.exports=r(694)()},925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},72:e=>{"use strict";var t=[];function r(e){for(var r=-1,n=0;n{"use strict";var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56:(e,t,r)=>{"use strict";e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nc=void 0,(()=>{"use strict";function e(t){return e="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},e(t)}function t(t,r,n){var o,i,a;n((o={},a=r,(i=function(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}(i=t))in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,o))}function n(e,t){return e?" ".concat(t,'="').concat(e,'"'):""}function o(e){return o="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},o(e)}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r-1&&(n=e.substr(0,r)),n+"wp-admin/admin.php?page=formidable&frm_action=edit&id=".concat(c))},V("Go to form","formidable")))),wp.element.createElement(W,{title:V("Options","formidable"),initialOpen:!1},wp.element.createElement(Y,{label:V("Show Form Title","formidable"),checked:s,onChange:function(e){t("title",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Show Form Description","formidable"),checked:m,onChange:function(e){t("description",e?"1":"",i)}}),wp.element.createElement(Y,{label:V("Minimize HTML","formidable"),checked:f,onChange:function(e){t("minimize",e?"1":"",i)}})),wp.element.createElement(W,{title:V("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(Q,null,wp.element.createElement(u,this.props.attributes))))}}])&&z(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(B);function q(e){return q="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},q(e)}function $(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./js/src/components/class-counter.js": -/*!********************************************!*\ - !*** ./js/src/components/class-counter.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmCounter: () => (/* binding */ frmCounter) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmCounter = /*#__PURE__*/function () { - /** - * Init frmCounter - * - * @param {Element} element - * @param {Object} options - * @param {number} options.timetoFinish Max time in mileseconds for counter to complete the animation. - */ - function frmCounter(element, options) { - _classCallCheck(this, frmCounter); - if (!(element instanceof Element) || !element.dataset.counter) { - return; - } - this.template = element.dataset.type || 'default'; - this.element = element; - this.value = parseInt(element.dataset.counter, 10); - this.activeCounter = 0; - this.locale = element.dataset.locale ? element.dataset.locale.replace('_', '-') : 'en-US'; - this.timeoutInterval = 50; - this.timeToFinish = 'undefined' !== typeof options && 'undefined' !== typeof options.timetoFinish ? options.timetoFinish : 1400; - this.valueStep = this.value / Math.ceil(this.timeToFinish / this.timeoutInterval); - if (0 === this.value) { - return; - } - this.animate(); - } - return _createClass(frmCounter, [{ - key: "formatNumber", - value: function formatNumber(number) { - if ('currency' === this.template) { - return number.toLocaleString(this.locale, { - minimumFractionDigits: 2 - }); - } - return number; - } - }, { - key: "animate", - value: function animate() { - if (Math.round(this.activeCounter) < this.value) { - this.activeCounter += this.valueStep; - this.element.innerText = this.formatNumber(Math.round(this.activeCounter)); - setTimeout(this.animate.bind(this), this.timeoutInterval); - } else { - this.element.innerText = this.formatNumber(this.value); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/components/class-tabs-navigator.js": -/*!***************************************************!*\ - !*** ./js/src/components/class-tabs-navigator.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmTabsNavigator: () => (/* binding */ frmTabsNavigator) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmTabsNavigator = /*#__PURE__*/function () { - function frmTabsNavigator(wrapper) { - _classCallCheck(this, frmTabsNavigator); - if ('undefined' === typeof wrapper) { - return; - } - this.wrapper = wrapper instanceof Element ? wrapper : document.querySelector(wrapper); - if (null === this.wrapper) { - return; - } - this.flexboxSlidesGap = '16px'; - this.navs = this.wrapper.querySelectorAll('.frm-tabs-navs ul > 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.isRTL = document.documentElement.dir === 'rtl' || document.body.dir === 'rtl'; - this.resizeObserver = null; - this.init(); - } - return _createClass(frmTabsNavigator, [{ - key: "init", - value: function init() { - var _this = this; - if (null === this.wrapper || !this.navs.length || null === this.slideTrackLine || null === this.slideTrack || !this.slides.length) { - return; - } - this.initDefaultSlideTrackerWidth(); - this.navs.forEach(function (nav, index) { - nav.addEventListener('click', function (event) { - return _this.onNavClick(event, index); - }); - }); - this.setupScrollbarObserver(); - // Cleanup observers when page unloads to prevent memory leaks - window.addEventListener('beforeunload', this.cleanupObservers); - } - }, { - key: "onNavClick", - value: function onNavClick(event, index) { - var navItem = event.currentTarget; - event.preventDefault(); - this.removeActiveClassnameFromNavs(); - navItem.classList.add('frm-active'); - this.initSlideTrackUnderline(navItem, index); - this.changeSlide(index); - - // Handle special case for frm_insert_fields_tab - var navLink = navItem.querySelector('a'); - if (navLink && navLink.id === 'frm_insert_fields_tab' && !navLink.closest('#frm_adv_info')) { - var _window$frmAdminBuild, _window$frmAdminBuild2; - (_window$frmAdminBuild = window.frmAdminBuild) === null || _window$frmAdminBuild === void 0 || (_window$frmAdminBuild2 = _window$frmAdminBuild.clearSettingsBox) === null || _window$frmAdminBuild2 === void 0 || _window$frmAdminBuild2.call(_window$frmAdminBuild); - } - } - }, { - key: "initDefaultSlideTrackerWidth", - value: function initDefaultSlideTrackerWidth() { - if (!this.slideTrackLine.dataset.initialWidth) { - return; - } - this.slideTrackLine.style.width = "".concat(this.slideTrackLine.dataset.initialWidth, "px"); - } - }, { - key: "initSlideTrackUnderline", - value: function initSlideTrackUnderline(nav, index) { - this.slideTrackLine.classList.remove('frm-first', 'frm-last'); - var activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter(function (nav) { - return nav.classList.contains('frm-active'); - }); - this.positionUnderlineIndicator(activeNav); - } - - /** - * Sets up a ResizeObserver to watch for scrollbar changes in the parent container. - * Automatically repositions the underline indicator when layout changes occur. - */ - }, { - key: "setupScrollbarObserver", - value: function setupScrollbarObserver() { - var _this2 = this; - var scrollbarWrapper = this.wrapper.closest('.frm-scrollbar-wrapper'); - if (!scrollbarWrapper || !('ResizeObserver' in window)) { - return; - } - this.resizeObserver = new ResizeObserver(function () { - var activeNav = _this2.wrapper.querySelector('.frm-tabs-navs ul > li.frm-active'); - if (activeNav) { - _this2.positionUnderlineIndicator(activeNav); - } - }); - this.resizeObserver.observe(scrollbarWrapper); - } - - /** - * Cleans up observers to prevent memory leaks. - */ - }, { - key: "cleanupObservers", - value: function cleanupObservers() { - if (this.resizeObserver) { - this.resizeObserver.disconnect(); - this.resizeObserver = null; - } - } - - /** - * Positions the underline indicator based on the active navigation element. - * - * @param {HTMLElement} activeNav The active navigation element to position the underline under - */ - }, { - key: "positionUnderlineIndicator", - value: function positionUnderlineIndicator(activeNav) { - var _this3 = this; - requestAnimationFrame(function () { - var position = _this3.isRTL ? -(activeNav.parentElement.offsetWidth - activeNav.offsetLeft - activeNav.offsetWidth) : activeNav.offsetLeft; - _this3.slideTrackLine.style.transform = "translateX(".concat(position, "px)"); - _this3.slideTrackLine.style.width = activeNav.clientWidth + 'px'; - }); - } - }, { - key: "changeSlide", - value: function changeSlide(index) { - this.removeActiveClassnameFromSlides(); - var translate = index == 0 ? '0px' : "calc( ( ".concat(index * 100, "% + ").concat(parseInt(this.flexboxSlidesGap, 10) * index, "px ) * ").concat(this.isRTL ? 1 : -1, " )"); - if ('0px' !== translate) { - this.slideTrack.style.transform = "translateX(".concat(translate, ")"); - } else { - this.slideTrack.style.removeProperty('transform'); - } - if (index in this.slides) { - this.slides[index].classList.add('frm-active'); - } - } - }, { - key: "removeActiveClassnameFromSlides", - value: function removeActiveClassnameFromSlides() { - this.slides.forEach(function (slide) { - return slide.classList.remove('frm-active'); - }); - } - }, { - key: "removeActiveClassnameFromNavs", - value: function removeActiveClassnameFromNavs() { - this.navs.forEach(function (nav) { - return nav.classList.remove('frm-active'); - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/** - * Removes a query parameter and updates history with replaceState. - * - * @param {string} paramName The query parameter to remove. - * @return {void} - */ -var removeParamFromHistory = function removeParamFromHistory(paramName) { - return history.replaceState({}, '', removeQueryParam(paramName)); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!*****************************!*\ - !*** ./js/src/dashboard.js ***! - \*****************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/class-tabs-navigator */ "./js/src/components/class-tabs-navigator.js"); -/* harmony import */ var _components_class_counter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/class-counter */ "./js/src/components/class-counter.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - - - -var frmDashboard = /*#__PURE__*/function () { - function frmDashboard() { - _classCallCheck(this, frmDashboard); - this.options = { - ajax: { - action: 'dashboard_ajax_action', - dashboardActions: { - welcomeBanner: 'welcome-banner-has-closed', - checkEmailIfSubscribed: 'email-has-subscribed', - saveSubscribedEmail: 'save-subscribed-email' - } - } - }; - this.widgetsAnimate = new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(document.querySelectorAll('.frm-dashboard-widget'), 'cascade'); - } - return _createClass(frmDashboard, [{ - key: "init", - value: function init() { - this.initInbox(); - this.initCounters(); - this.initCloseWelcomeBanner(); - this.widgetsAnimate.cascadeFadeIn(); - } - }, { - key: "initInbox", - value: function initInbox() { - var _this = this; - new _components_class_tabs_navigator__WEBPACK_IMPORTED_MODULE_1__.frmTabsNavigator('.frm-inbox-wrapper'); - var userEmailInput = document.querySelector('#frm_leave_email'); - var subscribeButton = document.querySelector('#frm-add-my-email-address'); - subscribeButton.addEventListener('click', function () { - _this.saveSubscribedEmail(userEmailInput.value).then(); - }); - } - }, { - key: "initCounters", - value: function initCounters() { - var counters = document.querySelectorAll('.frm-counter'); - counters.forEach(function (counter) { - return new _components_class_counter__WEBPACK_IMPORTED_MODULE_2__.frmCounter(counter); - }); - } - }, { - key: "initCloseWelcomeBanner", - value: function initCloseWelcomeBanner() { - var _this2 = this; - var closeButton = document.querySelector('.frm-dashboard-banner-close'); - var dashboardBanner = document.querySelector('.frm-dashboard-banner'); - if (!closeButton || !dashboardBanner) { - return; - } - closeButton.addEventListener('click', function () { - _this2.closeWelcomeBannerSaveCookieRequest().then(function (data) { - if (true === data.success) { - dashboardBanner.remove(); - } - }); - }); - } - }, { - key: "saveSubscribedEmail", - value: function saveSubscribedEmail(email) { - return fetch(window.ajaxurl, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - action: this.options.ajax.action, - dashboard_action: this.options.ajax.dashboardActions.saveSubscribedEmail, - email: email - }) - }).then(function (result) { - return result.json(); - }); - } - }, { - key: "closeWelcomeBannerSaveCookieRequest", - value: function closeWelcomeBannerSaveCookieRequest() { - return fetch(window.ajaxurl, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - action: this.options.ajax.action, - dashboard_action: this.options.ajax.dashboardActions.welcomeBanner, - banner_has_closed: 1 - }) - }).then(function (result) { - return result.json(); - }); - } - }]); -}(); -var frmDashboardClass = new frmDashboard(); -document.addEventListener('DOMContentLoaded', function () { - frmDashboardClass.init(); -}); -/******/ })() -; -//# sourceMappingURL=formidable_dashboard.js.map \ No newline at end of file +(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=i,this.prepareElements()},i=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,i){e.classList.remove("frm-animate"),e.style.transitionDelay=(i+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,i){t.addEventListener("click",(function(t){return e.onNavClick(t,i)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var i=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),i.classList.add("frm-active"),this.initSlideTrackUnderline(i,t),this.changeSlide(t);var n,r,o=i.querySelector("a");o&&"frm_insert_fields_tab"===o.id&&!o.closest("#frm_adv_info")&&(null===(n=window.frmAdminBuild)||void 0===n||null===(r=n.clearSettingsBox)||void 0===r||r.call(n))}},{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 i=void 0!==e?e:this.navs.filter((function(e){return e.classList.contains("frm-active")}));this.positionUnderlineIndicator(i)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var i=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(i,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function u(e){return u="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},u(e)}function f(e,t){for(var i=0;i { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./js/src/components/class-overlay.js": -/*!********************************************!*\ - !*** ./js/src/components/class-overlay.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmOverlay: () => (/* binding */ frmOverlay) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * External dependencies - */ - -var frmOverlay = /*#__PURE__*/function () { - function frmOverlay() { - _classCallCheck(this, frmOverlay); - this.body = document.body; - } - - /** - * Open overlay - * - * @param {Object} overlayData An object containing data for the overlay. - * @param {string} overlayData.hero_image URL of the hero image. - * @param {string} overlayData.heading Heading of the overlay. - * @param {string} overlayData.copy Copy/content of the overlay. - * @param {Array} overlayData.buttons Array of button objects. - * @param {string} overlayData.buttons[].url URL for the button. - * @param {string} overlayData.buttons[].target Target attribute for the button link. - * @param {string} overlayData.buttons[].label Label/text of the button. - */ - return _createClass(frmOverlay, [{ - key: "open", - value: function open(overlayData) { - this.overlayData = { - hero_image: null, - heading: null, - copy: null, - buttons: [] - }; - this.overlayData = _objectSpread(_objectSpread({}, this.overlayData), overlayData); - this.bodyAddOverflowHidden(); - this.body.insertBefore(this.buildOverlay(), this.body.firstChild); - this.initCloseButton(); - this.initOverlayIntroAnimation(200); - } - }, { - key: "bodyAddOverflowHidden", - value: function bodyAddOverflowHidden() { - this.body.classList.add('frm-hidden-overflow'); - setTimeout(function () { - document.body.scrollTop = 0; - document.documentElement.scrollTop = 0; - }, 80); - } - }, { - key: "close", - value: function close() { - var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); - if (overlayWrapper) { - document.body.classList.remove('frm-hidden-overflow'); - overlayWrapper.remove(); - } - } - }, { - key: "initCloseButton", - value: function initCloseButton() { - var overlayWrapper = document.querySelector('.frm-overlay--wrapper'); - if (overlayWrapper) { - var closeButton = document.createElement('span'); - closeButton.classList.add('frm-overlay--close'); - closeButton.addEventListener('click', this.close); - overlayWrapper.prepend(closeButton); - } - } - }, { - key: "getHeroImage", - value: function getHeroImage() { - if (this.overlayData.hero_image) { - return frmDom.img({ - src: this.overlayData.hero_image - }); - } - return ''; - } - }, { - key: "getButtons", - value: function getButtons() { - var buttons = this.overlayData.buttons.map(function (button, index) { - if (!button.url || '' === button.url) { - return ''; - } - var buttonTypeClassname = 1 === index ? 'frm-button-primary' : 'frm-button-secondary'; - var options = { - href: button.url, - text: button.label, - className: 'button frm_animate_bg ' + buttonTypeClassname - }; - if (button.target) { - options.target = button.target; - } - return frmDom.a(options); - }); - if (buttons) { - var buttonsWrapperElementOptions = { - className: 'frm-overlay--cta frm-flex-box', - children: buttons - }; - return frmDom.div(buttonsWrapperElementOptions); - } - return ''; - } - }, { - key: "getHeading", - value: function getHeading() { - if (this.overlayData.heading) { - return frmDom.tag('h2', { - className: 'frm-overlay--heading frm-text-xl', - text: this.overlayData.heading - }); - } - return ''; - } - }, { - key: "getCopy", - value: function getCopy() { - if (this.overlayData.copy) { - var copy = frmDom.tag('div'); - copy.innerHTML = this.overlayData.copy; - return frmDom.div({ - className: 'frm-overlay--copy', - child: copy - }); - } - return ''; - } - }, { - key: "initOverlayIntroAnimation", - value: function initOverlayIntroAnimation(delay) { - setTimeout(function () { - var elements = document.querySelectorAll('.frm-overlay--hero-image, .frm-overlay--heading, .frm-overlay--copy, .frm-overlay--cta a'); - new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(elements, 'cascade-3d').cascadeFadeIn(0.07); - }, delay); - } - }, { - key: "buildOverlay", - value: function buildOverlay() { - var container = frmDom.div({ - className: 'frm-overlay--container', - children: [frmDom.div({ - className: 'frm-overlay--hero-image frm-mb-md', - children: [this.getHeroImage()] - }), this.getHeading(), this.getCopy(), this.getButtons()] - }); - return frmDom.div({ - className: 'frm-overlay--wrapper frm_wrap', - children: [container] - }); - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/** - * Removes a query parameter and updates history with replaceState. - * - * @param {string} paramName The query parameter to remove. - * @return {void} - */ -var removeParamFromHistory = function removeParamFromHistory(paramName) { - return history.replaceState({}, '', removeQueryParam(paramName)); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!***************************!*\ - !*** ./js/src/overlay.js ***! - \***************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/class-overlay */ "./js/src/components/class-overlay.js"); - -window.frmOverlay = new _components_class_overlay__WEBPACK_IMPORTED_MODULE_0__.frmOverlay(); -/******/ })() -; -//# sourceMappingURL=formidable_overlay.js.map \ No newline at end of file +(()=>{"use strict";function e(t){return e="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},e(t)}function t(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements=t,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var e=this;this.applyStyleToElements((function(t){t.classList.add("frm-fadein-up"),t.addEventListener("animationend",(function(){e.resetOpacity(),t.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){e.applyStyleToElements((function(e,r){e.classList.remove("frm-animate"),e.style.transitionDelay=(r+1)*t+"s"}))}),200)}},{key:"prepareElements",value:function(){var e=this;this.applyStyleToElements((function(t){"default"===e.type&&(t.style.opacity="0.0"),"cascade"===e.type&&t.classList.add("frm-init-cascade-animation"),"cascade-3d"===e.type&&t.classList.add("frm-init-fadein-3d"),t.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(e){return e.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(e){this.elements instanceof Element?e(this.elements,0):0 { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@tannin/compile/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/compile/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ compile) -/* harmony export */ }); -/* harmony import */ var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/postfix */ "./node_modules/@tannin/postfix/index.js"); -/* harmony import */ var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tannin/evaluate */ "./node_modules/@tannin/evaluate/index.js"); - - - -/** - * Given a C expression, returns a function which can be called to evaluate its - * result. - * - * @example - * - * ```js - * import compile from '@tannin/compile'; - * - * const evaluate = compile( 'n > 1' ); - * - * evaluate( { n: 2 } ); - * // ⇒ true - * ``` - * - * @param {string} expression C expression. - * - * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. - */ -function compile( expression ) { - var terms = (0,_tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( variables ) { - return (0,_tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])( terms, variables ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/evaluate/index.js": -/*!************************************************!*\ - !*** ./node_modules/@tannin/evaluate/index.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ evaluate) -/* harmony export */ }); -/** - * Operator callback functions. - * - * @type {Object} - */ -var OPERATORS = { - '!': function( a ) { - return ! a; - }, - '*': function( a, b ) { - return a * b; - }, - '/': function( a, b ) { - return a / b; - }, - '%': function( a, b ) { - return a % b; - }, - '+': function( a, b ) { - return a + b; - }, - '-': function( a, b ) { - return a - b; - }, - '<': function( a, b ) { - return a < b; - }, - '<=': function( a, b ) { - return a <= b; - }, - '>': function( a, b ) { - return a > b; - }, - '>=': function( a, b ) { - return a >= b; - }, - '==': function( a, b ) { - return a === b; - }, - '!=': function( a, b ) { - return a !== b; - }, - '&&': function( a, b ) { - return a && b; - }, - '||': function( a, b ) { - return a || b; - }, - '?:': function( a, b, c ) { - if ( a ) { - throw b; - } - - return c; - }, -}; - -/** - * Given an array of postfix terms and operand variables, returns the result of - * the postfix evaluation. - * - * @example - * - * ```js - * import evaluate from '@tannin/evaluate'; - * - * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' - * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; - * - * evaluate( terms, {} ); - * // ⇒ 6.333333333333334 - * ``` - * - * @param {string[]} postfix Postfix terms. - * @param {Object} variables Operand variables. - * - * @return {*} Result of evaluation. - */ -function evaluate( postfix, variables ) { - var stack = [], - i, j, args, getOperatorResult, term, value; - - for ( i = 0; i < postfix.length; i++ ) { - term = postfix[ i ]; - - getOperatorResult = OPERATORS[ term ]; - if ( getOperatorResult ) { - // Pop from stack by number of function arguments. - j = getOperatorResult.length; - args = Array( j ); - while ( j-- ) { - args[ j ] = stack.pop(); - } - - try { - value = getOperatorResult.apply( null, args ); - } catch ( earlyReturn ) { - return earlyReturn; - } - } else if ( variables.hasOwnProperty( term ) ) { - value = variables[ term ]; - } else { - value = +term; - } - - stack.push( value ); - } - - return stack[ 0 ]; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/plural-forms/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@tannin/plural-forms/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pluralForms) -/* harmony export */ }); -/* harmony import */ var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/compile */ "./node_modules/@tannin/compile/index.js"); - - -/** - * Given a C expression, returns a function which, when called with a value, - * evaluates the result with the value assumed to be the "n" variable of the - * expression. The result will be coerced to its numeric equivalent. - * - * @param {string} expression C expression. - * - * @return {Function} Evaluator function. - */ -function pluralForms( expression ) { - var evaluate = (0,_tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])( expression ); - - return function( n ) { - return +evaluate( { n: n } ); - }; -} - - -/***/ }), - -/***/ "./node_modules/@tannin/postfix/index.js": -/*!***********************************************!*\ - !*** ./node_modules/@tannin/postfix/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ postfix) -/* harmony export */ }); -var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; - -/** - * Operator precedence mapping. - * - * @type {Object} - */ -PRECEDENCE = { - '(': 9, - '!': 8, - '*': 7, - '/': 7, - '%': 7, - '+': 6, - '-': 6, - '<': 5, - '<=': 5, - '>': 5, - '>=': 5, - '==': 4, - '!=': 4, - '&&': 3, - '||': 2, - '?': 1, - '?:': 1, -}; - -/** - * Characters which signal pair opening, to be terminated by terminators. - * - * @type {string[]} - */ -OPENERS = [ '(', '?' ]; - -/** - * Characters which signal pair termination, the value an array with the - * opener as its first member. The second member is an optional operator - * replacement to push to the stack. - * - * @type {string[]} - */ -TERMINATORS = { - ')': [ '(' ], - ':': [ '?', '?:' ], -}; - -/** - * Pattern matching operators and openers. - * - * @type {RegExp} - */ -PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; - -/** - * Given a C expression, returns the equivalent postfix (Reverse Polish) - * notation terms as an array. - * - * If a postfix string is desired, simply `.join( ' ' )` the result. - * - * @example - * - * ```js - * import postfix from '@tannin/postfix'; - * - * postfix( 'n > 1' ); - * // ⇒ [ 'n', '1', '>' ] - * ``` - * - * @param {string} expression C expression. - * - * @return {string[]} Postfix terms. - */ -function postfix( expression ) { - var terms = [], - stack = [], - match, operator, term, element; - - while ( ( match = expression.match( PATTERN ) ) ) { - operator = match[ 0 ]; - - // Term is the string preceding the operator match. It may contain - // whitespace, and may be empty (if operator is at beginning). - term = expression.substr( 0, match.index ).trim(); - if ( term ) { - terms.push( term ); - } - - while ( ( element = stack.pop() ) ) { - if ( TERMINATORS[ operator ] ) { - if ( TERMINATORS[ operator ][ 0 ] === element ) { - // Substitution works here under assumption that because - // the assigned operator will no longer be a terminator, it - // will be pushed to the stack during the condition below. - operator = TERMINATORS[ operator ][ 1 ] || operator; - break; - } - } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { - // Push to stack if either an opener or when pop reveals an - // element of lower precedence. - stack.push( element ); - break; - } - - // For each popped from stack, push to terms. - terms.push( element ); - } - - if ( ! TERMINATORS[ operator ] ) { - stack.push( operator ); - } - - // Slice matched fragment from expression to continue match. - expression = expression.substr( match.index + operator.length ); - } - - // Push remainder of operand, if exists, to terms. - expression = expression.trim(); - if ( expression ) { - terms.push( expression ); - } - - // Pop remaining items from stack into terms. - return terms.concat( stack.reverse() ); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback AddHook - * - * Adds the hook to the appropriate hooks container. - * - * @param {string} hookName Name of hook to add - * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`. - * @param {import('.').Callback} callback Function to call when the hook is run - * @param {number} [priority=10] Priority of this hook - */ - -/** - * Returns a function which, when invoked, will add a hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {AddHook} Function that adds a new hook. - */ - -function createAddHook(hooks, storeKey) { - return function addHook(hookName, namespace, callback) { - var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10; - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } - - if ('function' !== typeof callback) { - // eslint-disable-next-line no-console - console.error('The hook callback must be a function.'); - return; - } // Validate numeric priority - - - if ('number' !== typeof priority) { - // eslint-disable-next-line no-console - console.error('If specified, the hook priority must be a number.'); - return; - } - - var handler = { - callback: callback, - priority: priority, - namespace: namespace - }; - - if (hooksStore[hookName]) { - // Find the correct insert index of the new hook. - var handlers = hooksStore[hookName].handlers; - /** @type {number} */ - - var i; - - for (i = handlers.length; i > 0; i--) { - if (priority >= handlers[i - 1].priority) { - break; - } - } - - if (i === handlers.length) { - // If append, operate via direct assignment. - handlers[i] = handler; - } else { - // Otherwise, insert before index via splice. - handlers.splice(i, 0, handler); - } // We may also be currently executing this hook. If the callback - // we're adding would come after the current callback, there's no - // problem; otherwise we need to increase the execution index of - // any other runs by 1 to account for the added element. - - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex++; - } - }); - } else { - // This is the first hook of its type. - hooksStore[hookName] = { - handlers: [handler], - runs: 0 - }; - } - - if (hookName !== 'hookAdded') { - hooks.doAction('hookAdded', hookName, namespace, callback, priority); - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAddHook); -//# sourceMappingURL=createAddHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Returns a function which, when invoked, will return the name of the - * currently running hook, or `null` if no hook of the given type is currently - * running. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {() => string | null} Function that returns the current hook name or null. - */ -function createCurrentHook(hooks, storeKey) { - return function currentHook() { - var _hooksStore$__current, _hooksStore$__current2; - - var hooksStore = hooks[storeKey]; - 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; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCurrentHook); -//# sourceMappingURL=createCurrentHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - -/** - * @callback DidHook - * - * Returns the number of times an action has been fired. - * - * @param {string} hookName The hook name to check. - * - * @return {number | undefined} The number of times the hook has run. - */ - -/** - * Returns a function which, when invoked, will return the number of times a - * hook has been called. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DidHook} Function that returns a hook's call count. - */ - -function createDidHook(hooks, storeKey) { - return function didHook(hookName) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(hookName)) { - return; - } - - return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDidHook); -//# sourceMappingURL=createDidHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***! - \***********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback DoingHook - * Returns whether a hook is currently being executed. - * - * @param {string} [hookName] The name of the hook to check for. If - * omitted, will check for any hook being executed. - * - * @return {boolean} Whether the hook is being executed. - */ - -/** - * Returns a function which, when invoked, will return whether a hook is - * currently being executed. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {DoingHook} Function that returns whether a hook is currently - * being executed. - */ -function createDoingHook(hooks, storeKey) { - return function doingHook(hookName) { - var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook. - - if ('undefined' === typeof hookName) { - return 'undefined' !== typeof hooksStore.__current[0]; - } // Return the __current hook. - - - return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDoingHook); -//# sourceMappingURL=createDoingHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * @callback HasHook - * - * Returns whether any handlers are attached for the given hookName and optional namespace. - * - * @param {string} hookName The name of the hook to check for. - * @param {string} [namespace] Optional. The unique namespace identifying the callback - * in the form `vendor/plugin/function`. - * - * @return {boolean} Whether there are handlers that are attached to the given hook. - */ - -/** - * Returns a function which, when invoked, will return whether any handlers are - * attached to a particular hook. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * - * @return {HasHook} Function that returns whether any handlers are - * attached to a particular hook and optional namespace. - */ -function createHasHook(hooks, storeKey) { - return function hasHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; // Use the namespace if provided. - - if ('undefined' !== typeof namespace) { - return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) { - return hook.namespace === namespace; - }); - } - - return hookName in hooksStore; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHasHook); -//# sourceMappingURL=createHasHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ _Hooks: () => (/* binding */ _Hooks), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createAddHook */ "./node_modules/@wordpress/hooks/build-module/createAddHook.js"); -/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createRemoveHook */ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js"); -/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createHasHook */ "./node_modules/@wordpress/hooks/build-module/createHasHook.js"); -/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createRunHook */ "./node_modules/@wordpress/hooks/build-module/createRunHook.js"); -/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createCurrentHook */ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js"); -/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDoingHook */ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js"); -/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./createDidHook */ "./node_modules/@wordpress/hooks/build-module/createDidHook.js"); - - -/** - * Internal dependencies - */ - - - - - - - -/** - * Internal class for constructing hooks. Use `createHooks()` function - * - * Note, it is necessary to expose this class to make its type public. - * - * @private - */ - -var _Hooks = function _Hooks() { - (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, _Hooks); - - /** @type {import('.').Store} actions */ - this.actions = Object.create(null); - this.actions.__current = []; - /** @type {import('.').Store} filters */ - - this.filters = Object.create(null); - this.filters.__current = []; - this.addAction = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'actions'); - this.addFilter = (0,_createAddHook__WEBPACK_IMPORTED_MODULE_1__["default"])(this, 'filters'); - this.removeAction = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions'); - this.removeFilter = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters'); - this.hasAction = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'actions'); - this.hasFilter = (0,_createHasHook__WEBPACK_IMPORTED_MODULE_3__["default"])(this, 'filters'); - this.removeAllActions = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'actions', true); - this.removeAllFilters = (0,_createRemoveHook__WEBPACK_IMPORTED_MODULE_2__["default"])(this, 'filters', true); - this.doAction = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'actions'); - this.applyFilters = (0,_createRunHook__WEBPACK_IMPORTED_MODULE_4__["default"])(this, 'filters', true); - this.currentAction = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'actions'); - this.currentFilter = (0,_createCurrentHook__WEBPACK_IMPORTED_MODULE_5__["default"])(this, 'filters'); - this.doingAction = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'actions'); - this.doingFilter = (0,_createDoingHook__WEBPACK_IMPORTED_MODULE_6__["default"])(this, 'filters'); - this.didAction = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'actions'); - this.didFilter = (0,_createDidHook__WEBPACK_IMPORTED_MODULE_7__["default"])(this, 'filters'); -}; -/** @typedef {_Hooks} Hooks */ - -/** - * Returns an instance of the hooks object. - * - * @return {Hooks} A Hooks instance. - */ - -function createHooks() { - return new _Hooks(); -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createHooks); -//# sourceMappingURL=createHooks.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js"); -/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ "./node_modules/@wordpress/hooks/build-module/validateHookName.js"); -/** - * Internal dependencies - */ - - -/** - * @callback RemoveHook - * Removes the specified callback (or all callbacks) from the hook with a given hookName - * and namespace. - * - * @param {string} hookName The name of the hook to modify. - * @param {string} namespace The unique namespace identifying the callback in the - * form `vendor/plugin/function`. - * - * @return {number | undefined} The number of callbacks removed. - */ - -/** - * Returns a function which, when invoked, will remove a specified hook or all - * hooks by the given name. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName, - * without regard to namespace. Used to create - * `removeAll*` functions. - * - * @return {RemoveHook} Function that removes hooks. - */ - -function createRemoveHook(hooks, storeKey) { - var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function removeHook(hookName, namespace) { - var hooksStore = hooks[storeKey]; - - if (!(0,_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(hookName)) { - return; - } - - if (!removeAll && !(0,_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(namespace)) { - return; - } // Bail if no hooks exist by this name - - - if (!hooksStore[hookName]) { - return 0; - } - - var handlersRemoved = 0; - - if (removeAll) { - handlersRemoved = hooksStore[hookName].handlers.length; - hooksStore[hookName] = { - runs: hooksStore[hookName].runs, - handlers: [] - }; - } else { - // Try to find the specified callback to remove. - var handlers = hooksStore[hookName].handlers; - - var _loop = function _loop(i) { - if (handlers[i].namespace === namespace) { - handlers.splice(i, 1); - handlersRemoved++; // This callback may also be part of a hook that is - // currently executing. If the callback we're removing - // comes after the current callback, there's no problem; - // otherwise we need to decrease the execution index of any - // other runs by 1 to account for the removed element. - - hooksStore.__current.forEach(function (hookInfo) { - if (hookInfo.name === hookName && hookInfo.currentIndex >= i) { - hookInfo.currentIndex--; - } - }); - } - }; - - for (var i = handlers.length - 1; i >= 0; i--) { - _loop(i); - } - } - - if (hookName !== 'hookRemoved') { - hooks.doAction('hookRemoved', hookName, namespace); - } - - return handlersRemoved; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRemoveHook); -//# sourceMappingURL=createRemoveHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); - - -/** - * Returns a function which, when invoked, will execute all callbacks - * registered to a hook of the specified type, optionally returning the final - * value of the call chain. - * - * @param {import('.').Hooks} hooks Hooks instance. - * @param {import('.').StoreKey} storeKey - * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to - * return its first argument. - * - * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks. - */ -function createRunHook(hooks, storeKey) { - var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - return function runHooks(hookName) { - var hooksStore = hooks[storeKey]; - - if (!hooksStore[hookName]) { - hooksStore[hookName] = { - handlers: [], - runs: 0 - }; - } - - hooksStore[hookName].runs++; - var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds. - - if (true) { - // Handle any 'all' hooks registered. - if ('hookAdded' !== hookName && hooksStore.all) { - handlers.push.apply(handlers, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(hooksStore.all.handlers)); - } - } - - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (!handlers || !handlers.length) { - return returnFirstArg ? args[0] : undefined; - } - - var hookInfo = { - name: hookName, - currentIndex: 0 - }; - - hooksStore.__current.push(hookInfo); - - while (hookInfo.currentIndex < handlers.length) { - var handler = handlers[hookInfo.currentIndex]; - var result = handler.callback.apply(null, args); - - if (returnFirstArg) { - args[0] = result; - } - - hookInfo.currentIndex++; - } - - hooksStore.__current.pop(); - - if (returnFirstArg) { - return args[0]; - } - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRunHook); -//# sourceMappingURL=createRunHook.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actions: () => (/* binding */ actions), -/* harmony export */ addAction: () => (/* binding */ addAction), -/* harmony export */ addFilter: () => (/* binding */ addFilter), -/* harmony export */ applyFilters: () => (/* binding */ applyFilters), -/* harmony export */ createHooks: () => (/* reexport safe */ _createHooks__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ currentAction: () => (/* binding */ currentAction), -/* harmony export */ currentFilter: () => (/* binding */ currentFilter), -/* harmony export */ defaultHooks: () => (/* binding */ defaultHooks), -/* harmony export */ didAction: () => (/* binding */ didAction), -/* harmony export */ didFilter: () => (/* binding */ didFilter), -/* harmony export */ doAction: () => (/* binding */ doAction), -/* harmony export */ doingAction: () => (/* binding */ doingAction), -/* harmony export */ doingFilter: () => (/* binding */ doingFilter), -/* harmony export */ filters: () => (/* binding */ filters), -/* harmony export */ hasAction: () => (/* binding */ hasAction), -/* harmony export */ hasFilter: () => (/* binding */ hasFilter), -/* harmony export */ removeAction: () => (/* binding */ removeAction), -/* harmony export */ removeAllActions: () => (/* binding */ removeAllActions), -/* harmony export */ removeAllFilters: () => (/* binding */ removeAllFilters), -/* harmony export */ removeFilter: () => (/* binding */ removeFilter) -/* harmony export */ }); -/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ "./node_modules/@wordpress/hooks/build-module/createHooks.js"); -/** - * Internal dependencies - */ - -/** @typedef {(...args: any[])=>any} Callback */ - -/** - * @typedef Handler - * @property {Callback} callback The callback - * @property {string} namespace The namespace - * @property {number} priority The namespace - */ - -/** - * @typedef Hook - * @property {Handler[]} handlers Array of handlers - * @property {number} runs Run counter - */ - -/** - * @typedef Current - * @property {string} name Hook name - * @property {number} currentIndex The index - */ - -/** - * @typedef {Record & {__current: Current[]}} Store - */ - -/** - * @typedef {'actions' | 'filters'} StoreKey - */ - -/** - * @typedef {import('./createHooks').Hooks} Hooks - */ - -var defaultHooks = (0,_createHooks__WEBPACK_IMPORTED_MODULE_0__["default"])(); -var addAction = defaultHooks.addAction, - addFilter = defaultHooks.addFilter, - removeAction = defaultHooks.removeAction, - removeFilter = defaultHooks.removeFilter, - hasAction = defaultHooks.hasAction, - hasFilter = defaultHooks.hasFilter, - removeAllActions = defaultHooks.removeAllActions, - removeAllFilters = defaultHooks.removeAllFilters, - doAction = defaultHooks.doAction, - applyFilters = defaultHooks.applyFilters, - currentAction = defaultHooks.currentAction, - currentFilter = defaultHooks.currentFilter, - doingAction = defaultHooks.doingAction, - doingFilter = defaultHooks.doingFilter, - didAction = defaultHooks.didAction, - didFilter = defaultHooks.didFilter, - actions = defaultHooks.actions, - filters = defaultHooks.filters; - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js": -/*!************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a hookName string. - * - * @param {string} hookName The hook name to validate. Should be a non empty string containing - * only numbers, letters, dashes, periods and underscores. Also, - * the hook name cannot begin with `__`. - * - * @return {boolean} Whether the hook name is valid. - */ -function validateHookName(hookName) { - if ('string' !== typeof hookName || '' === hookName) { - // eslint-disable-next-line no-console - console.error('The hook name must be a non-empty string.'); - return false; - } - - if (/^__/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name cannot begin with `__`.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) { - // eslint-disable-next-line no-console - console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateHookName); -//# sourceMappingURL=validateHookName.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Validate a namespace string. - * - * @param {string} namespace The namespace to validate - should take the form - * `vendor/plugin/function`. - * - * @return {boolean} Whether the namespace is valid. - */ -function validateNamespace(namespace) { - if ('string' !== typeof namespace || '' === namespace) { - // eslint-disable-next-line no-console - console.error('The namespace must be a non-empty string.'); - return false; - } - - if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) { - // eslint-disable-next-line no-console - console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.'); - return false; - } - - return true; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validateNamespace); -//# sourceMappingURL=validateNamespace.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/create-i18n.js": -/*!******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/create-i18n.js ***! - \******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createI18n: () => (/* binding */ createI18n) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var tannin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tannin */ "./node_modules/tannin/index.js"); - - -function 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; } - -function _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) { (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(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; } - -/** - * External dependencies - */ - -/** - * @typedef {Record} LocaleData - */ - -/** - * Default locale data to use for Tannin domain when not otherwise provided. - * Assumes an English plural forms expression. - * - * @type {LocaleData} - */ - -var DEFAULT_LOCALE_DATA = { - '': { - /** @param {number} n */ - plural_forms: function plural_forms(n) { - return n === 1 ? 0 : 1; - } - } -}; -/* - * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`, - * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`. - */ - -var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; -/** - * @typedef {(domain?: string) => LocaleData} GetLocaleData - * - * Returns locale data by domain in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData - * - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** - * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData - * - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - */ - -/** @typedef {() => void} SubscribeCallback */ - -/** @typedef {() => void} UnsubscribeCallback */ - -/** - * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe - * - * Subscribes to changes of locale data - */ - -/** - * @typedef {(domain?: string) => string} GetFilterDomain - * Retrieve the domain to use when calling domain-specific filters. - */ - -/** - * @typedef {(text: string, domain?: string) => string} __ - * - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - */ - -/** - * @typedef {(text: string, context: string, domain?: string) => string} _x - * - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n - * - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - */ - -/** - * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx - * - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - */ - -/** - * @typedef {() => boolean} IsRtl - * - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - */ - -/** - * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation - * - * Check if there is a translation for a given string in singular form. - */ - -/** @typedef {import('@wordpress/hooks').Hooks} Hooks */ - -/** - * An i18n instance - * - * @typedef I18n - * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. - * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data. - * @property {__} __ Retrieve the translation of text. - * @property {_x} _x Retrieve translated string with gettext context. - * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied - * number. - * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * @property {IsRtl} isRTL Check if current locale is RTL. - * @property {HasTranslation} hasTranslation Check if there is a translation for a given string. - */ - -/** - * Create an i18n instance - * - * @param {LocaleData} [initialData] Locale data configuration. - * @param {string} [initialDomain] Domain for which configuration applies. - * @param {Hooks} [hooks] Hooks implementation. - * @return {I18n} I18n instance - */ - -var createI18n = function createI18n(initialData, initialDomain, hooks) { - /** - * The underlying instance of Tannin to which exported functions interface. - * - * @type {Tannin} - */ - var tannin = new tannin__WEBPACK_IMPORTED_MODULE_1__["default"]({}); - var listeners = new Set(); - - var notifyListeners = function notifyListeners() { - listeners.forEach(function (listener) { - return listener(); - }); - }; - /** - * Subscribe to changes of locale data. - * - * @param {SubscribeCallback} callback Subscription callback. - * @return {UnsubscribeCallback} Unsubscribe callback. - */ - - - var subscribe = function subscribe(callback) { - listeners.add(callback); - return function () { - return listeners.delete(callback); - }; - }; - /** @type {GetLocaleData} */ - - - var getLocaleData = function getLocaleData() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return tannin.data[domain]; - }; - /** - * @param {LocaleData} [data] - * @param {string} [domain] - */ - - - var doSetLocaleData = function doSetLocaleData(data) { - var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits - // a plural forms expression). - - tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']); - }; - /** @type {SetLocaleData} */ - - - var setLocaleData = function setLocaleData(data, domain) { - doSetLocaleData(data, domain); - notifyListeners(); - }; - /** @type {ResetLocaleData} */ - - - var resetLocaleData = function resetLocaleData(data, domain) { - // Reset all current Tannin locale data. - tannin.data = {}; // Reset cached plural forms functions cache. - - tannin.pluralForms = {}; - setLocaleData(data, domain); - }; - /** - * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not - * otherwise previously assigned. - * - * @param {string|undefined} domain Domain to retrieve the translated text. - * @param {string|undefined} context Context information for the translators. - * @param {string} single Text to translate if non-plural. Used as - * fallback return value on a caught error. - * @param {string} [plural] The text to be used if the number is - * plural. - * @param {number} [number] The number to compare against to use - * either the singular or plural form. - * - * @return {string} The translated string. - */ - - - var dcnpgettext = function dcnpgettext() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - var context = arguments.length > 1 ? arguments[1] : undefined; - var single = arguments.length > 2 ? arguments[2] : undefined; - var plural = arguments.length > 3 ? arguments[3] : undefined; - var number = arguments.length > 4 ? arguments[4] : undefined; - - if (!tannin.data[domain]) { - // use `doSetLocaleData` to set silently, without notifying listeners - doSetLocaleData(undefined, domain); - } - - return tannin.dcnpgettext(domain, context, single, plural, number); - }; - /** @type {GetFilterDomain} */ - - - var getFilterDomain = function getFilterDomain() { - var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; - return domain; - }; - /** @type {__} */ - - - var __ = function __(text, domain) { - var translation = dcnpgettext(domain, undefined, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext', translation, text, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain) - ); - }; - /** @type {_x} */ - - - var _x = function _x(text, context, domain) { - var translation = dcnpgettext(domain, context, text); - - if (!hooks) { - return translation; - } - /** - * Filters text with its translation based on context information. - * - * @param {string} translation Translated text. - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain) - ); - }; - /** @type {_n} */ - - - var _n = function _n(single, plural, number, domain) { - var translation = dcnpgettext(domain, undefined, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain) - ); - }; - /** @type {_nx} */ - - - var _nx = function _nx(single, plural, number, context, domain) { - var translation = dcnpgettext(domain, context, single, plural, number); - - if (!hooks) { - return translation; - } - /** - * Filters the singular or plural form of a string with gettext context. - * - * @param {string} translation Translated text. - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {string} number The number to compare against to use either the singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - - - translation = - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain); - return ( - /** @type {string} */ - - /** @type {*} */ - hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain) - ); - }; - /** @type {IsRtl} */ - - - var isRTL = function isRTL() { - return 'rtl' === _x('ltr', 'text direction'); - }; - /** @type {HasTranslation} */ - - - var hasTranslation = function hasTranslation(single, context, domain) { - var _tannin$data, _tannin$data2; - - var key = context ? context + "\x04" + single : single; - 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]); - - if (hooks) { - /** - * Filters the presence of a translation in the locale data. - * - * @param {boolean} hasTranslation Whether the translation is present or not.. - * @param {string} single The singular form of the translated text (used as key in locale data) - * @param {string} context Context information for the translators. - * @param {string} domain Text domain. Unique identifier for retrieving translated strings. - */ - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation', result, single, context, domain); - result = - /** @type { boolean } */ - - /** @type {*} */ - hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain); - } - - return result; - }; - - if (initialData) { - setLocaleData(initialData, initialDomain); - } - - if (hooks) { - /** - * @param {string} hookName - */ - var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) { - if (I18N_HOOK_REGEXP.test(hookName)) { - notifyListeners(); - } - }; - - hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved); - hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved); - } - - return { - getLocaleData: getLocaleData, - setLocaleData: setLocaleData, - resetLocaleData: resetLocaleData, - subscribe: subscribe, - __: __, - _x: _x, - _n: _n, - _nx: _nx, - isRTL: isRTL, - hasTranslation: hasTranslation - }; -}; -//# sourceMappingURL=create-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/default-i18n.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/default-i18n.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* binding */ __), -/* harmony export */ _n: () => (/* binding */ _n), -/* harmony export */ _nx: () => (/* binding */ _nx), -/* harmony export */ _x: () => (/* binding */ _x), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ getLocaleData: () => (/* binding */ getLocaleData), -/* harmony export */ hasTranslation: () => (/* binding */ hasTranslation), -/* harmony export */ isRTL: () => (/* binding */ isRTL), -/* harmony export */ resetLocaleData: () => (/* binding */ resetLocaleData), -/* harmony export */ setLocaleData: () => (/* binding */ setLocaleData), -/* harmony export */ subscribe: () => (/* binding */ subscribe) -/* harmony export */ }); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "./node_modules/@wordpress/hooks/build-module/index.js"); -/** - * Internal dependencies - */ - -/** - * WordPress dependencies - */ - - -var i18n = (0,_create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); -/** - * Default, singleton instance of `I18n`. - */ - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (i18n); -/* - * Comments in this file are duplicated from ./i18n due to - * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722 - */ - -/** - * @typedef {import('./create-i18n').LocaleData} LocaleData - * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback - * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback - */ - -/** - * Returns locale data by domain in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {string} [domain] Domain for which to get the data. - * @return {LocaleData} Locale data. - */ - -var getLocaleData = i18n.getLocaleData.bind(i18n); -/** - * Merges locale data into the Tannin instance by domain. Accepts data in a - * Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var setLocaleData = i18n.setLocaleData.bind(i18n); -/** - * Resets all current Tannin instance locale data and sets the specified - * locale data for the domain. Accepts data in a Jed-formatted JSON object shape. - * - * @see http://messageformat.github.io/Jed/ - * - * @param {LocaleData} [data] Locale data configuration. - * @param {string} [domain] Domain for which configuration applies. - */ - -var resetLocaleData = i18n.resetLocaleData.bind(i18n); -/** - * Subscribes to changes of locale data - * - * @param {SubscribeCallback} callback Subscription callback - * @return {UnsubscribeCallback} Unsubscribe callback - */ - -var subscribe = i18n.subscribe.bind(i18n); -/** - * Retrieve the translation of text. - * - * @see https://developer.wordpress.org/reference/functions/__/ - * - * @param {string} text Text to translate. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated text. - */ - -var __ = i18n.__.bind(i18n); -/** - * Retrieve translated string with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_x/ - * - * @param {string} text Text to translate. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} Translated context string without pipe. - */ - -var _x = i18n._x.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number. - * - * @see https://developer.wordpress.org/reference/functions/_n/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _n = i18n._n.bind(i18n); -/** - * Translates and retrieves the singular or plural form based on the supplied - * number, with gettext context. - * - * @see https://developer.wordpress.org/reference/functions/_nx/ - * - * @param {string} single The text to be used if the number is singular. - * @param {string} plural The text to be used if the number is plural. - * @param {number} number The number to compare against to use either the - * singular or plural form. - * @param {string} context Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * - * @return {string} The translated singular or plural form. - */ - -var _nx = i18n._nx.bind(i18n); -/** - * Check if current locale is RTL. - * - * **RTL (Right To Left)** is a locale property indicating that text is written from right to left. - * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common - * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, - * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). - * - * @return {boolean} Whether locale is RTL. - */ - -var isRTL = i18n.isRTL.bind(i18n); -/** - * Check if there is a translation for a given string (in singular form). - * - * @param {string} single Singular form of the string to look up. - * @param {string} [context] Context information for the translators. - * @param {string} [domain] Domain to retrieve the translated text. - * @return {boolean} Whether the translation exists or not. - */ - -var hasTranslation = i18n.hasTranslation.bind(i18n); -//# sourceMappingURL=default-i18n.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/index.js ***! - \************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ __: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__), -/* harmony export */ _n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n), -/* harmony export */ _nx: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx), -/* harmony export */ _x: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x), -/* harmony export */ createI18n: () => (/* reexport safe */ _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n), -/* harmony export */ defaultI18n: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ getLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData), -/* harmony export */ hasTranslation: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation), -/* harmony export */ isRTL: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL), -/* harmony export */ resetLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData), -/* harmony export */ setLocaleData: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData), -/* harmony export */ sprintf: () => (/* reexport safe */ _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf), -/* harmony export */ subscribe: () => (/* reexport safe */ _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe) -/* harmony export */ }); -/* harmony import */ var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sprintf */ "./node_modules/@wordpress/i18n/build-module/sprintf.js"); -/* harmony import */ var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-i18n */ "./node_modules/@wordpress/i18n/build-module/create-i18n.js"); -/* harmony import */ var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default-i18n */ "./node_modules/@wordpress/i18n/build-module/default-i18n.js"); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/build-module/sprintf.js": -/*!**************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/build-module/sprintf.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sprintf: () => (/* binding */ sprintf) -/* harmony export */ }); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "./node_modules/memize/index.js"); -/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ "./node_modules/sprintf-js/src/sprintf.js"); -/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * External dependencies - */ - - -/** - * Log to console, once per message; or more precisely, per referentially equal - * argument set. Because Jed throws errors, we log these to the console instead - * to avoid crashing the application. - * - * @param {...*} args Arguments to pass to `console.error` - */ - -var logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); // eslint-disable-line no-console - -/** - * Returns a formatted string. If an error occurs in applying the format, the - * original format string is returned. - * - * @param {string} format The format of the string to generate. - * @param {...*} args Arguments to apply to the format. - * - * @see https://www.npmjs.com/package/sprintf-js - * - * @return {string} The formatted string. - */ - -function sprintf(format) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf.apply((sprintf_js__WEBPACK_IMPORTED_MODULE_1___default()), [format].concat(args)); - } catch (error) { - logErrorOnce('sprintf error: \n\n' + error.toString()); - return format; - } -} -//# sourceMappingURL=sprintf.js.map - -/***/ }), - -/***/ "./js/src/admin/components/dependent-updater-component.js": -/*!****************************************************************!*\ - !*** ./js/src/admin/components/dependent-updater-component.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ frmStyleDependentUpdaterComponent) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview. - * The names of the elements that will be updated are specified using the "will-change" attribute. - * It is primarily used in components from Style/Quick Settings. - * For instance, when the "FrmPrimaryColorStyleComponent" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds. - */ -var frmStyleDependentUpdaterComponent = /*#__PURE__*/function () { - /** - * Creates an instance of frmStyleDependentUpdaterComponent. - * - * @param {HTMLElement} component - The component element. - */ - function frmStyleDependentUpdaterComponent(component) { - _classCallCheck(this, frmStyleDependentUpdaterComponent); - this.component = component; - try { - var willChangeData = JSON.parse(this.component.dataset.willChange); - this.data = { - propagateInputs: this.initPropagationList(willChangeData), - changeEvent: new Event('change', { - bubbles: true - }) - }; - } catch (error) { - console.error('Error parsing JSON data from "will-change" attribute.', error); - } - } - - /** - * Initializes the list of inputs to propagate changes to. - * The selection is made by provided input's names list in "will-change" attribute. - * - * @param {string[]} inputNames - The names of the inputs to propagate changes to. - * @return {HTMLElement[]} - The list of inputs to propagate changes to. - */ - return _createClass(frmStyleDependentUpdaterComponent, [{ - key: "initPropagationList", - value: function initPropagationList(inputNames) { - var list = []; - inputNames.forEach(function (name) { - var input = document.querySelector("input[name=\"".concat(name, "\"]")); - if (null !== input) { - list.push(input); - } - }); - return list; - } - - /** - * Updates all dependent elements with the given value. - * - * @param {string} value - The value to update the dependent elements with. - */ - }, { - key: "updateAllDependentElements", - value: function updateAllDependentElements(value) { - this.data.propagateInputs.forEach(function (input) { - input.value = value; - }); - this.data.propagateInputs[0].dispatchEvent(this.data.changeEvent); - } - }]); -}(); - - -/***/ }), - -/***/ "./node_modules/memize/index.js": -/*!**************************************!*\ - !*** ./node_modules/memize/index.js ***! - \**************************************/ -/***/ ((module) => { - -/** - * Memize options object. - * - * @typedef MemizeOptions - * - * @property {number} [maxSize] Maximum size of the cache. - */ - -/** - * Internal cache entry. - * - * @typedef MemizeCacheNode - * - * @property {?MemizeCacheNode|undefined} [prev] Previous node. - * @property {?MemizeCacheNode|undefined} [next] Next node. - * @property {Array<*>} args Function arguments for cache - * entry. - * @property {*} val Function result. - */ - -/** - * Properties of the enhanced function for controlling cache. - * - * @typedef MemizeMemoizedFunction - * - * @property {()=>void} clear Clear the cache. - */ - -/** - * Accepts a function to be memoized, and returns a new memoized function, with - * optional options. - * - * @template {Function} F - * - * @param {F} fn Function to memoize. - * @param {MemizeOptions} [options] Options object. - * - * @return {F & MemizeMemoizedFunction} Memoized function. - */ -function memize( fn, options ) { - var size = 0; - - /** @type {?MemizeCacheNode|undefined} */ - var head; - - /** @type {?MemizeCacheNode|undefined} */ - var tail; - - options = options || {}; - - function memoized( /* ...args */ ) { - var node = head, - len = arguments.length, - args, i; - - searchCache: while ( node ) { - // Perform a shallow equality test to confirm that whether the node - // under test is a candidate for the arguments passed. Two arrays - // are shallowly equal if their length matches and each entry is - // strictly equal between the two sets. Avoid abstracting to a - // function which could incur an arguments leaking deoptimization. - - // Check whether node arguments match arguments length - if ( node.args.length !== arguments.length ) { - node = node.next; - continue; - } - - // Check whether node arguments match arguments values - for ( i = 0; i < len; i++ ) { - if ( node.args[ i ] !== arguments[ i ] ) { - node = node.next; - continue searchCache; - } - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== head ) { - // As tail, shift to previous. Must only shift if not also - // head, since if both head and tail, there is no previous. - if ( node === tail ) { - tail = node.prev; - } - - // Adjust siblings to point to each other. If node was tail, - // this also handles new tail's empty `next` assignment. - /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = head; - node.prev = null; - /** @type {MemizeCacheNode} */ ( head ).prev = node; - head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - // Create a copy of arguments (avoid leaking deoptimization) - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - node = { - args: args, - - // Generate the result from original function - val: fn.apply( null, args ), - }; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( head ) { - head.prev = node; - node.next = head; - } else { - // If no head, follows that there's no tail (at initial or reset) - tail = node; - } - - // Trim tail if we're reached max size and are pending cache insertion - if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) { - tail = /** @type {MemizeCacheNode} */ ( tail ).prev; - /** @type {MemizeCacheNode} */ ( tail ).next = null; - } else { - size++; - } - - head = node; - - return node.val; - } - - memoized.clear = function() { - head = null; - tail = null; - size = 0; - }; - - if ( false ) {} - - // Ignore reason: There's not a clear solution to create an intersection of - // the function with additional properties, where the goal is to retain the - // function signature of the incoming argument and add control properties - // on the return value. - - // @ts-ignore - return memoized; -} - -module.exports = memize; - - -/***/ }), - -/***/ "./node_modules/sprintf-js/src/sprintf.js": -/*!************************************************!*\ - !*** ./node_modules/sprintf-js/src/sprintf.js ***! - \************************************************/ -/***/ ((module, exports, __webpack_require__) => { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[+-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (typeof parse_tree[i] === 'object') { - ph = parse_tree[i] // convenience purposes only - if (ph.keys) { // keyword argument - arg = argv[cursor] - for (k = 0; k < ph.keys.length; k++) { - if (arg == undefined) { - throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) - } - arg = arg[ph.keys[k]] - } - } - else if (ph.param_no) { // positional argument (explicit) - arg = argv[ph.param_no] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(ph.type)) { - is_positive = arg >= 0 - } - - switch (ph.type) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) - break - case 'e': - arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() - break - case 'f': - arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) - break - case 'g': - arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 't': - arg = String(!!arg) - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (ph.precision ? arg.substring(0, ph.precision) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(ph.type)) { - output += arg - } - else { - if (re.number.test(ph.type) && (!is_positive || ph.sign)) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' - pad_length = ph.width - (sign + arg).length - pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - - parse_tree.push( - { - placeholder: match[0], - param_no: match[1], - keys: match[2], - sign: match[3], - pad_char: match[4], - align: match[5], - width: match[6], - precision: match[7], - type: match[8] - } - ) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}(); // eslint-disable-line - - -/***/ }), - -/***/ "./node_modules/tannin/index.js": -/*!**************************************!*\ - !*** ./node_modules/tannin/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Tannin) -/* harmony export */ }); -/* harmony import */ var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tannin/plural-forms */ "./node_modules/@tannin/plural-forms/index.js"); - - -/** - * Tannin constructor options. - * - * @typedef {Object} TanninOptions - * - * @property {string} [contextDelimiter] Joiner in string lookup with context. - * @property {Function} [onMissingKey] Callback to invoke when key missing. - */ - -/** - * Domain metadata. - * - * @typedef {Object} TanninDomainMetadata - * - * @property {string} [domain] Domain name. - * @property {string} [lang] Language code. - * @property {(string|Function)} [plural_forms] Plural forms expression or - * function evaluator. - */ - -/** - * Domain translation pair respectively representing the singular and plural - * translation. - * - * @typedef {[string,string]} TanninTranslation - */ - -/** - * Locale data domain. The key is used as reference for lookup, the value an - * array of two string entries respectively representing the singular and plural - * translation. - * - * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain - */ - -/** - * Jed-formatted locale data. - * - * @see http://messageformat.github.io/Jed/ - * - * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData - */ - -/** - * Default Tannin constructor options. - * - * @type {TanninOptions} - */ -var DEFAULT_OPTIONS = { - contextDelimiter: '\u0004', - onMissingKey: null, -}; - -/** - * Given a specific locale data's config `plural_forms` value, returns the - * expression. - * - * @example - * - * ``` - * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' - * ``` - * - * @param {string} pf Locale data plural forms. - * - * @return {string} Plural forms expression. - */ -function getPluralExpression( pf ) { - var parts, i, part; - - parts = pf.split( ';' ); - - for ( i = 0; i < parts.length; i++ ) { - part = parts[ i ].trim(); - if ( part.indexOf( 'plural=' ) === 0 ) { - return part.substr( 7 ); - } - } -} - -/** - * Tannin constructor. - * - * @class - * - * @param {TanninLocaleData} data Jed-formatted locale data. - * @param {TanninOptions} [options] Tannin options. - */ -function Tannin( data, options ) { - var key; - - /** - * Jed-formatted locale data. - * - * @name Tannin#data - * @type {TanninLocaleData} - */ - this.data = data; - - /** - * Plural forms function cache, keyed by plural forms string. - * - * @name Tannin#pluralForms - * @type {Object} - */ - this.pluralForms = {}; - - /** - * Effective options for instance, including defaults. - * - * @name Tannin#options - * @type {TanninOptions} - */ - this.options = {}; - - for ( key in DEFAULT_OPTIONS ) { - this.options[ key ] = options !== undefined && key in options - ? options[ key ] - : DEFAULT_OPTIONS[ key ]; - } -} - -/** - * Returns the plural form index for the given domain and value. - * - * @param {string} domain Domain on which to calculate plural form. - * @param {number} n Value for which plural form is to be calculated. - * - * @return {number} Plural form index. - */ -Tannin.prototype.getPluralForm = function( domain, n ) { - var getPluralForm = this.pluralForms[ domain ], - config, plural, pf; - - if ( ! getPluralForm ) { - config = this.data[ domain ][ '' ]; - - pf = ( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - if ( typeof pf !== 'function' ) { - plural = getPluralExpression( - config[ 'Plural-Forms' ] || - config[ 'plural-forms' ] || - // Ignore reason: As known, there's no way to document the empty - // string property on a key to guarantee this as metadata. - // @ts-ignore - config.plural_forms - ); - - pf = (0,_tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])( plural ); - } - - getPluralForm = this.pluralForms[ domain ] = pf; - } - - return getPluralForm( n ); -}; - -/** - * Translate a string. - * - * @param {string} domain Translation domain. - * @param {string|void} context Context distinguishing terms of the same name. - * @param {string} singular Primary key for translation lookup. - * @param {string=} plural Fallback value used for non-zero plural - * form index. - * @param {number=} n Value to use in calculating plural form. - * - * @return {string} Translated string. - */ -Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { - var index, key, entry; - - if ( n === undefined ) { - // Default to singular. - index = 0; - } else { - // Find index by evaluating plural form for value. - index = this.getPluralForm( domain, n ); - } - - key = singular; - - // If provided, context is prepended to key with delimiter. - if ( context ) { - key = context + this.options.contextDelimiter + singular; - } - - entry = this.data[ domain ][ key ]; - - // Verify not only that entry exists, but that the intended index is within - // range and non-empty. - if ( entry && entry[ index ] ) { - return entry[ index ]; - } - - if ( this.options.onMissingKey ) { - this.options.onMissingKey( singular, domain ); - } - - // If entry not found, fall back to singular vs. plural with zero index - // representing the singular value. - return index === 0 ? singular : plural; -}; - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArray) -/* harmony export */ }); -function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableSpread) -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _toConsumableArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(r) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*************************************************************************************************************!*\ - !*** ./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \****************************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!********************************!*\ - !*** ./js/src/admin/styles.js ***! - \********************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "./node_modules/@wordpress/i18n/build-module/index.js"); -/* harmony import */ var _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/dependent-updater-component */ "./js/src/admin/components/dependent-updater-component.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } - - - -/** - * Represents the frmStyleOptions class. - * - * @class - */ -var frmStyleOptions = /*#__PURE__*/function () { - function frmStyleOptions() { - _classCallCheck(this, frmStyleOptions); - this.success = frmDom.success; - this.init(); - this.initHover(); - } - - /** - * Init the dependent - */ - return _createClass(frmStyleOptions, [{ - key: "init", - value: function init() { - this.initColorPickerDependentUpdaterComponents(); - this.initStyleClassCopyToClipboard((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The class name has been copied.', 'formidable')); - } - - /** - * Initializes the color picker dependent updater components. - * Retrieves the components and elements, and adds them to the elements array. - * Adds an action hook for the frm_style_options_color_change event. - */ - }, { - key: "initColorPickerDependentUpdaterComponents", - value: function initColorPickerDependentUpdaterComponents() { - var components = document.querySelectorAll('.frm-style-dependent-updater-component.frm-colorpicker'); - var elements = []; - components.forEach(function (component) { - var element = component.querySelector('input.hex'); - var id = 'undefined' !== typeof element ? element.getAttribute('id') : null; - if (null !== id) { - elements.push({ - id: id, - dependentUpdaterClass: new _components_dependent_updater_component__WEBPACK_IMPORTED_MODULE_1__["default"](component, 'colorpicker') - }); - } - }); - wp.hooks.addAction('frm_style_options_color_change', 'formidable', function (_ref) { - var event = _ref.event, - value = _ref.value; - var container = event.target.closest('.wp-picker-container'); - var id = event.target.getAttribute('id'); - container.querySelector('.wp-color-result-text').innerText = value; - elements.forEach(function (element) { - if (element.id === id) { - element.dependentUpdaterClass.updateAllDependentElements(value); - } - }); - }); - } - - /** - * Initializes the hover functionality for the style options. - * Creates a hover element and appends it to the settingsWrapper. - * Adds event listeners for mouseover and click events. - */ - }, { - key: "initHover", - value: function initHover() { - var settingsWrapper = document.querySelector('.frm-right-panel .styling_settings .accordion-container'); - if (null === settingsWrapper) { - return; - } - var hoverElement = document.createElement('div'); - hoverElement.classList.add('frm_hidden'); - hoverElement.classList.add('frm-style-settings-hover'); - settingsWrapper.appendChild(hoverElement); - var styleOptionsMenu = settingsWrapper.querySelector(':scope > ul'); - styleOptionsMenu.querySelectorAll(':scope > li').forEach(function (item) { - item.querySelector('h3').addEventListener('mouseover', function (event) { - hoverElement.style.transform = "translateY(".concat(event.target.closest('li').offsetTop, "px)"); - hoverElement.classList.add('frm-animating'); - hoverElement.classList.remove('frm_hidden'); - setTimeout(function () { - hoverElement.classList.remove('frm-animating'); - }, 250); - }); - }); - var accordionitems = document.querySelectorAll('#frm_style_sidebar .accordion-section h3'); - accordionitems.forEach(function (item) { - item.addEventListener('click', function () { - hoverElement.classList.add('frm_hidden'); - }); - }); - } - - /** - * Initializes the copy to clipboard functionality for style classes. - * Adds a click event listener to the copyLabel element. - * Copies the class name to the clipboard and displays a success message. - * - * @param {string} successMessage - The success message to display. - */ - }, { - key: "initStyleClassCopyToClipboard", - value: function initStyleClassCopyToClipboard(successMessage) { - var _this = this; - var copyLabel = document.querySelector('.frm-copy-text'); - copyLabel.addEventListener('click', function (event) { - var className = event.currentTarget.innerText; - navigator.clipboard.writeText(className).then(function () { - _this.success(successMessage); - }); - }); - } - }]); -}(); -new frmStyleOptions(); -})(); - -/******/ })() -; -//# sourceMappingURL=formidable_styles.js.map \ No newline at end of file +(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,i=0;function o(){var o,a,s=n,c=arguments.length;t:for(;s;){if(s.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(t){return function(t,e){var n,r,a,s,c,u,l,f,p,d=1,h=t.length,v="";for(r=0;r=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?p="":(p=f?"+":"-",n=n.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",l=s.width-(p+n).length,c=s.width&&l>0?u.repeat(l):"",v+=s.align?p+n+c:"0"===u?p+c+n:c+p+n)}return v}(function(t){if(s[t])return s[t];for(var e,n=t,r=[],o=0;n;){if(null!==(e=i.text.exec(n)))r.push(e[0]);else if(null!==(e=i.modulo.exec(n)))r.push("%");else{if(null===(e=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){o|=1;var a=[],c=e[2],u=[];if(null===(u=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=i.key_access.exec(c)))a.push(u[1]);else{if(null===(u=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(u[1])}e[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return s[t]=r}(t),arguments)}function a(t,e){return o.apply(null,[t].concat(e||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(r=function(){return{sprintf:o,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t,e,r,i,o=n(616),a=n.n(o);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}n(604),a()(console.error),t={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},e=["(","?"],r={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var u={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var l={contextDelimiter:"",onMissingKey:null};function f(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},l)this.options[n]=void 0!==e&&n in e?e[n]:l[n]}function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e=0||t[c]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(m(n)&&y(r))if("function"==typeof i)if("number"==typeof o){var s={callback:i,priority:o,namespace:r};if(a[n]){var c,u=a[n].handlers;for(c=u.length;c>0&&!(o>=u[c-1].priority);c--);c===u.length?u[c]=s:u.splice(c,0,s),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=c&&t.currentIndex++}))}else a[n]={handlers:[s],runs:0};"hookAdded"!==n&&t.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.")}},g=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,i){var o=t[e];if(m(r)&&(n||y(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,c=function(t){s[t].namespace===i&&(s.splice(t,1),a++,o.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},u=s.length-1;u>=0;u--)c(u);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,i),a}}},_=function(t,e){return function(n,r){var i=t[e];return void 0!==r?n in i&&i[n].handlers.some((function(t){return t.namespace===r})):n in i}},x=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var i=t[e];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),c=1;c1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=d(d(d({},h),r.data[e]),t),r.data[e][""]=d(d({},h[""]),r.data[e][""])},s=function(t,e){a(t,e),o()},c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=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[t]||a(void 0,t),r.dcnpgettext(t,e,n,i,o)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},l=function(t,e,r){var i=c(r,e,t);return n?(i=n.applyFilters("i18n.gettext_with_context",i,t,e,r),n.applyFilters("i18n.gettext_with_context_"+u(r),i,t,e,r)):i};if(n){var p=function(t){v.test(t)&&o()};n.addAction("hookAdded","core/i18n",p),n.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:s,resetLocaleData:function(t,e){r.data={},r.pluralForms={},s(t,e)},subscribe:function(t){return i.add(t),function(){return i.delete(t)}},__:function(t,e){var r=c(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+u(e),r,t,e)):r},_x:l,_n:function(t,e,r,i){var o=c(i,void 0,t,e,r);return n?(o=n.applyFilters("i18n.ngettext",o,t,e,r,i),n.applyFilters("i18n.ngettext_"+u(i),o,t,e,r,i)):o},_nx:function(t,e,r,i,o){var a=c(o,i,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,i,o),n.applyFilters("i18n.ngettext_with_context_"+u(o),a,t,e,r,i,o)):a},isRTL:function(){return"rtl"===l("ltr","text direction")},hasTranslation:function(t,e,i){var o,a,s=e?e+""+t:t,c=!(null===(o=r.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[s]);return n&&(c=n.applyFilters("i18n.has_translation",c,t,e,i),c=n.applyFilters("i18n.has_translation_"+u(i),c,t,e,i)),c}}}(0,0,A));F.getLocaleData.bind(F),F.setLocaleData.bind(F),F.resetLocaleData.bind(F),F.subscribe.bind(F);var j=F.__.bind(F);function E(t){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function O(t,e){for(var n=0;n ul").querySelectorAll(":scope > li").forEach((function(t){t.querySelector("h3").addEventListener("mouseover",(function(t){e.style.transform="translateY(".concat(t.target.closest("li").offsetTop,"px)"),e.classList.add("frm-animating"),e.classList.remove("frm_hidden"),setTimeout((function(){e.classList.remove("frm-animating")}),250)}))})),document.querySelectorAll("#frm_style_sidebar .accordion-section h3").forEach((function(t){t.addEventListener("click",(function(){e.classList.add("frm_hidden")}))}))}}},{key:"initStyleClassCopyToClipboard",value:function(t){var e=this;document.querySelector(".frm-copy-text").addEventListener("click",(function(n){var r=n.currentTarget.innerText;navigator.clipboard.writeText(r).then((function(){e.success(t)}))}))}}])&&I(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}())})()})(); \ No newline at end of file diff --git a/js/onboarding-wizard.js b/js/onboarding-wizard.js index a85b806935..29de947775 100644 --- a/js/onboarding-wizard.js +++ b/js/onboarding-wizard.js @@ -1,1854 +1,2 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@wordpress/dom-ready/build-module/index.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@wordpress/dom-ready/build-module/index.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ domReady) -/* harmony export */ }); -/** - * @typedef {() => void} Callback - * - * TODO: Remove this typedef and inline `() => void` type. - * - * This typedef is used so that a descriptive type is provided in our - * automatically generated documentation. - * - * An in-line type `() => void` would be preferable, but the generated - * documentation is `null` in that case. - * - * @see https://github.com/WordPress/gutenberg/issues/18045 - */ - -/** - * Specify a function to execute when the DOM is fully loaded. - * - * @param {Callback} callback A function to execute after the DOM is ready. - * - * @example - * ```js - * import domReady from '@wordpress/dom-ready'; - * - * domReady( function() { - * //do something after DOM loads. - * } ); - * ``` - * - * @return {void} - */ -function domReady(callback) { - if (typeof document === 'undefined') { - return; - } - - if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly. - document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly. - ) { - return void callback(); - } // DOMContentLoaded has not fired yet, delay callback until then. - - - document.addEventListener('DOMContentLoaded', callback); -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./js/src/core/constants.js": -/*!**********************************!*\ - !*** ./js/src/core/constants.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CHECKED_CLASS: () => (/* binding */ CHECKED_CLASS), -/* harmony export */ CURRENT_CLASS: () => (/* binding */ CURRENT_CLASS), -/* harmony export */ DISABLED_CLASS: () => (/* binding */ DISABLED_CLASS), -/* harmony export */ HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS), -/* harmony export */ HIDE_JS_CLASS: () => (/* binding */ HIDE_JS_CLASS), -/* harmony export */ HOOKS: () => (/* binding */ HOOKS), -/* harmony export */ PLUGIN_URL: () => (/* binding */ PLUGIN_URL), -/* harmony export */ SINGLE_SETTINGS_CLASS: () => (/* binding */ SINGLE_SETTINGS_CLASS), -/* harmony export */ nonce: () => (/* binding */ nonce) -/* harmony export */ }); -var _window$frmGlobal = window.frmGlobal, - PLUGIN_URL = _window$frmGlobal.url, - nonce = _window$frmGlobal.nonce; - -var HIDDEN_CLASS = 'frm_hidden'; -var DISABLED_CLASS = 'frm_disabled'; -var HIDE_JS_CLASS = 'frm-hide-js'; -var CURRENT_CLASS = 'frm-current'; -var CHECKED_CLASS = 'frm-checked'; -var SINGLE_SETTINGS_CLASS = 'frm-single-settings'; -var HOOKS = { - SHOW_FIELD_SETTINGS: 'frmShowedFieldSettings' -}; - -/***/ }), - -/***/ "./js/src/core/events/index.js": -/*!*************************************!*\ - !*** ./js/src/core/events/index.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addOptionBoxEvents: () => (/* reexport safe */ _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents) -/* harmony export */ }); -/* harmony import */ var _optionBoxListener__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./optionBoxListener */ "./js/src/core/events/optionBoxListener.js"); - - -/***/ }), - -/***/ "./js/src/core/events/optionBoxListener.js": -/*!*************************************************!*\ - !*** ./js/src/core/events/optionBoxListener.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addOptionBoxEvents: () => (/* binding */ addOptionBoxEvents) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - -var OPTION_BOX_CLASS = '.frm-option-box'; - -/** - * Manages event handling for an option-box. - * - * @return {void} - */ -function addOptionBoxEvents() { - var optionBoxes = document.querySelectorAll(OPTION_BOX_CLASS); - optionBoxes.forEach(function (optionBox) { - optionBox.addEventListener('click', onOptionBoxClick); - }); -} - -/** - * Handles the click event on a option box item. - * - * @private - * @param {Event} event The click event object. - */ -function onOptionBoxClick(event) { - if (event.target.tagName.toLowerCase() !== 'input') { - return; - } - var optionBox = event.currentTarget.closest(OPTION_BOX_CLASS); - optionBox.classList.toggle(core_constants__WEBPACK_IMPORTED_MODULE_0__.CHECKED_CLASS); -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageElements.js": -/*!***************************************************!*\ - !*** ./js/src/core/factory/createPageElements.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* binding */ createPageElements) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page elements manager. - * - * @param {Object} [initialElements={}] An object containing initial DOM elements. - * @throws {Error} Throws an error if the `initialElements` is not an object. - * @return {Object} An object with methods to get and add elements. - */ -function createPageElements() { - var initialElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialElements) !== 'object' || initialElements === null) { - throw new Error('createPageElements: initialElements must be a non-null object'); - } - var elements = initialElements; - - /** - * Retrieve the initialized essential DOM elements. - * - * @return {Object} The initialized elements object. - */ - function getElements() { - return elements; - } - - /** - * Add new elements to the elements object. - * - * @param {Object} newElements An object containing new elements to be added. - * @throws {Error} Throws an error if the `newElements` is not a non-null object. - * @return {void} Updates the elements object by merging the new elements into it. - */ - function addElements(newElements) { - if (_typeof(newElements) !== 'object' || newElements === null) { - throw new Error('addElements: newElements must be a non-null object'); - } - elements = _objectSpread(_objectSpread({}, elements), newElements); - } - return { - getElements: getElements, - addElements: addElements - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/createPageState.js": -/*!************************************************!*\ - !*** ./js/src/core/factory/createPageState.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageState: () => (/* binding */ createPageState) -/* harmony export */ }); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/** - * Creates a page state manager. - * - * @param {Object} [initialState={}] An object containing the initial state. - * @throws {Error} Throws an error if the `initialState` is not a plain object. - * @return {Object} An object with methods to initialize, get, and set the page state. - */ -function createPageState() { - var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (_typeof(initialState) !== 'object' || initialState === null) { - throw new Error('createPageState: initialState must be a non-null object'); - } - var state = initialState; - - /** - * Returns the current page state. - * - * @return {Object|null} The current state of the page or null if not initialized. - */ - var getState = function getState() { - return state; - }; - - /** - * Returns a specific property from the current page state. - * - * @param {string} propertyName The name of the property to retrieve. - * @return {*} The value of the specified property, or null if it doesn't exist. - */ - var getSingleState = function getSingleState(propertyName) { - var value = Reflect.get(state, propertyName); - - // We convert `undefined` to `null` for a consistent API. - // This makes it easier for users to handle the results since all missing properties return `null`. - return value === undefined ? null : value; - }; - - /** - * Updates the page state with new values. - * - * @param {Object} newState The new values to update the state with. - * @throws {Error} Throws an error if `newState` is not a plain object. - * @return {void} - */ - var setState = function setState(newState) { - if (_typeof(newState) !== 'object' || newState === null) { - throw new Error('setState: newState must be a non-null object'); - } - state = _objectSpread(_objectSpread({}, state), newState); - }; - - /** - * Updates a specific property in the page state with a new value. - * - * @param {string} propertyName The name of the property to update. - * @param {*} value The new value to set for the property. - * @return {void} - */ - var setSingleState = function setSingleState(propertyName, value) { - if (Reflect.has(state, propertyName)) { - Reflect.set(state, propertyName, value); - } - }; - return { - getState: getState, - getSingleState: getSingleState, - setState: setState, - setSingleState: setSingleState - }; -} - -/***/ }), - -/***/ "./js/src/core/factory/index.js": -/*!**************************************!*\ - !*** ./js/src/core/factory/index.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createPageElements: () => (/* reexport safe */ _createPageElements__WEBPACK_IMPORTED_MODULE_0__.createPageElements), -/* harmony export */ createPageState: () => (/* reexport safe */ _createPageState__WEBPACK_IMPORTED_MODULE_1__.createPageState) -/* harmony export */ }); -/* harmony import */ var _createPageElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createPageElements */ "./js/src/core/factory/createPageElements.js"); -/* harmony import */ var _createPageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createPageState */ "./js/src/core/factory/createPageState.js"); - - - -/***/ }), - -/***/ "./js/src/core/utils/animation.js": -/*!****************************************!*\ - !*** ./js/src/core/utils/animation.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ frmAnimate: () => (/* binding */ frmAnimate) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var frmAnimate = /*#__PURE__*/function () { - /** - * Construct frmAnimate - * - * @param {Element|Element[]} elements The elements to animate. - * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d - */ - function frmAnimate(elements) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default'; - _classCallCheck(this, frmAnimate); - this.elements = elements; - this.type = type; - this.prepareElements(); - } - - /** - * Init animation - fadeIn. - * Requires this.type = 'default'; - * ex: new frmAnimate( elements ).fadeIn(); - */ - return _createClass(frmAnimate, [{ - key: "fadeIn", - value: function fadeIn() { - var _this = this; - this.applyStyleToElements(function (element) { - element.classList.add('frm-fadein-up'); - element.addEventListener('animationend', function () { - _this.resetOpacity(); - element.classList.remove('frm-fadein-up'); - }, { - once: true - }); - }); - } - - /** - * Init animation - cascadeFadeIn. - * Requires this.type = 'cascade'|'cascade-3d'; - * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn(); - * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn(); - * - * @param {number} delay The transition delay value. - */ - }, { - key: "cascadeFadeIn", - value: function cascadeFadeIn() { - var _this2 = this; - var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.03; - setTimeout(function () { - _this2.applyStyleToElements(function (element, index) { - element.classList.remove('frm-animate'); - element.style.transitionDelay = (index + 1) * delay + 's'; - }); - }, 200); - } - }, { - key: "prepareElements", - value: function prepareElements() { - var _this3 = this; - this.applyStyleToElements(function (element) { - if ('default' === _this3.type) { - element.style.opacity = '0.0'; - } - if ('cascade' === _this3.type) { - element.classList.add('frm-init-cascade-animation'); - } - if ('cascade-3d' === _this3.type) { - element.classList.add('frm-init-fadein-3d'); - } - element.classList.add('frm-animate'); - }); - } - }, { - key: "resetOpacity", - value: function resetOpacity() { - this.applyStyleToElements(function (element) { - return element.style.opacity = '1.0'; - }); - } - }, { - key: "applyStyleToElements", - value: function applyStyleToElements(callback) { - if (this.elements instanceof Element) { - callback(this.elements, 0); - return; - } - if (0 < this.elements.length) { - this.elements.forEach(function (element, index) { - return callback(element, index); - }); - } - } - }]); -}(); - -/***/ }), - -/***/ "./js/src/core/utils/async.js": -/*!************************************!*\ - !*** ./js/src/core/utils/async.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* binding */ addToRequestQueue) -/* harmony export */ }); -// Initialize lastPromise with a resolved promise as the starting point for the queue -var lastPromise = Promise.resolve(); - -/** - * Adds a task to the request queue. - * - * @param {function(): Promise} task A function that returns a promise. - * @return {Promise} The new last promise in the queue. - */ -var addToRequestQueue = function addToRequestQueue(task) { - return lastPromise = lastPromise.then(task).catch(task); -}; - -/***/ }), - -/***/ "./js/src/core/utils/error.js": -/*!************************************!*\ - !*** ./js/src/core/utils/error.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ showFormError: () => (/* binding */ showFormError) -/* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ "./js/src/core/utils/index.js"); -/** - * Internal dependencies - */ - - -/** - * Displays form validation error messages. - * - * @param {string} inputId The ID selector for the input field with the error. - * @param {string} errorId The ID selector for the error message display element. - * @param {string} type The categorization of the error (e.g., "invalid", "empty"). - * @param {string} [message] Optional. The specific error message to display. - * @return {void} - */ -var showFormError = function showFormError(inputId, errorId, type, message) { - var inputElement = document.querySelector(inputId); - var errorElement = document.querySelector(errorId); - if (!inputElement || !errorElement) { - console.warn('showFormError: Unable to find input or error element.'); - return; - } - - // If a message is provided, update the span element's text that matches the error type - if (message) { - var span = errorElement.querySelector("span[frm-error=\"".concat(type, "\"]")); - if (span) { - span.textContent = message; - } - } - - // Assign the error type and make the error message visible - errorElement.setAttribute('frm-error', type); - (0,___WEBPACK_IMPORTED_MODULE_0__.show)(errorElement); - - // Hide the error message when the user starts typing in the faulty input field - inputElement.addEventListener('keyup', function () { - (0,___WEBPACK_IMPORTED_MODULE_0__.hide)(errorElement); - }, { - once: true - }); -}; - -/***/ }), - -/***/ "./js/src/core/utils/event.js": -/*!************************************!*\ - !*** ./js/src/core/utils/event.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ documentOn: () => (/* binding */ documentOn), -/* harmony export */ onClickPreventDefault: () => (/* binding */ onClickPreventDefault) -/* harmony export */ }); -var _window$frmDom$util = window.frmDom.util, - onClickPreventDefault = _window$frmDom$util.onClickPreventDefault, - documentOn = _window$frmDom$util.documentOn; - - -/***/ }), - -/***/ "./js/src/core/utils/index.js": -/*!************************************!*\ - !*** ./js/src/core/utils/index.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addToRequestQueue: () => (/* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue), -/* harmony export */ documentOn: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.documentOn), -/* harmony export */ frmAnimate: () => (/* reexport safe */ _animation__WEBPACK_IMPORTED_MODULE_0__.frmAnimate), -/* harmony export */ getQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.getQueryParam), -/* harmony export */ hasQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.hasQueryParam), -/* harmony export */ hide: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hide), -/* harmony export */ hideElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.hideElements), -/* harmony export */ isEmptyObject: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement), -/* harmony export */ isValidEmail: () => (/* reexport safe */ _validation__WEBPACK_IMPORTED_MODULE_5__.isValidEmail), -/* harmony export */ isVisible: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.isVisible), -/* harmony export */ onClickPreventDefault: () => (/* reexport safe */ _event__WEBPACK_IMPORTED_MODULE_3__.onClickPreventDefault), -/* harmony export */ removeParamFromHistory: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.removeQueryParam), -/* harmony export */ setQueryParam: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_4__.setQueryParam), -/* harmony export */ show: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.show), -/* harmony export */ showElements: () => (/* reexport safe */ _visibility__WEBPACK_IMPORTED_MODULE_6__.showElements), -/* harmony export */ showFormError: () => (/* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_2__.showFormError) -/* harmony export */ }); -/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation */ "./js/src/core/utils/animation.js"); -/* harmony import */ var _async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./async */ "./js/src/core/utils/async.js"); -/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error */ "./js/src/core/utils/error.js"); -/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event */ "./js/src/core/utils/event.js"); -/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url */ "./js/src/core/utils/url.js"); -/* harmony import */ var _validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./validation */ "./js/src/core/utils/validation.js"); -/* harmony import */ var _visibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility */ "./js/src/core/utils/visibility.js"); - - - - - - - - -/***/ }), - -/***/ "./js/src/core/utils/url.js": -/*!**********************************!*\ - !*** ./js/src/core/utils/url.js ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getQueryParam: () => (/* binding */ getQueryParam), -/* harmony export */ hasQueryParam: () => (/* binding */ hasQueryParam), -/* harmony export */ removeParamFromHistory: () => (/* binding */ removeParamFromHistory), -/* harmony export */ removeQueryParam: () => (/* binding */ removeQueryParam), -/* harmony export */ setQueryParam: () => (/* binding */ setQueryParam) -/* harmony export */ }); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * Initializes URL and URLSearchParams objects from the current window's location - */ -var url = new URL(window.location.href); -var urlParams = url.searchParams; - -/** - * Gets the value of a specified query parameter from the current URL. - * - * @param {string} paramName The name of the query parameter to retrieve. - * @return {string|null} The value associated with the specified query parameter name, or null if not found. - */ -var getQueryParam = function getQueryParam(paramName) { - return urlParams.get(paramName); -}; - -/** - * Removes a query parameter from the current URL and returns the updated URL string. - * - * @param {string} paramName The name of the query parameter to remove. - * @return {string} The updated URL string. - */ -var removeQueryParam = function removeQueryParam(paramName) { - urlParams.delete(paramName); - url.search = urlParams.toString(); - return url.toString(); -}; - -/** - * Sets the value of a query parameter in the current URL and optionally updates the browser's history state. - * - * @param {string} paramName The name of the query parameter to set. - * @param {string} paramValue The value to set for the query parameter. - * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'. - * @return {string} The updated URL string. - */ -var setQueryParam = function setQueryParam(paramName, paramValue) { - var updateMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'pushState'; - urlParams.set(paramName, paramValue); - url.search = urlParams.toString(); - if (['pushState', 'replaceState'].includes(updateMethod)) { - var state = _defineProperty({}, paramName, paramValue); - window.history[updateMethod](state, '', url); - } - return url.toString(); -}; - -/** - * Checks if a query parameter exists in the current URL. - * - * @param {string} paramName The name of the query parameter to check. - * @return {boolean} True if the query parameter exists, otherwise false. - */ -var hasQueryParam = function hasQueryParam(paramName) { - return urlParams.has(paramName); -}; - -/** - * Removes a query parameter and updates history with replaceState. - * - * @param {string} paramName The query parameter to remove. - * @return {void} - */ -var removeParamFromHistory = function removeParamFromHistory(paramName) { - return history.replaceState({}, '', removeQueryParam(paramName)); -}; - -/***/ }), - -/***/ "./js/src/core/utils/validation.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/validation.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject), -/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement), -/* harmony export */ isValidEmail: () => (/* binding */ isValidEmail) -/* harmony export */ }); -/** - * Validates an email address using a regular expression. - * - * @param {string} email The email address to validate. - * @return {boolean} True if the email address is valid, otherwise false. - */ -var isValidEmail = function isValidEmail(email) { - return typeof 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; -}; - -/** - * Validates if the given element is an instance of HTMLElement. - * - * @param {any} element Element to be checked. - * @return {boolean} True if it's an HTMLElement, otherwise false. - */ -var isHTMLElement = function isHTMLElement(element) { - return element instanceof HTMLElement || console.warn('Invalid argument: Element must be an instance of HTMLElement') || false; -}; - -/** - * Checks if the given object is empty. - * - * @param {Object} obj The object to check. - * @return {boolean} True if the object is empty, otherwise false. - */ -var isEmptyObject = function isEmptyObject(obj) { - return Object.keys(obj).length === 0 && obj.constructor === Object; -}; - -/***/ }), - -/***/ "./js/src/core/utils/visibility.js": -/*!*****************************************!*\ - !*** ./js/src/core/utils/visibility.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hide: () => (/* binding */ hide), -/* harmony export */ hideElements: () => (/* binding */ hideElements), -/* harmony export */ isVisible: () => (/* binding */ isVisible), -/* harmony export */ show: () => (/* binding */ show), -/* harmony export */ showElements: () => (/* binding */ showElements) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/** - * Internal dependencies - */ - - -/** - * Shows specified elements by removing the hidden class. - * - * @param {Array} elements An array of elements to show. - * @return {void} - */ -var showElements = function showElements(elements) { - var _Array$from; - return (_Array$from = Array.from(elements)) === null || _Array$from === void 0 ? void 0 : _Array$from.forEach(function (element) { - return show(element); - }); -}; - -/** - * Hides specified elements by adding the hidden class. - * - * @param {Array} elements An array of elements to hide. - * @return {void} - */ -var hideElements = function hideElements(elements) { - var _Array$from2; - return (_Array$from2 = Array.from(elements)) === null || _Array$from2 === void 0 ? void 0 : _Array$from2.forEach(function (element) { - return hide(element); - }); -}; - -/** - * Removes the hidden class to show the element. - * - * @param {Element} element The element to show. - * @return {void} - */ -var show = function show(element) { - return element === null || element === void 0 ? void 0 : element.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Adds the hidden class to hide the element. - * - * @param {Element} element The element to hide. - * @return {void} - */ -var hide = function hide(element) { - return element === null || element === void 0 ? void 0 : element.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.HIDDEN_CLASS); -}; - -/** - * Checks if an element is visible. - * - * @param {HTMLElement} element The HTML element to check for visibility. - * @return {boolean} Returns true if the element is visible, otherwise false. - */ -var isVisible = function isVisible(element) { - var styles = window.getComputedStyle(element); - return styles.getPropertyValue('display') !== 'none'; -}; - -/***/ }), - -/***/ "./js/src/onboarding-wizard/dataUtils/index.js": -/*!*****************************************************!*\ - !*** ./js/src/onboarding-wizard/dataUtils/index.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupUsageData: () => (/* reexport safe */ _setupUsageData__WEBPACK_IMPORTED_MODULE_0__["default"]) -/* harmony export */ }); -/* harmony import */ var _setupUsageData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupUsageData */ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js"); - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/dataUtils/setupUsageData.js": -/*!**************************************************************!*\ - !*** ./js/src/onboarding-wizard/dataUtils/setupUsageData.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/** - * Internal Dependencies - */ - - -/** - * Processes and submits usage data for the specified onboarding step. - * - * @param {string} processedStep The name of the step that has just been processed. - * @param {string} nextStepName The name of the next step in the onboarding process. - * @return {void} - */ -function setupUsageData(processedStep, nextStepName) { - var formData = processDataForStep(processedStep, nextStepName); - if (!formData) { - return; - } - - // Send the POST request - var doJsonPost = frmDom.ajax.doJsonPost; - doJsonPost('onboarding_setup_usage_data', formData); -} - -/** - * Processes onboarding step data and returns the corresponding FormData. - * - * @private - * @param {string} processedStep The name of the step that has just been processed. - * @param {string} nextStepName The name of the next step in the onboarding process. - * @return {FormData|null} The FormData to be submitted for the step, or null if there's no data. - */ -function processDataForStep(processedStep, nextStepName) { - var formData; - - // Append completed steps if moving to the success step - if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.SUCCESS === nextStepName || _shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.UNSUCCESSFUL === nextStepName) { - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), - processedSteps = _getState.processedSteps; - if (processedSteps.length > 1) { - if (!processedSteps.includes(nextStepName)) { - processedSteps.push(nextStepName); - } - formData = new FormData(); - formData.append('processed_steps', processedSteps.join(',')); - formData.append('completed_steps', true); - } - } - - // Append installed addons for the addon installation step - if (_shared__WEBPACK_IMPORTED_MODULE_0__.STEPS.INSTALL_ADDONS === processedStep) { - var _getState2 = (0,_shared__WEBPACK_IMPORTED_MODULE_0__.getState)(), - installedAddons = _getState2.installedAddons; - if (installedAddons.length > 0) { - var _formData; - formData = (_formData = formData) !== null && _formData !== void 0 ? _formData : new FormData(); - formData.append('installed_addons', installedAddons.join(',')); - } - } - return formData; -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setupUsageData); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/elements/elements.js": -/*!*******************************************************!*\ - !*** ./js/src/onboarding-wizard/elements/elements.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* binding */ addElements), -/* harmony export */ getElements: () => (/* binding */ getElements) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - -var _createPageElements = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageElements)({ - onboardingWizardPage: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-wizard-page")), - container: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-container")), - rootline: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-rootline")), - steps: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-step")), - skipStepButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-skip-step")), - backButtons: document.querySelectorAll(".".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-back-button")), - consentTrackingButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-consent-tracking")), - installAddonsButton: document.getElementById("".concat(_shared__WEBPACK_IMPORTED_MODULE_1__.PREFIX, "-install-addons-button")), - hiddenLicenseKeyInput: document.getElementById('frm-license-key') - }), - getElements = _createPageElements.getElements, - addElements = _createPageElements.addElements; - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/elements/index.js": -/*!****************************************************!*\ - !*** ./js/src/onboarding-wizard/elements/index.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.addElements), -/* harmony export */ getElements: () => (/* reexport safe */ _elements__WEBPACK_IMPORTED_MODULE_0__.getElements) -/* harmony export */ }); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elements */ "./js/src/onboarding-wizard/elements/elements.js"); - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/backButtonListener.js": -/*!***************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/backButtonListener.js ***! - \***************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Back" button. - * - * @return {void} - */ -function addBackButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - backButtons = _getElements.backButtons; - - // Attach click event listeners to each back buttons - backButtons.forEach(function (backButton) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(backButton, onBackButtonClick); - }); -} - -/** - * Handles the click event on a "Back" button. - * - * @private - * @return {void} - */ -var onBackButtonClick = function onBackButtonClick() { - (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToPrevStep)(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addBackButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js": -/*!**************************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/consentTrackingButtonListener.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Allow & Continue" button in the "Never miss an important update" step. - * - * @return {void} - */ -function addConsentTrackingButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - consentTrackingButton = _getElements.consentTrackingButton; - - // Attach click event listener - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(consentTrackingButton, onConsentTrackingButtonClick); -} - -/** - * Handles the click event on the "Allow & Continue" button in the "Never miss an important update" step. - * - * @private - * @return {void} - */ -var onConsentTrackingButtonClick = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { - var doJsonPost; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - doJsonPost = frmDom.ajax.doJsonPost; - doJsonPost('onboarding_consent_tracking', new FormData()).then(_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep); - case 2: - case "end": - return _context.stop(); - } - }, _callee); - })); - return function onConsentTrackingButtonClick() { - return _ref.apply(this, arguments); - }; -}(); -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addConsentTrackingButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/index.js": -/*!**************************************************!*\ - !*** ./js/src/onboarding-wizard/events/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ addEventListeners: () => (/* binding */ addEventListeners) -/* harmony export */ }); -/* harmony import */ var core_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/events */ "./js/src/core/events/index.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./skipStepButtonListener */ "./js/src/onboarding-wizard/events/skipStepButtonListener.js"); -/* harmony import */ var _backButtonListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backButtonListener */ "./js/src/onboarding-wizard/events/backButtonListener.js"); -/* harmony import */ var _consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./consentTrackingButtonListener */ "./js/src/onboarding-wizard/events/consentTrackingButtonListener.js"); -/* harmony import */ var _installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./installAddonsButtonListener */ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - - - -/** - * Attaches event listeners for handling user interactions. - * - * @return {void} - */ -function addEventListeners() { - // Add event handling for the "Skip" and "Back" buttons - (0,_skipStepButtonListener__WEBPACK_IMPORTED_MODULE_2__["default"])(); - (0,_backButtonListener__WEBPACK_IMPORTED_MODULE_3__["default"])(); - (0,_consentTrackingButtonListener__WEBPACK_IMPORTED_MODULE_4__["default"])(); - - // Add event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step - (0,_installAddonsButtonListener__WEBPACK_IMPORTED_MODULE_5__["default"])(); - // Add event handling for an option-box - (0,core_events__WEBPACK_IMPORTED_MODULE_0__.addOptionBoxEvents)(); -} - -/** - * Responds to browser navigation events (back/forward) by updating the UI to match the step indicated in the URL or history state. - * - * @param {PopStateEvent} event The event object associated with the navigation action. - * @return {void} - */ -window.addEventListener('popstate', function (event) { - var _event$state; - var stepName = ((_event$state = event.state) === null || _event$state === void 0 ? void 0 : _event$state.step) || (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.getQueryParam)('step'); - // Navigate to the specified step without adding to browser history - (0,_utils__WEBPACK_IMPORTED_MODULE_6__.navigateToStep)(stepName, 'replaceState'); -}); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/installAddonsButtonListener.js": -/*!************************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/installAddonsButtonListener.js ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - -/** - * Manages event handling for the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. - * - * @return {void} - */ -function addInstallAddonsButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_2__.getElements)(), - installAddonsButton = _getElements.installAddonsButton; - - // Attach click event listener - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.onClickPreventDefault)(installAddonsButton, onInstallAddonsButtonClick); -} - -/** - * Handles the click event on the "Install & Finish Setup" button in the "Install Formidable Add-ons" step. - * - * @private - * @param {Event} event The click event object. - * @return {void} - */ -var onInstallAddonsButtonClick = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) { - var addons, _getState, installedAddons, installAddonsButton, _iterator, _step, _loop; - return _regeneratorRuntime().wrap(function _callee$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - addons = document.querySelectorAll('.frm-option-box.frm-checked:not(.frm-disabled)'); - _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_3__.getState)(), installedAddons = _getState.installedAddons; - installAddonsButton = event.currentTarget; - installAddonsButton.classList.add('frm_loading_button'); - _iterator = _createForOfIteratorHelper(addons); - _context2.prev = 5; - _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() { - var addon, addonTitle; - return _regeneratorRuntime().wrap(function _loop$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - addon = _step.value; - _context.prev = 1; - _context.next = 4; - return (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.addToRequestQueue)(function () { - return installAddon(addon.getAttribute('rel'), addon.dataset); - }); - case 4: - // Capture addon title - addonTitle = addon.dataset.title; - if (!installedAddons.includes(addonTitle)) { - installedAddons.push(addonTitle); - } - _context.next = 11; - break; - case 8: - _context.prev = 8; - _context.t0 = _context["catch"](1); - console.error('An error occurred:', _context.t0); - case 11: - case "end": - return _context.stop(); - } - }, _loop, null, [[1, 8]]); - }); - _iterator.s(); - case 8: - if ((_step = _iterator.n()).done) { - _context2.next = 12; - break; - } - return _context2.delegateYield(_loop(), "t0", 10); - case 10: - _context2.next = 8; - break; - case 12: - _context2.next = 17; - break; - case 14: - _context2.prev = 14; - _context2.t1 = _context2["catch"](5); - _iterator.e(_context2.t1); - case 17: - _context2.prev = 17; - _iterator.f(); - return _context2.finish(17); - case 20: - installAddonsButton.classList.remove('frm_loading_button'); - (0,_shared__WEBPACK_IMPORTED_MODULE_3__.setSingleState)('installedAddons', installedAddons); - (0,_utils__WEBPACK_IMPORTED_MODULE_4__.navigateToNextStep)(); - case 23: - case "end": - return _context2.stop(); - } - }, _callee, null, [[5, 14, 17, 20]]); - })); - return function onInstallAddonsButtonClick(_x) { - return _ref.apply(this, arguments); - }; -}(); - -/** - * Installs an add-on or plugin based on the provided plugin name and vendor status. - * - * @private - * @param {string} plugin The unique identifier or name of the plugin or add-on to be installed. - * @param {Object} options An object containing additional options for the installation. - * @param {boolean} options.isInstalled Indicates whether the plugin is already installed. - * @param {boolean} options.isVendor Indicates whether the plugin is a vendor plugin (true) or a regular add-on (false). - * @return {Promise} A promise that resolves with the JSON response from the server after the installation request is completed. - */ -function installAddon(_x2, _x3) { - return _installAddon.apply(this, arguments); -} -function _installAddon() { - _installAddon = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(plugin, _ref2) { - var isVendor, isInstalled, formData, addonAction, response; - return _regeneratorRuntime().wrap(function _callee2$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - isVendor = _ref2.isVendor, isInstalled = _ref2.isInstalled; - // Prepare FormData for the POST request - formData = new FormData(); - formData.append('nonce', core_constants__WEBPACK_IMPORTED_MODULE_0__.nonce); - formData.append('plugin', plugin); - addonAction = isInstalled ? 'frm_activate_addon' : 'frm_install_addon'; - formData.append('action', isVendor ? 'frm_install_plugin' : addonAction); - _context3.prev = 6; - _context3.next = 9; - return fetch(ajaxurl, { - method: 'POST', - body: formData - }); - case 9: - response = _context3.sent; - if (response.ok) { - _context3.next = 12; - break; - } - throw new Error("Server responded with status ".concat(response.status)); - case 12: - _context3.next = 14; - return response.json(); - case 14: - return _context3.abrupt("return", _context3.sent); - case 17: - _context3.prev = 17; - _context3.t0 = _context3["catch"](6); - console.error('An error occurred:', _context3.t0); - case 20: - case "end": - return _context3.stop(); - } - }, _callee2, null, [[6, 17]]); - })); - return _installAddon.apply(this, arguments); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addInstallAddonsButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/events/skipStepButtonListener.js": -/*!*******************************************************************!*\ - !*** ./js/src/onboarding-wizard/events/skipStepButtonListener.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - -/** - * Manages event handling for the "Skip" step button. - * - * @return {void} - */ -function addSkipStepButtonEvents() { - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - skipStepButtons = _getElements.skipStepButtons; - - // Attach click event listeners to each skip buttons - skipStepButtons.forEach(function (skipButton) { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.onClickPreventDefault)(skipButton, onSkipStepButtonClick); - }); -} - -/** - * Handles the click event on a "Skip" step button. - * - * @private - * @return {void} - */ -var onSkipStepButtonClick = function onSkipStepButtonClick() { - (0,_utils__WEBPACK_IMPORTED_MODULE_2__.navigateToNextStep)(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSkipStepButtonEvents); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/initializeOnboardingWizard.js": -/*!****************************************************************!*\ - !*** ./js/src/onboarding-wizard/initializeOnboardingWizard.js ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./js/src/onboarding-wizard/ui/index.js"); -/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events */ "./js/src/onboarding-wizard/events/index.js"); -/** - * Internal dependencies - */ - - - -/** - * Initializes Onboarding Wizard. - * - * @return {void} - */ -function initializeOnboardingWizard() { - (0,_ui__WEBPACK_IMPORTED_MODULE_0__.setupInitialView)(); - (0,_events__WEBPACK_IMPORTED_MODULE_1__.addEventListeners)(); -} -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initializeOnboardingWizard); - -/***/ }), - -/***/ "./js/src/onboarding-wizard/shared/constants.js": -/*!******************************************************!*\ - !*** ./js/src/onboarding-wizard/shared/constants.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ INITIAL_STEP: () => (/* binding */ INITIAL_STEP), -/* harmony export */ PREFIX: () => (/* binding */ PREFIX), -/* harmony export */ STEPS: () => (/* binding */ STEPS) -/* harmony export */ }); -var INITIAL_STEP = window.frmOnboardingWizardVars.INITIAL_STEP; - -var PREFIX = 'frm-onboarding'; -var STEPS = { - INITIAL: INITIAL_STEP, - INSTALL_ADDONS: 'install-addons', - SUCCESS: 'success', - UNSUCCESSFUL: 'unsuccessful' -}; - -/***/ }), - -/***/ "./js/src/onboarding-wizard/shared/index.js": -/*!**************************************************!*\ - !*** ./js/src/onboarding-wizard/shared/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ INITIAL_STEP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.INITIAL_STEP), -/* harmony export */ PREFIX: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.PREFIX), -/* harmony export */ STEPS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_0__.STEPS), -/* harmony export */ getSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getSingleState), -/* harmony export */ getState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.getState), -/* harmony export */ setSingleState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setSingleState), -/* harmony export */ setState: () => (/* reexport safe */ _pageState__WEBPACK_IMPORTED_MODULE_1__.setState) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/src/onboarding-wizard/shared/constants.js"); -/* harmony import */ var _pageState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageState */ "./js/src/onboarding-wizard/shared/pageState.js"); - - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/shared/pageState.js": -/*!******************************************************!*\ - !*** ./js/src/onboarding-wizard/shared/pageState.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getSingleState: () => (/* binding */ getSingleState), -/* harmony export */ getState: () => (/* binding */ getState), -/* harmony export */ setSingleState: () => (/* binding */ setSingleState), -/* harmony export */ setState: () => (/* binding */ setState) -/* harmony export */ }); -/* harmony import */ var core_factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/factory */ "./js/src/core/factory/index.js"); -/** - * External dependencies - */ - -var _createPageState = (0,core_factory__WEBPACK_IMPORTED_MODULE_0__.createPageState)({ - processedSteps: [], - installedAddons: [] - }), - getState = _createPageState.getState, - getSingleState = _createPageState.getSingleState, - setState = _createPageState.setState, - setSingleState = _createPageState.setSingleState; - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/ui/index.js": -/*!**********************************************!*\ - !*** ./js/src/onboarding-wizard/ui/index.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ setupInitialView: () => (/* reexport safe */ _setupInitialView__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ updateRootline: () => (/* reexport safe */ _rootline__WEBPACK_IMPORTED_MODULE_1__.updateRootline) -/* harmony export */ }); -/* harmony import */ var _setupInitialView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setupInitialView */ "./js/src/onboarding-wizard/ui/setupInitialView.js"); -/* harmony import */ var _rootline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rootline */ "./js/src/onboarding-wizard/ui/rootline.js"); - - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/ui/rootline.js": -/*!*************************************************!*\ - !*** ./js/src/onboarding-wizard/ui/rootline.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ updateRootline: () => (/* binding */ updateRootline) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - -var COMPLETED_STEP_CLASS = 'frm-completed-step'; - -/** - * Updates the rootline to reflect the current and completed steps. - * - * - Applies COMPLETED_STEP_CLASS to steps before the current one. - * - Applies CURRENT_CLASS to the current step, unless it is the success step. - * - * @param {string} currentStep The current step in the process. - * @return {void} - */ -function updateRootline(currentStep) { - if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL) { - currentStep = _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS; - } - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - rootline = _getElements.rootline; - var currentItem = rootline.querySelector(".frm-rootline-item[data-step=\"".concat(currentStep, "\"]")); - rootline.querySelectorAll('.frm-rootline-item').forEach(function (item) { - item.classList.remove(COMPLETED_STEP_CLASS); - item.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - }); - var prevItem = currentItem.previousElementSibling; - if (prevItem) { - while (prevItem) { - prevItem.classList.add(COMPLETED_STEP_CLASS); - prevItem = prevItem.previousElementSibling; // move to the previous sibling - } - } - if (currentStep === _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.SUCCESS) { - currentItem.classList.add(COMPLETED_STEP_CLASS); - } else { - currentItem.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - } -} - -/***/ }), - -/***/ "./js/src/onboarding-wizard/ui/setupInitialView.js": -/*!*********************************************************!*\ - !*** ./js/src/onboarding-wizard/ui/setupInitialView.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ setupInitialView) -/* harmony export */ }); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./js/src/onboarding-wizard/utils/index.js"); -/** - * External dependencies - */ - - -/** - * Internal dependencies - */ - - - - -/** - * Initializes the onboarding wizard's UI, sets up the initial step based on certain conditions, - * and applies necessary UI enhancements for a smoother user experience. - * - * @return {void} - */ -function setupInitialView() { - navigateToInitialStep(); - fadeInPageElements(); -} - -/** - * Determines the initial step in the onboarding process and navigates to it, considering the installation - * status of Formidable Pro and specific query parameters. - * - * @private - * @return {void} - */ -function navigateToInitialStep() { - var initialStepName = determineInitialStep(); - clearOnboardingQueryParams(); - (0,_utils__WEBPACK_IMPORTED_MODULE_3__.navigateToStep)(initialStepName, 'replaceState'); -} - -/** - * Determines the initial step based on the current state, such as whether Formidable Pro is installed - * and the presence of specific query parameters. Also handles the removal of unnecessary steps. - * - * @private - * @return {string} The name of the initial step to navigate to. - */ -function determineInitialStep() { - var isConnectedAccount = (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('success'); - if (isConnectedAccount === '0') { - return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.UNSUCCESSFUL; - } - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - hiddenLicenseKeyInput = _getElements.hiddenLicenseKeyInput; - if (hiddenLicenseKeyInput || isConnectedAccount) { - return _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INSTALL_ADDONS; - } - return (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParam)('step') || _shared__WEBPACK_IMPORTED_MODULE_2__.STEPS.INITIAL; -} - -/** - * Clears specific query parameters related to the onboarding process. - * - * @private - * @return {void} - */ -function clearOnboardingQueryParams() { - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('key'); - (0,core_utils__WEBPACK_IMPORTED_MODULE_0__.removeQueryParam)('success'); -} - -/** - * Smoothly fades in the background and container elements of the page for a more pleasant user experience. - * - * @private - * @return {void} - */ -function fadeInPageElements() { - var _getElements2 = (0,_elements__WEBPACK_IMPORTED_MODULE_1__.getElements)(), - container = _getElements2.container; - new core_utils__WEBPACK_IMPORTED_MODULE_0__.frmAnimate(container).fadeIn(); -} - -/***/ }), - -/***/ "./js/src/onboarding-wizard/utils/index.js": -/*!*************************************************!*\ - !*** ./js/src/onboarding-wizard/utils/index.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ navigateToNextStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToNextStep), -/* harmony export */ navigateToPrevStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToPrevStep), -/* harmony export */ navigateToStep: () => (/* reexport safe */ _navigateToStep__WEBPACK_IMPORTED_MODULE_0__.navigateToStep) -/* harmony export */ }); -/* harmony import */ var _navigateToStep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navigateToStep */ "./js/src/onboarding-wizard/utils/navigateToStep.js"); - - -/***/ }), - -/***/ "./js/src/onboarding-wizard/utils/navigateToStep.js": -/*!**********************************************************!*\ - !*** ./js/src/onboarding-wizard/utils/navigateToStep.js ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ navigateToNextStep: () => (/* binding */ navigateToNextStep), -/* harmony export */ navigateToPrevStep: () => (/* binding */ navigateToPrevStep), -/* harmony export */ navigateToStep: () => (/* binding */ navigateToStep) -/* harmony export */ }); -/* harmony import */ var core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core/constants */ "./js/src/core/constants.js"); -/* harmony import */ var core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/utils */ "./js/src/core/utils/index.js"); -/* harmony import */ var _dataUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dataUtils */ "./js/src/onboarding-wizard/dataUtils/index.js"); -/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elements */ "./js/src/onboarding-wizard/elements/index.js"); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared */ "./js/src/onboarding-wizard/shared/index.js"); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui */ "./js/src/onboarding-wizard/ui/index.js"); -/** - * External dependencies - */ - - - -/** - * Internal dependencies - */ - - - - - -/** - * Navigates to the given step in the onboarding sequence. - * Optionally updates the browser's history state to include the current step. - * - * @param {string} stepName The name of the step to navigate to. - * @param {string} [updateMethod='pushState'] Specifies the method to update the browser's history and URL. Accepts 'pushState' or 'replaceState'. If omitted, defaults to 'pushState'. - * @return {void} - */ -var navigateToStep = function navigateToStep(stepName) { - var updateMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'pushState'; - // Find the target step element - var targetStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step[data-step-name=\"").concat(stepName, "\"]")); - if (!targetStep) { - return; - } - - // Find and hide the current step element - var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); - if (currentStep) { - currentStep.classList.remove(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.hide)(currentStep); - } - - // Display the target step element - targetStep.classList.add(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS); - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.show)(targetStep); - new core_utils__WEBPACK_IMPORTED_MODULE_1__.frmAnimate(targetStep).fadeIn(); - - // Update the onboarding wizard's current step attribute - var _getElements = (0,_elements__WEBPACK_IMPORTED_MODULE_3__.getElements)(), - onboardingWizardPage = _getElements.onboardingWizardPage; - onboardingWizardPage.setAttribute('data-current-step', stepName); - - // Update the URL query parameter, with control over history update method - (0,core_utils__WEBPACK_IMPORTED_MODULE_1__.setQueryParam)('step', stepName, updateMethod); - (0,_ui__WEBPACK_IMPORTED_MODULE_5__.updateRootline)(stepName); -}; - -/** - * Navigates to the next step in the sequence. - * - * The function assumes steps are sequentially ordered in the DOM. - * - * @return {void} - */ -var navigateToNextStep = function navigateToNextStep() { - var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); - var nextStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.nextElementSibling; - if (!nextStep) { - return; - } - var processedStep = currentStep.dataset.stepName; - var nextStepName = nextStep.dataset.stepName; - - // Save processed steps - var _getState = (0,_shared__WEBPACK_IMPORTED_MODULE_4__.getState)(), - processedSteps = _getState.processedSteps; - if (!processedSteps.includes(processedStep)) { - processedSteps.push(processedStep); - (0,_shared__WEBPACK_IMPORTED_MODULE_4__.setSingleState)('processedSteps', processedSteps); - } - (0,_dataUtils__WEBPACK_IMPORTED_MODULE_2__.setupUsageData)(processedStep, nextStepName); - navigateToStep(nextStepName); -}; - -/** - * Navigates to the previous step in the sequence. - * - * The function assumes steps are sequentially ordered in the DOM. - * - * @return {void} - */ -var navigateToPrevStep = function navigateToPrevStep() { - var currentStep = document.querySelector(".".concat(_shared__WEBPACK_IMPORTED_MODULE_4__.PREFIX, "-step.").concat(core_constants__WEBPACK_IMPORTED_MODULE_0__.CURRENT_CLASS)); - var prevStep = currentStep === null || currentStep === void 0 ? void 0 : currentStep.previousElementSibling; - if (!prevStep) { - return; - } - navigateToStep(prevStep.dataset.stepName); -}; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!*******************************************!*\ - !*** ./js/src/onboarding-wizard/index.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/dom-ready */ "./node_modules/@wordpress/dom-ready/build-module/index.js"); -/* harmony import */ var _initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./initializeOnboardingWizard */ "./js/src/onboarding-wizard/initializeOnboardingWizard.js"); -/** - * WordPress dependencies - */ - - -/** - * Internal dependencies - */ - -(0,_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__["default"])(function () { - (0,_initializeOnboardingWizard__WEBPACK_IMPORTED_MODULE_0__["default"])(); -}); -/******/ })() -; -//# sourceMappingURL=onboarding-wizard.js.map \ No newline at end of file +/*! For license information please see onboarding-wizard.js.LICENSE.txt */ +(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},r=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):00&&void 0!==arguments[0]?arguments[0]:{};if("object"!==x(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==x(t)||null===t)throw new Error("setState: newState must be a non-null object");e=j(j({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({processedSteps:[],installedAddons:[]}),_=P.getState,k=(P.getSingleState,P.setState,P.setSingleState),T=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==b(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==b(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=m(m({},e),t)}}}({onboardingWizardPage:document.getElementById("".concat(S,"-wizard-page")),container:document.getElementById("".concat(S,"-container")),rootline:document.getElementById("".concat(S,"-rootline")),steps:document.querySelectorAll(".".concat(S,"-step")),skipStepButtons:document.querySelectorAll(".".concat(S,"-skip-step")),backButtons:document.querySelectorAll(".".concat(S,"-back-button")),consentTrackingButton:document.getElementById("".concat(S,"-consent-tracking")),installAddonsButton:document.getElementById("".concat(S,"-install-addons-button")),hiddenLicenseKeyInput:document.getElementById("frm-license-key")}),A=T.getElements;T.addElements;var I=function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pushState",o=document.querySelector(".".concat(S,'-step[data-step-name="').concat(t,'"]'));if(o){var i=document.querySelector(".".concat(S,"-step.").concat(d));i&&(i.classList.remove(d),null==(e=i)||e.classList.add(y)),o.classList.add(d),function(t){null==t||t.classList.remove(y)}(o),new n(o).fadeIn(),A().onboardingWizardPage.setAttribute("data-current-step",t),function(t,e){var r,n,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pushState";if(l.set(t,e),u.search=l.toString(),["pushState","replaceState"].includes(i)){var a=(r={},o=e,(n=function(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[i](a,"",u)}u.toString()}("step",t,r),function(t){t===E.UNSUCCESSFUL&&(t=E.SUCCESS);var e=A().rootline,r=e.querySelector('.frm-rootline-item[data-step="'.concat(t,'"]'));e.querySelectorAll(".frm-rootline-item").forEach((function(t){t.classList.remove(D),t.classList.remove(d)}));var n=r.previousElementSibling;if(n)for(;n;)n.classList.add(D),n=n.previousElementSibling;t===E.SUCCESS?r.classList.add(D):r.classList.add(d)}(t)}},N=function(){var t=document.querySelector(".".concat(S,"-step.").concat(d)),e=null==t?void 0:t.nextElementSibling;if(e){var r=t.dataset.stepName,n=e.dataset.stepName,o=_().processedSteps;o.includes(r)||(o.push(r),k("processedSteps",o)),function(t,e){var r=function(t,e){var r;if(E.SUCCESS===e||E.UNSUCCESSFUL===e){var n=_().processedSteps;n.length>1&&(n.includes(e)||n.push(e),(r=new FormData).append("processed_steps",n.join(",")),r.append("completed_steps",!0))}if(E.INSTALL_ADDONS===t){var o,i=_().installedAddons;i.length>0&&(r=null!==(o=r)&&void 0!==o?o:new FormData).append("installed_addons",i.join(","))}return r}(t,e);r&&(0,frmDom.ajax.doJsonPost)("onboarding_setup_usage_data",r)}(r,n),I(n)}};var D="frm-completed-step",C=".frm-option-box";function F(t){"input"===t.target.tagName.toLowerCase()&&t.currentTarget.closest(C).classList.toggle("frm-checked")}var U=function(){N()};var G=function(){var t,e;(e=null==(t=document.querySelector(".".concat(S,"-step.").concat(d)))?void 0:t.previousElementSibling)&&I(e.dataset.stepName)};function B(t){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(t)}function q(){q=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==B(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Y(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}var z=function(){var t,e=(t=q().mark((function t(){return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(0,frmDom.ajax.doJsonPost)("onboarding_consent_tracking",new FormData).then(N);case 2:case"end":return t.stop()}}),t)})),function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){Y(i,n,o,a,c,"next",t)}function c(t){Y(i,n,o,a,c,"throw",t)}a(void 0)}))});return function(){return e.apply(this,arguments)}}();function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function W(){W=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(A([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==R(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function J(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return K(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r el.classList.length === 2 ); } - const hoverTargetBox = hoverTarget.querySelector( 'li' ); + const hoverTargetBox = hoverTarget.closest( 'li' ); if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) { // If field target field is in a section. $range = $firstGroup.parent().nextUntil( targetSection || hoverTarget.parentNode ); From 2ab71a2e44516d7294c3f36cbb31b29295ab5677 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:16:27 +0300 Subject: [PATCH 09/14] Add since tag --- js/src/admin/admin.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js index e6921d8cf1..a5fa21ba55 100644 --- a/js/src/admin/admin.js +++ b/js/src/admin/admin.js @@ -4536,6 +4536,8 @@ window.frmAdminBuildJS = function() { /** * Get an array of fields that are selected. * + * @since x.x + * * @param {Object} $firstGroup * @param {HTMLElement} hoverTarget * From 7a13978f4938a92b08ab215742eee58f9703ad8b Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:18:30 +0300 Subject: [PATCH 10/14] Build files --- css/admin/frm-settings-components.css | 2 +- css/frm_admin.css | 2 +- css/frm_testing_mode.css | 2 +- js/addons-page.js | 2 +- js/form-templates.js | 2 +- js/formidable-settings-components.js | 2 +- js/formidable_admin.js | 2 +- js/formidable_blocks.js | 2 +- js/formidable_dashboard.js | 2 +- js/formidable_overlay.js | 2 +- js/formidable_styles.js | 2 +- js/frm_testing_mode.js | 2 +- js/onboarding-wizard.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/css/admin/frm-settings-components.css b/css/admin/frm-settings-components.css index 1efdb41c3f..4d0879f684 100644 --- a/css/admin/frm-settings-components.css +++ b/css/admin/frm-settings-components.css @@ -1 +1 @@ -.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:rgba(255,255,255,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} +.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} diff --git a/css/frm_admin.css b/css/frm_admin.css index 92d512554b..9044185164 100644 --- a/css/frm_admin.css +++ b/css/frm_admin.css @@ -1,3 +1,3 @@ -@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500) !important}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-text-left{text-align:left}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.dropdown-item .frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key.frm_image_preview_wrapper,.frm-type-ranking .frm_single_option .frm_option_key{margin-left:21px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}.frm-type-ranking .frm_option_key input[id*=field_key_]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle:not(#frm_testing_mode .frm_toggle) .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! +@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500) !important}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-text-left{text-align:left}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.dropdown-item .frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key.frm_image_preview_wrapper,.frm-type-ranking .frm_single_option .frm_option_key{margin-left:21px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}.frm-type-ranking .frm_option_key input[id*=field_key_]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle:not(#frm_testing_mode .frm_toggle) .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! * Bootstrap v4.6.1 */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.wp-core-ui .frm_grey.frm-button-primary.disabled,.wp-core-ui .frm_grey.frm-button-primary,#frm-welcome .frm_grey{opacity:.5;background:#f6f6f6 !important;border-color:#ddd !important;color:#9fa5aa !important}.windows::-webkit-scrollbar,.windows ::-webkit-scrollbar{width:7px;background:rgba(0,0,0,0)}.windows::-webkit-scrollbar-thumb,.windows ::-webkit-scrollbar-thumb{background:var(--grey-300);-webkit-border-radius:var(--border-radius);-webkit-box-shadow:none}.windows::-webkit-scrollbar-corner,.windows ::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.frm-scrollbar-wrapper,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list,#frm_builder_page #frm_adv_info .frm_code_list,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div,.frm-single-settings .frm_field_opts_list{overflow-x:hidden;overflow-y:auto !important;-ms-overflow-style:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.frm-scrollbar-wrapper:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover,#frm_builder_page #frm_adv_info .frm_code_list:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover,.frm-single-settings .frm_field_opts_list:hover{scrollbar-color:var(--grey-300) rgba(0,0,0,0)}.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb{background:var(--grey-300)}.frm-scrollbar-wrapper::-webkit-scrollbar,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar{width:3px}.frm-scrollbar-wrapper::-webkit-scrollbar-track,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-track,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover{background:var(--grey-300)}.rtl h3{font-weight:inherit !important}.rtl.js .accordion-section-title::after{left:10px;right:auto}.rtl #frm_top_bar #frm_bs_dropdown{padding-left:15px}.rtl .frm-full-close,.rtl .frm_wrap .columns-2 .frm-right-panel+div,.rtl .frm-right-panel{border-left-width:0;border-right:1px solid var(--grey-300)}.rtl .frm-full-close{padding-left:0;padding-right:var(--gap-md)}.rtl .frm-text-right{text-align:left}.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child{border-left-width:1px}.rtl .frm-dropdown-menu{text-align:right}.rtl .frm_actions_dropdown .frm_icon_font{float:right;margin-right:0;margin-left:3px}.rtl #frm-insert-fields-box,.rtl #frm-conditionals{padding-right:.9em}.rtl #html_settings .frm_field_html_box{margin-right:0}.rtl .frm_list_entry_page h2{float:right}.rtl .frm_scale{float:right;margin-left:10px;margin-right:0}.rtl .frm-page-break .frm-collapse-page.button{margin-left:0;margin-right:46%}.rtl .frm-field-action-icons{right:unset;left:2px}.rtl .frm_has_shortcodes>i{right:auto;left:5px}.rtl p.frm_reply_to_container,.rtl p.frm_bcc_cc_container{float:left}.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg{right:auto;left:0}.rtl .frm-inline-modal>a.dismiss{left:13px;right:auto}.rtl.wp-admin .frm_wrap select{padding-left:var(--gap-lg) !important;padding-right:5px !important;background-position:left 11px top 55%}.rtl .frm_code_list.frm-full-hover a span{margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:unset;margin-right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:unset;margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline{left:unset !important;right:0}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first{right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last{right:calc(-1*var(--gap-xs))}.rtl .frm-unit-input .frm-input-group-suffix{right:unset;left:1px;padding-right:unset;padding-left:var(--gap-xs)}.rtl .frm-unit-input .frm-input-group-suffix select{text-align:left;background-position:left 0 top 50%;padding-left:21px !important}span.clear{display:block}.clearfix::after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:inline-block}.frm_form_fields .clear{height:auto}* html .clearfix{height:1%}.clearfix{display:block}#frm_small_device_message_container{display:none}@media only screen and (max-width: 1200px){.frm-addons{grid-template-columns:1fr 1fr}#frm_top_bar h1{min-width:0}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin:0}.frm_actions_list{margin-left:0}#frm_bs_dropdown .frm_bstooltip{display:none !important}}@media only screen and (max-width: 960px){.frm-white-body,.frm_wrap{--gap-sm: 8px;--gap-md: 16px;--gap-2xl: 24px}.frm-settings-panel{--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 32px}.auto-fold #adminmenuwrap{width:36px}.frm_wrap #postbox-container-1 #frm_adv_info{min-width:220px}p.howto{display:inline-block}.auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container,.auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container{left:36px}}@media only screen and (max-width: 850px){.frm-white-body,.frm_wrap{--biggest-sidebar: 350px;--big-sidebar: 350px}.frm_col_one{clear:none}.frm-fields p>.frm_inline_label,.frm_inline_label{display:block;margin:5px 0}#frm_top_bar h1{width:auto;max-width:200px}#frm-publishing{width:auto}#frm_form_editor_container,.frm-entry-container{margin:0 20px}.frm_wrap .frm-search{float:none !important;width:auto;clear:both}.post-type-frm_display #frm_adv_info{top:auto !important;position:static;width:auto}.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{min-width:275px}.frm_wrap #frm_adv_info ul.category-tabs li,.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border:none}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:12px}.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border-bottom:2px solid #5b9dd9;padding-bottom:8px}.post-type-frm_display #poststuff{padding:10px 25px}.post-type-frm_display #side-sortables .postbox{margin-bottom:20px;border-radius:var(--small-radius);border-top-width:1px}#frm_top_bar .frm_form_nav{box-shadow:0 -0.47px 10px 0 rgba(16,24,40,.0588235294)}#frm_top_bar ul.frm_form_nav{padding:1em 0;position:fixed;bottom:0;width:100%;background:#fff;z-index:99;transform:translate(-50%, 0);left:50%}.frm_page_container>.columns-2,#frm_styler_wrapper{padding-bottom:64px}#frm_style_preview .frm_floating_style_button:not(.frm_hidden){position:static;display:inline-block}.frm_wrap .columns-2 .frm-right-panel{padding-bottom:0}#frm-publishing{margin-left:auto}#frm_top_bar>.frm-full-close:last-child{margin-left:0}#frm_bs_dropdown{display:block}#frm_bs_dropdown .frm_bstooltip{display:block !important}}@media only screen and (max-width: 782px){.frm-white-body,.frm_wrap{--small-sidebar: 20%;--medium-sidebar: 35% }#form_settings_page .advanced_settings .form-table td,.form-table th{display:table-cell;width:auto !important}.frm-white-body #publishing-action,.frm_wrap #publishing-action{line-height:normal}.frm-white-body #screen-meta-links{display:none}.frm_wrap .misc-pub-section{padding:6px 0}.frm_wrap .misc-pub-section>a{float:none;white-space:nowrap}.frm-form-setting-tabs a{position:relative;padding:10px 5px 10px 40px}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{position:absolute;left:13px;top:calc(50% - 10px);margin:0}#frm-insert-fields .button,#frm-insert-fields .button a,.frmbutton.ui-sortable-helper a{line-height:26px;max-height:28px}a.frm_add_logic_link{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}a.frm_add_logic_link:not([id^=logic_]) .frmsvg,a.frm_add_logic_link i{display:none}#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 83px)}.frm_single_entry_page .frm_form_fields input[type=text],.frm_single_entry_page .frm_form_fields select,.frm_single_entry_page .frm_form_fields textarea{width:100%}.with_frm_style .frm_radio input[type=radio],.with_frm_style .frm_checkbox input[type=checkbox]{width:25px !important}.frm_single_entry_page .with_frm_style .frm_radio input[type=radio],.frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox]{width:18px !important}.wp-list-table.toplevel_page_formidable .column-entries,.wp-list-table.toplevel_page_formidable .column-form_key,.wp-list-table.toplevel_page_formidable .column-shortcode,.wp-list-table.toplevel_page_formidable .column-created_at{display:none !important}.wp-list-table.toplevel_page_formidable td.column-entries,.wp-list-table.toplevel_page_formidable td.column-form_key,.wp-list-table.toplevel_page_formidable td.column-shortcode,.wp-list-table.toplevel_page_formidable td.column-created_at{padding:3px 8px 3px 35%;text-align:left}#form_entries_page .wp-list-table th.frm_hidden,#form_entries_page .wp-list-table td.frm_hidden{display:none !important}.frm-white-body.auto-fold #wpcontent{padding-left:0}.frm_right_addon .frm_remove_field{bottom:11px}.frm-addons{grid-template-columns:1fr}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{left:0 !important}.frm_single_entry_page.frm_wrap .columns-2{display:block;border-bottom:none}.frm_single_entry_page .wrap.frm-with-margin{margin:10px 20px}.frm_single_entry_page #post-body-content+.frm-right-panel{width:auto;margin:0 20px;border:1px solid var(--sidebar-hover);border-radius:6px}#wp-content-media-buttons a.frm_insert_form{padding:0 var(--gap-sm)}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{width:1.2rem;height:1.2rem}}@media only screen and (max-width: 700px){.frm-white-body,.frm_wrap{--biggest-sidebar: 50%;--big-sidebar: 50%}}@media only screen and (max-width: 600px){.frm-white-body,.frm_wrap{--small-sidebar: 45px}.frm-form-setting-tabs a{visibility:collapse;font-size:0;padding:0 var(--gap-sm)}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{visibility:visible;position:initial;font-size:18px}#frm_builder_page #frm-insert-fields{padding:0}.frm_wrap #frm_adv_info ul.category-tabs li{display:inline-block;padding:0;margin:2px 0;border-bottom:2px solid rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li.tabs,.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:0;padding:0}.field_type_list li{text-align:center}#frm-insert-fields li a{padding:5px}#frm_form_editor_container .frm_primary_label{clear:both}#frm_builder_page .frm_code_list a.button{padding:2px}#frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:0;left:auto}.frm-right-panel h3.accordion-section-title{padding-right:10px;padding-left:10px;font-size:20px;white-space:nowrap;overflow:hidden}.frm-right-panel .accordion-section-title::before{margin-left:0;margin-right:3px}.rtl #frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:auto;left:0}.frm_on_submit_type svg{display:none}}@media only screen and (max-width: 475px){#frm_bs_dropdown{float:none}#frm-nav-tabs{padding:0;white-space:nowrap}#frm-nav-tabs a{margin-right:0}#frm_small_device_message_container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;width:100%;height:100%;z-index:999999;background:var(--primary-500)}#frm_small_device_message{text-align:center;display:flex;flex-direction:column;align-items:center;width:80%;padding:1rem;background:#fff;border:solid 1px #fff;border-radius:var(--medium-radius)}#frm_small_device_message::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-78%, -65%);width:900px;height:900px;background-color:#0d7dfc;border-radius:50%;z-index:-1;opacity:.3}#frm_small_device_message>svg{padding-bottom:1rem}.toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter,.post-type-frm_display:has(#frm_small_device_message_container) #posts-filter{display:none}}@media print{a,.misc-pub-section a{color:#000 !important}.add-new-h2,#frm_top_bar,.dashicons,#adminmenuwrap,#adminmenuback,#wphead,#button_bar,#submitdiv,.button-secondary,#screen-metas,#screen-meta-links,#footer,#wpfooter,.inner-sidebar,.frm_form_nav,.frm_flash_graph,.frm_no_print,object,.error{visibility:hidden;display:none !important}.widget,.postbox,.stuffbox,.postbox h3{border-width:0 !important;border-color:#fff}.postbox{background:#fff !important;border:none;position:static}.postbox h3,.postbox h4{background:#fff !important}#wpbody-content{float:none}#wpcontent,#post-body-content,.has-right-sidebar #post-body,#poststuff .columns-2{margin:0 !important}.frm_wrap #poststuff .columns-2{display:block}#post-body-content+.frm-right-panel,.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{border:none;width:auto;display:block;padding:20px}.frm_wrap .columns-2,.frm_wrap .frm_page_container{height:auto;display:block}.misc-pub-section>span{padding:0}.frm-right-panel .postbox .inside{padding-left:12px;padding-right:12px}.curtime #timestamp::before{display:none;content:none !important}.frm_charts .alignleft{float:none}.pg_odd,.pg_even{page-break-inside:avoid;max-width:600px}.form-table td,.form-table th{padding:0}.frm_file_container a{display:block;width:100%}}.frm-admin-page-styles #frm-publishing #save_menu_header,.frm-admin-page-styles2 #frm-publishing #save_menu_header{display:inline-block}.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first{order:2}.frm-video-wrapper iframe{width:100%;max-width:843px;border-radius:var(--border-radius)}#frm_field_group_popup{position:absolute;top:0;right:0;width:366px;max-height:231px;border-radius:8px;background:#fff;box-shadow:0 20px 48px rgba(40,47,54,.15);z-index:3;box-sizing:border-box;padding:24px 0;text-align:left}.rtl #frm_field_group_popup{text-align:right}.frm-merge-fields-into-row #frm_field_group_popup{top:unset;bottom:50px;height:196px}#frm_field_group_popup>hr{margin:12px 0}#frm_field_group_popup .frm-cancel-custom-field-group-layout,#frm_field_group_popup .frm-save-custom-field-group-layout{padding:4px 18px}#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover{border-color:var(--primary-500) !important;color:var(--primary-500);background-color:rgba(0,0,0,0) !important}.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group{display:none}.frm-merge-fields-into-row>a{color:rgba(40,47,54,.85);position:relative;top:2px}.frm-row-layout-title{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:27px}.frm-row-layout-option{background:#f6f7fb;box-sizing:border-box;border-radius:2px;padding:15px 10px}#frm_field_group_popup .frm-row-layout-option .frm_grid_container{grid-gap:0 5%;grid-template-columns:repeat(12, auto)}#frm_field_group_popup .frm-row-layout-option{cursor:pointer;border:2px solid rgba(0,0,0,0)}#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,#frm_field_group_popup .frm-row-layout-option:hover{border-color:var(--primary-500)}.frm-custom-field-group-layout,.frm-break-field-group{padding:4px 24px;cursor:pointer;font-size:var(--text-sm);line-height:19px;color:#484e54}.frm-custom-field-group-layout:hover,.frm-break-field-group:hover{background-color:rgba(245,245,245,.9607843137)}.frm-custom-field-group-layout svg,.frm-break-field-group svg{margin-right:5px}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}#frm_banner{width:100%;color:#fff;background:var(--primary-500);height:40px;line-height:40px;text-align:center;position:relative}.frm-banner-emoji{font-size:19px}.frm-banner-emoji,.frm-banner-title{margin-right:5px;vertical-align:top}.frm-banner-cta a{text-decoration:underline !important}#frm_banner .frm-banner-cta a.frm_inbox_dismiss{display:none}.frm-banner-dismiss{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.frm-banner-dismiss .frmsvg{vertical-align:top}.frm-ready-made-solution:not(.frm-search-result){display:none !important}#frm_leave_email_wrapper .frmsvg{top:0}#frm-add-my-email-address{margin-top:30px}.frm-ready-made-solution h3~a{color:var(--primary-500)}.frm-ready-made-solution img{max-width:100%;display:block;box-shadow:var(--box-shadow-lg)}.frm_single_on_submit_settings .frm_form_field{margin:22px 0}.frm_on_submit_type_setting{padding:8px 0}.frm_on_submit_type label{display:flex;border:1px solid var(--grey-border);border-radius:var(--small-radius);gap:16px;padding:16px;align-items:center;justify-content:center}.frm_on_submit_type input{opacity:0 !important;position:absolute;z-index:-1}.frm_on_submit_type input[type=radio]:checked+label{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}#form_settings_page .frm_on_submit_type label:hover,.frm_on_submit_type input[type=radio]:checked+label svg{color:var(--primary-color)}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}#frm-form-templates-modal textarea{height:108px}#frm-form-templates-modal .frm-fields button.btn{border-color:var(--grey-300);color:var(--grey-900);cursor:pointer}#frm-form-templates-modal .frm-fields button.btn .frmsvg{color:var(--grey-400);width:14px;height:14px}#frm-form-templates-modal .frm-form-templates-modal-fieldset{position:relative}#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg{padding:0;top:0;left:13px}#frm-form-templates-modal .postbox{display:block !important}#frm_empty_inbox #frm-leave-email-modal{margin-top:var(--gap-2xl)}#frm-name-your-form-modal .frm_modal_top{padding-top:var(--gap-sm)}#frm-field-group-message{position:absolute;bottom:32px;right:calc(50% - var(--biggest-sidebar));padding:var(--gap-xs) var(--gap-sm);border-radius:100px;background-color:var(--primary-25)}#frm-field-group-message .frm-field-group-message-text{gap:10px;color:var(--grey-800)}#frm-field-group-message-dismiss{margin-left:var(--gap-xs)}#frm-field-group-message-dismiss .frmsvg{color:var(--grey-800);width:15px;height:15px;cursor:pointer;transition:color 300ms ease-in-out}#frm-field-group-message-dismiss .frmsvg:hover{color:var(--grey-500)}.frm-card-item{display:flex;border:1px solid var(--grey-200);border-radius:var(--small-radius);padding:var(--gap-sm);box-shadow:var(--box-shadow-xs);background:#fff}.frm-card-item:not(.frm-counter-card){gap:10px}.frm-compact-card-item{padding:var(--gap-sm) 35px 10px 35px}.frm-card-bottom{background-color:var(--grey-50);margin-left:calc(var(--gap-sm)*-1);margin-bottom:calc(var(--gap-sm)*-1);margin-right:calc(var(--gap-sm)*-1);padding:var(--gap-sm);border-radius:0 0 var(--small-radius) var(--small-radius)}#welcome-panel:has(#frm_form_pf_importer){background-color:#fff;margin:var(--gap-sm) var(--gap-md) var(--gap-md);line-height:2}#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content{text-align:start !important;min-height:unset;display:block}#frm_form_pf_importer div{margin:10px 0 !important}#frm_form_pf_importer button{border:1px solid var(--primary-500);padding:7px 16px;min-height:28px;line-height:var(--leading);margin-bottom:0;background:var(--primary-500);color:#fff !important}#frm_form_pf_importer button:hover{background:#135e96;border-color:#135e96}.frm-option-box{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;background-color:#fff;padding:12px var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius);margin-bottom:var(--gap-xs);transition:background-color 100ms ease-out;cursor:pointer}.frm-option-box:hover{background-color:var(--grey-25)}.frm-option-box.frm-checked{background-color:var(--primary-25);border-color:var(--primary-200)}.frm-option-box.frm-disabled{cursor:default}.frm-option-box input[type=checkbox]{margin:0}.frm-option-box.frm-disabled input[type=checkbox]{opacity:.5}.frm-option-box .frm_help .frmsvg{width:12px;height:12px}.frm-validation-error:not(.frm_hidden){display:flex}.frm-validation-error{gap:calc(var(--gap-xs) + var(--gap-2xs))}.frm-validation-error span{color:var(--error-500)}.frm-validation-error span[frm-error]{display:none}.frm-validation-error[frm-error=empty] span[frm-error=empty],.frm-validation-error[frm-error=invalid] span[frm-error=invalid],.frm-validation-error[frm-error=custom] span[frm-error=custom]{display:inline-block}.frm-box{padding:var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius)}.frm-link-with-external-icon{display:flex;align-items:center;gap:var(--gap-2xs);font-size:var(--text-xs)}.frm-link-with-external-icon .frmsvg{width:16px;height:16px;transform:rotate(45deg)}#wpbody-content .frm-page-skeleton ul,#wpbody-content .frm-page-skeleton li{margin:0}#wpbody-content .frm-page-skeleton .frm-right-panel{padding:2px;overflow-y:initial}#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper{padding:var(--gap-md) var(--gap-sm)}#wpbody-content .frm-page-skeleton .frm-search{float:none;padding:0 var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>svg{left:var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>input{width:100%}.frm-page-skeleton-cat{cursor:pointer;padding:var(--gap-xs);border-radius:var(--small-radius);background-color:rgba(0,0,0,0);transition:background-color 250ms ease-out}.frm-page-skeleton-cat:hover{background-color:var(--grey-100)}.frm-page-skeleton-cat>*{z-index:2}.frm-page-skeleton-cat-text{color:var(--grey-900);text-transform:capitalize}.frm-page-skeleton-cat-count{color:var(--grey-400)}.frm-current .frm-page-skeleton-cat-text,.frm-current .frm-page-skeleton-cat-count{color:var(--primary-500)}.frm-list-grid-layout{display:grid;grid-template-columns:repeat(auto-fill, minmax(303px, 1fr));grid-auto-rows:max-content;gap:var(--gap-sm)}.frm-list-grid-layout>*{grid-column:span 1}#frm-page-skeleton-empty-state{height:100%;margin-top:calc(-1*var(--gap-md))}#frm-page-skeleton-empty-state .frm-page-skeleton-text{max-width:420px}.frm-page-skeleton-divider{border-top:1px solid var(--grey-200);margin:0}.field_type_list .frm_tsubmit{display:none !important}#frm_style_sidebar .accordion-section-title::after,#frm_view_editor_left .accordion-section-title::after{content:""}a[href="#square_settings"] svg.frmsvg{width:23px !important;height:22px !important}#frm_square_test_setup_modal a:focus{box-shadow:none !important}@media only screen and (max-width: 900px){#square_settings .frm_grid_container:has(.frm-card-item){grid-template-columns:repeat(1, 1fr)}#square_settings .frm-card-item+.frm-card-item{margin-top:var(--gap-sm)}}#frm_sale_banner{display:flex;height:90px;flex-direction:row;align-items:center;gap:var(--gap-sm);cursor:pointer;position:relative}#frm_sale_banner>div:first-child{align-self:flex-end;width:150px;height:100%;display:flex;justify-content:center}#frm_sale_banner>div:first-child img{align-self:center}#frm_sale_banner>div:nth-child(3){margin-left:auto;margin-right:50px}#frm_sale_banner>div:nth-child(2)>div:last-child{opacity:.8}#frm_sale_banner a:not(.dismiss){text-shadow:none;border-radius:30px;border:1px rgba(0,0,0,0);font-size:var(--text-sm);padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;margin-bottom:0;display:inline-block;font-weight:700;background-color:#fff;color:#000}#frm_sale_banner .dismiss{position:absolute;color:#fff;opacity:.6;right:15px;top:10px}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"]{background-color:#f0f0f0 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"]{background-color:#e6470f !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"]{background-color:#ed1d34 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"]{background-color:#3e041a !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"]{background-color:#362630 !important}.frm-get-free-templates-banner{flex-grow:1}.frm-get-free-templates-banner .frm-banner-image-wrapper{display:flex;justify-content:center;align-items:flex-end;background-color:var(--primary-25);padding:19px 14px 0;border-radius:var(--small-radius)}.frm-get-free-templates-banner[data-direction=vertical]{flex-direction:column;align-items:stretch;gap:12px}.frm-get-free-templates-banner[data-direction=vertical] .frm-banner-content{align-items:center;text-align:center}.frm-lookup-box-label{display:none}.frm-inline-modal[id^=frm-lookup-box]{background-color:rgba(0,0,0,0);border:0;box-shadow:none}.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs,.frm-inline-modal[id^=frm-lookup-box] .dismiss{display:none}.frm_single_option a.frm_remove_tag svg,.frm_single_option a.frm_add_opt svg{width:15px;height:15px}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px} diff --git a/css/frm_testing_mode.css b/css/frm_testing_mode.css index 0217ef7c56..11518e6517 100644 --- a/css/frm_testing_mode.css +++ b/css/frm_testing_mode.css @@ -1,3 +1,3 @@ :root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle:not(#frm_testing_mode .frm_toggle) .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}/*! * Bootstrap v4.6.1 - */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}body.frm_preview_page .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}#frm_testing_mode{border-radius:1rem;background-color:#fff;border-color:rgba(0,0,0,.1019607843);border-width:1px;border-style:solid;padding:16px 20px;margin-bottom:40px;position:relative}#frm_testing_mode h2{font-size:18px;font-weight:600;color:#000;margin-bottom:0}#frm_testing_mode label{font-size:12px;font-weight:600}#frm_testing_mode label span.frm_toggle_opt{color:var(--grey-800);font-weight:600}#frm_testing_mode label:not(:first-child){margin-left:var(--gap-xs)}#frm_testing_mode a.frm_button{margin-left:auto;border-radius:20px;font-size:14px}#frm_testing_mode hr{color:unset;background:var(--grey-200);height:1px;border:none}#frm_testing_mode>div:nth-of-type(2){display:flex;align-items:center}#frm_testing_mode .multiselect.dropdown-toggle:after{border:none}#frm_testing_mode .frmsvg{width:11px;height:11px;margin-right:var(--gap-2xs);position:relative;top:1px}#frm_testing_mode .frm_toggle_block{gap:var(--gap-xs)}#frm_testing_mode label:not(.frm_toggle_block){margin-right:2px}#frm_testing_mode select{width:auto !important;min-height:auto !important;outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);border-width:1px;padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading);appearance:none;background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}#frm_testing_mode select:focus{background-color:rgba(0,0,0,0) !important}#frm_testing_mode select,#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{border-radius:var(--medium-radius);font-size:12px;font-weight:600;height:30px}#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{padding-top:0;padding-bottom:0}#frm_testing_mode .multiselect-selected-text{position:relative;top:2px}#frm_testing_mode #frm_testmode_fill_in_empty_form_fields{background-color:var(--primary-500);color:#fff;padding:8px 18px}#frm_testing_mode .frm_help{vertical-align:top}#frm_testing_mode .frm-button-secondary:hover,#frm_testmode_disable_required_fields_modal .frm-button-secondary:hover,#frm_ai_autofill_error_modal .frm-button-secondary:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}#frm_testing_mode a,#frm_testmode_disable_required_fields_modal a,#frm_ai_autofill_error_modal a{text-decoration:none}#frm_testmode_disable_required_fields_modal p{font-size:16px}#frm_test_mode_pagination{display:inline-block;margin-left:var(--gap-xs)}#frm_test_mode_pagination input[type=button]{border:1px solid var(--grey-300);padding:8px 12px;border-radius:8px;font-size:12px;background-color:#fff}#frm_test_mode_pagination input[type=button].frm_test_mode_active_page{background-color:var(--primary-500);border-color:var(--primary-500);color:#fff}#frm_test_mode_pagination input[type=button]:not(.frm_noallow){cursor:pointer}#frm_testmode_start_over{position:absolute;right:20px;top:20px;background-color:#fff;color:var(--grey-800);border-radius:20px;padding:4px 12px;border-color:var(--grey-300);font-weight:600}#frm_testmode_start_over img{vertical-align:middle;position:relative;bottom:2px}.frm_noallow{opacity:.5}#frm_testmode_enabled_form_actions_container{vertical-align:middle;display:inline-block;max-width:200px}#frm_testmode_upgrade{border-radius:16px;padding:var(--gap-xs) var(--gap-sm);text-align:center;font-size:var(--text-xs);margin-top:var(--gap-sm);line-height:var(--text-xs);font-weight:500;text-decoration:none;display:block;margin-left:-20px;margin-right:-20px;margin-bottom:-16px;border-radius:0 0 16px 16px}.frm_warning_style:has(.frm-addon-button){display:flex;padding:var(--gap-sm);line-height:40px}.frm_warning_style .frm-addon-button,#frm_upgrade_modal a.frm-button-primary{text-decoration:none}#frm_upgrade_modal a.frm-button-primary{cursor:pointer}.frm-dialog{z-index:1001}.frm-dialog+.ui-widget-overlay{z-index:1000}@media(max-width: 1024px){#frm_testing_mode>div>label:not(#frm_quick_jump_label){width:100%;display:block !important;margin-left:0 !important}#frm_testing_mode>div>label:not(#frm_quick_jump_label){margin-top:var(--gap-sm)}#frm_testmode_fill_in_empty_form_fields{display:block}#frm_testing_mode>div:nth-of-type(2){flex-direction:column;align-items:normal}#frm_test_mode_pagination{margin-left:0}} + */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}body.frm_preview_page .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}#frm_testing_mode{border-radius:1rem;background-color:#fff;border-color:rgba(0,0,0,.1019607843);border-width:1px;border-style:solid;padding:16px 20px;margin-bottom:40px;position:relative}#frm_testing_mode h2{font-size:18px;font-weight:600;color:#000;margin-bottom:0}#frm_testing_mode label{font-size:12px;font-weight:600}#frm_testing_mode label span.frm_toggle_opt{color:var(--grey-800);font-weight:600}#frm_testing_mode label:not(:first-child){margin-left:var(--gap-xs)}#frm_testing_mode a.frm_button{margin-left:auto;border-radius:20px;font-size:14px}#frm_testing_mode hr{color:unset;background:var(--grey-200);height:1px;border:none}#frm_testing_mode>div:nth-of-type(2){display:flex;align-items:center}#frm_testing_mode .multiselect.dropdown-toggle:after{border:none}#frm_testing_mode .frmsvg{width:11px;height:11px;margin-right:var(--gap-2xs);position:relative;top:1px}#frm_testing_mode .frm_toggle_block{gap:var(--gap-xs)}#frm_testing_mode label:not(.frm_toggle_block){margin-right:2px}#frm_testing_mode select{width:auto !important;min-height:auto !important;outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);border-width:1px;padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading);appearance:none;background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}#frm_testing_mode select:focus{background-color:rgba(0,0,0,0) !important}#frm_testing_mode select,#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{border-radius:var(--medium-radius);font-size:12px;font-weight:600;height:30px}#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{padding-top:0;padding-bottom:0}#frm_testing_mode .multiselect-selected-text{position:relative;top:2px}#frm_testing_mode #frm_testmode_fill_in_empty_form_fields{background-color:var(--primary-500);color:#fff;padding:8px 18px}#frm_testing_mode .frm_help{vertical-align:top}#frm_testing_mode .frm-button-secondary:hover,#frm_testmode_disable_required_fields_modal .frm-button-secondary:hover,#frm_ai_autofill_error_modal .frm-button-secondary:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}#frm_testing_mode a,#frm_testmode_disable_required_fields_modal a,#frm_ai_autofill_error_modal a{text-decoration:none}#frm_testmode_disable_required_fields_modal p{font-size:16px}#frm_test_mode_pagination{display:inline-block;margin-left:var(--gap-xs)}#frm_test_mode_pagination input[type=button]{border:1px solid var(--grey-300);padding:8px 12px;border-radius:8px;font-size:12px;background-color:#fff}#frm_test_mode_pagination input[type=button].frm_test_mode_active_page{background-color:var(--primary-500);border-color:var(--primary-500);color:#fff}#frm_test_mode_pagination input[type=button]:not(.frm_noallow){cursor:pointer}#frm_testmode_start_over{position:absolute;right:20px;top:20px;background-color:#fff;color:var(--grey-800);border-radius:20px;padding:4px 12px;border-color:var(--grey-300);font-weight:600}#frm_testmode_start_over img{vertical-align:middle;position:relative;bottom:2px}.frm_noallow{opacity:.5}#frm_testmode_enabled_form_actions_container{vertical-align:middle;display:inline-block;max-width:200px}#frm_testmode_upgrade{border-radius:16px;padding:var(--gap-xs) var(--gap-sm);text-align:center;font-size:var(--text-xs);margin-top:var(--gap-sm);line-height:var(--text-xs);font-weight:500;text-decoration:none;display:block;margin-left:-20px;margin-right:-20px;margin-bottom:-16px;border-radius:0 0 16px 16px}.frm_warning_style:has(.frm-addon-button){display:flex;padding:var(--gap-sm);line-height:40px}.frm_warning_style .frm-addon-button,#frm_upgrade_modal a.frm-button-primary{text-decoration:none}#frm_upgrade_modal a.frm-button-primary{cursor:pointer}.frm-dialog{z-index:1001}.frm-dialog+.ui-widget-overlay{z-index:1000}@media(max-width: 1024px){#frm_testing_mode>div>label:not(#frm_quick_jump_label){width:100%;display:block !important;margin-left:0 !important}#frm_testing_mode>div>label:not(#frm_quick_jump_label){margin-top:var(--gap-sm)}#frm_testmode_fill_in_empty_form_fields{display:block}#frm_testing_mode>div:nth-of-type(2){flex-direction:column;align-items:normal}#frm_test_mode_pagination{margin-left:0}} diff --git a/js/addons-page.js b/js/addons-page.js index 63b074f1f0..c747e93036 100644 --- a/js/addons-page.js +++ b/js/addons-page.js @@ -1 +1 @@ -(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return function(t,e){var n,r,a,c,l,s,u,f,d,p=1,y=t.length,m="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),s=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,l=c.width&&u>0?s.repeat(u):"",m+=c.align?d+n+l:"0"===s?d+l+n:l+d+n)}return m}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],l=e[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}var c=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.url,r=(t.nonce,"frm_hidden"),o="frm-hide-js",i="frm-current";function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements(function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){t.applyStyleToElements(function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"})},200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements(function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(t){return t.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},O=["(","?"],_={")":["("],":":["?","?:"]},j=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var T={contextDelimiter:"",onMissingKey:null};function F(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},T)this.options[n]=void 0!==e&&n in e?e[n]:T[n]}function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||x[o]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(N(n)&&R(r))if("function"==typeof o)if("number"==typeof i){var c={callback:o,priority:i,namespace:r};if(a[n]){var l,s=a[n].handlers;for(l=s.length;l>0&&!(i>=s[l-1].priority);l--);l===s.length?s[l]=c:s.splice(l,0,c),a.__current.forEach(function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++})}else a[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},B=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var i=t[e];if(N(r)&&(n||R(o))){if(!i[r])return 0;var a=0;if(n)a=i[r].handlers.length,i[r]={runs:i[r].runs,handlers:[]};else for(var c=i[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),a++,i.__current.forEach(function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--}))},s=c.length-1;s>=0;s--)l(s);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),a}}},M=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some(function(t){return t.namespace===r}):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,c=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},L),r.data[e]),t),r.data[e][""]=D(D({},L[""]),r.data[e][""])},c=function(t,e){a(t,e),i()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},s=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+s(r),o,t,e,r)):o};if(n){var f=function(t){q.test(t)&&i()};n.addAction("hookAdded","core/i18n",f),n.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+s(e),r,t,e)):r},_x:u,_n:function(t,e,r,o){var i=l(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+s(o),i,t,e,r,o)):i},_nx:function(t,e,r,o,i){var a=l(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+s(i),a,t,e,r,o,i)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(t,e,o){var i,a,c=e?e+""+t:t,l=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+s(o),l,t,e,o)),l}}}(0,0,V));G.getLocaleData.bind(G),G.setLocaleData.bind(G),G.resetLocaleData.bind(G),G.subscribe.bind(G);var J=G.__.bind(G),H=(G._x.bind(G),G._n.bind(G),G._nx.bind(G),G.isRTL.bind(G),G.hasTranslation.bind(G),window.frmDom),Q=H.tag,W=H.div,Y=H.a,tt=H.img;function et(t){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(t)}function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function rt(t,e,n){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ot,it=document.getElementById("post-body-content"),at=document.getElementById("".concat(v,"-sidebar")),ct=((ot=Y({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),W({id:"".concat(v,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(r),children:[tt({src:"".concat(e,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),W({className:"frmcenter",children:[Q("h2",{className:"".concat(v,"-title frm-mb-0")}),Q("p",{className:"".concat(v,"-text frm-mb-0")})]}),ot]}));null==it||it.appendChild(ct);var lt=function(){var t=document.querySelector("#".concat(v,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(v,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(v,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==mt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==mt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=pt(pt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:b,selectedCategoryEl:vt}),ht=bt.getState,gt=bt.getSingleState,St=bt.setState,wt=bt.setSingleState,xt=function(t){var e,n=t.currentTarget,r=n.getAttribute("data-category"),o=ht(),a=o.selectedCategory,c=o.selectedCategoryEl,l=o.notEmptySearchText;if(a!==r){a=wp.hooks.applyFilters("frmPage.selectedCategory",r),c.classList.remove(i),(c=n).classList.add(i),St({selectedCategory:a,selectedCategoryEl:c}),l&&((e=ut().searchInput).value="",e.dispatchEvent(new Event("input",{bubbles:!0}))),wp.hooks.doAction("frmPage.onCategoryClick",a);var u=ut().bodyContent;new s(u).fadeIn()}};function Ot(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),xt(t))}var _t=window.frmAddonsVars.addonRequestURL,jt="frm-addons",Et="available-addons",Pt="active-addons",kt="basic",At="plus",Ct="business",Tt="elite",Ft=ut(),It=Ft.bodyContent,Dt=Ft.sidebar;It.querySelectorAll(".frm-card-item:not(.plugin-card-formidable-pro)").forEach(function(t){var e=t.dataset.categories;switch(!0){case e.includes(Ct):t.setAttribute("data-categories","".concat(e,",").concat(Tt));break;case e.includes(At):t.setAttribute("data-categories","".concat(e,",").concat(Ct,",").concat(Tt));break;case e.includes(kt):t.setAttribute("data-categories","".concat(e,",").concat(At,",").concat(Ct,",").concat(Tt))}}),ft({upgradeBanner:document.getElementById("frm-upgrade-banner"),availableCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Et,'"]')),activeCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Pt,'"]')),categoriesTopDivider:Dt.querySelector(".".concat(v,"-divider")),basicPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(kt,'"]')),plusPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(At,'"]')),businessPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Ct,'"]')),elitePlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Tt,'"]')),addonsList:document.getElementById("".concat(jt,"-list")),addons:It.querySelectorAll(".frm-card-item"),availableAddons:It.querySelectorAll(".frm-card-item:not(.frm-locked-item)"),addonsToggle:It.querySelectorAll(".frm_toggle_block"),bodyContentChildren:null==It?void 0:It.children});var Lt={};Lt[Et]=[],Lt[Pt]=[];var qt,Rt=".".concat(v,"-cat-count");function Nt(){var t=ut(),e=t.activeCategory,n=t.availableCategory,r=t.categoriesTopDivider,o=document.querySelectorAll(".frm-addon-active:not(.frm-locked-item)");0!==o.length?(Lt[Pt]=o,e.querySelector(Rt).textContent=o.length):p([e,n,r])}function zt(){var t=ht().selectedCategory,e=ut(),n=e.emptyState,r=e.emptyStateButton,o=e.emptyStateTitle,i=e.emptyStateText;n.setAttribute("data-view",t),o.textContent=J("No add-ons found","formidable"),i.textContent=J("Sorry, we didn't find any add-ons that match your criteria.","formidable"),r.textContent=J("Request Add-On","formidable"),r.href=_t,r.setAttribute("target","_blank"),d([n,r])}function Bt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],l=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(t){s=!0,o=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(t,e)||Mt(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mt(t,e){if(t){if("string"==typeof t)return $t(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$t(t,e):void 0}}function $t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(new Map([["frm-addon-not-installed",".frm-install-addon"],["frm-addon-installed",".frm-activate-addon"],["frm-addon-active",".frm-deactivate-addon"]]).entries());try{for(o.s();!(n=o.n()).done;){var i=Bt(n.value,2),a=i[0],c=i[1];if(r.classList.contains(a)){(qt=r.querySelector(c)).click();break}}}catch(t){o.e(t)}finally{o.f()}}};var Zt=window.frmDom.search.init;function Kt(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=ht(),a=ut().allItemsCategory;wt("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ut(),n=e.bodyContent,r=e.bodyContentChildren,o=e.addonsList;t&>("selectedCategoryEl").classList.remove(i),p(r),y(o),new s(n).fadeIn()}(r),r&&wt("selectedCategory","")),function(t){if(t){var e,n=ut().emptyState;e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")&&m(n)}else zt()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}function Xt(){var t;ut().categoryItems.forEach(function(t){f(t,xt),t.addEventListener("keydown",Ot)}),wp.hooks.addAction("frmPage.onCategoryClick","frmAddonsPage",function(t){!function(t){var e=ut(),n=e.bodyContent,r=e.addons,o=e.emptyState,i=e.upgradeBanner;m(o),y(i),n.dataset.category=t,b!==t?(p(r),0===Lt[t].length?(zt(),m(i)):d(Lt[t])):d(r)}(t)}),ut().addonsToggle.forEach(function(t){return t.addEventListener("click",Ut)}),wp.hooks.addAction("frm_update_addon_state","frmAddonPage",function(){Nt()}),t=ut().searchInput,Zt(t,"frm-card-item",{handleSearchResult:Kt})}var Vt;Vt=function(){(function(){var t,e,n,r,i,a,c,l,u,f,d=ut(),p=d.sidebar,m=d.searchInput,v=d.bodyContent,b=new s(v);m.value="",Nt(),function(){var t=ut(),e=t.bodyContent,n=t.availableCategory,r=t.availableAddons;if(Lt[Et]=r,n){n.querySelector(Rt).textContent=r.length;var o=e.querySelector(".".concat(jt,"-available-count"));o&&(o.textContent=r.length)}}(),function(){var t=ut(),e=t.allItemsCategory,n=t.addons;e.querySelector(Rt).textContent=n.length}(),e=(t=ut()).basicPlanCategory,n=t.plusPlanCategory,r=t.businessPlanCategory,i=t.elitePlanCategory,c=(a=function(t){return parseInt(t.querySelector(Rt).textContent,10)||0})(e),l=a(n)-1,u=a(r)-1,f=a(i)-1,n.querySelector(Rt).textContent=c+l,r.querySelector(Rt).textContent=c+l+u,i.querySelector(Rt).textContent=c+l+u+f,v.classList.remove(o),p.classList.remove(o),b.fadeIn(),y(p)})(),ut().addons.forEach(function(t){var e=t.getAttribute("data-categories");e&&e.split(",").forEach(function(e){Lt[e]||(Lt[e]=[]),Lt[e].push(t)})}),Xt()},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Vt):Vt())})()})(); \ No newline at end of file +(()=>{var t={8616:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(a=0;a{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return function(t,e){var n,r,a,c,l,s,u,f,d,p=1,y=t.length,m="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),s=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,l=c.width&&u>0?s.repeat(u):"",m+=c.align?d+n+l:"0"===s?d+l+n:l+d+n)}return m}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],l=e[2],s=[];if(null===(s=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(s[1]);""!==(l=l.substring(s[0].length));)if(null!==(s=o.key_access.exec(l)))a.push(s[1]);else{if(null===(s=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(s[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}var c=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.url,r=(t.nonce,"frm_hidden"),o="frm-hide-js",i="frm-current";function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):0":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},O=["(","?"],_={")":["("],":":["?","?:"]},j=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var T={contextDelimiter:"",onMissingKey:null};function F(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},T)this.options[n]=void 0!==e&&n in e?e[n]:T[n]}function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||x[o]3&&void 0!==arguments[3]?arguments[3]:10,a=t[e];if(N(n)&&R(r))if("function"==typeof o)if("number"==typeof i){var c={callback:o,priority:i,namespace:r};if(a[n]){var l,s=a[n].handlers;for(l=s.length;l>0&&!(i>=s[l-1].priority);l--);l===s.length?s[l]=c:s.splice(l,0,c),a.__current.forEach((function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++}))}else a[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},B=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var i=t[e];if(N(r)&&(n||R(o))){if(!i[r])return 0;var a=0;if(n)a=i[r].handlers.length,i[r]={runs:i[r].runs,handlers:[]};else for(var c=i[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),a++,i.__current.forEach((function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--})))},s=c.length-1;s>=0;s--)l(s);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),a}}},M=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some((function(t){return t.namespace===r})):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var i=o[r].handlers,a=arguments.length,c=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},L),r.data[e]),t),r.data[e][""]=D(D({},L[""]),r.data[e][""])},c=function(t,e){a(t,e),i()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},s=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+s(r),o,t,e,r)):o};if(n){var f=function(t){q.test(t)&&i()};n.addAction("hookAdded","core/i18n",f),n.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+s(e),r,t,e)):r},_x:u,_n:function(t,e,r,o){var i=l(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+s(o),i,t,e,r,o)):i},_nx:function(t,e,r,o,i){var a=l(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+s(i),a,t,e,r,o,i)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(t,e,o){var i,a,c=e?e+""+t:t,l=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+s(o),l,t,e,o)),l}}}(0,0,V));G.getLocaleData.bind(G),G.setLocaleData.bind(G),G.resetLocaleData.bind(G),G.subscribe.bind(G);var J=G.__.bind(G),H=(G._x.bind(G),G._n.bind(G),G._nx.bind(G),G.isRTL.bind(G),G.hasTranslation.bind(G),window.frmDom),Q=H.tag,W=H.div,Y=H.a,tt=H.img;function et(t){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(t)}function nt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function rt(t,e,n){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ot,it=document.getElementById("post-body-content"),at=document.getElementById("".concat(v,"-sidebar")),ct=((ot=Y({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),W({id:"".concat(v,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(r),children:[tt({src:"".concat(e,"/images/page-skeleton/empty-state.svg"),alt:J("Empty State","formidable")}),W({className:"frmcenter",children:[Q("h2",{className:"".concat(v,"-title frm-mb-0")}),Q("p",{className:"".concat(v,"-text frm-mb-0")})]}),ot]}));null==it||it.appendChild(ct);var lt=function(){var t=document.querySelector("#".concat(v,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(v,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(v,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==mt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==mt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=pt(pt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:b,selectedCategoryEl:vt}),ht=bt.getState,gt=bt.getSingleState,St=bt.setState,wt=bt.setSingleState,xt=function(t){var e,n=t.currentTarget,r=n.getAttribute("data-category"),o=ht(),a=o.selectedCategory,c=o.selectedCategoryEl,l=o.notEmptySearchText;if(a!==r){a=wp.hooks.applyFilters("frmPage.selectedCategory",r),c.classList.remove(i),(c=n).classList.add(i),St({selectedCategory:a,selectedCategoryEl:c}),l&&((e=ut().searchInput).value="",e.dispatchEvent(new Event("input",{bubbles:!0}))),wp.hooks.doAction("frmPage.onCategoryClick",a);var u=ut().bodyContent;new s(u).fadeIn()}};function Ot(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),xt(t))}var _t=window.frmAddonsVars.addonRequestURL,jt="frm-addons",Et="available-addons",Pt="active-addons",kt="basic",At="plus",Ct="business",Tt="elite",Ft=ut(),It=Ft.bodyContent,Dt=Ft.sidebar;It.querySelectorAll(".frm-card-item:not(.plugin-card-formidable-pro)").forEach((function(t){var e=t.dataset.categories;switch(!0){case e.includes(Ct):t.setAttribute("data-categories","".concat(e,",").concat(Tt));break;case e.includes(At):t.setAttribute("data-categories","".concat(e,",").concat(Ct,",").concat(Tt));break;case e.includes(kt):t.setAttribute("data-categories","".concat(e,",").concat(At,",").concat(Ct,",").concat(Tt))}})),ft({upgradeBanner:document.getElementById("frm-upgrade-banner"),availableCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Et,'"]')),activeCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Pt,'"]')),categoriesTopDivider:Dt.querySelector(".".concat(v,"-divider")),basicPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(kt,'"]')),plusPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(At,'"]')),businessPlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Ct,'"]')),elitePlanCategory:Dt.querySelector(".".concat(v,'-cat[data-category="').concat(Tt,'"]')),addonsList:document.getElementById("".concat(jt,"-list")),addons:It.querySelectorAll(".frm-card-item"),availableAddons:It.querySelectorAll(".frm-card-item:not(.frm-locked-item)"),addonsToggle:It.querySelectorAll(".frm_toggle_block"),bodyContentChildren:null==It?void 0:It.children});var Lt={};Lt[Et]=[],Lt[Pt]=[];var qt,Rt=".".concat(v,"-cat-count");function Nt(){var t=ut(),e=t.activeCategory,n=t.availableCategory,r=t.categoriesTopDivider,o=document.querySelectorAll(".frm-addon-active:not(.frm-locked-item)");0!==o.length?(Lt[Pt]=o,e.querySelector(Rt).textContent=o.length):p([e,n,r])}function zt(){var t=ht().selectedCategory,e=ut(),n=e.emptyState,r=e.emptyStateButton,o=e.emptyStateTitle,i=e.emptyStateText;n.setAttribute("data-view",t),o.textContent=J("No add-ons found","formidable"),i.textContent=J("Sorry, we didn't find any add-ons that match your criteria.","formidable"),r.textContent=J("Request Add-On","formidable"),r.href=_t,r.setAttribute("target","_blank"),d([n,r])}function Bt(t,e){if(t){if("string"==typeof t)return Mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mt(t,e):void 0}}function Mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(new Map([["frm-addon-not-installed",".frm-install-addon"],["frm-addon-installed",".frm-activate-addon"],["frm-addon-active",".frm-deactivate-addon"]]).entries());try{for(a.s();!(o=a.n()).done;){var c=(n=o.value,r=2,function(t){if(Array.isArray(t))return t}(n)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],l=!0,s=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(t){s=!0,o=t}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(n,r)||Bt(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],s=c[1];if(i.classList.contains(l)){(qt=i.querySelector(s)).click();break}}}catch(t){a.e(t)}finally{a.f()}}};var Ut=window.frmDom.search.init;function Zt(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=ht(),a=ut().allItemsCategory;wt("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ut(),n=e.bodyContent,r=e.bodyContentChildren,o=e.addonsList;t&>("selectedCategoryEl").classList.remove(i),p(r),y(o),new s(n).fadeIn()}(r),r&&wt("selectedCategory","")),function(t){if(t){var e,n=ut().emptyState;e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")&&m(n)}else zt()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}function Kt(){var t;ut().categoryItems.forEach((function(t){f(t,xt),t.addEventListener("keydown",Ot)})),wp.hooks.addAction("frmPage.onCategoryClick","frmAddonsPage",(function(t){!function(t){var e=ut(),n=e.bodyContent,r=e.addons,o=e.emptyState,i=e.upgradeBanner;m(o),y(i),n.dataset.category=t,b!==t?(p(r),0===Lt[t].length?(zt(),m(i)):d(Lt[t])):d(r)}(t)})),ut().addonsToggle.forEach((function(t){return t.addEventListener("click",$t)})),wp.hooks.addAction("frm_update_addon_state","frmAddonPage",(function(){Nt()})),t=ut().searchInput,Ut(t,"frm-card-item",{handleSearchResult:Zt})}var Xt;Xt=function(){(function(){var t,e,n,r,i,a,c,l,u,f,d=ut(),p=d.sidebar,m=d.searchInput,v=d.bodyContent,b=new s(v);m.value="",Nt(),function(){var t=ut(),e=t.bodyContent,n=t.availableCategory,r=t.availableAddons;if(Lt[Et]=r,n){n.querySelector(Rt).textContent=r.length;var o=e.querySelector(".".concat(jt,"-available-count"));o&&(o.textContent=r.length)}}(),function(){var t=ut(),e=t.allItemsCategory,n=t.addons;e.querySelector(Rt).textContent=n.length}(),e=(t=ut()).basicPlanCategory,n=t.plusPlanCategory,r=t.businessPlanCategory,i=t.elitePlanCategory,c=(a=function(t){return parseInt(t.querySelector(Rt).textContent,10)||0})(e),l=a(n)-1,u=a(r)-1,f=a(i)-1,n.querySelector(Rt).textContent=c+l,r.querySelector(Rt).textContent=c+l+u,i.querySelector(Rt).textContent=c+l+u+f,v.classList.remove(o),p.classList.remove(o),b.fadeIn(),y(p)})(),ut().addons.forEach((function(t){var e=t.getAttribute("data-categories");e&&e.split(",").forEach((function(e){Lt[e]||(Lt[e]=[]),Lt[e].push(t)}))})),Kt()},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",Xt):Xt())})()})(); \ No newline at end of file diff --git a/js/form-templates.js b/js/form-templates.js index c8e0c0b5eb..78bdcae8f7 100644 --- a/js/form-templates.js +++ b/js/form-templates.js @@ -1,2 +1,2 @@ /*! For license information please see form-templates.js.LICENSE.txt */ -(()=>{var t={616:t=>{t.exports=function(t,e){var n,r,o=0;function a(){var a,i,c=n,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(i=0;i{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var n,r,i,c,l,u,s,m,f,p=1,d=t.length,y="";for(r=0;r=0),c.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,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?y+=n:(!o.number.test(c.type)||m&&!c.sign?f="":(f=m?"+":"-",n=n.toString().replace(o.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",s=c.width-(f+n).length,l=c.width&&s>0?u.repeat(s):"",y+=c.align?f+n+l:"0"===u?f+l+n:l+f+n)}return y}(function(t){if(c[t])return c[t];for(var e,n=t,r=[],a=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var i=[],l=e[2],u=[];if(null===(u=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=o.key_access.exec(l)))i.push(u[1]);else{if(null===(u=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(u[1])}e[2]=i}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}(t),arguments)}function i(t,e){return a.apply(null,[t].concat(e||[]))}var c=Object.create(null);e.sprintf=a,e.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=i,void 0===(r=function(){return{sprintf:a,vsprintf:i}}.call(e,n,e,t))||(t.exports=r))}()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var a=e[r]={exports:{}};return t[r](a,a.exports,n),a.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.canAccessApplicationDashboard,r=t.applicationsUrl,o=window.frmFormTemplatesVars,a=o.FEATURED_TEMPLATES_IDS,i=o.FREE_TEMPLATES_IDS,c=o.upgradeLink,l="frm-form-templates",u="available-templates",s="favorites",m="custom",f="search",p="440px",d="550px",y="frm-page-skeleton",v="all-items";function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function b(t){for(var e=1;e":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},T=["(","?"],_={")":["("],":":["?","?:"]},x=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var P={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};var F={contextDelimiter:"",onMissingKey:null};function L(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},F)this.options[n]=void 0!==e&&n in e?e[n]:F[n]}function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function D(t){for(var e=1;e=0||S[o]3&&void 0!==arguments[3]?arguments[3]:10,i=t[e];if(G(n)&&N(r))if("function"==typeof o)if("number"==typeof a){var c={callback:o,priority:a,namespace:r};if(i[n]){var l,u=i[n].handlers;for(l=u.length;l>0&&!(a>=u[l-1].priority);l--);l===u.length?u[l]=c:u.splice(l,0,c),i.__current.forEach(function(t){t.name===n&&t.currentIndex>=l&&t.currentIndex++})}else i[n]={handlers:[c],runs:0};"hookAdded"!==n&&t.doAction("hookAdded",n,r,o,a)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},z=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,o){var a=t[e];if(G(r)&&(n||N(o))){if(!a[r])return 0;var i=0;if(n)i=a[r].handlers.length,a[r]={runs:a[r].runs,handlers:[]};else for(var c=a[r].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),i++,a.__current.forEach(function(e){e.name===r&&e.currentIndex>=t&&e.currentIndex--}))},u=c.length-1;u>=0;u--)l(u);return"hookRemoved"!==r&&t.doAction("hookRemoved",r,o),i}}},V=function(t,e){return function(n,r){var o=t[e];return void 0!==r?n in o&&o[n].handlers.some(function(t){return t.namespace===r}):n in o}},$=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=t[e];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;for(var a=o[r].handlers,i=arguments.length,c=new Array(i>1?i-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[e]=D(D(D({},M),r.data[e]),t),r.data[e][""]=D(D({},M[""]),r.data[e][""])},c=function(t,e){i(t,e),a()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return r.data[t]||i(void 0,t),r.dcnpgettext(t,e,n,o,a)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},s=function(t,e,r){var o=l(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+u(r),o,t,e,r)):o};if(n){var m=function(t){q.test(t)&&a()};n.addAction("hookAdded","core/i18n",m),n.addAction("hookRemoved","core/i18n",m)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:c,resetLocaleData:function(t,e){r.data={},r.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var r=l(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+u(e),r,t,e)):r},_x:s,_n:function(t,e,r,o){var a=l(o,void 0,t,e,r);return n?(a=n.applyFilters("i18n.ngettext",a,t,e,r,o),n.applyFilters("i18n.ngettext_"+u(o),a,t,e,r,o)):a},_nx:function(t,e,r,o,a){var i=l(a,o,t,e,r);return n?(i=n.applyFilters("i18n.ngettext_with_context",i,t,e,r,o,a),n.applyFilters("i18n.ngettext_with_context_"+u(a),i,t,e,r,o,a)):i},isRTL:function(){return"rtl"===s("ltr","text direction")},hasTranslation:function(t,e,o){var a,i,c=e?e+""+t:t,l=!(null===(a=r.data)||void 0===a||null===(i=a[null!=o?o:"default"])||void 0===i||!i[c]);return n&&(l=n.applyFilters("i18n.has_translation",l,t,e,o),l=n.applyFilters("i18n.has_translation_"+u(o),l,t,e,o)),l}}}(0,0,Y));K.getLocaleData.bind(K),K.setLocaleData.bind(K),K.resetLocaleData.bind(K),K.subscribe.bind(K);var X=K.__.bind(K),W=(K._x.bind(K),K._n.bind(K),K._nx.bind(K),K.isRTL.bind(K),K.hasTranslation.bind(K),window.frmGlobal),Q=W.url,tt=(W.nonce,"frm_hidden"),et="frm-hide-js",nt="frm-current",rt=window.frmDom,ot=rt.tag,at=rt.div,it=rt.a,ct=rt.img;function lt(t){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lt(t)}function ut(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function st(t,e,n){return(e=function(t){var e=function(t){if("object"!=lt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=lt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==lt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var mt,ft=document.getElementById("post-body-content"),pt=document.getElementById("".concat(y,"-sidebar")),dt=((mt=it({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),at({id:"".concat(y,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(tt),children:[ct({src:"".concat(Q,"/images/page-skeleton/empty-state.svg"),alt:X("Empty State","formidable")}),at({className:"frmcenter",children:[ot("h2",{className:"".concat(y,"-title frm-mb-0")}),ot("p",{className:"".concat(y,"-text frm-mb-0")})]}),mt]}));null==ft||ft.appendChild(dt);var yt=function(){var t=document.querySelector("#".concat(y,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(y,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(y,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),vt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=b(b({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==Tt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var n=Reflect.get(e,t);return void 0===n?null:n},setState:function(t){if("object"!==Tt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=wt(wt({},e),t)},setSingleState:function(t,n){Reflect.has(e,t)&&Reflect.set(e,t,n)}}}({notEmptySearchText:!1,selectedCategory:v,selectedCategoryEl:_t}),Et=xt.getState,Ot=xt.getSingleState,jt=xt.setState,It=xt.setSingleState;function kt(t){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kt(t)}function Ct(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=n,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements(function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")},{once:!0})})}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout(function(){t.applyStyleToElements(function(t,n){t.classList.remove("frm-animate"),t.style.transitionDelay=(n+1)*e+"s"})},200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements(function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")})}},{key:"resetOpacity",value:function(){this.applyStyleToElements(function(t){return t.style.opacity="1.0"})}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):02&&void 0!==arguments[2]?arguments[2]:"pushState";if(Gt.set(t,e),Nt.search=Gt.toString(),["pushState","replaceState"].includes(a)){var i=(n={},o=e,(r=function(t){var e=function(t){if("object"!=Dt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=Dt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Dt(e)?e:e+""}(r=t))in n?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,n);window.history[a](i,"",Nt)}return Nt.toString()},Vt=function(t){return Gt.has(t)},$t=function(t){return"string"==typeof t&&/^(([^<>()\[\]\\.,;:\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(t)},Ut=function(t){return t instanceof HTMLElement||console.warn("Invalid argument: Element must be an instance of HTMLElement")||!1},Ht=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach(function(t){return Jt(t)})},Zt=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach(function(t){return Yt(t)})},Jt=function(t){return null==t?void 0:t.classList.remove(tt)},Yt=function(t){return null==t?void 0:t.classList.add(tt)},Kt=function(t){var e=t.currentTarget,n=e.getAttribute("data-category"),r=Et(),o=r.selectedCategory,a=r.selectedCategoryEl,i=r.notEmptySearchText;if(o!==n){o=wp.hooks.applyFilters("frmPage.selectedCategory",n),a.classList.remove(nt),(a=e).classList.add(nt),jt({selectedCategory:o,selectedCategoryEl:a}),i&&Wt(),wp.hooks.doAction("frmPage.onCategoryClick",o);var c=ht().bodyContent;new Pt(c).fadeIn()}};function Xt(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),Kt(t))}function Wt(){var t=ht().searchInput;t.value="",t.dispatchEvent(new Event("input",{bubbles:!0}))}var Qt=ht().bodyContent,te=document.getElementById("".concat(l,"-list")),ee=document.getElementById("".concat(l,"-custom-list-section")),ne=document.querySelector(".".concat(y,'-cat[data-category="').concat(s,'"]')),re=document.getElementById("".concat(l,"-modal"));bt({headerCancelButton:null===(Mt=document.getElementById("frm-publishing"))||void 0===Mt?void 0:Mt.querySelector("a"),createFormButton:document.getElementById("".concat(l,"-create-form")),pageTitle:document.getElementById("".concat(l,"-page-title")),pageTitleText:document.getElementById("".concat(l,"-page-title-text")),pageTitleDivider:document.getElementById("".concat(l,"-page-title-divider")),upsellBanner:null!==(qt=document.getElementById("frm-renew-subscription-banner"))&&void 0!==qt?qt:document.getElementById("frm-upgrade-banner"),extraTemplateCountElements:document.querySelectorAll(".".concat(l,"-extra-templates-count")),templatesList:te,templateItems:te.querySelectorAll(".frm-card-item"),availableTemplateItems:te.querySelectorAll(".frm-card-item:not(.".concat(l,"-locked-item)")),twinFeaturedTemplateItems:te.querySelectorAll(".".concat(l,"-featured-item")),featuredTemplatesList:document.getElementById("".concat(l,"-featured-list")),customTemplatesSection:ee,customTemplateItems:ee.querySelectorAll(".frm-card-item"),customTemplatesTitle:document.getElementById("".concat(l,"-custom-list-title")),customTemplatesList:document.getElementById("".concat(l,"-custom-list")),favoritesCategory:ne,favoritesCategoryCountEl:null==ne?void 0:ne.querySelector(".".concat(y,"-cat-count")),availableTemplatesCategory:document.querySelector(".".concat(y,'-cat[data-category="').concat(u,'"]')),getFreeTemplatesBannerButton:document.querySelector(".frm-get-free-templates-banner .button"),modal:re,modalItems:null==re?void 0:re.querySelectorAll(".".concat(l,"-modal-item")),showCreateTemplateModalButton:document.getElementById("frm-show-create-template-modal"),createTemplateModal:document.getElementById("frm-create-template-modal"),createTemplateFormsDropdown:document.getElementById("frm-create-template-modal-forms-select"),createTemplateName:document.getElementById("frm_create_template_name"),createTemplateDescription:document.getElementById("frm_create_template_description"),createTemplateButton:document.getElementById("frm-create-template-button"),renewAccountModal:document.getElementById("frm-renew-modal"),leaveEmailModal:document.getElementById("frm-leave-email-modal"),leaveEmailModalInput:document.getElementById("frm_leave_email"),leaveEmailModalButton:document.getElementById("frm-get-code-button"),upgradeModal:document.getElementById("frm-form-upgrade-modal"),upgradeModalTemplateNames:null==re?void 0:re.querySelectorAll(".frm-upgrade-modal-template-name"),upgradeModalPlansIcons:null==re?void 0:re.querySelectorAll(".frm-upgrade-modal-plan-icon"),upgradeModalLink:document.getElementById("frm-upgrade-modal-link"),newTemplateForm:document.getElementById("frm-new-template"),newTemplateNameInput:document.getElementById("frm_template_name"),newTemplateDescriptionInput:document.getElementById("frm_template_desc"),newTemplateLinkInput:document.getElementById("frm_link"),newTemplateActionInput:document.getElementById("frm_action_type"),bodyContentChildren:null==Qt?void 0:Qt.children});var oe,ae=window.frmDom,ie=ae.tag,ce=ae.div,le=ae.span,ue=ae.a,se=ae.img,me="".concat(Q,"/images/applications/thumbnails");var fe=window.frmFormTemplatesVars,pe=fe.templatesCount,de=fe.favoritesCount,ye=fe.customCount,ve=ht().availableTemplateItems.length;jt({availableTemplatesCount:ve,customCount:Number(ye),extraTemplatesCount:pe-ve,favoritesCount:de}),window.frmDom.span;var he=function(t,e){return t.textContent=String(e),t},be=function(t,e,n,r,o,a,i){e._counterStartTime||(e._counterStartTime=t,e._counterLastTimestamp=t,e._counterFrameDropCount=0,e._counterLastValue=n);var c=t-e._counterLastTimestamp,l=t-e._counterStartTime;if(c>50&&null!==e._counterLastTimestamp&&(e._counterFrameDropCount++,e._counterFrameDropCount>3))return e.style.transition="opacity ".concat(Math.max(o-l,100),"ms ease-out"),e.textContent=String(r),void delete e._counterAnimation;var u=Math.min(l/o,1),s=i(u),m=Math.round(n+a*s);m!==e._counterLastValue&&(e.textContent=String(m),e._counterLastValue=m),e._counterLastTimestamp=t,u<1?e._counterAnimation=requestAnimationFrame(function(t){return be(t,e,n,r,o,a,i)}):(e.textContent=String(r),["_counterAnimation","_counterStartTime","_counterLastTimestamp","_counterFrameDropCount","_counterLastValue"].forEach(function(t){return delete e[t]}),e.style.removeProperty("transition"))},ge=function(t){return 1-Math.pow(1-t,4)};const we=function(){var t,e=ht(),n=e.sidebar,r=e.searchInput,o=e.bodyContent,a=e.twinFeaturedTemplateItems,c=e.availableTemplatesCategory,l=e.extraTemplateCountElements,u=new Pt(o);r.value="",Zt(a),function(t){if(t){var e,n,r=Ot("availableTemplatesCount");if(Vt("registered-for-free-templates"))history.replaceState({},"",Rt("registered-for-free-templates")),e=t,n=r,setTimeout(function(){e.dispatchEvent(new Event("click",{bubbles:!0}))},0),setTimeout(function(){!function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r="string"==typeof t?document.querySelector(t):t;if(!(r&&r instanceof HTMLElement))return null;var o="number"==typeof e?e:parseInt(e,10);if(isNaN(o))return console.warn("Counter: Invalid value provided, defaulting to 0"),he(r,"0");if(0===o)return he(r,"0");var a=n.duration,i=void 0===a?3e3:a,c=n.easing,l=void 0===c?ge:c,u=parseInt(r.textContent,10)||0,s=o-u;0===s||(r._counterAnimation&&cancelAnimationFrame(r._counterAnimation),r.classList.add("frm-fadein"),r._counterAnimation=requestAnimationFrame(function(t){return be(t,r,u,o,i,s,l)}))}(e.querySelector(".".concat(y,"-cat-count")),n)},150),setTimeout(function(){ht().availableTemplateItems.forEach(function(t){i.includes(Number(t.dataset.id))||(t.classList.add("frm-background-highlight"),t.addEventListener("animationend",function t(e){"backgroundHighlight"===e.animationName&&(this.classList.remove("frm-background-highlight"),this.removeEventListener("animationend",t))}))})},750);else t.querySelector(".".concat(y,"-cat-count")).textContent=r}}(c),l.forEach(function(t){return t.textContent=Ot("extraTemplatesCount")}),o.classList.remove(et),n.classList.remove(et),u.fadeIn(),Vt("return_page")&&(t=ht().headerCancelButton,new Pt(t).fadeIn())};function Se(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var l=r&&r.prototype instanceof c?r:c,u=Object.create(l.prototype);return Te(u,"_invoke",function(n,r,o){var a,c,l,u=0,s=o||[],m=!1,f={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return a=e,c=0,l=t,f.n=n,i}};function p(n,r){for(c=n,l=r,e=0;!m&&u&&!o&&e3?(o=d===r)&&(l=a[(c=a[4])?5:(c=3,3)],a[4]=a[5]=t):a[0]<=p&&((o=n<2&&pr||r>d)&&(a[4]=n,a[5]=r,f.n=d,c=0))}if(o||n>1)return i;throw m=!0,r}return function(o,s,d){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,d),c=s,l=d;(e=c<2?t:l)||!m;){a||(c?c<3?(c>1&&(f.n=-1),p(c,l)):f.n=l:f.v=l);try{if(u=2,a){if(c||(o="next"),e=a[o]){if(!(e=e.call(a,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,c<2&&(c=0)}else 1===c&&(e=a.return)&&e.call(a),c<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),c=1);a=t}else if((e=(m=f.n<0)?l:n.call(r,f))!==i)break}catch(e){a=t,c=1,l=e}finally{u=1}}return{value:e,done:m}}}(n,o,a),!0),u}var i={};function c(){}function l(){}function u(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(Te(e={},r,function(){return this}),e),m=u.prototype=c.prototype=Object.create(s);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):(t.__proto__=u,Te(t,o,"GeneratorFunction")),t.prototype=Object.create(m),t}return l.prototype=u,Te(m,"constructor",u),Te(u,"constructor",l),l.displayName="GeneratorFunction",Te(u,o,"GeneratorFunction"),Te(m),Te(m,o,"Generator"),Te(m,r,function(){return this}),Te(m,"toString",function(){return"[object Generator]"}),(Se=function(){return{w:a,m:f}})()}function Te(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Te=function(t,e,n,r){function a(e,n){Te(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(a("next",0),a("throw",1),a("return",2))},Te(t,e,n,r)}function _e(t,e,n,r,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void n(t)}c.done?e(l):Promise.resolve(l).then(r,o)}var xe=null;function Ee(){var t;return t=Se().m(function t(){var e,n,r;return Se().w(function(t){for(;;)switch(t.n){case 0:e=window.frmAdminBuild,n=e.initModal,r=e.offsetModalY,(xe=n("#frm-form-templates-modal",p))&&r(xe,"103px"),Vt("free-templates")&&ht().leaveEmailModal&&fn(),wp.hooks.addAction("frmAdmin.beforeOpenConfirmModal","frmFormTemplates",function(t){var e=t.$info;e.dialog("option","width",d),r(e,"103px")});case 1:return t.a(2)}},t)}),Ee=function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(t){_e(a,r,o,i,c,"next",t)}function c(t){_e(a,r,o,i,c,"throw",t)}i(void 0)})},Ee.apply(this,arguments)}function Oe(){return xe}function je(t){var e=ht().pageTitleText,n=t||Ot("selectedCategoryEl").querySelector(".".concat(y,"-cat-text")).textContent;e.textContent=n}var Ie=function(t){return!!Ut(t)&&t.classList.contains("".concat(l,"-favorite-item"))},ke=function(t){return!!Ut(t)&&t.classList.contains("".concat(l,"-custom-item"))},Ce={},Ae=function(){var t=ht(),e=t.createFormButton,n=t.newTemplateForm,r=t.newTemplateNameInput,o=t.newTemplateActionInput,a=window.frmAdminBuild.installNewForm;r.value="",o.value="frm_install_form",a(n,"frm_install_form",e)};var Pe=".".concat(l,"-item-favorite-button"),Fe="".concat(Pe," use"),Le="#frm_heart_solid_icon",Be="#frm_heart_icon",De=function(t){var e,n=t.currentTarget,r=ht(),o=r.templatesList,i=r.featuredTemplatesList,c=r.favoritesCategoryCountEl,u=r.customTemplatesTitle,m=n.closest(".frm-card-item"),f=m.dataset.id,p=Ie(m),d=ke(m),y=function(t){return!!Ut(t)&&a.includes(Number(t.dataset.id))}(m),v=null;if(m.classList.toggle("".concat(l,"-favorite-item"),!p),y){var h=m.closest("#".concat(l,"-list"))?i:o;h&&(v=h.querySelector('.frm-card-item[data-id="'.concat(f,'"]'))).classList.toggle("".concat(l,"-favorite-item"),!p)}var b,g=Et(),w=g.selectedCategory,S=g.favoritesCount,T=p?"remove":"add",_=m.querySelector(Fe),x=null===(e=v)||void 0===e?void 0:e.querySelector(Fe);"add"===T?(++S.total,d?++S.custom:++S.default,_.setAttribute("xlink:href",Le),null==x||x.setAttribute("xlink:href",Le)):(--S.total,d?--S.custom:--S.default,_.setAttribute("xlink:href",Be),null==x||x.setAttribute("xlink:href",Be)),c.textContent=S.total,It("favoritesCount",S),s===w&&(0===S.total&&nn(),Yt(m),0===S.default&&Yt(o),0!==S.custom&&0!==S.default||Yt(u)),b=function(){return t=f,e=T,n=d,r=new FormData,o=frmDom.ajax.doJsonPost,r.append("template_id",t),r.append("operation",e),r.append("is_custom_template",n),o("add_or_remove_favorite_template",r);var t,e,n,r,o},Ft=Ft.then(b).catch(b)};var Me=function(t){var e=t.currentTarget,n=e.closest(".frm-card-item"),r=function(t){return!!Ut(t)&&t.classList.contains("".concat(l,"-locked-item"))}(n),o=ke(n);if(r||!o)if(t.preventDefault(),r)!function(t){var e=t.dataset.requiredPlan;switch(e){case"basic":case"plus":case"business":case"elite":sn(e,t);break;case"renew":mn();break;case"free":fn()}}(n);else{var a=ht(),i=a.newTemplateForm,c=a.newTemplateNameInput,u=a.newTemplateDescriptionInput,s=a.newTemplateLinkInput,m=a.newTemplateActionInput,f=window.frmAdminBuild.installNewForm,p=n.querySelector(".frm-form-template-name").textContent.trim(),d=n.querySelector(".frm-form-templates-item-description").textContent.trim(),y="frm_install_template";c.value=p,u.value=d,m.value=y,s.value=e.href,f(i,y,e)}};var qe=window.frmDom.search.init;function Ne(t,e){var n=t.foundSomething,r=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=Et(),a=ht().allItemsCategory;It("notEmptySearchText",r),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=ht(),n=e.bodyContent,r=e.bodyContentChildren,o=e.pageTitle,a=e.templatesList,i=e.applicationTemplates,c=new Pt(n);t&&Ot("selectedCategoryEl").classList.remove(nt),Zt(r),je(X("Search Result","formidable")),Ht([o,a,i]),c.fadeIn()}(r),r&&It("selectedCategory","")),function(t){if(t){var e,n=ht().emptyState;if(e=n,"none"!==window.getComputedStyle(e).getPropertyValue("display")){var r=ht().pageTitle;Yt(n),Jt(r)}var o=ht(),a=o.templatesList,i=o.applicationTemplates,c=o.applicationTemplatesTitle,l=o.applicationTemplatesList;Ht([a,i,c]),0===a.offsetHeight&&Zt([a,c]),0===(null==l?void 0:l.offsetHeight)&&Yt(i)}else!function(){var t,e=Et().notEmptySearchText,n=ht(),r=n.pageTitle,o=n.emptyState,a=n.emptyStateButton,i=n.applicationTemplates;if(f!==(null===(t=o.dataset)||void 0===t?void 0:t.view)){o.setAttribute("data-view",f);var c=ht(),l=c.emptyStateTitle,u=c.emptyStateText;l.textContent=X("No templates found","formidable"),u.textContent=X("Sorry, we didn't find any templates that match your criteria.","formidable"),a.textContent=X("Start from Scratch","formidable"),Zt([r,i]),Ht([o,a])}else e?(Jt(o),Zt([r,i])):(Yt(o),o.removeAttribute("data-view"))}()}(n)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}var Ge=function(){var t,e=ht().emptyState;f===(null===(t=e.dataset)||void 0===t?void 0:t.view)&&(It("selectedCategory",""),Wt(),ht().searchInput.focus())};var Re=function(){var t=Et().selectedCategory;m===t&&pn()},ze=function(){var t=ht().createTemplateFormsDropdown,e=t.value;if(e&&"no-forms"!==e){Ve(!1);var n=t.options[t.selectedIndex],r=n.dataset.description.trim(),o=n.dataset.name.trim(),a=" ".concat(X("Template","formidable"));o.endsWith(a)||(o+=a);var i=ht(),c=i.createTemplateName,l=i.createTemplateDescription;c.value=o,l.value=r}else Ve(!0)},Ve=function(t){var e=ht(),n=e.createTemplateName,r=e.createTemplateDescription,o=e.createTemplateButton;[n,r].forEach(function(e){e.disabled=t,t&&(e.value="")}),o.classList.toggle("disabled",t)},$e=function(){var t=window.frmAdminBuild.installNewForm,e="frm_create_template",n=ht(),r=n.newTemplateForm,o=n.newTemplateActionInput,a=n.newTemplateNameInput,i=n.newTemplateDescriptionInput,c=n.newTemplateLinkInput,l=n.createTemplateName,u=n.createTemplateDescription,s=n.createTemplateFormsDropdown,m=n.createTemplateButton;o.value=e,a.value=l.value.trim(),i.value=u.value.trim(),c.value=s.value,t(r,e,m)};function Ue(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var l=r&&r.prototype instanceof c?r:c,u=Object.create(l.prototype);return He(u,"_invoke",function(n,r,o){var a,c,l,u=0,s=o||[],m=!1,f={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return a=e,c=0,l=t,f.n=n,i}};function p(n,r){for(c=n,l=r,e=0;!m&&u&&!o&&e3?(o=d===r)&&(l=a[(c=a[4])?5:(c=3,3)],a[4]=a[5]=t):a[0]<=p&&((o=n<2&&pr||r>d)&&(a[4]=n,a[5]=r,f.n=d,c=0))}if(o||n>1)return i;throw m=!0,r}return function(o,s,d){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,d),c=s,l=d;(e=c<2?t:l)||!m;){a||(c?c<3?(c>1&&(f.n=-1),p(c,l)):f.n=l:f.v=l);try{if(u=2,a){if(c||(o="next"),e=a[o]){if(!(e=e.call(a,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,c<2&&(c=0)}else 1===c&&(e=a.return)&&e.call(a),c<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),c=1);a=t}else if((e=(m=f.n<0)?l:n.call(r,f))!==i)break}catch(e){a=t,c=1,l=e}finally{u=1}}return{value:e,done:m}}}(n,o,a),!0),u}var i={};function c(){}function l(){}function u(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(He(e={},r,function(){return this}),e),m=u.prototype=c.prototype=Object.create(s);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):(t.__proto__=u,He(t,o,"GeneratorFunction")),t.prototype=Object.create(m),t}return l.prototype=u,He(m,"constructor",u),He(u,"constructor",l),l.displayName="GeneratorFunction",He(u,o,"GeneratorFunction"),He(m),He(m,o,"Generator"),He(m,r,function(){return this}),He(m,"toString",function(){return"[object Generator]"}),(Ue=function(){return{w:a,m:f}})()}function He(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}He=function(t,e,n,r){function a(e,n){He(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(a("next",0),a("throw",1),a("return",2))},He(t,e,n,r)}function Ze(t,e,n,r,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void n(t)}c.done?e(l):Promise.resolve(l).then(r,o)}var Je=window.frmDom.tag,Ye=function(){var t,e=(t=Ue().m(function t(){var e,n,r,o,a,i,c,l,u;return Ue().w(function(t){for(;;)switch(t.p=t.n){case 0:if(e=ht(),n=e.leaveEmailModalInput,r=n.value.trim()){t.n=1;break}return dn("empty"),t.a(2);case 1:if($t(r)){t.n=2;break}return dn("invalid"),t.a(2);case 2:return o=ht(),(a=o.leaveEmailModalButton).style.setProperty("cursor","not-allowed"),a.classList.add("frm_loading_button"),(i=new FormData).append("email",r),l=frmDom.ajax.doJsonPost,t.p=3,t.n=4,l("get_free_templates",i);case 4:c=t.v,t.n=6;break;case 5:return t.p=5,u=t.v,console.error("An error occurred:",u),Ke(),t.a(2);case 6:if(c.success){t.n=7;break}return Ke(),t.a(2);case 7:Vt("free-templates")&&Rt("free-templates"),zt("registered-for-free-templates","1"),window.location.reload();case 8:return t.a(2)}},t,null,[[3,5]])}),function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(t){Ze(a,r,o,i,c,"next",t)}function c(t){Ze(a,r,o,i,c,"throw",t)}i(void 0)})});return function(){return e.apply(this,arguments)}}();function Ke(){var t=ht().leaveEmailModal;t.querySelector(".inside").replaceChildren(Je("p",X("Failed to get templates, please try again later.","formidable"))),t.querySelector(".frm_modal_footer").classList.add("frm_hidden")}var Xe=function(t){if(!t.target.closest("a")){var e=t.currentTarget;window.location.href=e.dataset.href}};function We(){var t,e,n,r;ht().categoryItems.forEach(function(t){Bt(t,Kt),t.addEventListener("keydown",Xt)}),wp.hooks.addAction("frmPage.onCategoryClick","frmFormTemplates",function(t){!function(t){var e=ht(),n=e.bodyContentChildren,r=e.pageTitle,o=e.showCreateTemplateModalButton,a=e.templatesList,i=e.templateItems,c=e.upsellBanner;switch(v!==t&&Zt(n),je(),Yt(o),Jt(r),t){case v:!function(){var t=ht(),e=t.bodyContentChildren,n=t.pageTitleDivider,r=t.templateItems,o=t.twinFeaturedTemplateItems,a=t.customTemplatesSection,i=t.emptyState,c=t.applicationTemplates;Ht([].concat(tn(e),tn(r))),Zt([n].concat(tn(o),[a,i,c]))}();break;case u:!function(){if(0!==Et().availableTemplatesCount){var t=ht(),e=t.templatesList,n=t.templateItems,r=t.availableTemplateItems,o=t.upsellBanner;Zt(n),Ht([o,e].concat(tn(r)))}else!function(){var t=ht(),e=t.pageTitle,n=t.emptyState,r=t.emptyStateButton;n.setAttribute("data-view",u);var o=ht(),a=o.emptyStateTitle,i=o.emptyStateText,c=Et().extraTemplatesCount;a.textContent=X("No Templates Available","formidable"),i.textContent=function(t){try{for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&s.push(r),t.custom>0){var f=Array.from(u).filter(function(t){return!Ie(t)});Zt(f),s.push(a),s.push(c),0===t.default?Yt(i):s.push(i)}Ht(s)}else nn()}();break;case m:!function(){if(0!==Et().customCount){var t=ht(),e=t.showCreateTemplateModalButton,n=t.pageTitleDivider,r=t.customTemplatesSection,o=t.customTemplatesList,a=t.customTemplatesTitle,i=t.customTemplateItems;Yt(a),Ht([e,n,r,o].concat(tn(i)))}else!function(){var t=ht(),e=t.pageTitle,n=t.emptyState,r=t.emptyStateButton;n.setAttribute("data-view",m);var o=ht(),a=o.emptyStateTitle,i=o.emptyStateText;a.textContent=X("You currently have no templates.","formidable"),i.textContent=X("You haven't created any form templates. Begin now to simplify your workflow and save time.","formidable"),r.textContent=X("Create Template","formidable"),Yt(e),Ht([n,r])}()}();break;default:Zt(i),Ht([c,a].concat(tn(Ce[t])))}}(t)}),r=ht().createFormButton,Bt(r,Ae),document.querySelectorAll(Pe).forEach(function(t){return Bt(t,De)}),document.querySelectorAll(".".concat(l,"-use-template-button")).forEach(function(t){return t.addEventListener("click",Me)}),t=ht(),e=t.searchInput,n=t.emptyStateButton,qe(e,"frm-card-item",{handleSearchResult:Ne}),Bt(n,Ge),function(){var t=ht(),e=t.createTemplateFormsDropdown,n=t.createTemplateButton,r=t.showCreateTemplateModalButton,o=t.emptyStateButton;Bt(r,Re),Bt(o,Re),e.addEventListener("change",ze),Bt(n,$e)}(),function(){var t=ht(),e=t.leaveEmailModalButton,n=t.getFreeTemplatesBannerButton;Bt(e,Ye),Bt(n,fn)}()}function Qe(t){var e,n;(function(t){if(t&&t.length){var e=t.map(function(t){return function(t){var e=t.name,n=t.key,o=t.hasLiteThumbnail,a=t.isWebp,i=o?a?"".concat(me,"/").concat(n,".webp"):"".concat(me,"/").concat(n,".png"):"".concat(me,"/placeholder.svg");return ie("li",{className:"frm-card-item",data:{href:"".concat(r,"&triggerViewApplicationModal=1&template=").concat(n),"frm-search-text":e.toLowerCase()},children:[ce({className:"".concat(l,"-item-icon"),child:se({src:i})}),ce({className:"".concat(l,"-item-body"),children:[le({text:X("Ready Made Solution","formidable"),className:"frm-meta-tag frm-orange-tag frm-text-xs"}),ie("h3",{text:e,className:"frm-text-sm frm-font-medium frm-m-0"}),ue({text:X("See all applications","formidable"),className:"frm-text-xs frm-font-semibold",href:r})]})]})}(t)});oe=ce({id:"".concat(l,"-applications"),className:tt,children:[ie("h2",{text:X("Application Templates"),className:"frm-text-sm frm-mb-sm"}),ie("ul",{className:"".concat(l,"-list frm-list-grid-layout"),children:e})]})}})(t.templates),(e=ht()).applicationTemplates||void 0===oe||(e.bodyContent.appendChild(oe),bt({applicationTemplates:oe,applicationTemplatesTitle:oe.querySelector("h2"),applicationTemplatesList:oe.querySelector(".".concat(l,"-list")),applicationTemplateItems:oe.querySelectorAll(".frm-card-item")})),void 0!==(n=ht().applicationTemplateItems)&&n.forEach(function(t){t.addEventListener("click",Xe)})}function tn(t){return function(t){if(Array.isArray(t))return en(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return en(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?en(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function en(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n3?(o=d===r)&&(l=a[(c=a[4])?5:(c=3,3)],a[4]=a[5]=t):a[0]<=p&&((o=n<2&&pr||r>d)&&(a[4]=n,a[5]=r,f.n=d,c=0))}if(o||n>1)return i;throw m=!0,r}return function(o,s,d){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,d),c=s,l=d;(e=c<2?t:l)||!m;){a||(c?c<3?(c>1&&(f.n=-1),p(c,l)):f.n=l:f.v=l);try{if(u=2,a){if(c||(o="next"),e=a[o]){if(!(e=e.call(a,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,c<2&&(c=0)}else 1===c&&(e=a.return)&&e.call(a),c<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),c=1);a=t}else if((e=(m=f.n<0)?l:n.call(r,f))!==i)break}catch(e){a=t,c=1,l=e}finally{u=1}}return{value:e,done:m}}}(n,o,a),!0),u}var i={};function c(){}function l(){}function u(){}e=Object.getPrototypeOf;var s=[][r]?e(e([][r]())):(on(e={},r,function(){return this}),e),m=u.prototype=c.prototype=Object.create(s);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):(t.__proto__=u,on(t,o,"GeneratorFunction")),t.prototype=Object.create(m),t}return l.prototype=u,on(m,"constructor",u),on(u,"constructor",l),l.displayName="GeneratorFunction",on(u,o,"GeneratorFunction"),on(m),on(m,o,"Generator"),on(m,r,function(){return this}),on(m,"toString",function(){return"[object Generator]"}),(rn=function(){return{w:a,m:f}})()}function on(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}on=function(t,e,n,r){function a(e,n){on(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(a("next",0),a("throw",1),a("return",2))},on(t,e,n,r)}function an(t,e,n,r,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void n(t)}c.done?e(l):Promise.resolve(l).then(r,o)}function cn(t){return function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(t){an(a,r,o,i,c,"next",t)}function c(t){an(a,r,o,i,c,"throw",t)}i(void 0)})}}var ln=function(t){return cn(rn().m(function e(){var n,r,o,a,i,c,l=arguments;return rn().w(function(e){for(;;)switch(e.n){case 0:if(n=Oe()){e.n=1;break}return e.a(2);case 1:for(r=ht(),o=r.modalItems,Zt(o),n.dialog("option","width",p),a=l.length,i=new Array(a),c=0;c use").setAttribute("xlink:href",r?"#frm_checkmark_icon":"#frm_close_icon")});var u=e.dataset.slug?"-".concat(e.dataset.slug):"";l.href=c+u,Jt(o)}),mn=ln(function(){var t=ht().renewAccountModal;Jt(t)}),fn=ln(function(){var t=ht().leaveEmailModal;Jt(t)}),pn=ln(function(){Oe().dialog("option","width",d);var t=ht().createTemplateModal;Jt(t)}),dn=function(t){!function(t,e,n){var r=document.querySelector("#frm_leave_email"),o=document.querySelector("#frm_leave_email_error");r&&o?(o.setAttribute("frm-error",n),Jt(o),r.addEventListener("keyup",function(){Yt(o)},{once:!0})):console.warn("showFormError: Unable to find input or error element.")}(0,0,t)};var yn;yn=function(){wp.hooks.doAction("frmFormTemplates.beforeInitialize",{getState:Et,setState:jt}),e&&(0,frmDom.ajax.doJsonFetch)("get_applications_data&view=templates").then(Qe),function(){Ee.apply(this,arguments)}(),ht().templateItems.forEach(function(t){t.getAttribute("data-categories").split(",").forEach(function(e){Ce[e]||(Ce[e]=[]),Ce[e].push(t)})}),we(),We(),wp.hooks.doAction("frmFormTemplates.afterInitialize",{getState:Et,setState:jt}),wp.hooks.doAction("frm_new_form_modal_form",jQuery("#frm-new-template"))},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",yn):yn())})()})(); \ No newline at end of file +(()=>{var t={8616:t=>{t.exports=function(t,e){var r,n,o=0;function a(){var a,i,c=r,l=arguments.length;t:for(;c;){if(c.args.length===arguments.length){for(i=0;i{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,i,c,l,u,s,f,p,m=1,d=t.length,h="";for(n=0;n=0),c.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,c.width?parseInt(c.width):0);break;case"e":r=c.precision?parseFloat(r).toExponential(c.precision):parseFloat(r).toExponential();break;case"f":r=c.precision?parseFloat(r).toFixed(c.precision):parseFloat(r);break;case"g":r=c.precision?String(Number(r.toPrecision(c.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=c.precision?r.substring(0,c.precision):r;break;case"t":r=String(!!r),r=c.precision?r.substring(0,c.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=c.precision?r.substring(0,c.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=c.precision?r.substring(0,c.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?h+=r:(!o.number.test(c.type)||f&&!c.sign?p="":(p=f?"+":"-",r=r.toString().replace(o.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",s=c.width-(p+r).length,l=c.width&&s>0?u.repeat(s):"",h+=c.align?p+r+l:"0"===u?p+l+r:l+p+r)}return h}(function(t){if(c[t])return c[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=o.text.exec(r)))n.push(e[0]);else if(null!==(e=o.modulo.exec(r)))n.push("%");else{if(null===(e=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var i=[],l=e[2],u=[];if(null===(u=o.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=o.key_access.exec(l)))i.push(u[1]);else{if(null===(u=o.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(u[1])}e[2]=i}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return c[t]=n}(t),arguments)}function i(t,e){return a.apply(null,[t].concat(e||[]))}var c=Object.create(null);e.sprintf=a,e.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=i,void 0===(n=function(){return{sprintf:a,vsprintf:i}}.call(e,r,e,t))||(t.exports=n))}()}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=window.frmGlobal,e=t.canAccessApplicationDashboard,n=t.applicationsUrl,o=window.frmFormTemplatesVars,a=o.FEATURED_TEMPLATES_IDS,i=o.FREE_TEMPLATES_IDS,c=o.upgradeLink,l="frm-form-templates",u="available-templates",s="favorites",f="custom",p="search",m="440px",d="550px",h="frm-page-skeleton",y="all-items";function v(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function g(t){for(var e=1;e":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},x=["(","?"],E={")":["("],":":["?","?:"]},_=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var C={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};var P={contextDelimiter:"",onMissingKey:null};function F(t,e){var r;for(r in this.data=t,this.pluralForms={},this.options={},P)this.options[r]=void 0!==e&&r in e?e[r]:P[r]}function B(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function N(t){for(var e=1;e=0||S[o]3&&void 0!==arguments[3]?arguments[3]:10,i=t[e];if(G(r)&&q(n))if("function"==typeof o)if("number"==typeof a){var c={callback:o,priority:a,namespace:n};if(i[r]){var l,u=i[r].handlers;for(l=u.length;l>0&&!(a>=u[l-1].priority);l--);l===u.length?u[l]=c:u.splice(l,0,c),i.__current.forEach((function(t){t.name===r&&t.currentIndex>=l&&t.currentIndex++}))}else i[r]={handlers:[c],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,n,o,a)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},z=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n,o){var a=t[e];if(G(n)&&(r||q(o))){if(!a[n])return 0;var i=0;if(r)i=a[n].handlers.length,a[n]={runs:a[n].runs,handlers:[]};else for(var c=a[n].handlers,l=function(t){c[t].namespace===o&&(c.splice(t,1),i++,a.__current.forEach((function(e){e.name===n&&e.currentIndex>=t&&e.currentIndex--})))},u=c.length-1;u>=0;u--)l(u);return"hookRemoved"!==n&&t.doAction("hookRemoved",n,o),i}}},Y=function(t,e){return function(r,n){var o=t[e];return void 0!==n?r in o&&o[r].handlers.some((function(t){return t.namespace===n})):r in o}},V=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=t[e];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var a=o[n].handlers,i=arguments.length,c=new Array(i>1?i-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";n.data[e]=N(N(N({},D),n.data[e]),t),n.data[e][""]=N(N({},D[""]),n.data[e][""])},c=function(t,e){i(t,e),a()},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return n.data[t]||i(void 0,t),n.dcnpgettext(t,e,r,o,a)},u=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},s=function(t,e,n){var o=l(n,e,t);return r?(o=r.applyFilters("i18n.gettext_with_context",o,t,e,n),r.applyFilters("i18n.gettext_with_context_"+u(n),o,t,e,n)):o};if(r){var f=function(t){M.test(t)&&a()};r.addAction("hookAdded","core/i18n",f),r.addAction("hookRemoved","core/i18n",f)}return{getLocaleData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[t]},setLocaleData:c,resetLocaleData:function(t,e){n.data={},n.pluralForms={},c(t,e)},subscribe:function(t){return o.add(t),function(){return o.delete(t)}},__:function(t,e){var n=l(e,void 0,t);return r?(n=r.applyFilters("i18n.gettext",n,t,e),r.applyFilters("i18n.gettext_"+u(e),n,t,e)):n},_x:s,_n:function(t,e,n,o){var a=l(o,void 0,t,e,n);return r?(a=r.applyFilters("i18n.ngettext",a,t,e,n,o),r.applyFilters("i18n.ngettext_"+u(o),a,t,e,n,o)):a},_nx:function(t,e,n,o,a){var i=l(a,o,t,e,n);return r?(i=r.applyFilters("i18n.ngettext_with_context",i,t,e,n,o,a),r.applyFilters("i18n.ngettext_with_context_"+u(a),i,t,e,n,o,a)):i},isRTL:function(){return"rtl"===s("ltr","text direction")},hasTranslation:function(t,e,o){var a,i,c=e?e+""+t:t,l=!(null===(a=n.data)||void 0===a||null===(i=a[null!=o?o:"default"])||void 0===i||!i[c]);return r&&(l=r.applyFilters("i18n.has_translation",l,t,e,o),l=r.applyFilters("i18n.has_translation_"+u(o),l,t,e,o)),l}}}(0,0,J));K.getLocaleData.bind(K),K.setLocaleData.bind(K),K.resetLocaleData.bind(K),K.subscribe.bind(K);var X=K.__.bind(K),W=(K._x.bind(K),K._n.bind(K),K._nx.bind(K),K.isRTL.bind(K),K.hasTranslation.bind(K),window.frmGlobal),Q=W.url,tt=(W.nonce,"frm_hidden"),et="frm-hide-js",rt="frm-current",nt=window.frmDom,ot=nt.tag,at=nt.div,it=nt.a,ct=nt.img;function lt(t){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lt(t)}function ut(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function st(t,e,r){return(e=function(t){var e=function(t){if("object"!=lt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=lt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==lt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var ft,pt=document.getElementById("post-body-content"),mt=document.getElementById("".concat(h,"-sidebar")),dt=((ft=it({className:"button button-primary frm-button-primary"})).setAttribute("role","button"),at({id:"".concat(h,"-empty-state"),className:"frm-flex-col frm-flex-center frm-gap-md ".concat(tt),children:[ct({src:"".concat(Q,"/images/page-skeleton/empty-state.svg"),alt:X("Empty State","formidable")}),at({className:"frmcenter",children:[ot("h2",{className:"".concat(h,"-title frm-mb-0")}),ot("p",{className:"".concat(h,"-text frm-mb-0")})]}),ft]}));null==pt||pt.appendChild(dt);var ht=function(){var t=document.querySelector("#".concat(h,"-empty-state"));return{emptyState:t,emptyStateTitle:null==t?void 0:t.querySelector(".".concat(h,"-title")),emptyStateText:null==t?void 0:t.querySelector(".".concat(h,"-text")),emptyStateButton:null==t?void 0:t.querySelector(".button")}}(),yt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==w(t)||null===t)throw new Error("createPageElements: initialElements must be a non-null object");var e=t;return{getElements:function(){return e},addElements:function(t){if("object"!==w(t)||null===t)throw new Error("addElements: newElements must be a non-null object");e=g(g({},e),t)}}}(function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==xt(t)||null===t)throw new Error("createPageState: initialState must be a non-null object");var e=t;return{getState:function(){return e},getSingleState:function(t){var r=Reflect.get(e,t);return void 0===r?null:r},setState:function(t){if("object"!==xt(t)||null===t)throw new Error("setState: newState must be a non-null object");e=wt(wt({},e),t)},setSingleState:function(t,r){Reflect.has(e,t)&&Reflect.set(e,t,r)}}}({notEmptySearchText:!1,selectedCategory:y,selectedCategoryEl:Et}),Tt=_t.getState,Lt=_t.getSingleState,Ot=_t.setState,kt=_t.setSingleState;function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function It(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"default";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.elements=e,this.type=r,this.prepareElements()},e=[{key:"fadeIn",value:function(){var t=this;this.applyStyleToElements((function(e){e.classList.add("frm-fadein-up"),e.addEventListener("animationend",(function(){t.resetOpacity(),e.classList.remove("frm-fadein-up")}),{once:!0})}))}},{key:"cascadeFadeIn",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.03;setTimeout((function(){t.applyStyleToElements((function(t,r){t.classList.remove("frm-animate"),t.style.transitionDelay=(r+1)*e+"s"}))}),200)}},{key:"prepareElements",value:function(){var t=this;this.applyStyleToElements((function(e){"default"===t.type&&(e.style.opacity="0.0"),"cascade"===t.type&&e.classList.add("frm-init-cascade-animation"),"cascade-3d"===t.type&&e.classList.add("frm-init-fadein-3d"),e.classList.add("frm-animate")}))}},{key:"resetOpacity",value:function(){this.applyStyleToElements((function(t){return t.style.opacity="1.0"}))}},{key:"applyStyleToElements",value:function(t){this.elements instanceof Element?t(this.elements,0):02&&void 0!==arguments[2]?arguments[2]:"pushState";if(Gt.set(t,e),qt.search=Gt.toString(),["pushState","replaceState"].includes(a)){var i=(r={},o=e,(n=function(t){var e=function(t){if("object"!=Nt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Nt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Nt(e)?e:e+""}(n=t))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r);window.history[a](i,"",qt)}return qt.toString()},Yt=function(t){return Gt.has(t)},Vt=function(t){return"string"==typeof t&&/^(([^<>()\[\]\\.,;:\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(t)},$t=function(t){return t instanceof HTMLElement||console.warn("Invalid argument: Element must be an instance of HTMLElement")||!1},Ut=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach((function(t){return Zt(t)}))},Ht=function(t){var e;return null===(e=Array.from(t))||void 0===e?void 0:e.forEach((function(t){return Jt(t)}))},Zt=function(t){return null==t?void 0:t.classList.remove(tt)},Jt=function(t){return null==t?void 0:t.classList.add(tt)},Kt=function(t){var e=t.currentTarget,r=e.getAttribute("data-category"),n=Tt(),o=n.selectedCategory,a=n.selectedCategoryEl,i=n.notEmptySearchText;if(o!==r){o=wp.hooks.applyFilters("frmPage.selectedCategory",r),a.classList.remove(rt),(a=e).classList.add(rt),Ot({selectedCategory:o,selectedCategoryEl:a}),i&&Wt(),wp.hooks.doAction("frmPage.onCategoryClick",o);var c=vt().bodyContent;new Ct(c).fadeIn()}};function Xt(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),Kt(t))}function Wt(){var t=vt().searchInput;t.value="",t.dispatchEvent(new Event("input",{bubbles:!0}))}var Qt=vt().bodyContent,te=document.getElementById("".concat(l,"-list")),ee=document.getElementById("".concat(l,"-custom-list-section")),re=document.querySelector(".".concat(h,'-cat[data-category="').concat(s,'"]')),ne=document.getElementById("".concat(l,"-modal"));gt({headerCancelButton:null===(Dt=document.getElementById("frm-publishing"))||void 0===Dt?void 0:Dt.querySelector("a"),createFormButton:document.getElementById("".concat(l,"-create-form")),pageTitle:document.getElementById("".concat(l,"-page-title")),pageTitleText:document.getElementById("".concat(l,"-page-title-text")),pageTitleDivider:document.getElementById("".concat(l,"-page-title-divider")),upsellBanner:null!==(Mt=document.getElementById("frm-renew-subscription-banner"))&&void 0!==Mt?Mt:document.getElementById("frm-upgrade-banner"),extraTemplateCountElements:document.querySelectorAll(".".concat(l,"-extra-templates-count")),templatesList:te,templateItems:te.querySelectorAll(".frm-card-item"),availableTemplateItems:te.querySelectorAll(".frm-card-item:not(.".concat(l,"-locked-item)")),twinFeaturedTemplateItems:te.querySelectorAll(".".concat(l,"-featured-item")),featuredTemplatesList:document.getElementById("".concat(l,"-featured-list")),customTemplatesSection:ee,customTemplateItems:ee.querySelectorAll(".frm-card-item"),customTemplatesTitle:document.getElementById("".concat(l,"-custom-list-title")),customTemplatesList:document.getElementById("".concat(l,"-custom-list")),favoritesCategory:re,favoritesCategoryCountEl:null==re?void 0:re.querySelector(".".concat(h,"-cat-count")),availableTemplatesCategory:document.querySelector(".".concat(h,'-cat[data-category="').concat(u,'"]')),getFreeTemplatesBannerButton:document.querySelector(".frm-get-free-templates-banner .button"),modal:ne,modalItems:null==ne?void 0:ne.querySelectorAll(".".concat(l,"-modal-item")),showCreateTemplateModalButton:document.getElementById("frm-show-create-template-modal"),createTemplateModal:document.getElementById("frm-create-template-modal"),createTemplateFormsDropdown:document.getElementById("frm-create-template-modal-forms-select"),createTemplateName:document.getElementById("frm_create_template_name"),createTemplateDescription:document.getElementById("frm_create_template_description"),createTemplateButton:document.getElementById("frm-create-template-button"),renewAccountModal:document.getElementById("frm-renew-modal"),leaveEmailModal:document.getElementById("frm-leave-email-modal"),leaveEmailModalInput:document.getElementById("frm_leave_email"),leaveEmailModalButton:document.getElementById("frm-get-code-button"),upgradeModal:document.getElementById("frm-form-upgrade-modal"),upgradeModalTemplateNames:null==ne?void 0:ne.querySelectorAll(".frm-upgrade-modal-template-name"),upgradeModalPlansIcons:null==ne?void 0:ne.querySelectorAll(".frm-upgrade-modal-plan-icon"),upgradeModalLink:document.getElementById("frm-upgrade-modal-link"),newTemplateForm:document.getElementById("frm-new-template"),newTemplateNameInput:document.getElementById("frm_template_name"),newTemplateDescriptionInput:document.getElementById("frm_template_desc"),newTemplateLinkInput:document.getElementById("frm_link"),newTemplateActionInput:document.getElementById("frm_action_type"),bodyContentChildren:null==Qt?void 0:Qt.children});var oe,ae=window.frmDom,ie=ae.tag,ce=ae.div,le=ae.span,ue=ae.a,se=ae.img,fe="".concat(Q,"/images/applications/thumbnails");var pe=window.frmFormTemplatesVars,me=pe.templatesCount,de=pe.favoritesCount,he=pe.customCount,ye=vt().availableTemplateItems.length;Ot({availableTemplatesCount:ye,customCount:Number(he),extraTemplatesCount:me-ye,favoritesCount:de}),window.frmDom.span;var ve=function(t,e){return t.textContent=String(e),t},ge=function(t,e,r,n,o,a,i){e._counterStartTime||(e._counterStartTime=t,e._counterLastTimestamp=t,e._counterFrameDropCount=0,e._counterLastValue=r);var c=t-e._counterLastTimestamp,l=t-e._counterStartTime;if(c>50&&null!==e._counterLastTimestamp&&(e._counterFrameDropCount++,e._counterFrameDropCount>3))return e.style.transition="opacity ".concat(Math.max(o-l,100),"ms ease-out"),e.textContent=String(n),void delete e._counterAnimation;var u=Math.min(l/o,1),s=i(u),f=Math.round(r+a*s);f!==e._counterLastValue&&(e.textContent=String(f),e._counterLastValue=f),e._counterLastTimestamp=t,u<1?e._counterAnimation=requestAnimationFrame((function(t){return ge(t,e,r,n,o,a,i)})):(e.textContent=String(n),["_counterAnimation","_counterStartTime","_counterLastTimestamp","_counterFrameDropCount","_counterLastValue"].forEach((function(t){return delete e[t]})),e.style.removeProperty("transition"))},be=function(t){return 1-Math.pow(1-t,4)};const we=function(){var t,e=vt(),r=e.sidebar,n=e.searchInput,o=e.bodyContent,a=e.twinFeaturedTemplateItems,c=e.availableTemplatesCategory,l=e.extraTemplateCountElements,u=new Ct(o);n.value="",Ht(a),function(t){if(t){var e,r,n=Lt("availableTemplatesCount");if(Yt("registered-for-free-templates"))history.replaceState({},"",Rt("registered-for-free-templates")),e=t,r=n,setTimeout((function(){e.dispatchEvent(new Event("click",{bubbles:!0}))}),0),setTimeout((function(){!function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="string"==typeof t?document.querySelector(t):t;if(!(n&&n instanceof HTMLElement))return null;var o="number"==typeof e?e:parseInt(e,10);if(isNaN(o))return console.warn("Counter: Invalid value provided, defaulting to 0"),ve(n,"0");if(0===o)return ve(n,"0");var a=r.duration,i=void 0===a?3e3:a,c=r.easing,l=void 0===c?be:c,u=parseInt(n.textContent,10)||0,s=o-u;0===s||(n._counterAnimation&&cancelAnimationFrame(n._counterAnimation),n.classList.add("frm-fadein"),n._counterAnimation=requestAnimationFrame((function(t){return ge(t,n,u,o,i,s,l)})))}(e.querySelector(".".concat(h,"-cat-count")),r)}),150),setTimeout((function(){vt().availableTemplateItems.forEach((function(t){i.includes(Number(t.dataset.id))||(t.classList.add("frm-background-highlight"),t.addEventListener("animationend",(function t(e){"backgroundHighlight"===e.animationName&&(this.classList.remove("frm-background-highlight"),this.removeEventListener("animationend",t))})))}))}),750);else t.querySelector(".".concat(h,"-cat-count")).textContent=n}}(c),l.forEach((function(t){return t.textContent=Lt("extraTemplatesCount")})),o.classList.remove(et),r.classList.remove(et),u.fadeIn(),Yt("return_page")&&(t=vt().headerCancelButton,new Ct(t).fadeIn())};function Se(t){return Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Se(t)}function xe(){xe=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var a=e&&e.prototype instanceof v?e:v,i=Object.create(a.prototype),c=new I(n||[]);return o(i,"_invoke",{value:L(t,r,c)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",m="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,i)&&(w=x);var E=b.prototype=v.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,a,i,c){var l=f(t[o],t,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==Se(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(s).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function L(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=O(c,n);if(l){if(l===y)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?h:m,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=h,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Ee(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var _e=null;function Te(){var t;return t=xe().mark((function t(){var e,r,n;return xe().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=window.frmAdminBuild,r=e.initModal,n=e.offsetModalY,(_e=r("#frm-form-templates-modal",m))&&n(_e,"103px"),Yt("free-templates")&&vt().leaveEmailModal&&fr(),wp.hooks.addAction("frmAdmin.beforeOpenConfirmModal","frmFormTemplates",(function(t){var e=t.$info;e.dialog("option","width",d),n(e,"103px")}));case 5:case"end":return t.stop()}}),t)})),Te=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){Ee(a,n,o,i,c,"next",t)}function c(t){Ee(a,n,o,i,c,"throw",t)}i(void 0)}))},Te.apply(this,arguments)}function Le(){return _e}function Oe(t){var e=vt().pageTitleText,r=t||Lt("selectedCategoryEl").querySelector(".".concat(h,"-cat-text")).textContent;e.textContent=r}var ke=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-favorite-item"))},je=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-custom-item"))},Ie={},Ae=function(){var t=vt(),e=t.createFormButton,r=t.newTemplateForm,n=t.newTemplateNameInput,o=t.newTemplateActionInput,a=window.frmAdminBuild.installNewForm;n.value="",o.value="frm_install_form",a(r,"frm_install_form",e)};var Ce=".".concat(l,"-item-favorite-button"),Pe="".concat(Ce," use"),Fe="#frm_heart_solid_icon",Be="#frm_heart_icon",Ne=function(t){var e,r=t.currentTarget,n=vt(),o=n.templatesList,i=n.featuredTemplatesList,c=n.favoritesCategoryCountEl,u=n.customTemplatesTitle,f=r.closest(".frm-card-item"),p=f.dataset.id,m=ke(f),d=je(f),h=function(t){return!!$t(t)&&a.includes(Number(t.dataset.id))}(f),y=null;if(f.classList.toggle("".concat(l,"-favorite-item"),!m),h){var v=f.closest("#".concat(l,"-list"))?i:o;v&&(y=v.querySelector('.frm-card-item[data-id="'.concat(p,'"]'))).classList.toggle("".concat(l,"-favorite-item"),!m)}var g,b=Tt(),w=b.selectedCategory,S=b.favoritesCount,x=m?"remove":"add",E=f.querySelector(Pe),_=null===(e=y)||void 0===e?void 0:e.querySelector(Pe);"add"===x?(++S.total,d?++S.custom:++S.default,E.setAttribute("xlink:href",Fe),null==_||_.setAttribute("xlink:href",Fe)):(--S.total,d?--S.custom:--S.default,E.setAttribute("xlink:href",Be),null==_||_.setAttribute("xlink:href",Be)),c.textContent=S.total,kt("favoritesCount",S),s===w&&(0===S.total&&rr(),Jt(f),0===S.default&&Jt(o),0!==S.custom&&0!==S.default||Jt(u)),g=function(){return t=p,e=x,r=d,n=new FormData,o=frmDom.ajax.doJsonPost,n.append("template_id",t),n.append("operation",e),n.append("is_custom_template",r),o("add_or_remove_favorite_template",n);var t,e,r,n,o},Pt=Pt.then(g).catch(g)};var De=function(t){var e=t.currentTarget,r=e.closest(".frm-card-item"),n=function(t){return!!$t(t)&&t.classList.contains("".concat(l,"-locked-item"))}(r),o=je(r);if(n||!o)if(t.preventDefault(),n)!function(t){var e=t.dataset.requiredPlan;switch(e){case"basic":case"plus":case"business":case"elite":ur(e,t);break;case"renew":sr();break;case"free":fr()}}(r);else{var a=vt(),i=a.newTemplateForm,c=a.newTemplateNameInput,u=a.newTemplateDescriptionInput,s=a.newTemplateLinkInput,f=a.newTemplateActionInput,p=window.frmAdminBuild.installNewForm,m=r.querySelector(".frm-form-template-name").textContent.trim(),d=r.querySelector(".frm-form-templates-item-description").textContent.trim(),h="frm_install_template";c.value=m,u.value=d,f.value=h,s.value=e.href,p(i,h,e)}};var Me=window.frmDom.search.init;function qe(t,e){var r=t.foundSomething,n=t.notEmptySearchText;if(!e||"search"!==e.type||""!==e.target.value){var o=Tt(),a=vt().allItemsCategory;kt("notEmptySearchText",n),o.notEmptySearchText||o.selectedCategory?(o.selectedCategory&&(function(t){var e=vt(),r=e.bodyContent,n=e.bodyContentChildren,o=e.pageTitle,a=e.templatesList,i=e.applicationTemplates,c=new Ct(r);t&&Lt("selectedCategoryEl").classList.remove(rt),Ht(n),Oe(X("Search Result","formidable")),Ut([o,a,i]),c.fadeIn()}(n),n&&kt("selectedCategory","")),function(t){if(t){var e,r=vt().emptyState;if(e=r,"none"!==window.getComputedStyle(e).getPropertyValue("display")){var n=vt().pageTitle;Jt(r),Zt(n)}var o=vt(),a=o.templatesList,i=o.applicationTemplates,c=o.applicationTemplatesTitle,l=o.applicationTemplatesList;Ut([a,i,c]),0===a.offsetHeight&&Ht([a,c]),0===(null==l?void 0:l.offsetHeight)&&Jt(i)}else!function(){var t,e=Tt().notEmptySearchText,r=vt(),n=r.pageTitle,o=r.emptyState,a=r.emptyStateButton,i=r.applicationTemplates;if(p!==(null===(t=o.dataset)||void 0===t?void 0:t.view)){o.setAttribute("data-view",p);var c=vt(),l=c.emptyStateTitle,u=c.emptyStateText;l.textContent=X("No templates found","formidable"),u.textContent=X("Sorry, we didn't find any templates that match your criteria.","formidable"),a.textContent=X("Start from Scratch","formidable"),Ht([n,i]),Ut([o,a])}else e?(Zt(o),Ht([n,i])):(Jt(o),o.removeAttribute("data-view"))}()}(r)):a.dispatchEvent(new Event("click",{bubbles:!0}))}}var Ge=function(){var t,e=vt().emptyState;p===(null===(t=e.dataset)||void 0===t?void 0:t.view)&&(kt("selectedCategory",""),Wt(),vt().searchInput.focus())};var Re=function(){var t=Tt().selectedCategory;f===t&&pr()},ze=function(){var t=vt().createTemplateFormsDropdown,e=t.value;if(e&&"no-forms"!==e){Ye(!1);var r=t.options[t.selectedIndex],n=r.dataset.description.trim(),o=r.dataset.name.trim(),a=" ".concat(X("Template","formidable"));o.endsWith(a)||(o+=a);var i=vt(),c=i.createTemplateName,l=i.createTemplateDescription;c.value=o,l.value=n}else Ye(!0)},Ye=function(t){var e=vt(),r=e.createTemplateName,n=e.createTemplateDescription,o=e.createTemplateButton;[r,n].forEach((function(e){e.disabled=t,t&&(e.value="")})),o.classList.toggle("disabled",t)},Ve=function(){var t=window.frmAdminBuild.installNewForm,e="frm_create_template",r=vt(),n=r.newTemplateForm,o=r.newTemplateActionInput,a=r.newTemplateNameInput,i=r.newTemplateDescriptionInput,c=r.newTemplateLinkInput,l=r.createTemplateName,u=r.createTemplateDescription,s=r.createTemplateFormsDropdown,f=r.createTemplateButton;o.value=e,a.value=l.value.trim(),i.value=u.value.trim(),c.value=s.value,t(n,e,f)};function $e(t){return $e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$e(t)}function Ue(){Ue=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var a=e&&e.prototype instanceof v?e:v,i=Object.create(a.prototype),c=new I(n||[]);return o(i,"_invoke",{value:L(t,r,c)}),i}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",m="suspendedYield",d="executing",h="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,i)&&(w=x);var E=b.prototype=v.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,e){function r(o,a,i,c){var l=f(t[o],t,a);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==$e(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(s).then((function(t){u.value=t,i(u)}),(function(t){return r("throw",t,i,c)}))}c(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function L(e,r,n){var o=p;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var l=O(c,n);if(l){if(l===y)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?h:m,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=h,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function He(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}var Ze=window.frmDom.tag,Je=function(){var t,e=(t=Ue().mark((function t(){var e,r,n,o,a,i,c,l;return Ue().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=vt(),r=e.leaveEmailModalInput,n=r.value.trim()){t.next=5;break}return mr("empty"),t.abrupt("return");case 5:if(Vt(n)){t.next=8;break}return mr("invalid"),t.abrupt("return");case 8:return o=vt(),(a=o.leaveEmailModalButton).style.setProperty("cursor","not-allowed"),a.classList.add("frm_loading_button"),(i=new FormData).append("email",n),l=frmDom.ajax.doJsonPost,t.prev=14,t.next=17,l("get_free_templates",i);case 17:c=t.sent,t.next=25;break;case 20:return t.prev=20,t.t0=t.catch(14),console.error("An error occurred:",t.t0),Ke(),t.abrupt("return");case 25:if(c.success){t.next=28;break}return Ke(),t.abrupt("return");case 28:Yt("free-templates")&&Rt("free-templates"),zt("registered-for-free-templates","1"),window.location.reload();case 31:case"end":return t.stop()}}),t,null,[[14,20]])})),function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){He(a,n,o,i,c,"next",t)}function c(t){He(a,n,o,i,c,"throw",t)}i(void 0)}))});return function(){return e.apply(this,arguments)}}();function Ke(){var t=vt().leaveEmailModal;t.querySelector(".inside").replaceChildren(Ze("p",X("Failed to get templates, please try again later.","formidable"))),t.querySelector(".frm_modal_footer").classList.add("frm_hidden")}var Xe=function(t){if(!t.target.closest("a")){var e=t.currentTarget;window.location.href=e.dataset.href}};function We(){var t,e,r,n;vt().categoryItems.forEach((function(t){Bt(t,Kt),t.addEventListener("keydown",Xt)})),wp.hooks.addAction("frmPage.onCategoryClick","frmFormTemplates",(function(t){!function(t){var e=vt(),r=e.bodyContentChildren,n=e.pageTitle,o=e.showCreateTemplateModalButton,a=e.templatesList,i=e.templateItems,c=e.upsellBanner;switch(y!==t&&Ht(r),Oe(),Jt(o),Zt(n),t){case y:!function(){var t=vt(),e=t.bodyContentChildren,r=t.pageTitleDivider,n=t.templateItems,o=t.twinFeaturedTemplateItems,a=t.customTemplatesSection,i=t.emptyState,c=t.applicationTemplates;Ut([].concat(tr(e),tr(n))),Ht([r].concat(tr(o),[a,i,c]))}();break;case u:!function(){if(0!==Tt().availableTemplatesCount){var t=vt(),e=t.templatesList,r=t.templateItems,n=t.availableTemplateItems,o=t.upsellBanner;Ht(r),Ut([o,e].concat(tr(n)))}else!function(){var t=vt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",u);var o=vt(),a=o.emptyStateTitle,i=o.emptyStateText,c=Tt().extraTemplatesCount;a.textContent=X("No Templates Available","formidable"),i.textContent=function(t){try{for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0&&s.push(n),t.custom>0){var p=Array.from(u).filter((function(t){return!ke(t)}));Ht(p),s.push(a),s.push(c),0===t.default?Jt(i):s.push(i)}Ut(s)}else rr()}();break;case f:!function(){if(0!==Tt().customCount){var t=vt(),e=t.showCreateTemplateModalButton,r=t.pageTitleDivider,n=t.customTemplatesSection,o=t.customTemplatesList,a=t.customTemplatesTitle,i=t.customTemplateItems;Jt(a),Ut([e,r,n,o].concat(tr(i)))}else!function(){var t=vt(),e=t.pageTitle,r=t.emptyState,n=t.emptyStateButton;r.setAttribute("data-view",f);var o=vt(),a=o.emptyStateTitle,i=o.emptyStateText;a.textContent=X("You currently have no templates.","formidable"),i.textContent=X("You haven't created any form templates. Begin now to simplify your workflow and save time.","formidable"),n.textContent=X("Create Template","formidable"),Jt(e),Ut([r,n])}()}();break;default:Ht(i),Ut([c,a].concat(tr(Ie[t])))}}(t)})),n=vt().createFormButton,Bt(n,Ae),document.querySelectorAll(Ce).forEach((function(t){return Bt(t,Ne)})),document.querySelectorAll(".".concat(l,"-use-template-button")).forEach((function(t){return t.addEventListener("click",De)})),t=vt(),e=t.searchInput,r=t.emptyStateButton,Me(e,"frm-card-item",{handleSearchResult:qe}),Bt(r,Ge),function(){var t=vt(),e=t.createTemplateFormsDropdown,r=t.createTemplateButton,n=t.showCreateTemplateModalButton,o=t.emptyStateButton;Bt(n,Re),Bt(o,Re),e.addEventListener("change",ze),Bt(r,Ve)}(),function(){var t=vt(),e=t.leaveEmailModalButton,r=t.getFreeTemplatesBannerButton;Bt(e,Je),Bt(r,fr)}()}function Qe(t){var e,r;(function(t){if(t&&t.length){var e=t.map((function(t){return function(t){var e=t.name,r=t.key,o=t.hasLiteThumbnail,a=t.isWebp,i=o?a?"".concat(fe,"/").concat(r,".webp"):"".concat(fe,"/").concat(r,".png"):"".concat(fe,"/placeholder.svg");return ie("li",{className:"frm-card-item",data:{href:"".concat(n,"&triggerViewApplicationModal=1&template=").concat(r),"frm-search-text":e.toLowerCase()},children:[ce({className:"".concat(l,"-item-icon"),child:se({src:i})}),ce({className:"".concat(l,"-item-body"),children:[le({text:X("Ready Made Solution","formidable"),className:"frm-meta-tag frm-orange-tag frm-text-xs"}),ie("h3",{text:e,className:"frm-text-sm frm-font-medium frm-m-0"}),ue({text:X("See all applications","formidable"),className:"frm-text-xs frm-font-semibold",href:n})]})]})}(t)}));oe=ce({id:"".concat(l,"-applications"),className:tt,children:[ie("h2",{text:X("Application Templates"),className:"frm-text-sm frm-mb-sm"}),ie("ul",{className:"".concat(l,"-list frm-list-grid-layout"),children:e})]})}})(t.templates),(e=vt()).applicationTemplates||void 0===oe||(e.bodyContent.appendChild(oe),gt({applicationTemplates:oe,applicationTemplatesTitle:oe.querySelector("h2"),applicationTemplatesList:oe.querySelector(".".concat(l,"-list")),applicationTemplateItems:oe.querySelectorAll(".frm-card-item")})),void 0!==(r=vt().applicationTemplateItems)&&r.forEach((function(t){t.addEventListener("click",Xe)}))}function tr(t){return function(t){if(Array.isArray(t))return er(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return er(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?er(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function er(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function ar(t,e,r,n,o,a,i){try{var c=t[a](i),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function ir(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){ar(a,n,o,i,c,"next",t)}function c(t){ar(a,n,o,i,c,"throw",t)}i(void 0)}))}}var cr=function(t){return ir(or().mark((function e(){var r,n,o,a,i,c,l=arguments;return or().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Le()){e.next=3;break}return e.abrupt("return");case 3:for(n=vt(),o=n.modalItems,Ht(o),r.dialog("option","width",m),a=l.length,i=new Array(a),c=0;c use").setAttribute("xlink:href",n?"#frm_checkmark_icon":"#frm_close_icon")}));var u=e.dataset.slug?"-".concat(e.dataset.slug):"";l.href=c+u,Zt(o)})),sr=cr((function(){var t=vt().renewAccountModal;Zt(t)})),fr=cr((function(){var t=vt().leaveEmailModal;Zt(t)})),pr=cr((function(){Le().dialog("option","width",d);var t=vt().createTemplateModal;Zt(t)})),mr=function(t){!function(t,e,r){var n=document.querySelector("#frm_leave_email"),o=document.querySelector("#frm_leave_email_error");n&&o?(o.setAttribute("frm-error",r),Zt(o),n.addEventListener("keyup",(function(){Jt(o)}),{once:!0})):console.warn("showFormError: Unable to find input or error element.")}(0,0,t)};var dr;dr=function(){wp.hooks.doAction("frmFormTemplates.beforeInitialize",{getState:Tt,setState:Ot}),e&&(0,frmDom.ajax.doJsonFetch)("get_applications_data&view=templates").then(Qe),function(){Te.apply(this,arguments)}(),vt().templateItems.forEach((function(t){t.getAttribute("data-categories").split(",").forEach((function(e){Ie[e]||(Ie[e]=[]),Ie[e].push(t)}))})),we(),We(),wp.hooks.doAction("frmFormTemplates.afterInitialize",{getState:Tt,setState:Ot}),wp.hooks.doAction("frm_new_form_modal_form",jQuery("#frm-new-template"))},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",dr):dr())})()})(); \ No newline at end of file diff --git a/js/formidable-settings-components.js b/js/formidable-settings-components.js index a53ff40a4e..b7f5c4c3ff 100644 --- a/js/formidable-settings-components.js +++ b/js/formidable-settings-components.js @@ -1 +1 @@ -(()=>{"use strict";var e=window.frmGlobal,t=(e.url,e.nonce,"frm_hidden"),n="frm_disabled",i=(Promise.resolve(),window.frmDom.util),r=(i.onClickPreventDefault,i.documentOn),a=(new URL(window.location.href).searchParams,function(e){return null==e?void 0:e.classList.remove(t)});function o(e){return o="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},o(e)}function l(e,t){for(var n=0;n=r)){var a=i.querySelector("select").value,o=this.calculateValue(r,n,this.getMaxValue(a,t));i.querySelector('.frm-slider-value input[type="text"]').value=o,i.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=o,i.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(i,n,t,o+a),this.options[t].translateX=n,this.options[t].value=o+a,this.options[t].fullValue=this.updateValue(i,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 i=Math.ceil(this.sliderBulletWidth*(t/e)),r=Math.ceil((t+i)/e*n);return Math.min(r,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-base-font-size")){var i=document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]');null!==i&&(i.value="true")}if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),a=r.value.split(" "),o=e.dataset.type;switch(a[2]||(a[2]="0px"),a[3]||(a[3]="0px"),o){case"vertical":a[0]=t,a[2]=t;break;case"horizontal":a[1]=t,a[3]=t;break;case"top":a[0]=t;break;case"bottom":a[2]=t;break;case"left":a[3]=t;break;case"right":a[1]=t}var l=a.join(" ");return r.value=l,this.getSliderGroupItems(e).forEach(function(e){var i=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=i}),l}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),c=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach(function(e,n){e.value=t,c[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)})||""}}])&&h(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function g(e){return g="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},g(e)}function b(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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach(function(t,n){t.addEventListener("click",function(t){return e.onNavClick(t,n)})}),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,a=n.querySelector("a");a&&"frm_insert_fields_tab"===a.id&&!a.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{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.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)}),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame(function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"})}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")})}}])&&b(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function E(e){return E="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},E(e)}function w(e,t){for(var n=0;n0))return e.style.paddingLeft="",e.style.paddingTop="",void(e.style.height="");var i=t.offsetHeight;if(Math.max(1,Math.ceil(i/36))>1){var r=function(e){if(!e.length)return 0;var t=0;return e.forEach(function(e){t+=e.offsetWidth}),(t+=4*(e.length-1))+4}(function(e){if(!e.length)return[];var t=Array.from(e),n=-1;t.forEach(function(e){var t=e.getBoundingClientRect().bottom;t>n&&(n=t)});return t.filter(function(e){var t=e.getBoundingClientRect();return Math.abs(t.bottom-n)<=2})}(n));e.style.height="".concat(i,"px"),e.style.paddingTop="".concat(i-36+4,"px"),e.style.paddingLeft=r?"".concat(r+8,"px"):""}else e.style.height="",e.style.paddingTop="",e.style.paddingLeft="".concat(t.offsetWidth-4,"px")}}function R(e,t,n){e&&n&&t&&(n.innerHTML="",B(e).forEach(function(e){return function(e,t){var n=V({className:A,children:[V({text:e,className:T}),V({className:O,child:W({href:"#frm_close_icon"})})]});t.appendChild(n)}(e,n)}),D(t,n),t.focus())}function M(e,t,n){if(!e||!t||!n)return!1;var i=B(t.value);return i.includes(e)?(N(n),!1):(i.push(e),X(t,i),N(n),!0)}function F(e,t,n){if(e&&t&&n){var i=e.querySelector(".".concat(T)).textContent;X(t,B(t.value).filter(function(e){return e!==i})),e.remove(),n.focus()}}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(e=e.trim())?e.split(/\s+/).filter(Boolean):[]}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&(e.value=t.join(" "),jQuery(e).trigger("change"))}function N(e){e&&(e.value="",e.focus())}function U(e){var n=(e?document.getElementById("frm-single-settings-".concat(e)):document.body).querySelectorAll(".".concat("frm-token-input-field"));if(n.length){var i=new Set;n.forEach(function(e){i.has(e.id)||(function(e){var n=function(e){var n=e.closest(".".concat("frm-with-right-icon"));if(n.querySelector(".".concat(C)))return null;n.classList.add(x);var i=V({className:C});n.insertBefore(i,n.firstChild);var r=j("input",{className:_,id:"".concat(e.id,"-proxy-input")});return r.type="text",e.parentNode.insertBefore(r,e.nextSibling),e.classList.add(t),n}(e);if(n){var i=n.querySelector(".".concat(_)),r=n.querySelector(".".concat(C));R(e.value,i,r),function(e,t,n){jQuery(e).on("change",function(){return R(e.value,t,n)}),t.addEventListener("keydown",function(i){return function(e,t,n,i){var r=e.key,a=n.value.trim();switch(r){case"Backspace":a||(e.preventDefault(),F(i.querySelector(".".concat(A,":last-child")),t,n));break;case" ":case",":case"Enter":e.preventDefault(),M(a,t,n)}D(n,i)}(i,e,t,n)}),t.addEventListener("blur",function(){return M(t.value.trim(),e,t)}),n.addEventListener("click",function(n){return function(e,t,n){var i=e.target.closest(".".concat(O));if(i){var r=i.closest(".".concat(A));if(r){var a=r.parentElement;F(r,t,n),D(n,a)}}}(n,e,t)})}(e,i,r)}}(e),i.add(e.id))})}}var z,G="frm-toggle-group",H="frm_toggle_block",J="data-group-name";function Q(e){var t=e.target,n=t.closest(".".concat(G));n&&K(t,n)}function K(e,i){var r,a=(null===(r=i.closest(".".concat("frm-single-settings")))||void 0===r?void 0:r.dataset.fid)||i.dataset.fid,o=e.checked,l=e.getAttribute("data-show");l&&document.querySelectorAll(Y(l,a)).forEach(function(e){return e.classList.toggle(t,!o)});var s=e.getAttribute("data-disable");s&&document.querySelectorAll(Y(s,a)).forEach(function(e){e.classList.toggle(n,o),e.querySelectorAll("input, select, textarea").forEach(function(e){return e.disabled=o}),e.querySelectorAll(".frm-show-inline-modal[tabindex]").forEach(function(e){return e.tabIndex=o?-1:0})});var c=e.getAttribute("data-enable");c&&document.querySelectorAll(Y(c,a)).forEach(function(e){return e.classList.toggle(n,!o)});var u=e.closest(".".concat(H));Array.from(i.querySelectorAll(".".concat(H))).filter(function(e){return e!==u}).forEach(function(e){e.classList.toggle(n,o);var t=e.querySelector(".frm_toggle");t.tabIndex=o?-1:0,t.setAttribute("aria-disabled",o)})}function Y(e,t){return e.replace(/{id}/g,t)}function Z(e){var t=e.target.closest(".frm-unit-input"),n=t.querySelector(".frm-unit-input-control"),i=t.querySelector("select").value;e.target.matches("select")&&(n.type=""===i?"text":"number");var r=n.value.trim();t.querySelector('input[type="hidden"]').value=""!==r?r+i:""}z=function(){var e,t;new c,new y,new q,null===(t=document.getElementById("frm-form-add-field"))||void 0===t||t.addEventListener("click",function(e){var t;e.preventDefault(),null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click()}),U(),document.addEventListener("frm_added_field",function(e){return U(e.frmField.dataset.fid)}),document.addEventListener("frm_ajax_loaded_field",function(e){return e.frmFields.forEach(function(e){return U(e.id)})}),wp.hooks.addAction("frmShowedFieldSettings","formidable-token-input",I),(e=document.querySelectorAll(".".concat(G))).length&&e.forEach(function(e){var t=e.querySelector("[".concat(J,"]:checked"));t&&K(t,e)}),r("change",".".concat(G," [").concat(J,"]"),Q),r("change",".frm-unit-input .frm-unit-input-control",Z),r("change",".frm-unit-input select",Z)},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",z):z())})(); \ No newline at end of file +(()=>{"use strict";var e=window.frmGlobal,t=(e.url,e.nonce,"frm_hidden"),n="frm_disabled",i=(Promise.resolve(),window.frmDom.util),r=(i.onClickPreventDefault,i.documentOn),a=(new URL(window.location.href).searchParams,function(e){return null==e?void 0:e.classList.remove(t)});function o(e){return o="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},o(e)}function l(e,t){for(var n=0;n=r)){var a=i.querySelector("select").value,o=this.calculateValue(r,n,this.getMaxValue(a,t));i.querySelector('.frm-slider-value input[type="text"]').value=o,i.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=o,i.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(i,n,t,o+a),this.options[t].translateX=n,this.options[t].value=o+a,this.options[t].fullValue=this.updateValue(i,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 i=Math.ceil(this.sliderBulletWidth*(t/e)),r=Math.ceil((t+i)/e*n);return Math.min(r,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-base-font-size")){var i=document.querySelector('input[name="frm_style_setting[post_content][use_base_font_size]"]');null!==i&&(i.value="true")}if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),a=r.value.split(" "),o=e.dataset.type;switch(a[2]||(a[2]="0px"),a[3]||(a[3]="0px"),o){case"vertical":a[0]=t,a[2]=t;break;case"horizontal":a[1]=t,a[3]=t;break;case"top":a[0]=t;break;case"bottom":a[2]=t;break;case"left":a[3]=t;break;case"right":a[1]=t}var l=a.join(" ");return r.value=l,this.getSliderGroupItems(e).forEach((function(e){var i=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=i})),l}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),c=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,c[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)}))||""}}])&&h(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function g(e){return g="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},g(e)}function b(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.isRTL="rtl"===document.documentElement.dir||"rtl"===document.body.dir,this.resizeObserver=null,this.init()))},(t=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.slideTrackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})),this.setupScrollbarObserver(),window.addEventListener("beforeunload",this.cleanupObservers))}},{key:"onNavClick",value:function(e,t){var n=e.currentTarget;e.preventDefault(),this.removeActiveClassnameFromNavs(),n.classList.add("frm-active"),this.initSlideTrackUnderline(n,t),this.changeSlide(t);var i,r,a=n.querySelector("a");a&&"frm_insert_fields_tab"===a.id&&!a.closest("#frm_adv_info")&&(null===(i=window.frmAdminBuild)||void 0===i||null===(r=i.clearSettingsBox)||void 0===r||r.call(i))}},{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.positionUnderlineIndicator(n)}},{key:"setupScrollbarObserver",value:function(){var e=this,t=this.wrapper.closest(".frm-scrollbar-wrapper");t&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver((function(){var t=e.wrapper.querySelector(".frm-tabs-navs ul > li.frm-active");t&&e.positionUnderlineIndicator(t)})),this.resizeObserver.observe(t))}},{key:"cleanupObservers",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"positionUnderlineIndicator",value:function(e){var t=this;requestAnimationFrame((function(){var n=t.isRTL?-(e.parentElement.offsetWidth-e.offsetLeft-e.offsetWidth):e.offsetLeft;t.slideTrackLine.style.transform="translateX(".concat(n,"px)"),t.slideTrackLine.style.width=e.clientWidth+"px"}))}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * ").concat(this.isRTL?1:-1," )");"0px"!==t?this.slideTrack.style.transform="translateX(".concat(t,")"):this.slideTrack.style.removeProperty("transform"),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")}))}}])&&b(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function E(e){return E="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},E(e)}function w(e,t){for(var n=0;n0))return e.style.paddingLeft="",e.style.paddingTop="",void(e.style.height="");var i=t.offsetHeight;if(Math.max(1,Math.ceil(i/36))>1){var r=function(e){if(!e.length)return 0;var t=0;return e.forEach((function(e){t+=e.offsetWidth})),(t+=4*(e.length-1))+4}(function(e){if(!e.length)return[];var t=Array.from(e),n=-1;t.forEach((function(e){var t=e.getBoundingClientRect().bottom;t>n&&(n=t)}));return t.filter((function(e){var t=e.getBoundingClientRect();return Math.abs(t.bottom-n)<=2}))}(n));e.style.height="".concat(i,"px"),e.style.paddingTop="".concat(i-36+4,"px"),e.style.paddingLeft=r?"".concat(r+8,"px"):""}else e.style.height="",e.style.paddingTop="",e.style.paddingLeft="".concat(t.offsetWidth-4,"px")}}function R(e,t,n){e&&n&&t&&(n.innerHTML="",B(e).forEach((function(e){return function(e,t){var n=V({className:A,children:[V({text:e,className:T}),V({className:O,child:W({href:"#frm_close_icon"})})]});t.appendChild(n)}(e,n)})),D(t,n),t.focus())}function M(e,t,n){if(!e||!t||!n)return!1;var i=B(t.value);return i.includes(e)?(N(n),!1):(i.push(e),X(t,i),N(n),!0)}function F(e,t,n){if(e&&t&&n){var i=e.querySelector(".".concat(T)).textContent;X(t,B(t.value).filter((function(e){return e!==i}))),e.remove(),n.focus()}}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(e=e.trim())?e.split(/\s+/).filter(Boolean):[]}function X(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&(e.value=t.join(" "),jQuery(e).trigger("change"))}function N(e){e&&(e.value="",e.focus())}function U(e){var n=(e?document.getElementById("frm-single-settings-".concat(e)):document.body).querySelectorAll(".".concat("frm-token-input-field"));if(n.length){var i=new Set;n.forEach((function(e){i.has(e.id)||(function(e){var n=function(e){var n=e.closest(".".concat("frm-with-right-icon"));if(n.querySelector(".".concat(C)))return null;n.classList.add(x);var i=V({className:C});n.insertBefore(i,n.firstChild);var r=j("input",{className:_,id:"".concat(e.id,"-proxy-input")});return r.type="text",e.parentNode.insertBefore(r,e.nextSibling),e.classList.add(t),n}(e);if(n){var i=n.querySelector(".".concat(_)),r=n.querySelector(".".concat(C));R(e.value,i,r),function(e,t,n){jQuery(e).on("change",(function(){return R(e.value,t,n)})),t.addEventListener("keydown",(function(i){return function(e,t,n,i){var r=e.key,a=n.value.trim();switch(r){case"Backspace":a||(e.preventDefault(),F(i.querySelector(".".concat(A,":last-child")),t,n));break;case" ":case",":case"Enter":e.preventDefault(),M(a,t,n)}D(n,i)}(i,e,t,n)})),t.addEventListener("blur",(function(){return M(t.value.trim(),e,t)})),n.addEventListener("click",(function(n){return function(e,t,n){var i=e.target.closest(".".concat(O));if(i){var r=i.closest(".".concat(A));if(r){var a=r.parentElement;F(r,t,n),D(n,a)}}}(n,e,t)}))}(e,i,r)}}(e),i.add(e.id))}))}}var z,G="frm-toggle-group",H="frm_toggle_block",J="data-group-name";function Q(e){var t=e.target,n=t.closest(".".concat(G));n&&K(t,n)}function K(e,i){var r,a=(null===(r=i.closest(".".concat("frm-single-settings")))||void 0===r?void 0:r.dataset.fid)||i.dataset.fid,o=e.checked,l=e.getAttribute("data-show");l&&document.querySelectorAll(Y(l,a)).forEach((function(e){return e.classList.toggle(t,!o)}));var s=e.getAttribute("data-disable");s&&document.querySelectorAll(Y(s,a)).forEach((function(e){e.classList.toggle(n,o),e.querySelectorAll("input, select, textarea").forEach((function(e){return e.disabled=o})),e.querySelectorAll(".frm-show-inline-modal[tabindex]").forEach((function(e){return e.tabIndex=o?-1:0}))}));var c=e.getAttribute("data-enable");c&&document.querySelectorAll(Y(c,a)).forEach((function(e){return e.classList.toggle(n,!o)}));var u=e.closest(".".concat(H));Array.from(i.querySelectorAll(".".concat(H))).filter((function(e){return e!==u})).forEach((function(e){e.classList.toggle(n,o);var t=e.querySelector(".frm_toggle");t.tabIndex=o?-1:0,t.setAttribute("aria-disabled",o)}))}function Y(e,t){return e.replace(/{id}/g,t)}function Z(e){var t=e.target.closest(".frm-unit-input"),n=t.querySelector(".frm-unit-input-control"),i=t.querySelector("select").value;e.target.matches("select")&&(n.type=""===i?"text":"number");var r=n.value.trim();t.querySelector('input[type="hidden"]').value=""!==r?r+i:""}z=function(){var e,t;new c,new y,new q,null===(t=document.getElementById("frm-form-add-field"))||void 0===t||t.addEventListener("click",(function(e){var t;e.preventDefault(),null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click()})),U(),document.addEventListener("frm_added_field",(function(e){return U(e.frmField.dataset.fid)})),document.addEventListener("frm_ajax_loaded_field",(function(e){return e.frmFields.forEach((function(e){return U(e.id)}))})),wp.hooks.addAction("frmShowedFieldSettings","formidable-token-input",I),(e=document.querySelectorAll(".".concat(G))).length&&e.forEach((function(e){var t=e.querySelector("[".concat(J,"]:checked"));t&&K(t,e)})),r("change",".".concat(G," [").concat(J,"]"),Q),r("change",".frm-unit-input .frm-unit-input-control",Z),r("change",".frm-unit-input select",Z)},"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",z):z())})(); \ No newline at end of file diff --git a/js/formidable_admin.js b/js/formidable_admin.js index 77b402b545..2ab802a054 100644 --- a/js/formidable_admin.js +++ b/js/formidable_admin.js @@ -1 +1 @@ -(()=>{var e={65:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(793),i=r(323);function o(e){var t=(0,n.A)(e);return function(e){return(0,i.A)(t,e)}}},323:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n={"!":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,r){if(e)throw t;return r}};function i(e,t){var r,i,o,a,l,s,d=[];for(r=0;r{"use strict";r.d(t,{A:()=>i});var n=r(65);function i(e){var t=(0,n.A)(e);return function(e){return+t({n:e})}}},793:(e,t,r)=>{"use strict";var n,i,o,a;function l(e){for(var t,r,l,s,d=[],c=[];t=e.match(a);){for(r=t[0],(l=e.substr(0,t.index).trim())&&d.push(l);s=c.pop();){if(o[r]){if(o[r][0]===s){r=o[r][1]||r;break}}else if(i.indexOf(s)>=0||n[s]l}),n={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},i=["(","?"],o={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},521:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(956),i=r(395);const o=function(e,t){return function(r,o,a){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=e[t];if((0,i.A)(r)&&(0,n.A)(o))if("function"==typeof a)if("number"==typeof l){var d={callback:a,priority:l,namespace:o};if(s[r]){var c,f=s[r].handlers;for(c=f.length;c>0&&!(l>=f[c-1].priority);c--);c===f.length?f[c]=d:f.splice(c,0,d),s.__current.forEach(function(e){e.name===r&&e.currentIndex>=c&&e.currentIndex++})}else s[r]={handlers:[d],runs:0};"hookAdded"!==r&&e.doAction("hookAdded",r,o,a,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(){var r,n,i=e[t];return null!==(r=null===(n=i.__current[i.__current.length-1])||void 0===n?void 0:n.name)&&void 0!==r?r:null}}},375:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(395);const i=function(e,t){return function(r){var i=e[t];if((0,n.A)(r))return i[r]&&i[r].runs?i[r].runs:0}}},561:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r){var n=e[t];return void 0===r?void 0!==n.__current[0]:!!n.__current[0]&&r===n.__current[0].name}}},830:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r,n){var i=e[t];return void 0!==n?r in i&&i[r].handlers.some(function(e){return e.namespace===n}):r in i}}},765:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(29),i=r(521),o=r(194),a=r(830),l=r(763),s=r(11),d=r(561),c=r(375),f=function e(){(0,n.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,i.A)(this,"actions"),this.addFilter=(0,i.A)(this,"filters"),this.removeAction=(0,o.A)(this,"actions"),this.removeFilter=(0,o.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,o.A)(this,"actions",!0),this.removeAllFilters=(0,o.A)(this,"filters",!0),this.doAction=(0,l.A)(this,"actions"),this.applyFilters=(0,l.A)(this,"filters",!0),this.currentAction=(0,s.A)(this,"actions"),this.currentFilter=(0,s.A)(this,"filters"),this.doingAction=(0,d.A)(this,"actions"),this.doingFilter=(0,d.A)(this,"filters"),this.didAction=(0,c.A)(this,"actions"),this.didFilter=(0,c.A)(this,"filters")};const u=function(){return new f}},194:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(956),i=r(395);const o=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(o,a){var l=e[t];if((0,i.A)(o)&&(r||(0,n.A)(a))){if(!l[o])return 0;var s=0;if(r)s=l[o].handlers.length,l[o]={runs:l[o].runs,handlers:[]};else for(var d=l[o].handlers,c=function(e){d[e].namespace===a&&(d.splice(e,1),s++,l.__current.forEach(function(t){t.name===o&&t.currentIndex>=e&&t.currentIndex--}))},f=d.length-1;f>=0;f--)c(f);return"hookRemoved"!==o&&e.doAction("hookRemoved",o,a),s}}}},763:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var i=e[t];i[n]||(i[n]={handlers:[],runs:0}),i[n].runs++;for(var o=i[n].handlers,a=arguments.length,l=new Array(a>1?a-1:0),s=1;s{"use strict";r.d(t,{se:()=>n});var n=(0,r(765).A)();n.addAction,n.addFilter,n.removeAction,n.removeFilter,n.hasAction,n.hasFilter,n.removeAllActions,n.removeAllFilters,n.doAction,n.applyFilters,n.currentAction,n.currentFilter,n.doingAction,n.doingFilter,n.didAction,n.didFilter,n.actions,n.filters},395:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},956:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,r)=>{"use strict";r.d(t,{h:()=>d});var n=r(467),i=r(397);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";n.data[t]=a(a(a({},l),n.data[t]),e),n.data[t][""]=a(a({},l[""]),n.data[t][""])},f=function(e,t){c(e,t),d()},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;return n.data[e]||c(void 0,e),n.dcnpgettext(e,t,r,i,o)},m=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},_=function(e,t,n){var i=u(n,t,e);return r?(i=r.applyFilters("i18n.gettext_with_context",i,e,t,n),r.applyFilters("i18n.gettext_with_context_"+m(n),i,e,t,n)):i};if(e&&f(e,t),r){var p=function(e){s.test(e)&&d()};r.addAction("hookAdded","core/i18n",p),r.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[e]},setLocaleData:f,resetLocaleData:function(e,t){n.data={},n.pluralForms={},f(e,t)},subscribe:function(e){return o.add(e),function(){return o.delete(e)}},__:function(e,t){var n=u(t,void 0,e);return r?(n=r.applyFilters("i18n.gettext",n,e,t),r.applyFilters("i18n.gettext_"+m(t),n,e,t)):n},_x:_,_n:function(e,t,n,i){var o=u(i,void 0,e,t,n);return r?(o=r.applyFilters("i18n.ngettext",o,e,t,n,i),r.applyFilters("i18n.ngettext_"+m(i),o,e,t,n,i)):o},_nx:function(e,t,n,i,o){var a=u(o,i,e,t,n);return r?(a=r.applyFilters("i18n.ngettext_with_context",a,e,t,n,i,o),r.applyFilters("i18n.ngettext_with_context_"+m(o),a,e,t,n,i,o)):a},isRTL:function(){return"rtl"===_("ltr","text direction")},hasTranslation:function(e,t,i){var o,a,l=t?t+""+e:e,s=!(null===(o=n.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[l]);return r&&(s=r.applyFilters("i18n.has_translation",s,e,t,i),s=r.applyFilters("i18n.has_translation_"+m(i),s,e,t,i)),s}}}},839:(e,t,r)=>{"use strict";r.d(t,{__:()=>a});var n=r(772),i=r(133),o=(0,n.h)(void 0,void 0,i.se),a=(o.getLocaleData.bind(o),o.setLocaleData.bind(o),o.resetLocaleData.bind(o),o.subscribe.bind(o),o.__.bind(o));o._x.bind(o),o._n.bind(o),o._nx.bind(o),o.isRTL.bind(o),o.hasTranslation.bind(o)},575:(e,t,r)=>{"use strict";r.d(t,{__:()=>n.__}),r(181),r(772);var n=r(839)},181:(e,t,r)=>{"use strict";var n=r(616),i=r.n(n);r(604),i()(console.error)},105:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addonError:()=>s,afterAddonInstall:()=>l,extractErrorFromAddOnResponse:()=>a,toggleAddonState:()=>o});var n=r(575),i=frmDom.div;function o(e,t){var r,n=null!==(r=window.ajaxurl)&&void 0!==r?r:frm_js.ajax_url;jQuery(".frm-addon-error").remove();var i=jQuery(e),o=i.attr("rel"),d=i.parent(),c=d.parent().find(".addon-status-label");i.addClass("frm_loading_button"),jQuery.ajax({url:n,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:t,nonce:frmGlobal.nonce,plugin:o},success:function(e){var r,n,o;"string"!=typeof(e=null!==(r=null===(n=e)||void 0===n?void 0:n.data)&&void 0!==r?r:e)&&"string"==typeof e.message&&(void 0!==e.saveAndReload&&(o=e.saveAndReload),e=e.message);var f=a(e);f?s(f,d,i):(l(e,i,c,d,o,t),wp.hooks.doAction("frm_update_addon_state",e))},error:function(){i.removeClass("frm_loading_button")}})}function a(e){return"string"!=typeof e&&(void 0===e.success||!e.success)&&(e.form&&jQuery(e.form).is("#message")?{message:jQuery(e.form).find("p").html()}:e)}function l(e,t,r,o,a){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",s=frm_admin_js,c=document.querySelectorAll(".frm-addon-status");c.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),jQuery("#frm_upgrade_modal h2").hide(),jQuery("#frm_upgrade_modal .frm_lock_icon").addClass("frm_lock_open_icon"),jQuery("#frm_upgrade_modal .frm_lock_icon use").attr("xlink:href","#frm_lock_open_icon");var f={frm_activate_addon:{class:"frm-addon-active",message:s.active},frm_deactivate_addon:{class:"frm-addon-installed",message:s.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:s.not_installed}};f.frm_install_addon=f.frm_activate_addon;var u=r[0];u&&(u.textContent=f[l].message);var m=o[0].parentElement;m.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),m.classList.add(f[l].class),t[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&c.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.appendChild(function(e,t){var r,o=[d(e)];return t&&o.push(((r=document.createElement("a")).setAttribute("href","#"),r.classList.add("button","button-secondary","frm-button-secondary","dismiss"),r.textContent=(0,n.__)("Close","formidable"),r)),i({className:"frm-save-and-reload-options",children:o})}(a,t))})}function s(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",installAddonWithCreds)):(t.append('

                                            '+e.message+"

                                            "),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function d(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,n.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(null!==e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}},260:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addOneClick:()=>i,initModal:()=>o,initUpgradeModal:()=>a});var n=r(575);function i(e,t,r){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var o=i.querySelector(".frm-oneclick"),a=i.querySelector(".frm-upgrade-message"),l=i.querySelector(".frm-upgrade-link"),s=i.querySelector(".frm-oneclick-button"),d=i.querySelector(".frm-addon-status"),c=e.getAttribute("data-oneclick"),f=e.getAttribute("data-message"),u="block",m="block",_="none";null!==o&&void 0!==c&&c&&(null===f&&(m="none"),u="none",_="block",c=JSON.parse(c),s.className=s.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),s.className=s.className+" "+c.class,s.rel=c.url,"frm-activate-addon"===c.class?(o.textContent=(0,n.__)("This plugin is not activated. Would you like to activate it now?","formidable"),s.textContent=(0,n.__)("Activate","formidable")):(o.textContent=(0,n.__)("That add-on is not installed. Would you like to install it now?","formidable"),s.textContent=(0,n.__)("Install","formidable"))),f||(f=a.getAttribute("data-default")),void 0!==r&&(f=f.replace('',r)),a.innerHTML=f,e.dataset.upsellImage&&a.appendChild(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),l.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,l),d.style.display="none",o.style.display=_,s.style.display="block"===_?"inline-block":_,a.style.display=m,l.style.display="block"===u?"inline-block":u}function o(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="550px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function a(){var e=o("#frm_upgrade_modal");function t(t){var r,n,o;if((r=t.target).classList){var a=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var l=r.options[r.selectedIndex];l&&l.dataset.upgrade&&(r=l)}if(!r.dataset.upgrade){var s=r.closest("[data-upgrade]");if(!s){if(!(s=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=s}if(a)wp.hooks.doAction("frm_show_expired_modal",r);else{var d=r.dataset.upgrade;if(d&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var c=e.get(0),f=c.querySelector(".frm_lock_icon");f&&(f.style.display="block",f.classList.remove("frm_lock_open_icon"),f.querySelector("use").setAttribute("href","#frm_lock_icon"));var u="frm_upgrade_modal_image",m=document.getElementById(u);m&&m.remove(),r.dataset.image&&(f&&(f.style.display="none"),f.parentNode.insertBefore(frmDom.img({id:u,src:frmGlobal.url+"/images/"+r.dataset.image}),f));var _=c.querySelector(".license-level");_&&(_.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(r)),i(r,"modal",d),c.querySelector(".frm_are_not_installed").style.display=r.dataset.image?"none":"inline-block",c.querySelector(".frm_feature_label").textContent=d,c.querySelector("h2").style.display="block",e.dialog("open");var p=c.querySelector(".button-primary:not(.frm-oneclick-button)");n=p.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1"+r.getAttribute("data-medium")),null===(o=r.getAttribute("data-content"))&&(o=""),n=n.replace(/(content=)[a-z_-]+/gi,"$1"+o),p.setAttribute("href",n)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},616:e=>{e.exports=function(e,t){var r,n,i=0;function o(){var o,a,l=r,s=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a{var n;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(e){return function(e,t){var r,n,a,l,s,d,c,f,u,m=1,_=e.length,p="";for(n=0;n<_;n++)if("string"==typeof e[n])p+=e[n];else if("object"==typeof e[n]){if((l=e[n]).keys)for(r=t[m],a=0;a=0),l.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,l.width?parseInt(l.width):0);break;case"e":r=l.precision?parseFloat(r).toExponential(l.precision):parseFloat(r).toExponential();break;case"f":r=l.precision?parseFloat(r).toFixed(l.precision):parseFloat(r);break;case"g":r=l.precision?String(Number(r.toPrecision(l.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=l.precision?r.substring(0,l.precision):r;break;case"t":r=String(!!r),r=l.precision?r.substring(0,l.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=l.precision?r.substring(0,l.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=l.precision?r.substring(0,l.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}i.json.test(l.type)?p+=r:(!i.number.test(l.type)||f&&!l.sign?u="":(u=f?"+":"-",r=r.toString().replace(i.sign,"")),d=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",c=l.width-(u+r).length,s=l.width&&c>0?d.repeat(c):"",p+=l.align?u+r+s:"0"===d?u+s+r:s+u+r)}return p}(function(e){if(l[e])return l[e];for(var t,r=e,n=[],o=0;r;){if(null!==(t=i.text.exec(r)))n.push(t[0]);else if(null!==(t=i.modulo.exec(r)))n.push("%");else{if(null===(t=i.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var a=[],s=t[2],d=[];if(null===(d=i.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(d[1]);""!==(s=s.substring(d[0].length));)if(null!==(d=i.key_access.exec(s)))a.push(d[1]);else{if(null===(d=i.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(d[1])}t[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.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]})}r=r.substring(t[0].length)}return l[e]=n}(e),arguments)}function a(e,t){return o.apply(null,[e].concat(t||[]))}var l=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(n=function(){return{sprintf:o,vsprintf:a}}.call(t,r,t,e))||(e.exports=n))}()},397:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(364),i={contextDelimiter:"",onMissingKey:null};function o(e,t){var r;for(r in this.data=e,this.pluralForms={},this.options={},i)this.options[r]=void 0!==t&&r in t?t[r]:i[r]}o.prototype.getPluralForm=function(e,t){var r,i,o,a=this.pluralForms[e];return a||("function"!=typeof(o=(r=this.data[e][""])["Plural-Forms"]||r["plural-forms"]||r.plural_forms)&&(i=function(e){var t,r,n;for(t=e.split(";"),r=0;r{"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,{A:()=>n})},467:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(922);function i(e,t,r){return(t=(0,n.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},327:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(284);function i(e,t){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=(0,n.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},922:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(284),i=r(327);function o(e){var t=(0,i.A)(e,"string");return"symbol"==(0,n.A)(t)?t:t+""}},284:(e,t,r)=>{"use strict";function n(e){return n="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},n(e)}r.d(t,{A:()=>n})}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}function n(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},window.FrmFormsConnect=window.FrmFormsConnect||function(e,t,r){var n={messageBox:null,reset:null,setElements:function(){n.messageBox=e.querySelector(".frm_pro_license_msg"),n.reset=e.getElementById("frm_reconnect_link")}},i={init:function(){n.setElements(),r(e.getElementById("frm_deauthorize_link")).on("click",i.deauthorize),r(".frm_authorize_link").on("click",i.authorize),r(".frm-dashboard-license-options").on("click","#frm_deauthorize_link",i.deauthorize),r(".frm-dashboard-license-options").on("click","#frm_reconnect_link",i.reauthorize),null!==n.reset&&r(n.reset).on("click",i.reauthorize)},authorize:function(){var t=this,n=this.getAttribute("data-plugin"),o=e.getElementById("edd_"+n+"_license_key"),a=o.value,l=e.getElementById("proplug-wpmu");this.classList.add("frm_loading_button"),l=null===l?0:l.checked?1:0,r.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_addon_activate",license:a,plugin:n,wpmu:l,nonce:frmGlobal.nonce},success:function(e){i.afterAuthorize(e,o),t.classList.remove("frm_loading_button")}})},afterAuthorize:function(e,t){!0===e.success&&(t.value="•••••••••••••••••••"),wp.hooks.doAction("frm_after_authorize",e),i.showMessage(e)},showProgress:function(e){null===n.messageBox&&n.setElements();var t=n.messageBox;null!==t&&(!0===e.success?(t.classList.remove("frm_error_style"),t.classList.add("frm_message","frm_updated_message")):(t.classList.add("frm_error_style"),t.classList.remove("frm_message","frm_updated_message")),t.classList.remove("frm_hidden"),t.innerHTML=e.message)},showMessage:function(r){null===n.messageBox&&n.setElements();var o=n.messageBox;!0===r.success&&(i.showAuthorized(!0),i.showInlineSuccess(),wp.hooks.doAction("frmAdmin.afterLicenseAuthorizeSuccess",{msg:r})),i.showProgress(r),""!==r.message&&(setTimeout(function(){o.innerHTML="",o.classList.add("frm_hidden"),o.classList.remove("frm_error_style","frm_message","frm_updated_message")},1e4),e.querySelector(".frm-admin-page-dashboard")&&setTimeout(function(){t.location.reload()},1e3))},showAuthorized:function(t){var r=t?"unauthorized":"authorized",n=t?"authorized":"unauthorized",i=e.querySelectorAll(".frm_"+r+"_box");i.length&&i.forEach(function(e){e.className=e.className.replace("frm_"+r+"_box","frm_"+n+"_box")})},showInlineSuccess:function(){var t=e.querySelectorAll(".frm-confirm-msg [data-success]");t.length&&t.forEach(function(e){e.innerHTML=frmAdminBuild.purifyHtml(e.getAttribute("data-success"))})},reauthorize:function(){return this.innerHTML='',r.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_reset_cache",plugin:"formidable_pro",nonce:frmGlobal.nonce},success:function(e){n.reset.textContent=e.message,"1"===n.reset.getAttribute("data-refresh")&&t.location.reload()}}),!1},deauthorize:function(){if(!confirm(frmGlobal.deauthorize))return!1;var t=this.getAttribute("data-plugin"),n=e.getElementById("edd_"+t+"_license_key"),o=n.value,a=this;return this.innerHTML='',r.ajax({type:"POST",url:ajaxurl,data:{action:"frm_addon_deactivate",license:o,plugin:t,nonce:frmGlobal.nonce},success:function(){i.showAuthorized(!1),n.value="",a.replaceWith("Disconnected"),wp.hooks.doAction("frmAdmin.afterLicenseDeauthorizeSuccess",{})}}),!1}};return i}(document,window,jQuery),window.frmAdminBuildJS=function(){var e,t,a=frm_admin_js,s=frmDom,d=s.tag,c=s.div,f=s.span,u=s.a,m=s.svg,_=s.img,p=frmDom.util.onClickPreventDefault,g=frmDom.ajax,h=(g.doJsonFetch,g.doJsonPost);a.contextualShortcodes=(t=null===(e=document.getElementById("frm_adv_info"))||void 0===e?void 0:e.dataset.contextualShortcodes)?((t=JSON.parse(t)).addressSelector="[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]",t.bodySelector="[id^=email_message_]",t):[];var y,v,b,j={save:m({href:"#frm_save_icon"}),drag:m({href:"#frm_drag_icon",classList:["frm_drag_icon","frm-drag"]})},w=jQuery(document.getElementById("frm-show-fields")),x=document.getElementById("new_fields"),Q=document.getElementById("form_id"),k=!1,E=0,A=0,S=0,L={},I=0,B=wp.i18n,C=B.__,q=B.sprintf,N={dragging:!1};null!==Q&&(A=Q.value);var O,T=new URL(window.location.href),F=T.searchParams,D=document.getElementById("frm_builder_page");function M(e){e.stopPropagation(),e.preventDefault(),P(this)}function P(e){var t=e.getAttribute("data-frmverify"),r=e.getAttribute("data-loaded-from");return null===t||"frm-confirmed-click"===e.id||("entries-list"===r?wp.hooks.applyFilters("frm_on_multiple_entries_delete",{link:e,initModal:Co}):function(e){var t,r,n,i,o,a=Co("#frm_confirm_modal","400px"),l=document.getElementById("frm-confirmed-click");if(!1===a)return!1;for(n in o=(t=e.getAttribute("data-frmverify"))?e.getAttribute("data-frmverify-btn"):"",(r=jQuery(".frm-confirm-msg")).empty(),t&&(r.append(document.createTextNode(t)),o&&l.classList.add(o)),removeAtts=l.dataset,i)l.removeAttribute("data-"+n);for(n in i=e.dataset)"frmverify"!==n&&l.setAttribute("data-"+n,i[n]);return wp.hooks.doAction("frmAdmin.beforeOpenConfirmModal",{$info:a,link:e}),a.dialog("open"),l.setAttribute("href",e.getAttribute("href")||e.getAttribute("data-href")),!1}(e))}function H(e){var t=Co("#frm_info_modal","400px");return!1===t||(jQuery(".frm-info-msg").html(e),t.dialog("open")),!1}function z(e){var t=this.getAttribute("data-frmtoggle"),r=this.getAttribute("data-toggletext"),n=jQuery(t);return e.preventDefault(),n.toggle(),null!==r&&""!==r&&(this.setAttribute("data-toggletext",this.innerHTML),this.textContent=r),!1}function R(e){var t=this.getAttribute("data-frmhide"),r=this.getAttribute("data-frmshow"),n=this.getAttribute("data-frmuncheck"),i=n?n.split(","):[];"INPUT"!==this.nodeName||"checkbox"!==this.type||this.checked||(null!==t?(r=t,t=null):null!==r&&(t=r,r=null)),e.preventDefault();var o=this.getAttribute("data-toggleclass")||"frm_hidden";null!==t&&jQuery(t).addClass(o),null!==r&&jQuery(r).removeClass(o);var a=this.parentNode.querySelectorAll("a.current");if(null!==a){for(var l=0;l1&&(e="",t=""):0===i.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().length&&(""!==e&&(e+=","),e+="#"+jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#"+i+")").last().attr("id")+" .frm_toggle_cf_opts"));var o=document.getElementById(i),a=jQuery(o);return a.fadeOut(300,function(){var r;a.remove(),Pi(),""!==t&&jQuery(t).hide(),""!==e&&jQuery(e+" a,"+e).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){ci(e);var t={type:e};wp.hooks.doAction("frm_after_action_removed",t)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()}),void 0!==r&&(r=jQuery(r)).fadeOut(400,function(){r.remove()}),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",i,o),!1}}function U(e,t){void 0===t&&(t=this),tt(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var i=n.parentElement.className;if("string"==typeof i&&(i.indexOf("frm_email_icons")>-1||i.indexOf("frm_toggle")>-1))return void e.stopPropagation()}var o=r.children(".widget-inside");if(r.length&&o.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(o.html(''),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){o.html(e),co(),Zn("#"+r.attr("id")),yo(o),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",o)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&-1!==t.className.indexOf("widget-action")||jQuery(t).closest(".start_divider").length<1||((o=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?o.slideDown("fast"):o.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(void 0===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Je(),!1}function V(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,i,o=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(o).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(i=jQuery(".frm_"+n+"_ajax")).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){i.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(o).show(),Vi(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id="+jQuery('.frm_form_settings input[name="id"]').val()+"&t="+r.replace("#","")):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t="+r.replace("#","")))}}function K(e){var t,r;document.querySelectorAll(e).forEach(function(e){J(e),Array.from(e.children).forEach(function(e){return Z(e,".frm-move")});var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&J(t)}),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return k=t.clone().insertAfter(t),t.clone()},stop:function(e,t){k&&k.remove(),an(t.item.attr("id").replace("frm_delete_field_","").replace("-"+t.item.data("optkey")+"_container","")),Pi()}},jQuery(t).sortable(r)}function J(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ie,over:X,out:Y,tolerance:"pointer"})}function X(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!Qe(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach(function(e){return e.classList.remove("frm-over-droppable")}),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function Y(e){e.target.classList.remove("frm-over-droppable")}function Z(e,t){var r={helper:ee,revert:"invalid",delay:10,start:te,stop:re,drag:ne,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function ee(e){var t,r=e.delegateTarget;if(Ee(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=C("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var i=r.getAttribute("data-ftype");if((t=(t=document.getElementById("frm-insert-fields").querySelector(".frm_t"+i)).cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t)return t.cloneNode(!0)}return c({className:"frmbutton"})}function te(e,t){N.dragging=!0;var r,n=v;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),vr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach(function(e){[].slice.call(e.children).forEach(function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()})}),Me(),Te(),G()}function re(){v.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function ne(e,t){!function(e){b.scrollTop(function(t,r){var n=e.clientY,i=v.offsetHeight,o=e.clientY-v.offsetTop,a=o-i/2;return o>i-50&&n>5?r+.1*a:o<70&&n<130?r-Math.abs(.1*a):r})}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),i=document.getElementById("frm_drag_placeholder");if(Qe(r,n,e)){i||(i=d("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var o,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY("+(o=t.helper,v.scrollTop-o.initialOffset+"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return i.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,i=jQuery(e.droppable);if($children=i.children().not(".edit_field_type_end_divider"),0===$children.length)i.prepend(n),t=0;else{var o=oe(i,r);if(o===$children.length){var a=jQuery($children.get(o-1));t=a.offset().top+a.outerHeight(),i.append(n);var l=i.children(".edit_field_type_end_divider");l.length&&i.append(l)}else t=jQuery($children.get(o)).offset().top,jQuery($children.get(o)).before(n)}t-=i.offset().top,n.style.top=t+"px"}({droppable:n,y:e.clientY,placeholder:i});i.style.top="",function(e){var t,r=e.x,n=e.placeholder,i=jQuery(e.droppable),o=le(i);if(o.length){var a=function(e,t){var r,n,i,o,a=le(e);for(o=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().left)){o=r,t>i+jQuery(n).outerWidth()/2&&(o=r+1);break}return o}(i,r);if(a===o.length){var l=jQuery(o.get(a-1));t=l.offset().left+l.outerWidth(),i.append(n)}else t=jQuery(o.get(a)).offset().left,jQuery(o.get(a)).before(n),t-=0===a?4:8;t-=i.offset().left,n.style.left=t+"px"}}({droppable:n,x:e.clientX,placeholder:i})}else i&&i.remove()}function ie(e,t){if(N.dragging){N.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void y();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var i=t.helper.parent(),o=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(he(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r=e.replace("|","-")+"_"+xe(),n=d("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),i=jQuery(n),o=ue(jQuery(t)),a=me(o),l=_e(o);t.parentNode.insertBefore(n,t),t.remove(),se(i);var s=0;"summary"===e&&(s=jQuery(".frmbutton_loadingnow#"+r).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:ge(e,l,a,s),success:function(t){ye(t,i);var r=ve(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:we})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&Z(t,".frm-move")}}(n.parentElement));var l=o?parseInt(o.closest(".edit_field_type_divider").getAttribute("data-fid")):0,s=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var c=i.length?le(i):[];!function(e,t){var r;e.length&&(t.length?se(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(i,c),function(e,t){0===t.length&&1===le(jQuery(e.parentNode)).length||se(jQuery(e))}(r,c),l!==s&&pe(jQuery(r),o),y()}}function oe(e,t){var r,n,i,o,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(o=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(i=jQuery(n).offset().top)){o=r,t>i+jQuery(n).outerHeight()/2&&(o=r+1);break}return o}function ae(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach(function(e){e.childNodes.forEach(function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))})}),Sn(),document.querySelectorAll(".edit_field_type_end_divider").forEach(function(e){return e.parentNode.appendChild(e)}),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach(function(e){return!e.children.length&&e.remove()}),An();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function le(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach(function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}}),t):t}function se(e,t){var r,n,i,o;void 0===t&&(t="even"),r=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),n=r.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"],"even"===t&&5!==n?r.each(fe(i,Jt(n))):"clear"===t?r.each(fe(i,"")):(o=-1!==["left","right","middle","even"].indexOf(t)?function(e){return Kt(n,t,e)}:function(e){return dr(t[e])},r.each(fe(i,o))),de(e.parent(),r.length)}function de(e,t){var r,n;if(void 0!==e.offset()){if(r=t>=2,null===(n=document.getElementById("frm_field_group_controls"))){if(!r)return;(n=c()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t,r;(t=document.createElement("span")).innerHTML='';var n=C("Set Row Layout","formidable");ce(t,n),Gt(t,n),(r=document.createElement("span")).innerHTML='',r.classList.add("frm-move");var i=C("Move Field Group","formidable");ce(r,i),Gt(r,i),e.innerHTML="",e.appendChild(t),e.appendChild(r),e.appendChild(function(){var e=f({className:"dropdown"}),t=u({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[f({child:m({href:"#frm_thick_more_vert_icon"})}),f({className:"screen-reader-text",text:C("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:C("More Options","formidable"),"data-toggle":"dropdown","data-container":"body"}),Gt(t,C("More Options","formidable")),e.appendChild(t);var r=c({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.appendChild(r),e}())}(n),D.appendChild(n)}e.append(n),n.style.display=r?"block":"none"}}function ce(e,t){e.setAttribute("data-toggle","tooltip"),e.setAttribute("data-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()})}function fe(e,t){return function(r){var n,i,o,a,l,s,d;for(n="function"==typeof t?t(r):t,i=e.length,l=!1,o=0;ot.childElementCount-1:s<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(a)return!(t.classList.contains("start_divider")||!ke(t.parentElement)&&(!ke(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));if(t.classList.contains("start_divider")&&(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)&&t.closest(".repeat_section"))return!1;if(!t.classList.contains("start_divider")){if(n=le(jQuery(t)),i=jQuery(e),!(n.length<6)&&(n.length>6||(o=i.attr("data-fid"),1!==jQuery(n).filter('[data-fid="'+o+'"]').length)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),i=r.contains("frm_thidden"),o=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||i||o||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!o):!(Ae(t)||i||n||l)}(e,t):function(e,t){if(Ee(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(Ae(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return null===t.closest(".start_divider")||!r&&!n}(e,t)}(e,t)}function ke(e){return e&&e.matches("#frm-show-fields > li:last-child")}function Ee(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function Ae(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Se(e){var t=document.getElementById(e),r=jQuery(t),n=[],i=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)},o=t;i(o);for(var a=Le(o);a&&n.length<15;)i(a),o=a,a=Le(a);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:A,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,i;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))jQuery("#frm_field_id_"+n).replaceWith(e[n]),K("#frm_field_id_"+n+".edit_field_type_divider ul.frm_sorting"),Z(document.getElementById("frm_field_id_"+n));((i=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(i=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Se(i.attr("id")),co(),Dr(),Ce();var o=new Event("frm_ajax_loaded_field",{bubbles:!1});o.frmFields=r.map(function(e){return JSON.parse(e)}),document.dispatchEvent(o)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Le(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Ie(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton").attr("id");if(!he(t)){var r=0;"summary"===t&&(r=w.children('li[data-type="break"]').length>0?1:0);var n=A;return jQuery.ajax({type:"POST",url:ajaxurl,data:ge(t,0,n,r),success:function(e){Be(e);var r=ve(e);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:r,fieldType:t,form_id:n})},error:we}),!1}}function Be(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=Ue(e),r=w[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):w.append(t),Ve(e,!0),t.each(function(){J(this.querySelector("ul.frm_sorting")),Z(this.querySelector(".form-field"),".frm-move")})}function Ce(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");w.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r',i.appendChild(document.createTextNode(" ")),i.appendChild(o),n.appendChild(i),e.appendChild(n)})}(t,!0===e),(r=jQuery(t)).offset().left>jQuery(window).width()-r.outerWidth()&&(t.style.left=-r.outerWidth()+"px");var n=t.firstElementChild.querySelector("a");n&&n.focus()}},0)}function ze(){He(!0)}function Re(e){var t=e.target.closest(".frm-section-collapsed");t&&("show"===e.type?t.style.zIndex=3:t.style.zIndex=1)}function Ge(e){var t={class:"frm_delete",icon:"frm_delete_icon"};return t.label=C(e?"Delete Group":"Delete","formidable"),t}function $e(e){var t={class:"frm_clone",icon:"frm_clone_icon"};return t.label=C(e?"Duplicate Group":"Duplicate","formidable"),t}function Ue(e){var t=c();"string"==typeof e?t.innerHTML=e:t.appendChild(e);var r=jQuery();return Array.from(t.children).forEach(function(e){r=r.add(jQuery("
                                          • ").addClass("frm_field_box").html(jQuery("